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>2018-03-22 14:27:49 +0300
committerDavid Benson <david@draw.io>2018-03-22 14:27:49 +0300
commitb2dd62b8a70710d7e1e2d9a44ee6f8aae5876667 (patch)
tree0437dcff018e42919867de22d02365f8ec8e0986
parent85aa73805620b842f36a8a3af080ae26b8112df2 (diff)
8.4.8 releasev8.4.8
Former-commit-id: 0d8a3f4f747e3276789916b6feffd657c3a5bafa
-rw-r--r--ChangeLog7
-rw-r--r--VERSION2
-rw-r--r--etc/build/build.xml1
-rw-r--r--etc/mxgraph/mxClient.js44
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java67
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties332
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java55
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/model/GliffyText.java7
-rw-r--r--src/main/java/com/mxgraph/io/gliffy/model/Graphic.java2
-rw-r--r--src/main/java/com/mxgraph/online/ProxyServlet.java38
-rw-r--r--src/main/webapp/cache.manifest2
-rw-r--r--src/main/webapp/connect/confluence/connectUtils-1-4-8.js4
-rw-r--r--src/main/webapp/connect/confluence/viewer-1-4-8.html10
-rw-r--r--src/main/webapp/electron.js1
-rw-r--r--src/main/webapp/images/sidebar-cisco_safe.pngbin0 -> 93445 bytes
-rw-r--r--src/main/webapp/js/app.min.js1769
-rw-r--r--src/main/webapp/js/atlas-viewer.min.js1122
-rw-r--r--src/main/webapp/js/atlas.min.js1671
-rw-r--r--src/main/webapp/js/diagramly/App.js7
-rw-r--r--src/main/webapp/js/diagramly/Devel.js1
-rw-r--r--src/main/webapp/js/diagramly/Dialogs.js2
-rw-r--r--src/main/webapp/js/diagramly/Editor.js18
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js49
-rw-r--r--src/main/webapp/js/diagramly/GraphViewer.js4
-rw-r--r--src/main/webapp/js/diagramly/Pages.js4
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js4
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js426
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar.js9
-rw-r--r--src/main/webapp/js/dropbox/Dropbox-sdk.min.js10
-rw-r--r--src/main/webapp/js/embed-static.min.js221
-rw-r--r--src/main/webapp/js/mxgraph/Actions.js10
-rw-r--r--src/main/webapp/js/mxgraph/Dialogs.js35
-rw-r--r--src/main/webapp/js/mxgraph/Editor.js4
-rw-r--r--src/main/webapp/js/mxgraph/EditorUi.js15
-rw-r--r--src/main/webapp/js/mxgraph/Format.js5
-rw-r--r--src/main/webapp/js/mxgraph/Graph.js416
-rw-r--r--src/main/webapp/js/reader.min.js221
-rw-r--r--src/main/webapp/js/shapes.min.js26
-rw-r--r--src/main/webapp/js/stencils.min.js4
-rw-r--r--src/main/webapp/js/viewer.min.js1122
-rw-r--r--src/main/webapp/plugins/cConf-1-4-8.js195
-rw-r--r--src/main/webapp/plugins/sql.js803
-rw-r--r--src/main/webapp/resources/dia_nl.txt12
-rw-r--r--src/main/webapp/shapes/bpmn/mxBpmnShape2.js7
-rw-r--r--src/main/webapp/shapes/mxBasic.js123
-rw-r--r--src/main/webapp/stencils/cisco_safe/architecture.xml5338
-rw-r--r--src/main/webapp/stencils/cisco_safe/capability.xml8999
-rw-r--r--src/main/webapp/stencils/cisco_safe/design.xml7556
-rw-r--r--src/main/webapp/stencils/cisco_safe/threat.xml9524
49 files changed, 36666 insertions, 3638 deletions
diff --git a/ChangeLog b/ChangeLog
index 46295c9c..90eaf7ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+21-MAR-2018: 8.4.8
+
+- Gliffy import improvements
+- Adds Cisco Safe Stencils
+- Adds top, left for CSV import
+- Uses mxGraph 3.9.4 beta 3
+
15-MAR-2018: 8.4.7
- Improves Gliffy import
diff --git a/VERSION b/VERSION
index 6d5aa1b9..5ceea6dd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-8.4.7 \ No newline at end of file
+8.4.8 \ No newline at end of file
diff --git a/etc/build/build.xml b/etc/build/build.xml
index eb373908..2905f8f7 100644
--- a/etc/build/build.xml
+++ b/etc/build/build.xml
@@ -115,6 +115,7 @@
<file name="Sidebar-Bootstrap.js" />
<file name="Sidebar-BPMN.js" />
<file name="Sidebar-Cabinet.js" />
+ <file name="Sidebar-CiscoSafe.js" />
<file name="Sidebar-Citrix.js" />
<file name="Sidebar-EIP.js" />
<file name="Sidebar-Electrical.js" />
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index ac430884..6f9c97ce 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -292,8 +292,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -306,7 +306,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -403,9 +403,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -416,7 +416,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -906,10 +906,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -951,9 +951,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1102,11 +1102,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
-(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1307,10 +1307,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
-mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
-g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
-this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
+mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
+Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
+g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
+c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
index 2b09cfbb..93e67b36 100644
--- a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
+++ b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
@@ -426,7 +426,9 @@ public class GliffyDiagramConverter
// Do not add constraint for orthogonal edges
if (addConstraint(object, startTerminal, true, orthogonal))
{
- mxPoints.remove(p0);
+ //Removing the point resulted in incorrect edges
+ //TODO confirm nothing is affected from this change
+ //mxPoints.remove(p0);
}
}
@@ -440,7 +442,9 @@ public class GliffyDiagramConverter
// Do not add constraint for orthogonal edges
if (addConstraint(object, endTerminal, false, orthogonal))
{
- mxPoints.remove(pe);
+ //Removing the point resulted in incorrect edges
+ //TODO confirm nothing is affected from this change
+ //mxPoints.remove(pe);
}
}
@@ -646,8 +650,11 @@ public class GliffyDiagramConverter
style.append("pointerEvents=0;");
}
- if(style.lastIndexOf("strokeColor") == -1)
- style.append("strokeColor=" + shape.strokeColor).append(";");
+ if(style.lastIndexOf("strokeColor") == -1)
+ {
+ String strokeClr = gliffyObject.isUseFillColor4StrokeColor()? shape.fillColor: shape.strokeColor;
+ style.append("strokeColor=" + strokeClr).append(";");
+ }
if (style.lastIndexOf("gradient") == -1 && shape.gradient && !gliffyObject.isGradientIgnored())
{
@@ -655,7 +662,7 @@ public class GliffyDiagramConverter
}
// opacity value is wrong for venn circles, so ignore it and use the one in the mapping
- if (!gliffyObject.isVennCircle())
+ if (!gliffyObject.isVennCircle() && style.lastIndexOf("opacity") == -1)
{
style.append("opacity=" + shape.opacity * 100).append(";");
}
@@ -679,6 +686,7 @@ public class GliffyDiagramConverter
style.append("fillColor=" + line.fillColor).append(";");
style.append(ArrowMapping.get(line.startArrow).toString(true)).append(";");
style.append(ArrowMapping.get(line.endArrow).toString(false)).append(";");
+ style.append("rounded=" + (line.cornerRadius != null? "1" : "0")).append(";");
style.append(DashStyleMapping.get(line.dashStyle, line.strokeWidth));
style.append(LineMapping.get(line.interpolationType));
@@ -705,12 +713,59 @@ public class GliffyDiagramConverter
* The equation that translates Gliffy offset to draw.io offset is : G*2 - 1 = D
*/
mxGeometry mxGeo = new mxGeometry(graphic.Text.lineTValue != null ? graphic.Text.lineTValue * 2 -1 : 0, 0, 0, 0);
- mxGeo.setOffset(new mxPoint());
+
+ float lblY = 0, lblX = 0;
+ if (graphic.Text.linePerpValue != null)
+ {
+ List<float[]> controlPath = gliffyObject.parent.graphic.Line.controlPath;
+
+ if (controlPath != null && controlPath.size() >= 2)
+ {
+ int i1 = 0, i2 = controlPath.size() - 1;
+ boolean noCardinal = false;
+ if ("begin".equals(graphic.Text.cardinalityType))
+ {
+ i2 = 1;
+ }
+ else if ("end".equals(graphic.Text.cardinalityType))
+ {
+ i1 = controlPath.size() - 2;
+ }
+ else
+ {
+ noCardinal = true;
+ }
+
+ if (noCardinal || (controlPath.get(i1)[1] == controlPath.get(i2)[1]))
+ {
+ lblY = graphic.Text.linePerpValue;
+ if (controlPath.get(i1)[0] - controlPath.get(i2)[0] > 0)
+ {
+ lblY = -lblY;
+ }
+ }
+ else
+ {
+ lblX = graphic.Text.linePerpValue;
+ if (controlPath.get(i1)[1] - controlPath.get(i2)[1] < 0)
+ {
+ lblX = -lblX;
+ }
+ }
+ }
+ }
+ mxGeo.setOffset(new mxPoint(lblX, lblY));
cell.setGeometry(mxGeo);
style.append("labelBackgroundColor=" + gliffyDiagram.stage.getBackgroundColor()).append(";");
//should we force horizontal align for text on lines?
+ //Most probably yes, as extracting alignment from html messes with some cases [set halign to null later]
//style.append("align=center;");
+
+ //This is a workaround for edges as its label offset is incorrect when alignment is set. It should be handled in a better way
+ //HTML text-align is not mapped to halign for edges
+ //TODO Enhance edge's label positioning
+ gliffyObject.graphic.getText().setHalign(null);
}
else
{
diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties b/src/main/java/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties
index 0f36f7bc..8bd99af6 100644
--- a/src/main/java/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties
+++ b/src/main/java/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties
@@ -12,7 +12,7 @@ com.gliffy.shape.basic.basic_v1.default.octagon=mxgraph.basic.octagon
com.gliffy.shape.basic.basic_v1.default.right_triangle=mxgraph.basic.orthogonal_triangle
com.gliffy.shape.basic.basic_v1.default.star=mxgraph.basic.star
#TODO fix disappearing control point
-com.gliffy.shape.basic.basic_v1.default.round_rectangle=rect;rounded=1;arcSize=5;
+com.gliffy.shape.basic.basic_v1.default.round_rectangle=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.basic.basic_v1.default.cross=mxgraph.basic.cross2;dx=5
com.gliffy.shape.basic.basic_v1.default.left_arrow=mxgraph.arrows2.arrow;dy=0.6;dx=25;flipH=1;notch=0
com.gliffy.shape.basic.basic_v1.default.right_arrow=mxgraph.arrows2.arrow;dy=0.6;dx=25;notch=0
@@ -103,12 +103,12 @@ com.gliffy.shape.swimlanes.swimlanes_v1.default.horizontal_four_lane_pool=swimla
# UML v2
#
# UML V2 CLASS
-com.gliffy.shape.uml.uml_v2.class.object=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.data_type=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.enumeration=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.interface=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.class2=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.class=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.object=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.data_type=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.enumeration=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.interface=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.class2=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.class=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
com.gliffy.shape.uml.uml_v2.class.package=rect;strokeColor=none;shadow=0;fillColor=none
com.gliffy.shape.uml.uml_v2.class.simple_class=rect
com.gliffy.shape.uml.uml_v2.class.primitive=rect
@@ -152,11 +152,11 @@ com.gliffy.shape.uml.uml_v1.default.self_message=filledEdge;fixDash=1;startArrow
com.gliffy.shape.uml.uml_v1.default.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
com.gliffy.shape.uml.uml_v1.default.use_case=ellipse;perimeter=ellipsePerimeter
# UML v2 SEQUENCE
-com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
-com.gliffy.shape.uml.uml_v2.sequence.interaction_use=stencil(rVNbDsIgEDwN/wjxAMbHPWi7taQIDWCtt5dmsVI0aqw/hBkmwyy7EL51jeiAMNoQviOMrSgNa8CXDAvXQemR7IWVolCAJ85b08JFVj56SN2AlX485XtCN4RvC1G2R2vOuiLsMLG1sRDZO9WJ0SWCk+nHaAPaxiDXFD28lNSJli8Qr9hbdZaDrd+qF4jz0KUyDlIi7GfPVUulsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40tVDjJcOszVnXqVDyqJEqQXuwSPcJf5JVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=stencil(rVPREoIgEPwa3gmmD2jM/gP1TEYCB0nt78M5MtSmmuyFYZedZY87CE/aSjRAGK0IPxLGdpT61eN+gUXbQO6Q7ISVIlOAJ62zpoZeFi54SF2BlW485SmhB8KTTOT12ZqrLgg7TWxpLAT2QTVidAngYrox2oC2IcgtRk8vJXWk5RvEO/ZWvcjB9m/VG8TL0LkyLcSE38+eq5RKYTNi1Z9edBqEn9QP/F3la/XH2td1OxgcTieamsbhJcOszYuuU6HkWSOVg3Zgke4i/iKLIgz/LNCLcfYsfjCe3gE=);xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=stencil(rVNbDoMgEDwN/xTSAzStvQeFVYkUDFJtb1/NokX7jOkPYYbJMLsshO+bUtRAGC0JPxDGNpT2a4+7BRZNDTIg2QqvxckAnjTBuwo6rUL00LYEr8NwyjNCd4TvT0JWhXcXqwg7TmzuPER2pGoxuERwdu0Q7Yq2McgtRQ8vo22i5dv14g37qGZzdYTv1HS9eBlaGtdASvT7WbtybQw+Rqr6U0enQVilHvFvlT+rv9b+XHeAa8DpRFPjXI23jBlfPjsVRhcWKQk2gEe6TfizVipO/yzRi3nuWfxhPLsD);xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=stencil(rVNbDsIgEDwN/wjxAMbHPWi7WlKEBrCtt5dmsVI0aqw/hBkmwyy7EL51tWiBMFoTviOMrSgNa8B9hoVrofRIdsJKUSjAE+etaaCXlY8eUtdgpR9P+Z7QDeHbQpTNyZqLrgg7TOzRWIjsnWrF6BLB2XRjtAFtY5Brih5eSupEyxeIV+ytOsvB1m/VC8R56FIZBykR9rPnOkqlsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40FcrjJcOszVnXqVDypJEqQXuwSHcJf5ZVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=26
+com.gliffy.shape.uml.uml_v2.sequence.interaction_use=stencil(rVNbDsIgEDwN/wjxAMbHPWi7taQIDWCtt5dmsVI0aqw/hBkmwyy7EL51jeiAMNoQviOMrSgNa8CXDAvXQemR7IWVolCAJ85b08JFVj56SN2AlX485XtCN4RvC1G2R2vOuiLsMLG1sRDZO9WJ0SWCk+nHaAPaxiDXFD28lNSJli8Qr9hbdZaDrd+qF4jz0KUyDlIi7GfPVUulsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40tVDjJcOszVnXqVDyqJEqQXuwSPcJf5JVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10
+com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=stencil(rVPREoIgEPwa3gmmD2jM/gP1TEYCB0nt78M5MtSmmuyFYZedZY87CE/aSjRAGK0IPxLGdpT61eN+gUXbQO6Q7ISVIlOAJ62zpoZeFi54SF2BlW485SmhB8KTTOT12ZqrLgg7TWxpLAT2QTVidAngYrox2oC2IcgtRk8vJXWk5RvEO/ZWvcjB9m/VG8TL0LkyLcSE38+eq5RKYTNi1Z9edBqEn9QP/F3la/XH2td1OxgcTieamsbhJcOszYuuU6HkWSOVg3Zgke4i/iKLIgz/LNCLcfYsfjCe3gE=);xSize=90;align=left;spacingLeft=10
+com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=stencil(rVNbDoMgEDwN/xTSAzStvQeFVYkUDFJtb1/NokX7jOkPYYbJMLsshO+bUtRAGC0JPxDGNpT2a4+7BRZNDTIg2QqvxckAnjTBuwo6rUL00LYEr8NwyjNCd4TvT0JWhXcXqwg7TmzuPER2pGoxuERwdu0Q7Yq2McgtRQ8vo22i5dv14g37qGZzdYTv1HS9eBlaGtdASvT7WbtybQw+Rqr6U0enQVilHvFvlT+rv9b+XHeAa8DpRFPjXI23jBlfPjsVRhcWKQk2gEe6TfizVipO/yzRi3nuWfxhPLsD);xSize=90;align=left;spacingLeft=10
+com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=stencil(rVNbDsIgEDwN/wjxAMbHPWi7WlKEBrCtt5dmsVI0aqw/hBkmwyy7EL51tWiBMFoTviOMrSgNa8B9hoVrofRIdsJKUSjAE+etaaCXlY8eUtdgpR9P+Z7QDeHbQpTNyZqLrgg7TOzRWIjsnWrF6BLB2XRjtAFtY5Brih5eSupEyxeIV+ytOsvB1m/VC8R56FIZBykR9rPnOkqlsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40FcrjJcOszVnXqVDypJEqQXuwSHcJf5ZVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10
com.gliffy.shape.basic.basic_v1.default.line=edgeStyle=none;endArrow=none
#composite
com.gliffy.shape.uml.uml_v2.sequence.entity_lifeline=rect;fillColor=none;strokeColor=none
@@ -175,14 +175,14 @@ com.gliffy.shape.uml.uml_v2.sequence.return_message=endArrow=none;startSize=12;s
com.gliffy.shape.uml.uml_v2.sequence.self_message=curved=1
com.gliffy.shape.uml.uml_v2.sequence.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=top
com.gliffy.shape.uml.uml_v2.sequence.concurrent=stencil(nZFNDsIgEIVPwx6ZjS4NtveYtkRIKxDAVm8vP5qA3RgTNrw330zmDQHuJVpBGEVvxRgIXAhjKzqFwxJlFh0fnJnFpqYgi620FE6F5EJH6JkAH3Ccr87c9fSW6Ck94BYTVUlZvZk1zXyUfrTMeda/fg8tSlfQgbbYv9zxR66lPl36r3WjUm0c083ZNXW5aJdXVsstoHsB);dashed=1
-com.gliffy.shape.uml.uml_v2.sequence.continuation=rect;rounded=1
+com.gliffy.shape.uml.uml_v2.sequence.continuation=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.uml.uml_v2.sequence.gate=rect
com.gliffy.shape.uml.uml_v2.sequence.constraint=edgeStyle=none;endArrow=none;dashed=1
com.gliffy.shape.uml.uml_v2.sequence.note=note;size=10
com.gliffy.shape.uml.uml_v2.sequence.anchor_line=edgeStyle=none;endArrow=none;dashed=1
# UML v2 ACTIVITY
-com.gliffy.shape.uml.uml_v2.activity.activity=rect;rounded=1
-com.gliffy.shape.uml.uml_v2.activity.action=rect;rounded=1
+com.gliffy.shape.uml.uml_v2.activity.activity=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.uml.uml_v2.activity.action=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.uml.uml_v2.activity.accept_event_action=mxgraph.arrows2.arrow;dy=0;dx=0;notch=15
com.gliffy.shape.uml.uml_v2.activity.accept_time_event_action=mxgraph.flowchart.collate
com.gliffy.shape.uml.uml_v2.activity.send_signal_action=mxgraph.arrows2.arrow;dy=0;dx=15;notch=0
@@ -196,19 +196,19 @@ com.gliffy.shape.uml.uml_v2.activity.jump_node=ellipse;perimeter=ellipsePerimete
com.gliffy.shape.uml.uml_v2.activity.control_flow=edgeStyle=none;endArrow=open;endSize=12
com.gliffy.shape.uml.uml_v2.activity.object_flow=edgeStyle=none;endArrow=open;dashed=1;endSize=12
#com.gliffy.shape.uml.uml_v2.activity.exception_flow=
-com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
+com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=32
com.gliffy.shape.uml.uml_v2.activity.object_node=rect
-com.gliffy.shape.uml.uml_v2.activity.structured_node=rect;rounded=1;dashed=1
-com.gliffy.shape.uml.uml_v2.activity.region=rect;rounded=1;dashed=1
+com.gliffy.shape.uml.uml_v2.activity.structured_node=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.uml.uml_v2.activity.region=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.uml.uml_v2.activity.note=note;size=10
com.gliffy.shape.uml.uml_v2.activity.anchor_line=edgeStyle=none;endArrow=none;dashed=1
# UML v2 STATE MACHINE
-com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
-com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=rect;rounded=1;startSize=30;arcSize=10
-com.gliffy.shape.uml.uml_v2.state_machine.composite_state=rect;rounded=1;startSize=30;arcSize=10
-com.gliffy.shape.uml.uml_v2.state_machine.state=rect;rounded=1
+com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=32
+com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=rect;rounded=1;startSize=30;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.uml.uml_v2.state_machine.composite_state=rect;rounded=1;startSize=30;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.uml.uml_v2.state_machine.state=rect;rounded=1;arcSize=15;absoluteArcSize=1
# temporary
-com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=ext;symbol0=ellipse;symbol0Width=10;symbol0Height=10;symbol0Align=right;symbol0VerticalAlign=bottom;symbol0Spacing=5;symbol0VSpacing=5;symbol1=ellipse;symbol1Width=10;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=bottom;symbol1Spacing=25;symbol1VSpacing=5;symbol2=line;symbol2Width=10;symbol2Height=10;symbol2Align=right;symbol2VerticalAlign=bottom;symbol2Spacing=15;symbol2VSpacing=5;rounded=1;arcSize=10
+com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=ext;symbol0=ellipse;symbol0Width=10;symbol0Height=10;symbol0Align=right;symbol0VerticalAlign=bottom;symbol0Spacing=5;symbol0VSpacing=5;symbol1=ellipse;symbol1Width=10;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=bottom;symbol1Spacing=25;symbol1VSpacing=5;symbol2=line;symbol2Width=10;symbol2Height=10;symbol2Align=right;symbol2VerticalAlign=bottom;symbol2Spacing=15;symbol2VSpacing=5;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.uml.uml_v2.state_machine.final_state=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;perimeter=ellipsePerimeter;outline=end;symbol=terminate
com.gliffy.shape.uml.uml_v2.state_machine.initial_state=ellipse;perimeter=ellipsePerimeter
com.gliffy.shape.uml.uml_v2.state_machine.entry_point=ellipse;perimeter=ellipsePerimeter
@@ -230,14 +230,14 @@ com.gliffy.shape.uml.uml_v2.deployment.device_node=cube;size=10;direction=south
com.gliffy.shape.uml.uml_v2.deployment.execution_environment_node=cube;size=10;direction=south
com.gliffy.shape.uml.uml_v2.deployment.artifact=note;size=10
com.gliffy.shape.uml.uml_v2.deployment.component1=component;align=left;spacingLeft=36
-com.gliffy.shape.uml.uml_v2.deployment.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill
+com.gliffy.shape.uml.uml_v2.deployment.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4
com.gliffy.shape.uml.uml_v2.deployment.interface=ellipse;perimeter=ellipsePerimeter
com.gliffy.shape.uml.uml_v2.deployment.simple_interface=stencil(bVHRDsIgDPwaHpewERN9NFP/o5s4yHCQgm7+vWydBqYJL3dXer2WidorcJJVHLyTbWDixKrqCaihMZGuouID2l6O+hoUyXpQEnWYVXFm/MhE3UDbd2gfw3Wl+GF+onYw/0qohb3b5+w5Ub8dJ6MXwZITvny7A7ZRxk85VeMrg/97rWgqYNK+QBsgaDtkmgHsZBEtipuBLpP8KKVL6DKbK0kZySRoXOqysjSCNEY7n4Qut6EJjgT3K1Q5TDvetDFbHxppmefnIgtL1xbnNw==)
com.gliffy.shape.uml.uml_v2.deployment.required_interface=stencil(bZDNDoMgEISfhiMJQnrosbH2PValSrRCFurP25cfbSRtwmW+GXZhiChtD0YSzsAa2Tgi7oTzGVBBPXrMvWMd6kEuqnV9stXUS1QuuKIi7EZEWUMzdKjfU7sjdg1HlAbCrROK9KXnsHNN8y4sLdqSLFjSj+90wMbbeMRTGrdM/p+1q5XCqixF7cApPWXeCNhJ6lfQ5whdZtlFSnPCRfau4zOenH7pG419ZbkY+uko0tS/qD4=)
com.gliffy.shape.uml.uml_v2.deployment.port=rect;verticalLabelPosition=bottom;verticalAlign=top
com.gliffy.shape.uml.uml_v2.deployment.instance=rect
-com.gliffy.shape.uml.uml_v2.deployment.instance_specification=ext;symbol0=note;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill;align=center;verticalAlign=bottom;size=5
-com.gliffy.shape.uml.uml_v2.deployment.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.deployment.instance_specification=ext;symbol0=note;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;align=center;verticalAlign=bottom;size=5
+com.gliffy.shape.uml.uml_v2.deployment.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10
com.gliffy.shape.uml.uml_v2.deployment.association=edgeStyle=orthogonalEdgeStyle
com.gliffy.shape.uml.uml_v2.deployment.dependency=edgeStyle=orthogonalEdgeStyle;dashed=1
com.gliffy.shape.uml.uml_v2.deployment.generalization=edgeStyle=orthogonalEdgeStyle
@@ -245,14 +245,14 @@ com.gliffy.shape.uml.uml_v2.deployment.aggregation=edgeStyle=orthogonalEdgeStyle
com.gliffy.shape.uml.uml_v2.deployment.composition=edgeStyle=orthogonalEdgeStyle
com.gliffy.shape.uml.uml_v2.deployment.note=note;size=10
com.gliffy.shape.uml.uml_v2.deployment.anchor_line=edgeStyle=none;dashed=1
-com.gliffy.shape.uml.uml_v2.class.class=verticalAlign=top;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.class=verticalAlign=top;fontSize=12;fontFamily=Helvetica
com.gliffy.shape.uml.uml_v2.deployment.package=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left
# UML v2 COMPONENT
com.gliffy.shape.uml.uml_v2.component.component1=component;align=left;spacingLeft=36
-com.gliffy.shape.uml.uml_v2.component.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill
+com.gliffy.shape.uml.uml_v2.component.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4
com.gliffy.shape.uml.uml_v2.component.interface=ellipse;perimeter=ellipsePerimeter
-#com.gliffy.shape.uml.uml_v2.component.simple_interface=
-#com.gliffy.shape.uml.uml_v2.component.required_interface=
+com.gliffy.shape.uml.uml_v2.component.simple_interface=stencil(bVHRDsIgDPwaHpewERN9NFP/o5s4yHCQgm7+vWydBqYJL3dXer2WidorcJJVHLyTbWDixKrqCaihMZGuouID2l6O+hoUyXpQEnWYVXFm/MhE3UDbd2gfw3Wl+GF+onYw/0qohb3b5+w5Ub8dJ6MXwZITvny7A7ZRxk85VeMrg/97rWgqYNK+QBsgaDtkmgHsZBEtipuBLpP8KKVL6DKbK0kZySRoXOqysjSCNEY7n4Qut6EJjgT3K1Q5TDvetDFbHxppmefnIgtL1xbnNw==)
+com.gliffy.shape.uml.uml_v2.component.required_interface=stencil(bZDNDoMgEISfhiMJQnrosbH2PValSrRCFurP25cfbSRtwmW+GXZhiChtD0YSzsAa2Tgi7oTzGVBBPXrMvWMd6kEuqnV9stXUS1QuuKIi7EZEWUMzdKjfU7sjdg1HlAbCrROK9KXnsHNN8y4sLdqSLFjSj+90wMbbeMRTGrdM/p+1q5XCqixF7cApPWXeCNhJ6lfQ5whdZtlFSnPCRfau4zOenH7pG419ZbkY+uko0tS/qD4=)
com.gliffy.shape.uml.uml_v2.component.port=rect
com.gliffy.shape.uml.uml_v2.component.artifact=note;size=10
com.gliffy.shape.uml.uml_v2.component.generalization=edgeStyle=orthogonalEdgeStyle
@@ -269,7 +269,7 @@ com.gliffy.shape.uml.uml_v2.use_case.use_case=ellipse;perimeter=ellipsePerimeter
com.gliffy.shape.uml.uml_v2.use_case.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
com.gliffy.shape.uml.uml_v2.use_case.association=edgeStyle=none
com.gliffy.shape.uml.uml_v2.use_case.system=rect
-com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
+com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=26
com.gliffy.shape.uml.uml_v2.use_case.include=edgeStyle=none;dashed=1
com.gliffy.shape.uml.uml_v2.use_case.extend=edgeStyle=none;dashed=1
com.gliffy.shape.uml.uml_v2.use_case.dependency=edgeStyle=none;dashed=1
@@ -332,22 +332,22 @@ com.gliffy.shape.bpmn.bpmn_v1.activities.multiple_instances=mxgraph.ios7.icons.p
com.gliffy.shape.bpmn.bpmn_v1.activities.compensation=mxgraph.bpmn.compensation;html=1;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
com.gliffy.shape.bpmn.bpmn_v1.activities.ad_hoc=mxgraph.bpmn.ad_hoc;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
com.gliffy.shape.bpmn.bpmn_v1.activities.looping=mxgraph.bpmn.loop;verticalLabelPosition=bottom;verticalAlign=top;strokeWidth=5
-com.gliffy.shape.bpmn.bpmn_v1.activities.process=ext;rounded=1
-com.gliffy.shape.bpmn.bpmn_v1.activities.transaction=ext;rounded=1;double=1
-com.gliffy.shape.bpmn.bpmn_v1.activities.expanded_sub_process=ext;rounded=1
-com.gliffy.shape.bpmn.bpmn_v1.activities.collapsed_sub_process=ext;rounded=1;symbol0=plus;symbol0Width=14;symbol0Height=14;symbol0Align=center;symbol0VerticalAlign=bottom
-com.gliffy.shape.bpmn.bpmn_v1.activities.task=ext;rounded=1
+com.gliffy.shape.bpmn.bpmn_v1.activities.process=ext;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.bpmn.bpmn_v1.activities.transaction=ext;rounded=1;double=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.bpmn.bpmn_v1.activities.expanded_sub_process=ext;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.bpmn.bpmn_v1.activities.collapsed_sub_process=ext;rounded=1;symbol0=plus;symbol0Width=14;symbol0Height=14;symbol0Align=center;symbol0VerticalAlign=bottom;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.bpmn.bpmn_v1.activities.task=ext;rounded=1;arcSize=15;absoluteArcSize=1
# BPMN v1 DATA ARTIFACTS
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.annotation=mxgraph.flowchart.annotation_1;strokeWidth=2;html=1
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.data_object=note;size=25
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.group=rect;dashed=1;fillColor=none;dashPattern=8 3 2 3;fixDash=1
# BPMN v1 GATEWAYS
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway=rhombus;perimeter=rhombusPerimeter
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_data=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=exclusiveGw
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_and=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=parallelGw
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_event=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=throwing;symbol=multiple
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_complex=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=complexGw
-com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_or=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=end;symbol=general
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway=rhombus;perimeter=rhombusPerimeter;strokeWidth=1
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_data=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=exclusiveGw;strokeWidth=1
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_and=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=parallelGw;strokeWidth=1
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_event=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=throwing;symbol=multiple;strokeWidth=1
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_complex=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=complexGw;strokeWidth=1
+com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_or=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=end;symbol=general;strokeWidth=1
# BPMN v1 CONNECTORS
com.gliffy.shape.bpmn.bpmn_v1.connectors.normal_sequence_flow=edgeStyle=orthogonalEdgeStyle;dashed=1
com.gliffy.shape.bpmn.bpmn_v1.connectors.message_flow=edgeStyle=orthogonalEdgeStyle
@@ -362,33 +362,31 @@ com.gliffy.shape.bpmn.bpmn_v1.connectors.association_with_arrow=edgeStyle=orthog
# iOS7 CONTAINERS
com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=rect;strokeColor=none
#composite
-#com.gliffy.shape.iphone.iphone_ios7.containers_content.table=
+com.gliffy.shape.iphone.iphone_ios7.containers_content.table=rect
com.gliffy.shape.iphone.iphone_ios7.containers_content.blank_screen=mxgraph.ios.iBgFlat;strokeColor=#18211b;fillColor=#dddddd
com.gliffy.shape.iphone.iphone_ios7.containers_content.iphone5=mxgraph.ios.iPhone;bgStyle=bgWhite;fillColor=#aaaaaa
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_grey=mxgraph.ios7ui.callout
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_green=mxgraph.ios7ui.callout;flipH=1
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_blue=mxgraph.ios7ui.callout;flipH=1
com.gliffy.shape.iphone.iphone_ios7.containers_content.page_indicator=mxgraph.ios.iPageControl
-#composite
com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_black=mxgraph.ios7ui.appBar;fillColor=#000000;strokeColor=#FFFFFF
-#composite
-com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_white=mxgraph.ios7ui.appBar;;fillColor=none;strokeColor=#000000
+com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_white=mxgraph.ios7ui.appBar;fillColor=none;strokeColor=#000000
# iOS7 FORMS CONTROLS
#composite
-#com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack=
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack=rect;rounded=1;arcSize=15;absoluteArcSize=1
#composite
-#com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert=
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert=rect;rounded=1;arcSize=15;absoluteArcSize=1
#composite
-#com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options=
-com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_blue=rect;rounded=1
-com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_green=rect;rounded=1
-com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_red=rect;rounded=1
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_blue=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_green=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_red=rect;rounded=1;arcSize=15;absoluteArcSize=1
#com.gliffy.shape.iphone.iphone_ios7.forms_controls.date_picker=
-com.gliffy.shape.iphone.iphone_ios7.forms_controls.input=rect;rounded=1
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.input=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.iphone.iphone_ios7.forms_controls.keyboard_landscape=mxgraph.ios7.misc.keyboard_(letters)
com.gliffy.shape.iphone.iphone_ios7.forms_controls.keyboard_portrait=mxgraph.ios7.misc.keyboard_(letters)
com.gliffy.shape.iphone.iphone_ios7.forms_controls.progress_bar=mxgraph.ios7ui.downloadBar;barPos=50;fillColor=#aaaaaa;strokeColor=#0080f0
-com.gliffy.shape.iphone.iphone_ios7.forms_controls.search=mxgraph.ios7ui.searchBox
+com.gliffy.shape.iphone.iphone_ios7.forms_controls.search=rect;
com.gliffy.shape.iphone.iphone_ios7.forms_controls.slider=mxgraph.ios7ui.slider;barPos=35;strokeColor=#0080f0;fillColor=#ffffff;strokeColor2=#a0a0a0
com.gliffy.shape.iphone.iphone_ios7.forms_controls.switch_off=mxgraph.ios7ui.onOffButton;buttonState=off;strokeColor2=#aaaaaa;fillColor2=#ffffff
com.gliffy.shape.iphone.iphone_ios7.forms_controls.switch_on=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor=#38D145;fillColor=#38D145
@@ -450,53 +448,49 @@ com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_orange_dot=ellipse;perimet
com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_refresh=mxgraph.ios7.icons.reload;strokeColor=#929292;fillColor=#929292
com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_remove=mxgraph.ios7.misc.delete;fillColor=#ff0000;strokeColor=#ffffff
# iOS7 NAVIGATION
-com.gliffy.shape.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left
+com.gliffy.shape.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left;strokeColor=#157EFA;strokeWidth=3
#composite
-#com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu=
+com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu=rect
#composite
-#com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs=
+com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs=rect;rounded=1;arcSize=15;absoluteArcSize=1
#composite
-#com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=
+com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=partialRectangle;top=0;right=0;left=0
#composite
-#com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar=
+com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar=partialRectangle;bottom=0;right=0;left=0
#
# ANDROID v1
#
# ANDROID v1 GENERAL
-com.gliffy.shape.android.android_v1.general.tooltip=rect;rounded=1
+com.gliffy.shape.android.android_v1.general.tooltip=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.android.android_v1.general.subheader=rect
-#composite
com.gliffy.shape.android.android_v1.general.statusbar=mxgraph.android.statusBar;strokeColor=#ffffff
com.gliffy.shape.android.android_v1.general.slider=mxgraph.android.progress_scrubber_focused
com.gliffy.shape.android.android_v1.general.keyboard_portrait=mxgraph.android.keyboard
com.gliffy.shape.android.android_v1.general.keyboard_landscape=mxgraph.android.keyboard
com.gliffy.shape.android.android_v1.general.bottom_bar=rect
-#composite
-#com.gliffy.shape.android.android_v1.general.app_bar=
-com.gliffy.shape.android.android_v1.general.actionbar=rect
+com.gliffy.shape.android.android_v1.general.app_bar=rect
+com.gliffy.shape.android.android_v1.general.actionbar=partialRectangle;top=0;right=0;left=0;strokeWidth=3
com.gliffy.shape.android.android_v1.general.phone=mxgraph.android.phone2
#composite
-#com.gliffy.shape.android.android_v1.general.dialog=
+com.gliffy.shape.android.android_v1.general.dialog=rect;rounded=1;arcSize=5;absoluteArcSize=1
#composite
-#com.gliffy.shape.android.android_v1.general.list_1line=
+com.gliffy.shape.android.android_v1.general.list_1line=rect;strokeColor=none
#composite
-#com.gliffy.shape.android.android_v1.general.list_2lines=
+com.gliffy.shape.android.android_v1.general.list_2lines=rect;strokeColor=none
#composite
-#com.gliffy.shape.android.android_v1.general.tabs01=
+com.gliffy.shape.android.android_v1.general.tabs01=rect;strokeColor=none
#composite
-#com.gliffy.shape.android.android_v1.general.tabs02=
+com.gliffy.shape.android.android_v1.general.tabs02=partialRectangle;top=0;right=0;left=0
# ANDROID v1 FORMS
-#composite
#com.gliffy.shape.android.android_v1.forms.timepicker=
com.gliffy.shape.android.android_v1.forms.switch_on=mxgraph.android.switch_on
com.gliffy.shape.android.android_v1.forms.switch_off=mxgraph.android.switch_off
com.gliffy.shape.android.android_v1.forms.radio_button=ellipse;perimeter=ellipsePerimeter
com.gliffy.shape.android.android_v1.forms.input_field=mxgraph.android.textfield
-#composite
#com.gliffy.shape.android.android_v1.forms.datepicker=
com.gliffy.shape.android.android_v1.forms.checkbox=mxgraph.android.checkbox
com.gliffy.shape.android.android_v1.forms.button_floating_action=mxgraph.ios7.icons.add;strokecolor=#929292;fillColor=#ffffff
-com.gliffy.shape.android.android_v1.forms.button=rect;rounded=1;strokeColor=none
+com.gliffy.shape.android.android_v1.forms.button=rect;rounded=1;strokeColor=none;arcSize=15;absoluteArcSize=1
# ANDROID v1 ICONS
com.gliffy.shape.android.android_v1.icons.attachment=mxgraph.office.concepts.attachment;direction=north
com.gliffy.shape.android.android_v1.icons.avatar=mxgraph.android.contact_badge_normal
@@ -587,7 +581,7 @@ com.gliffy.shape.android.android_v1.icons_av.shuffle=mxgraph.ios7.icons.shuffle
#ANDROID SYSTEM ICONS
com.gliffy.shape.android.android_v1.icons_system.back=mxgraph.ios7.icons.play;flipH=1
com.gliffy.shape.android.android_v1.icons_system.home=ellipse;perimeter=ellipsePerimeter
-com.gliffy.shape.android.android_v1.icons_system.recent_apps=rect;rounded=1
+com.gliffy.shape.android.android_v1.icons_system.recent_apps=rect;rounded=1;arcSize=15;absoluteArcSize=1
#com.gliffy.shape.android.android_v1.icons_system.back_v1=
com.gliffy.shape.android.android_v1.icons_system.down_v1=mxgraph.ios7.misc.down
#com.gliffy.shape.android.android_v1.icons_system.home_v1=
@@ -705,9 +699,9 @@ com.gliffy.shape.aws.aws_v1.sdks.python=mxgraph.aws3.android;fillColor=#FFD44F
com.gliffy.shape.aws.aws_v1.sdks.ruby=mxgraph.aws3.android;fillColor=#AE1F23
com.gliffy.shape.aws.aws_v1.sdks.tools_for_windows_power_shell=mxgraph.aws3.toolkit_for_windows_powershell;fillColor=#737373
# AWS STORAGE AND CONTENT DELIVERY
-com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front=mxgraph.aws3.cloudfront;fillColor=#F58536
+com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front=mxgraph.aws3.cloudfront;fillColor=#E05243
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_download_distribution=mxgraph.aws3.download_distribution;fillColor=#F58536
-com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_edge_location=mxgraph.aws3.edge_location;fillColor=#F58536
+com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_edge_location=mxgraph.aws3.edge_location;fillColor=#E05243
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_streaming_distribution=mxgraph.aws3.streaming_distribution;fillColor=#F58536
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_ebs=mxgraph.aws3.volume;fillColor=#E05243
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_ebs_snapshot=mxgraph.aws3.snapshot;fillColor=#E05243
@@ -1045,6 +1039,7 @@ com.gliffy.shape.network.network_v4.home.subwoofer=mxgraph.cisco.computers_and_p
com.gliffy.shape.network.network_v4.home.tablet=mxgraph.android.tab2
com.gliffy.shape.network.network_v4.home.wireless_modem=mxgraph.networks.wireless_hub;strokeColor=#ffffff
com.gliffy.shape.network.network_v3.home.firewall=image;image=img/lib/clip_art/networking/Firewall-page1_128x128.png
+#this has fixed fill color, gradient color, and stroke width. Fill color is mapped to stroke color!
com.gliffy.shape.network.network_v3.home.cloud=cloud;strokeColor=#ffffff
com.gliffy.shape.network.network_v3.home.comm_link=mxgraph.networks.comm_link;strokeColor=#ffffff
com.gliffy.shape.network.network_v3.home.server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
@@ -1127,7 +1122,7 @@ com.gliffy.shape.network.network_v3.business.user=image;image=img/lib/clip_art/p
com.gliffy.shape.network.network_v3.business.user_female=image;image=img/lib/clip_art/people/Worker_Woman_128x128.png
com.gliffy.shape.network.network_v3.business.user_male=image;image=img/lib/clip_art/people/Tech_Man_128x128.png
#composite
-#com.gliffy.shape.network.network_v3.business.user_group=
+com.gliffy.shape.network.network_v3.business.user_group=rect
com.gliffy.shape.network.network_v3.business.server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
com.gliffy.shape.network.network_v3.business.database_server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
com.gliffy.shape.network.network_v3.business.mail_server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
@@ -1148,7 +1143,8 @@ com.gliffy.shape.network.network_v3.business.multi_u_server=image;image=img/lib/
com.gliffy.shape.network.network_v3.business.rack=image;image=img/lib/clip_art/computers/Server_Rack_Empty_128x128.png
#com.gliffy.shape.network.network_v3.business.telephone=
#com.gliffy.shape.network.network_v3.business.flash_drive=
-#com.gliffy.shape.network.network_v3.business.tape_backup=
+#It needs a new modern icon to match the remaining icons
+com.gliffy.shape.network.network_v3.business.tape_backup=mxgraph.networks.tape_storage;strokeColor=#ffffff
#com.gliffy.shape.network.network_v3.business.video_projector=
#com.gliffy.shape.network.network_v3.business.video_screen=
#com.gliffy.shape.network.network_v3.business.satellite=
@@ -1162,7 +1158,8 @@ com.gliffy.shape.network.network_v3.rack.power_strip_1u=mxgraph.rack.dell.power_
com.gliffy.shape.network.network_v3.rack.spacer_1u=mxgraph.rackGeneral.plate;fillColor=#e8e8e8;strokeColor=#666666
com.gliffy.shape.network.network_v3.rack.tray_1u=mxgraph.rackGeneral.plate;fillColor=#e8e8e8;strokeColor=#666666
com.gliffy.shape.network.network_v3.rack.hub_switch_2u=mxgraph.rack.general.cat5e_enhanced_patch_panel_48_ports;strokeColor=#666666
-#com.gliffy.shape.network.network_v3.rack.lcd_7u=
+#TODO needs a better icon
+com.gliffy.shape.network.network_v3.rack.lcd_7u=mxgraph.office.devices.lcd_monitor
com.gliffy.shape.network.network_v3.rack.rack=mxgraph.rackGeneral.container;container=1;collapsible=0;childLayout=rack;marginLeft=9;marginRight=9;marginTop=21;marginBottom=22;textColor=#666666;numDisp=off;strokeColor=#666666
# NETWORK v4 RACK
com.gliffy.shape.network.network_v4.rack.rack_server=mxgraph.rack.cisco.cisco_ucs_c22_m3_server
@@ -1269,30 +1266,25 @@ com.gliffy.shape.ui.ui_v3.containers_content.note=rect;fillColor=#fff0ab;strokeC
# UI v3 NAVIGATION
com.gliffy.shape.ui.ui_v3.navigation.btn_circle_previous=mxgraph.ios.iArrowIcon;fillColor2=#FFFFFF
com.gliffy.shape.ui.ui_v3.navigation.btn_circle_next=mxgraph.ios.iArrowIcon;fillColor2=#FFFFFF;flipH=1
-#composite
#com.gliffy.shape.ui.ui_v3.navigation.btn_rect_previous=
-#composite
#com.gliffy.shape.ui.ui_v3.navigation.btn_rect_next=
-#composite
#com.gliffy.shape.ui.ui_v3.navigation.pagination=
com.gliffy.shape.ui.ui_v3.navigation.slide_indicator=mxgraph.mockup.navigation.pageControl;fillColor=#999999;strokeColor=#cccccc
#composite
-#com.gliffy.shape.ui.ui_v3.navigation.navbar=
+com.gliffy.shape.ui.ui_v3.navigation.navbar=rect
#composite
-#com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical=
+com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical=rect
# UI v3 FORMS CONTROLS
com.gliffy.shape.ui.ui_v3.forms_controls.input_field=rect
com.gliffy.shape.ui.ui_v3.forms_controls.text_area=rect
com.gliffy.shape.ui.ui_v3.forms_controls.input_search=mxgraph.mockup.forms.searchBox;mainText=
com.gliffy.shape.ui.ui_v3.forms_controls.combo_box=mxgraph.mockup.forms.comboBox;fillColor=#cccccc;fillColor2=#cccccc;mainText=
-#composite
#com.gliffy.shape.ui.ui_v3.forms_controls.calendar=
#composite
-#com.gliffy.shape.ui.ui_v3.forms_controls.dropdown=
+com.gliffy.shape.ui.ui_v3.forms_controls.dropdown=rect
com.gliffy.shape.ui.ui_v3.forms_controls.checkbox=mxgraph.mockup.forms.checkbox;rSize=0
com.gliffy.shape.ui.ui_v3.forms_controls.radio_btn=ellipse;perimeter=ellipsePerimeter
com.gliffy.shape.ui.ui_v3.forms_controls.selector=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#999999;mainText=
-#composite
#com.gliffy.shape.ui.ui_v3.forms_controls.date=
com.gliffy.shape.ui.ui_v3.forms_controls.color_picker=mxgraph.mockup.forms.colorPicker;chosenColor=#aaddff
com.gliffy.shape.ui.ui_v3.forms_controls.button=rect
@@ -1332,7 +1324,7 @@ com.gliffy.shape.ui.ui_v2.forms_components.scrollbar_horizontal=mxgraph.mockup.n
com.gliffy.shape.ui.ui_v2.forms_components.text_area=rect
com.gliffy.shape.ui.ui_v2.forms_components.slider_vertical=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=50;handleStyle=circle;fillColor2=#ddeeff;direction=south
com.gliffy.shape.ui.ui_v2.forms_components.slider_horizontal=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=50;handleStyle=circle;fillColor2=#ddeeff
-com.gliffy.shape.ui.ui_v2.forms_components.button=rect;rounded=1
+com.gliffy.shape.ui.ui_v2.forms_components.button=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.shape.ui.ui_v2.forms_components.radio_button=
com.gliffy.shape.ui.ui_v2.forms_components.checkbox=mxgraph.mockup.forms.checkbox;rSize=0
com.gliffy.shape.ui.ui_v2.forms_components.combobox=mxgraph.mockup.forms.comboBox;fillColor=#ddeeff;fillColor2=#aaddff;mainText=
@@ -1410,110 +1402,101 @@ com.gliffy.shape.venn.outline.default.FFFF00=ellipse;perimeter=ellipsePerimeter;
# FLOORPLAN v2
#
# FLOORPLAN v2 STRUCTURE
-com.gliffy.shape.floorplan.floorplan_v2.structure.door1=mxgraph.floorplan.doorLeft;direction=north;flipV=1
-com.gliffy.shape.floorplan.floorplan_v2.structure.door2=mxgraph.floorplan.doorRight;direction=north;flipH=1
-com.gliffy.shape.floorplan.floorplan_v2.structure.wall_horizontal=mxgraph.floorplan.wall
-com.gliffy.shape.floorplan.floorplan_v2.structure.wall_vertical=mxgraph.floorplan.wall;direction=south
-com.gliffy.shape.floorplan.floorplan_v2.structure.window_single=mxgraph.floorplan.window
-com.gliffy.shape.floorplan.floorplan_v2.structure.dimension=mxgraph.floorplan.dimension
-com.gliffy.shape.floorplan.floorplan_v2.structure.stairs1=mxgraph.floorplan.stairs
-com.gliffy.shape.floorplan.floorplan_v2.structure.stairs2=mxgraph.floorplan.stairsRest
-com.gliffy.shape.floorplan.floorplan_v2.structure.elevator=mxgraph.floorplan.elevator
-com.gliffy.shape.floorplan.floorplan_v2.structure.fireplace=mxgraph.floorplan.fireplace
+com.gliffy.shape.floorplan.floorplan_v2.structure.door1=mxgraph.floorplan.doorLeft;direction=north;flipV=1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.door2=mxgraph.floorplan.doorRight;direction=north;flipH=1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.wall_horizontal=mxgraph.floorplan.wall;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.wall_vertical=mxgraph.floorplan.wall;direction=south;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.window_single=mxgraph.floorplan.window;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.dimension=mxgraph.floorplan.dimension;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.stairs1=mxgraph.floorplan.stairs;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.stairs2=mxgraph.floorplan.stairsRest;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.elevator=mxgraph.floorplan.elevator;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.structure.fireplace=mxgraph.floorplan.fireplace;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.structure.tile_floor=
#com.gliffy.shape.floorplan.floorplan_v2.structure.wood_floor=
#com.gliffy.shape.floorplan.floorplan_v2.structure.light_wood_floor=
# FLOORPLAN v2 BEDROOM
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_double=mxgraph.floorplan.bed_double
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_queen=mxgraph.floorplan.bed_double
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_single=mxgraph.floorplan.bed_single
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.dresser=mxgraph.floorplan.dresser
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.armoire=mxgraph.floorplan.dresser
-com.gliffy.shape.floorplan.floorplan_v2.bedroom.lamp=mxgraph.floorplan.floor_lamp
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_double=mxgraph.floorplan.bed_double;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_queen=mxgraph.floorplan.bed_double;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_single=mxgraph.floorplan.bed_single;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.dresser=mxgraph.floorplan.dresser;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.armoire=mxgraph.floorplan.dresser;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bedroom.lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
# FLOORPLAN v2 LIVING ROOM
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.living_room.coffee_table=mxgraph.floorplan.table
-com.gliffy.shape.floorplan.floorplan_v2.living_room.bookcase=mxgraph.floorplan.bookcase
-com.gliffy.shape.floorplan.floorplan_v2.living_room.floor_lamp=mxgraph.floorplan.floor_lamp
-com.gliffy.shape.floorplan.floorplan_v2.living_room.lamp=mxgraph.floorplan.floor_lamp
-com.gliffy.shape.floorplan.floorplan_v2.living_room.side_table=rect
-com.gliffy.shape.floorplan.floorplan_v2.living_room.couch=mxgraph.floorplan.couch
-com.gliffy.shape.floorplan.floorplan_v2.living_room.plant=mxgraph.floorplan.plant
-com.gliffy.shape.floorplan.floorplan_v2.living_room.flat_tv=mxgraph.floorplan.flat_tv
-com.gliffy.shape.floorplan.floorplan_v2.living_room.tv=mxgraph.floorplan.crt_tv
-com.gliffy.shape.floorplan.floorplan_v2.living_room.loveseat=mxgraph.floorplan.couch
-com.gliffy.shape.floorplan.floorplan_v2.living_room.small_loveseat=mxgraph.floorplan.sofa
+com.gliffy.shape.floorplan.floorplan_v2.living_room.coffee_table=mxgraph.floorplan.table;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.bookcase=mxgraph.floorplan.bookcase;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.floor_lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.side_table=rect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.couch=mxgraph.floorplan.couch;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.plant=mxgraph.floorplan.plant;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.flat_tv=mxgraph.floorplan.flat_tv;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.tv=mxgraph.floorplan.crt_tv;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.loveseat=mxgraph.floorplan.couch;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.small_loveseat=mxgraph.floorplan.sofa;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.living_room.ottoman=
-com.gliffy.shape.floorplan.floorplan_v2.living_room.circular_rug=ellipse
-com.gliffy.shape.floorplan.floorplan_v2.living_room.rectangular_rug=rect
+com.gliffy.shape.floorplan.floorplan_v2.living_room.circular_rug=ellipse;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.living_room.rectangular_rug=rect;strokeWidth=1
# FLOORPLAN v2 DINING ROOM
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_wood=rect
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_glass=rect
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.chair=mxgraph.floorplan.chair
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs=mxgraph.floorplan.table_1
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs_square=mxgraph.floorplan.table_2
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs_wood=mxgraph.floorplan.table_4
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs=mxgraph.floorplan.table_4
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_circular=mxgraph.floorplan.table_3
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_wood=rect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_glass=rect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.chair=mxgraph.floorplan.chair;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs=mxgraph.floorplan.table_1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs_square=mxgraph.floorplan.table_2;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs_wood=mxgraph.floorplan.table_4;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs=mxgraph.floorplan.table_4;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_circular=mxgraph.floorplan.table_3;strokeWidth=1
# FLOORPLAN v2 KITCHEN
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.stool=mxgraph.floorplan.chair;flipV=1
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.range=mxgraph.floorplan.range_2
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.refrigerator=mxgraph.floorplan.refrigerator
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single1=mxgraph.floorplan.sink_1
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single2=mxgraph.floorplan.sink_2
-com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_double_2d=mxgraph.floorplan.sink_double
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.stool=mxgraph.floorplan.chair;flipV=1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.range=mxgraph.floorplan.range_2;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.refrigerator=mxgraph.floorplan.refrigerator;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single1=mxgraph.floorplan.sink_1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single2=mxgraph.floorplan.sink_2;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_double_2d=mxgraph.floorplan.sink_double;strokeWidth=1
# FLOORPLAN v2 BATHROOM
-com.gliffy.shape.floorplan.floorplan_v2.bathroom.bathtub=mxgraph.floorplan.bathtub;flipH=1
-com.gliffy.shape.floorplan.floorplan_v2.bathroom.toilet=mxgraph.floorplan.toilet
-com.gliffy.shape.floorplan.floorplan_v2.bathroom.shower=mxgraph.floorplan.shower
-com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single1=mxgraph.floorplan.sink_1
-com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single2=mxgraph.floorplan.sink_2
+com.gliffy.shape.floorplan.floorplan_v2.bathroom.bathtub=mxgraph.floorplan.bathtub;flipH=1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bathroom.toilet=mxgraph.floorplan.toilet;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bathroom.shower=mxgraph.floorplan.shower;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single1=mxgraph.floorplan.sink_1;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single2=mxgraph.floorplan.sink_2;strokeWidth=1
# FLOORPLAN v2 OFFICE
-com.gliffy.shape.floorplan.floorplan_v2.office.cubicle=mxgraph.floorplan.wallU
-com.gliffy.shape.floorplan.floorplan_v2.office.wall_horizontal=mxgraph.floorplan.wall
-com.gliffy.shape.floorplan.floorplan_v2.office.wall_vertical=mxgraph.floorplan.wall;direction=south
-com.gliffy.shape.floorplan.floorplan_v2.office.office_chair=mxgraph.floorplan.office_chair
-com.gliffy.shape.floorplan.floorplan_v2.office.computer_crt=mxgraph.floorplan.workstation
-com.gliffy.shape.floorplan.floorplan_v2.office.desk_l=mxgraph.floorplan.desk_corner_2
-com.gliffy.shape.floorplan.floorplan_v2.office.desk_office=rect
-com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal=rect
-com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal_l=mxgraph.floorplan.desk_corner_2
-com.gliffy.shape.floorplan.floorplan_v2.office.computer_lcd=mxgraph.floorplan.workstation
-com.gliffy.shape.floorplan.floorplan_v2.office.copier=mxgraph.floorplan.copier
+com.gliffy.shape.floorplan.floorplan_v2.office.cubicle=mxgraph.floorplan.wallU;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.wall_horizontal=mxgraph.floorplan.wall;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.wall_vertical=mxgraph.floorplan.wall;direction=south;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.office_chair=mxgraph.floorplan.office_chair;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.computer_crt=mxgraph.floorplan.workstation;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.desk_l=mxgraph.floorplan.desk_corner_2;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.desk_office=rect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal=rect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal_l=mxgraph.floorplan.desk_corner_2;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.computer_lcd=mxgraph.floorplan.workstation;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.copier=mxgraph.floorplan.copier;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.office.desk_lamp=
-com.gliffy.shape.floorplan.floorplan_v2.office.laptop=mxgraph.floorplan.laptop
+com.gliffy.shape.floorplan.floorplan_v2.office.laptop=mxgraph.floorplan.laptop;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.office.telephone=
-com.gliffy.shape.floorplan.floorplan_v2.office.printer=mxgraph.floorplan.printer
-com.gliffy.shape.floorplan.floorplan_v2.office.scanner=roundrect
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.office.table_3person=mxgraph.floorplan.table_3
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.office.table_6person=mxgraph.floorplan.table_3
-#composite
-com.gliffy.shape.floorplan.floorplan_v2.office.table_10person=mxgraph.floorplan.table_5
-com.gliffy.shape.floorplan.floorplan_v2.office.vending_machine=roundrect
+com.gliffy.shape.floorplan.floorplan_v2.office.printer=mxgraph.floorplan.printer;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.scanner=roundrect;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.table_3person=mxgraph.floorplan.table_3;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.table_6person=mxgraph.floorplan.table_3;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.table_10person=mxgraph.floorplan.table_5;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.vending_machine=roundrect;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.office.video_projector=
#com.gliffy.shape.floorplan.floorplan_v2.office.video_screen=
-com.gliffy.shape.floorplan.floorplan_v2.office.water_cooler=mxgraph.floorplan.water_cooler
-com.gliffy.shape.floorplan.floorplan_v2.office.plant=mxgraph.floorplan.plant
+com.gliffy.shape.floorplan.floorplan_v2.office.water_cooler=mxgraph.floorplan.water_cooler;strokeWidth=1
+com.gliffy.shape.floorplan.floorplan_v2.office.plant=mxgraph.floorplan.plant;strokeWidth=1
# FLOORPLAN v2 MISCELLANEOUS
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.washing_machine=
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.dryer=
-com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.piano=mxgraph.floorplan.piano
+com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.piano=mxgraph.floorplan.piano;strokeWidth=1
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.pool_table=
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.drumset=
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.gas_furnace=
#
# MINDMAP
#
-com.gliffy.shape.mindmap.mindmap_v1.default.main_topic=rect;rounded=1
-com.gliffy.shape.mindmap.mindmap_v1.default.subtopic=rect;rounded=1
-com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1
+com.gliffy.shape.mindmap.mindmap_v1.default.main_topic=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.mindmap.mindmap_v1.default.subtopic=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
#
# Child shape TID
@@ -1530,7 +1513,18 @@ com.gliffy.stencil.boundary_lifeline.uml_v2=umlBoundary
com.gliffy.stencil.object_timeline.uml_v1=line;direction=south;dashed=1
com.gliffy.stencil.control_lifeline.uml_v2=umlControl
com.gliffy.stencil.entity_lifeline.uml_v2=umlEntity
-com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble=rect;rounded=1
+com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble=rect;rounded=1;arcSize=15;absoluteArcSize=1
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble_right=mxgraph.basic.orthogonal_triangle;direction=south
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble_left=mxgraph.basic.orthogonal_triangle;direction=south;flipH=1
com.gliffy.stencil.rectangle.basic_v1=rect
+com.gliffy.stencil.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left;strokeWidth=3;strokeColor=#157EFA
+com.gliffy.stencil.round_rectangle.basic_v1=rect;rounded=1;arcSize=15;absoluteArcSize=1
+com.gliffy.stencil.triangle.basic_v1=mxgraph.flowchart.extract_or_measurement
+com.gliffy.stencil.rectangle.fill_line_top=partialRectangle;bottom=0;right=0;left=0
+com.gliffy.stencil.rectangle.white_no_line_opacity_68=rect;strokeColor=none;opacity=68
+com.gliffy.stencil.rectangle.fill_line_bottom=partialRectangle;top=0;right=0;left=0
+com.gliffy.stencil.rectangle.no_fill_line_bottom_2px_off=partialRectangle;top=0;right=0;left=0;fillColor=none
+com.gliffy.stencil.rectangle.no_fill_half_line_right=partialRectangle;top=0;bottom=0;left=0
+com.gliffy.stencil.rectangle.basic_v1_whitened_68_percent=rect;opacity=68
+#in current configuration, we cannot add subshapes (the circle)
+com.gliffy.stencil.rectangle.fill_no_line_circle_left=rect;strokeColor=none \ No newline at end of file
diff --git a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java
index 5ed19da7..31fc60fc 100644
--- a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java
+++ b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java
@@ -8,7 +8,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Stream;
import com.mxgraph.io.gliffy.importer.PostDeserializer.PostDeserializable;
import com.mxgraph.model.mxCell;
@@ -27,6 +26,8 @@ public class GliffyObject implements PostDeserializable
private static Set<String> MINDMAP_SHAPES = new HashSet<>();
+ private static Set<String> FILLCLR_IS_STROKECLR_SHAPES = new HashSet<>();
+
private static Map<String, double[]> SHAPES_COORD_FIX = new HashMap<>();
public float x;
@@ -148,18 +149,53 @@ public class GliffyObject implements PostDeserializable
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.object_timeline");
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.class");
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.object");
-
+ //ios
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.containers_content.table");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar");
+ GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.search");
+ //android
+ GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.dialog");
+ GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.list_1line");
+ GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.list_2lines");
+ GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.tabs01");
+ GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.tabs02");
+ //others
+ GROUP_SHAPES.add("com.gliffy.shape.network.network_v3.business.user_group");
+ //ui
+ GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.navigation.navbar");
+ GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical");
+ GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.forms_controls.dropdown");
+ //It is a group but we have one similar
+ //GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.forms_controls.audio_controls");
+
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.main_topic");
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.subtopic");
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.child_node");
-
+ //This map is used to change Gliffy coordinates to match mxGraph ones
+ //Format [xShift, yShift, widthShift, heightShift, DONT REPOSITION TEXT] values between ]-1, 1[ means percentage
SHAPES_COORD_FIX.put("com.gliffy.shape.flowchart.flowchart_v1.default.paper_tape", new double[]{0, -0.1, 0, 0.2});
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v1.default.node", new double[]{0, -10, 10, 10});
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.node", new double[]{0, -10, 10, 10});
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.device_node", new double[]{0, -10, 10, 10});
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.execution_environment_node", new double[]{0, -10, 10, 10});
SHAPES_COORD_FIX.put("com.gliffy.shape.flowchart.flowchart_v1.default.data_storage", new double[]{0, 0, 0.115, 0});
+ //these shapes cannot be resized (width is fixed) in Gliffy
+ SHAPES_COORD_FIX.put("com.gliffy.stencil.entity_lifeline.uml_v2", new double[]{10, 0, -20, 0});
+ SHAPES_COORD_FIX.put("com.gliffy.stencil.boundary_lifeline.uml_v2", new double[]{35, 0, -70, 0});
+ SHAPES_COORD_FIX.put("com.gliffy.stencil.control_lifeline.uml_v2", new double[]{10, 0, -20, 0});
+
+ //Our browser window has a larger header so increase it
+ SHAPES_COORD_FIX.put("com.gliffy.shape.ui.ui_v3.containers_content.browser", new double[]{0, -40, 0, 40, 1});
+
+ //There are many shapes where fillColor is the strokeColor
+ FILLCLR_IS_STROKECLR_SHAPES.add("com.gliffy.stencil.rectangle.no_fill_line_bottom_2px_off");
}
public GliffyObject()
@@ -257,9 +293,9 @@ public class GliffyObject implements PostDeserializable
public boolean isGroup()
{
- return (uid != null && (GROUP_SHAPES.contains(uid) || uid.startsWith("com.gliffy.shape.table")))
+ return (hasChildren() && ((uid != null && (GROUP_SHAPES.contains(uid) || uid.startsWith("com.gliffy.shape.table")))
//Since we treat text in a different way (added as cell value instead of another child cell, this is probably the best way to detect groups when uid is null)
- || (uid == null && hasChildren() && !children.get(0).isText());
+ || (uid == null && !children.get(0).isText())));
}
public boolean isSelection()
@@ -517,7 +553,7 @@ public class GliffyObject implements PostDeserializable
public void adjustGeo(mxGeometry geo)
{
- double[] arr = SHAPES_COORD_FIX.get(uid);
+ double[] arr = SHAPES_COORD_FIX.get(uid != null? uid : (graphic != null && graphic.getShape() != null ? graphic.getShape().tid : null));
if (arr != null)
{
@@ -536,7 +572,7 @@ public class GliffyObject implements PostDeserializable
{
double[] arr = SHAPES_COORD_FIX.get(uid);
- if (arr != null)
+ if (arr != null && arr.length == 4)
{
mxGeometry shifts = getAdjustShifts(arr, x, y, width, height);
@@ -544,4 +580,9 @@ public class GliffyObject implements PostDeserializable
textObject.y -= shifts.getY();
}
}
+
+ public boolean isUseFillColor4StrokeColor()
+ {
+ return FILLCLR_IS_STROKECLR_SHAPES.contains(uid != null? uid : (graphic != null && graphic.getShape() != null ? graphic.getShape().tid : null));
+ }
}
diff --git a/src/main/java/com/mxgraph/io/gliffy/model/GliffyText.java b/src/main/java/com/mxgraph/io/gliffy/model/GliffyText.java
index 57231610..f87a83e1 100644
--- a/src/main/java/com/mxgraph/io/gliffy/model/GliffyText.java
+++ b/src/main/java/com/mxgraph/io/gliffy/model/GliffyText.java
@@ -29,6 +29,8 @@ public class GliffyText implements PostDeserializer.PostDeserializable
public Double lineTValue = 0.5;//places the text in the middle of the line
public Integer linePerpValue;
+
+ public String cardinalityType;
public String overflow;
@@ -201,6 +203,11 @@ public class GliffyText implements PostDeserializer.PostDeserializable
return null;
}
+ public void setHalign(String halign)
+ {
+ this.halign = halign;
+ }
+
public void setValign(String valign)
{
this.valign = valign;
diff --git a/src/main/java/com/mxgraph/io/gliffy/model/Graphic.java b/src/main/java/com/mxgraph/io/gliffy/model/Graphic.java
index dc150116..cb7f7a32 100644
--- a/src/main/java/com/mxgraph/io/gliffy/model/Graphic.java
+++ b/src/main/java/com/mxgraph/io/gliffy/model/Graphic.java
@@ -45,6 +45,8 @@ public class Graphic
public Integer endArrow;
public String interpolationType;
+
+ public Integer cornerRadius;
public List<float[]> controlPath = new ArrayList<float[]>();
}
diff --git a/src/main/java/com/mxgraph/online/ProxyServlet.java b/src/main/java/com/mxgraph/online/ProxyServlet.java
index eff66b3c..3391e606 100644
--- a/src/main/java/com/mxgraph/online/ProxyServlet.java
+++ b/src/main/java/com/mxgraph/online/ProxyServlet.java
@@ -40,8 +40,23 @@ public class ProxyServlet extends HttpServlet
HttpServletResponse response) throws ServletException, IOException
{
String urlParam = request.getParameter("url");
+
+ // build the UML source from the compressed request parameter
+ String ref = request.getHeader("referer");
+ String dom = null;
- if (urlParam != null)
+ if (ref != null && ref.toLowerCase()
+ .matches("https?://([a-z0-9,-]+[.])*draw[.]io/.*"))
+ {
+ dom = ref.toLowerCase().substring(0, ref.indexOf(".draw.io/") + 8);
+ }
+ else if (ref != null && ref.toLowerCase()
+ .matches("https?://([a-z0-9,-]+[.])*quipelements[.]com/.*"))
+ {
+ dom = ref.toLowerCase().substring(0, ref.indexOf(".quipelements.com/") + 17);
+ }
+
+ if (dom != null && urlParam != null)
{
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
@@ -56,26 +71,7 @@ public class ProxyServlet extends HttpServlet
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setHeader("Cache-control", "private, no-cache, no-store");
response.setHeader("Expires", "0");
-
- // build the UML source from the compressed request parameter
- String ref = request.getHeader("referer");
- String dom = null;
-
- if (ref != null && ref.toLowerCase()
- .matches("https?://([a-z0-9,-]+[.])*draw[.]io/.*"))
- {
- dom = ref.toLowerCase().substring(0, ref.indexOf(".draw.io/") + 8);
- }
- else if (ref != null && ref.toLowerCase()
- .matches("https?://([a-z0-9,-]+[.])*quipelements[.]com/.*"))
- {
- dom = ref.toLowerCase().substring(0, ref.indexOf(".quipelements.com/") + 17);
- }
-
- if (dom != null)
- {
- response.addHeader("Access-Control-Allow-Origin", dom);
- }
+ response.addHeader("Access-Control-Allow-Origin", dom);
// Status code pass-through
if (connection instanceof HttpURLConnection)
diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index 83185429..fe38e6c3 100644
--- a/src/main/webapp/cache.manifest
+++ b/src/main/webapp/cache.manifest
@@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 03/15/2018 03:18 PM
+# 03/21/2018 05:29 PM
app.html
index.html?offline=1
diff --git a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js
index 7f64e0c3..edd542f2 100644
--- a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js
+++ b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js
@@ -98,7 +98,7 @@ AC.initAsync = function(baseUrl)
editor.setAttribute('frameborder', '0');
//editor.setAttribute('src', 'https://9674265b.ngrok.io/?dev=1&drawdev=1&' +
editor.setAttribute('src', hostUrl + '/?' +
- 'ui=atlas&p=ac&embed=1&modified=unsavedChanges' +
+ 'ui=atlas&p=ac148&embed=1&modified=unsavedChanges' +
((!AC.autoExit) ? '&saveAndExit=1' : '') +
'&keepmodified=1&spin=1&libraries=1&proto=json' +
((lang != null) ? '&lang=' + lang : '') + ((site != null) ? '&site=' + encodeURIComponent(site) : '') +
@@ -588,7 +588,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d
if (fileExists)
{
- err(name, null, 'fileExists');
+ err(name, name + ' already exists');
}
else
{
diff --git a/src/main/webapp/connect/confluence/viewer-1-4-8.html b/src/main/webapp/connect/confluence/viewer-1-4-8.html
index 1488415f..7237be4f 100644
--- a/src/main/webapp/connect/confluence/viewer-1-4-8.html
+++ b/src/main/webapp/connect/confluence/viewer-1-4-8.html
@@ -239,7 +239,7 @@ if (lang != null)
// LATER: Disable responsive resize while lightbox shows
var container = document.createElement('div');
container.style.cssText = 'position:absolute;box-sizing:border-box;' +
- 'max-width:100%;margin-bottom:' + tbHeight +'px;border:1px solid transparent;';
+ 'max-width:100%;border:1px solid transparent;';
document.body.appendChild(container);
var doc = mxUtils.parseXml(xml);
@@ -281,6 +281,8 @@ if (lang != null)
width += 3;
updateContainerWidth.apply(this, arguments);
};
+
+ config.resize = true;
}
var viewer = new GraphViewer(container, doc.documentElement, config);
@@ -290,7 +292,7 @@ if (lang != null)
function updateHeight(height)
{
- AP.resize('100%', (tbHeight == 0) ? Math.ceil(height) : container.offsetHeight + tbHeight);
+ AP.resize('100%', Math.ceil(height) + tbHeight + 2 * border);
};
viewer.graph.doResizeContainer = function(width, height)
@@ -305,14 +307,14 @@ if (lang != null)
updateHeight(height);
};
- updateHeight();
+ updateHeight(container.offsetHeight);
viewer.showLightbox = function()
{
dialog.create(
{
header: name,
- key: 'lightbox',
+ key: 'lightbox',
size: 'fullscreen',
customData: {id: id, name: name, revision: revision, page: viewer.currentPage, links: links},
chrome: true
diff --git a/src/main/webapp/electron.js b/src/main/webapp/electron.js
index f41fd21b..fabedcc0 100644
--- a/src/main/webapp/electron.js
+++ b/src/main/webapp/electron.js
@@ -20,7 +20,6 @@ function createWindow (opt = {})
{
width: 1600,
height: 1200,
- nodeIntegration: false,
'web-security': false,
allowRunningInsecureContent: __DEV__,
webPreferences: {
diff --git a/src/main/webapp/images/sidebar-cisco_safe.png b/src/main/webapp/images/sidebar-cisco_safe.png
new file mode 100644
index 00000000..d951c30a
--- /dev/null
+++ b/src/main/webapp/images/sidebar-cisco_safe.png
Binary files differ
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 80d1b632..8e6e484d 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -398,8 +398,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -412,7 +412,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -509,9 +509,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -522,7 +522,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -1012,10 +1012,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -1057,9 +1057,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1208,11 +1208,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
-(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1413,10 +1413,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
-mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
-g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
-this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
+mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
+Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
+g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
+c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
@@ -1979,14 +1979,14 @@ this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))
Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.createXmlDocument())).encode(this.graph.getModel()):this.graph.encodeCells(mxUtils.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells())));if(0!=this.graph.view.translate.x||0!=this.graph.view.translate.y)a.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),a.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100);a.setAttribute("grid",this.graph.isGridEnabled()?"1":"0");a.setAttribute("gridSize",
this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width);
a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":"hidden",this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFilename=function(a){this.filename=a};
-Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){for(var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes),f=a.getModel(),g=[],h=0;h<d.length;h++)(f.isVertex(d[h])||f.isEdge(d[h]))&&null!=a.view.getState(d[h])&&
-g.push(d[h]);a.setSelectionCells(g)};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
+Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){for(var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes),f=a.getModel(),g=[],k=0;k<d.length;k++)(f.isVertex(d[k])||f.isEdge(d[k]))&&null!=a.view.getState(d[k])&&
+g.push(d[k]);a.setSelectionCells(g)};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,c,d,b,f,e,k,g){var h=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(h=80);d+=h;b+=h;var l=d,m=b,p=Math.max(document.body.clientHeight,document.documentElement.clientHeight),n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2)),q=Math.max(1,Math.round((p-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=Math.min(d,document.body.scrollWidth-64);b=Math.min(b,p-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&
+function Dialog(a,c,d,b,f,e,h,g){var k=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(k=80);d+=k;b+=k;var l=d,m=b,p=Math.max(document.body.clientHeight,document.documentElement.clientHeight),n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2)),q=Math.max(1,Math.round((p-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=Math.min(d,document.body.scrollWidth-64);b=Math.min(b,p-64);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=p+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var t=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=t.x+"px";this.bg.style.top=t.y+"px";n+=t.x;q+=t.y;f&&document.body.appendChild(this.bg);var r=a.createDiv("geDialog");f=this.getPosition(n,q,
-d,b);n=f.x;q=f.y;r.style.width=d+"px";r.style.height=b+"px";r.style.left=n+"px";r.style.top=q+"px";r.style.zIndex=this.zIndex;r.appendChild(c);document.body.appendChild(r);!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=q+14+"px",e.style.left=n+d+38-h+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",
+d,b);n=f.x;q=f.y;r.style.width=d+"px";r.style.height=b+"px";r.style.left=n+"px";r.style.top=q+"px";r.style.zIndex=this.zIndex;r.appendChild(c);document.body.appendChild(r);!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=q+14+"px",e.style.left=n+d+38-k+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",
mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(b){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){p=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=p+"px";n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2));q=Math.max(1,Math.round((p-b-a.footerHeight)/3));d=Math.min(l,document.body.scrollWidth-64);b=
-Math.min(m,p-64);var e=this.getPosition(n,q,d,b);n=e.x;q=e.y;r.style.left=n+"px";r.style.top=q+"px";r.style.width=d+"px";r.style.height=b+"px";!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=q+14+"px",this.dialogImg.style.left=n+d+38-h+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=r;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
+Math.min(m,p-64);var e=this.getPosition(n,q,d,b);n=e.x;q=e.y;r.style.left=n+"px";r.style.top=q+"px";r.style.width=d+"px";r.style.height=b+"px";!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=q+14+"px",this.dialogImg.style.left=n+d+38-k+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=r;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
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";
@@ -1997,29 +1997,29 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,c){return new mxPoint(a,c)};Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),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 PrintDialog=function(a,c){this.create(a,c)};
-PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(p.value)/100;isNaN(c)&&(c=1,p.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var k=g.checked?1:parseInt(m.value);isNaN(k)||(f=mxUtils.getScaleForPageCount(k,d,e))}d.getGraphBounds();var h=k=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),k-=c.x*e.width,h-=c.y*e.height):
-b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,k,h,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var k=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var h=document.createElement("span");mxUtils.write(h," "+mxResources.get("fitPage"));
-f.appendChild(h);mxEvent.addListener(h,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);k.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);h=document.createElement("span");mxUtils.write(h," "+mxResources.get("posterPrint")+":");f.appendChild(h);mxEvent.addListener(h,
-"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(m);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);k.appendChild(b);mxEvent.addListener(l,"change",
-function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var p=document.createElement("input");p.setAttribute("value","100 %");p.setAttribute("size","5");p.style.width="50px";f.appendChild(p);b.appendChild(f);k.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
-f.style.paddingTop="20px";f.setAttribute("align","right");h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&f.appendChild(h);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});n.className="geBtn";f.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";f.appendChild(n);a.editor.cancelFirst||
-f.appendChild(h);b.appendChild(f);k.appendChild(b);e.appendChild(k);this.container=e};PrintDialog.printPreview=function(a){if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}};
-PrintDialog.createPrintPreview=function(a,c,d,b,f,e,k){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=k;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
+PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(p.value)/100;isNaN(c)&&(c=1,p.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var h=g.checked?1:parseInt(m.value);isNaN(h)||(f=mxUtils.getScaleForPageCount(h,d,e))}d.getGraphBounds();var k=h=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),h-=c.x*e.width,k-=c.y*e.height):
+b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,h,k,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var h=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
+f.appendChild(k);mxEvent.addListener(k,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);h.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");f.appendChild(k);mxEvent.addListener(k,
+"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(m);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);h.appendChild(b);mxEvent.addListener(l,"change",
+function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var p=document.createElement("input");p.setAttribute("value","100 %");p.setAttribute("size","5");p.style.width="50px";f.appendChild(p);b.appendChild(f);h.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
+f.style.paddingTop="20px";f.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&f.appendChild(k);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});n.className="geBtn";f.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";f.appendChild(n);a.editor.cancelFirst||
+f.appendChild(k);b.appendChild(f);h.appendChild(b);e.appendChild(h);this.container=e};PrintDialog.printPreview=function(a){if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}};
+PrintDialog.createPrintPreview=function(a,c,d,b,f,e,h){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==q?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",q.src),n.style.fontSize="11px",n.innerHTML=q.src.substring(0,42)+"...")}var b=a.editor.graph,f,e,k=document.createElement("table");k.style.width=
-"100%";k.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var h=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");
+var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==q?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",q.src),n.style.fontSize="11px",n.innerHTML=q.src.substring(0,42)+"...")}var b=a.editor.graph,f,e,h=document.createElement("table");h.style.width=
+"100%";h.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");
mxUtils.write(e,mxResources.get("background")+":");f.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="18px";l.style.height="18px";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";var m=b.background;c();mxEvent.addListener(l,"click",function(b){a.pickColor(m||"none",function(a){m=a;c()});mxEvent.consume(b)});
e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=b.getGridSize();e.appendChild(p);mxEvent.addListener(p,"change",function(){var a=parseInt(p.value);p.value=Math.max(1,isNaN(a)?b.getGridSize():a)});f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("image")+
":");f.appendChild(e);e=document.createElement("td");var n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var q=b.backgroundImage;mxEvent.addListener(n,"click",function(b){a.showBackgroundImageDialog(function(a){q=a;d()});mxEvent.consume(b)});d();e.appendChild(n);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var t=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var r=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==p.value&&b.setGridSize(parseInt(p.value));var c=new ChangePageSetup(a,m,q,h.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
-c.ignoreColor&&c.ignoreImage||b.model.execute(c)});r.className="geBtn gePrimaryBtn";e.appendChild(r);a.editor.cancelFirst||e.appendChild(t);f.appendChild(e);g.appendChild(f);k.appendChild(g);this.container=k};
+mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var r=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==p.value&&b.setGridSize(parseInt(p.value));var c=new ChangePageSetup(a,m,q,k.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
+c.ignoreColor&&c.ignoreImage||b.model.execute(c)});r.className="geBtn gePrimaryBtn";e.appendChild(r);a.editor.cancelFirst||e.appendChild(t);f.appendChild(e);g.appendChild(f);h.appendChild(g);this.container=h};
PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||p!=document.activeElement&&n!=document.activeElement){a=!1;for(b=0;b<t.length;b++)c=t[b],u?"custom"==c.key&&(g.value=c.key,u=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
-d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,a=k.checked=!0));a?(h.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
-g.value="custom",h.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",c);k.setAttribute("type","radio");k.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var h=document.createElement("div");h.style.marginLeft="4px";h.style.width="210px";
-h.style.height="24px";e.style.marginRight="6px";h.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));h.appendChild(c);k.style.marginLeft="10px";k.style.marginRight="6px";h.appendChild(k);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));h.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),r=0;r<t.length;r++){var w=t[r];q[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);g.appendChild(v)}var u=!1;f();a.appendChild(g);mxUtils.br(a);
-a.appendChild(h);a.appendChild(m);var z=d,x=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",h.style.display=""):(h.style.display="none",m.style.display="");isNaN(parseFloat(p.value))&&(p.value=d.width/100);isNaN(parseFloat(n.value))&&(n.value=d.height/100);e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&k.checked&&(e=new mxRectangle(0,0,e.height,e.width));
-c&&u||e.width==z.width&&e.height==z.height||(z=e,null!=b&&b(z))};mxEvent.addListener(c,"click",function(a){e.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){k.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(n,"blur",x);mxEvent.addListener(n,"click",x);mxEvent.addListener(k,"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(g,"change",function(a){u="custom"==g.value;x(a,!0)});x();
+d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(k.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
+g.value="custom",k.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",c);h.setAttribute("type","radio");h.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";
+k.style.height="24px";e.style.marginRight="6px";k.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);h.style.marginLeft="10px";h.style.marginRight="6px";k.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));k.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");k.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),r=0;r<t.length;r++){var w=t[r];q[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);g.appendChild(v)}var u=!1;f();a.appendChild(g);mxUtils.br(a);
+a.appendChild(k);a.appendChild(m);var z=d,x=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",k.style.display=""):(k.style.display="none",m.style.display="");isNaN(parseFloat(p.value))&&(p.value=d.width/100);isNaN(parseFloat(n.value))&&(n.value=d.height/100);e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&h.checked&&(e=new mxRectangle(0,0,e.height,e.width));
+c&&u||e.width==z.width&&e.height==z.height||(z=e,null!=b&&b(z))};mxEvent.addListener(c,"click",function(a){e.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(n,"blur",x);mxEvent.addListener(n,"click",x);mxEvent.addListener(h,"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(g,"change",function(a){u="custom"==g.value;x(a,!0)});x();
return{set:function(a){d=a;f(null,null,!0)},get:function(){return z},widthInput:p,heightInput:n}};
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 (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{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:"custom",title:mxResources.get("custom"),format:null}]};
@@ -2030,33 +2030,33 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
d="url("+this.gridImage+")";var f=c=0;null!=a.view.backgroundPageShape&&(f=this.getBackgroundPageBounds(),c=1+f.x,f=1+f.y);e=-Math.round(e-mxUtils.mod(this.translate.x*this.scale-c,e))+"px "+-Math.round(e-mxUtils.mod(this.translate.y*this.scale-f,e))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=e,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor=
b,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+" "+c)}return'<svg width="'+
c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=
-this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,k=this.view.getBackgroundPageBounds();b=k.width;c=k.height;var h=
-new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),l=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,u=k.x+b,z=k.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),Math.round(k.y+(c+1)*h.height)),
-new mxPoint(Math.round(u),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,h=this.view.getBackgroundPageBounds();b=h.width;c=h.height;var k=
+new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),l=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(c/k.height)-1:0,v=a?Math.ceil(b/k.width)-1:0,u=h.x+b,z=h.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
+new mxPoint(Math.round(u),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++)if(this.graph.getModel().isVertex(b[e])){var f=this.graph.getCellGeometry(b[e]);if(null!=f&&f.relative)return!1}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?
-!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),k=Math.floor(Math.min(0,
-c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-k)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,k){var g=f.apply(this,arguments);null==k||k||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),f=b.getParent(d);
-if(null==c||c!=d&&c!=f)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(f)&&b.isVertex(f)&&!this.graph.isContainer(f);)d=f,f=this.graph.getModel().getParent(d);return d};var k=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=k.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
+!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),h=Math.floor(Math.min(0,
+c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+h*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-h)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,h){var g=f.apply(this,arguments);null==h||h||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),f=b.getParent(d);
+if(null==c||c!=d&&c!=f)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(f)&&b.isVertex(f)&&!this.graph.isContainer(f);)d=f,f=this.graph.getModel().getParent(d);return d};var h=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=h.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,c,d){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=c||document.body;var b=this.editor.graph;b.lightbox=d;mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var f=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=f,this.menubarContainer.onmousedown=
f,this.toolbarContainer.onselectstart=f,this.toolbarContainer.onmousedown=f,this.diagramContainer.onselectstart=f,this.diagramContainer.onmousedown=f,this.sidebarContainer.onselectstart=f,this.sidebarContainer.onmousedown=f,this.formatContainer.onselectstart=f,this.formatContainer.onmousedown=f,this.footerContainer.onselectstart=f,this.footerContainer.onmousedown=f,null!=this.tabContainer&&(this.tabContainer.onselectstart=f));!this.editor.chromeless||this.editor.editable?(c=function(a){var b=mxEvent.getSource(a);
if("A"==b.nodeName)for(;null!=b;){if("geHint"==b.className)return!0;b=b.parentNode}return f(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,k=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return e||k.apply(this,arguments)};this.keydownHandler=
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,h=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return e||h.apply(this,arguments)};this.keydownHandler=
mxUtils.bind(this,function(a){32==a.which?(e=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";e=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var g=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=
-function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var h=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return h.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};
+function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return k.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 l=!1,m=null,p=null,n=null,q=mxUtils.bind(this,function(){if(null!=this.toolbar&&l!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==n)this.toolbar.createTextToolbar();else{for(var e=0;e<n.length;e++)this.toolbar.container.appendChild(n[e]);this.toolbar.fontMenu=m;this.toolbar.sizeMenu=
p}l=b.cellEditor.isContentEditing();m=a;p=d;n=c}}),t=this,r=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){r.apply(this,arguments);q();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=t.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d=
d.substring(0,d.length-1));t.toolbar.setFontName(d);t.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var w=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){w.apply(this,arguments);q()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";
if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(B){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],e=[],f;for(f in c.style)a[f]!=c.style[f]&&(d.push(c.style[f]),e.push(f));f=b.getModel().getStyle(c.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var h=g[k],
-l=h.indexOf("=");0<=l&&(f=h.substring(0,l),h=h.substring(l+1),null!=a[f]&&"none"==h&&(d.push(h),e.push(f)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var x=
-["fontFamily","fontSize","fontColor"],D="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),A=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],x,["align"],["html"]];for(a=0;a<A.length;a++)for(c=0;c<A[a].length;c++)u.push(A[a][c]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(u,z[a])&&u.push(z[a]);var C=function(a,c){var d=b.getModel();d.beginUpdate();
-try{if(c)for(var e=d.isEdge(h),f=e?b.currentEdgeStyle:b.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var k=f[e[g]];null!=k&&b.setCellStyles(e[g],k,a)}else for(k=0;k<a.length;k++){for(var h=a[k],l=d.getStyle(h),m=null!=l?l.split(";"):[],H=u.slice(),g=0;g<m.length;g++){var n=m[g],y=n.indexOf("=");if(0<=y){var p=n.substring(0,y),R=mxUtils.indexOf(H,p);0<=R&&H.splice(R,1);for(var t=0;t<A.length;t++){var q=A[t];if(0<=mxUtils.indexOf(q,p))for(var r=0;r<q.length;r++){var B=
-mxUtils.indexOf(H,q[r]);0<=B&&H.splice(B,1)}}}}for(var f=(e=d.isEdge(h))?b.currentEdgeStyle:b.currentVertexStyle,v=d.getStyle(h),g=0;g<H.length;g++){var p=H[g],w=f[p];null==w||"shape"==p&&!e||e&&!(0>mxUtils.indexOf(z,p))||(v=mxUtils.setStyle(v,p,w))}d.setStyle(h,v)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){C(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){C(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=
-[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));C(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,f=!1;if(0<d.length)for(var g=0;g<d.length&&(e=b.getModel().isVertex(d[g])||e,!(f=b.getModel().isEdge(d[g])||f)||!e);g++);else f=e=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),g=0;g<d.length;g++){var h=0<=mxUtils.indexOf(x,d[g]);if("strokeColor"!=d[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,
-d[g]))f||0<=mxUtils.indexOf(D,d[g])?null==k[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=k[g]:e&&0<=mxUtils.indexOf(u,d[g])&&(null==k[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=k[g]);else if(0<=mxUtils.indexOf(u,d[g])){if(e||h)null==k[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=k[g];if(f||h||0<=mxUtils.indexOf(D,d[g]))null==k[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
+this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],e=[],f;for(f in c.style)a[f]!=c.style[f]&&(d.push(c.style[f]),e.push(f));f=b.getModel().getStyle(c.cell);for(var g=null!=f?f.split(";"):[],h=0;h<g.length;h++){var k=g[h],
+l=k.indexOf("=");0<=l&&(f=k.substring(0,l),k=k.substring(l+1),null!=a[f]&&"none"==k&&(d.push(k),e.push(f)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var x=
+["fontFamily","fontSize","fontColor"],C="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),A=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],x,["align"],["html"]];for(a=0;a<A.length;a++)for(c=0;c<A[a].length;c++)u.push(A[a][c]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(u,z[a])&&u.push(z[a]);var D=function(a,c){var d=b.getModel();d.beginUpdate();
+try{if(c)for(var e=d.isEdge(k),f=e?b.currentEdgeStyle:b.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var h=f[e[g]];null!=h&&b.setCellStyles(e[g],h,a)}else for(h=0;h<a.length;h++){for(var k=a[h],l=d.getStyle(k),m=null!=l?l.split(";"):[],G=u.slice(),g=0;g<m.length;g++){var n=m[g],y=n.indexOf("=");if(0<=y){var p=n.substring(0,y),R=mxUtils.indexOf(G,p);0<=R&&G.splice(R,1);for(var t=0;t<A.length;t++){var q=A[t];if(0<=mxUtils.indexOf(q,p))for(var r=0;r<q.length;r++){var B=
+mxUtils.indexOf(G,q[r]);0<=B&&G.splice(B,1)}}}}for(var f=(e=d.isEdge(k))?b.currentEdgeStyle:b.currentVertexStyle,C=d.getStyle(k),g=0;g<G.length;g++){var p=G[g],w=f[p];null==w||"shape"==p&&!e||e&&!(0>mxUtils.indexOf(z,p))||(C=mxUtils.setStyle(C,p,w))}d.setStyle(k,C)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){D(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){D(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=
+[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));D(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,f=!1;if(0<d.length)for(var g=0;g<d.length&&(e=b.getModel().isVertex(d[g])||e,!(f=b.getModel().isEdge(d[g])||f)||!e);g++);else f=e=!0;for(var d=c.getProperty("keys"),h=c.getProperty("values"),g=0;g<d.length;g++){var k=0<=mxUtils.indexOf(x,d[g]);if("strokeColor"!=d[g]||null!=h[g]&&"none"!=h[g])if(0<=mxUtils.indexOf(z,
+d[g]))f||0<=mxUtils.indexOf(C,d[g])?null==h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]:e&&0<=mxUtils.indexOf(u,d[g])&&(null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g]);else if(0<=mxUtils.indexOf(u,d[g])){if(e||k)null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g];if(f||k||0<=mxUtils.indexOf(C,d[g]))null==h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2078,14 +2078,14 @@ EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,c=
EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);a.updatePasteActionStates()};var d=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(c){var d=null;c.cellEditor.isContentEditing()?document.execCommand("paste",
!1,null):d=b.apply(this,arguments);a.updatePasteActionStates();return d};var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);a.updatePasteActionStates()};var e=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){e.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),b=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,
-this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.chromeless){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container){d=null!=d?d:0;e=null!=e?e:0;var f=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),g=mxUtils.hasScrollbars(a.container),k=a.view.translate,h=a.view.scale,l=mxRectangle.fromRectangle(f);
-l.x=l.x/h-k.x;l.y=l.y/h-k.y;l.width/=h;l.height/=h;var k=a.container.scrollTop,m=a.container.scrollLeft,n=mxClient.IS_QUIRKS||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)):h;c=(p-b*l.width)/2/b;var t=0==this.lightboxVerticalDivider?0:(n-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),t=Math.max(t,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,
-Math.floor(c-l.x),Math.floor(t-l.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=m*b/h;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/h),Math.floor(f.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
+this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.chromeless){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container){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=mxClient.IS_QUIRKS||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 t=0==this.lightboxVerticalDivider?0:(n-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),t=Math.max(t,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,
+Math.floor(c-l.x),Math.floor(t-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 b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(b){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(b){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace=
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var f=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);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 e=0,f=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);
-return d}),k=f(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var h=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,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";h.style.paddingLeft="4px";h.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(h.style.display="",k.style.display="",g.style.display="inline-block"):(h.style.display="none",k.style.display=
+return d}),h=f(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var k=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,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))});h.style.paddingLeft="0px";h.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",h.style.display="",g.style.display="inline-block"):(k.style.display="none",h.style.display=
"none",g.style.display="none");l()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",l);f(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(b){a.lightbox?(1==a.view.scale?
this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,n=null,q=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";n=
null}),600)}),a||200)}),t=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var r=f(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
@@ -2125,18 +2125,18 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),c=this.actions.get("redo"),d=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});d.addListener(mxEvent.ADD,b);d.addListener(mxEvent.UNDO,b);d.addListener(mxEvent.REDO,b);d.addListener(mxEvent.CLEAR,b);var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);b()};var e=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,c){e.apply(this,arguments);b()};b()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),d=!1,b=!1,f=a.getSelectionCells();if(null!=f)for(var e=0;e<f.length;e++){var k=f[e];a.getModel().isEdge(k)&&(b=!0);a.getModel().isVertex(k)&&(d=!0);if(b&&d)break}f="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),d=!1,b=!1,f=a.getSelectionCells();if(null!=f)for(var e=0;e<f.length;e++){var h=f[e];a.getModel().isEdge(h)&&(b=!0);a.getModel().isVertex(h)&&(d=!0);if(b&&d)break}f="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
0;e<f.length;e++)this.actions.get(f[e]).setEnabled(c);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(d);this.actions.get("wordWrap").setEnabled(d);this.actions.get("autosize").setEnabled(d);b=d&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
b&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||b&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(b&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(c||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(d&&(a.isContainer(a.getSelectionCell())||
0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));c=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(c);this.actions.get("collapse").setEnabled(c);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==
a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);c=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(c);this.menus.get("insert").setEnabled(c);this.menus.get("direction").setEnabled(c&&d);this.menus.get("align").setEnabled(c&&d&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(c&&d&&1<a.getSelectionCount());
this.actions.get("selectVertices").setEnabled(c);this.actions.get("selectEdges").setEnabled(c);this.actions.get("selectAll").setEnabled(c);this.actions.get("selectNone").setEnabled(c);this.updatePasteActionStates()};
EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var c=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),d=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(d=document.body.clientWidth||document.documentElement.clientWidth,b=c?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var f=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var e=Math.max(0,Math.min(this.hsplitPosition,d-this.splitSize-20)),k=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",k+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",k+=this.toolbarHeight);0<k&&!mxClient.IS_QUIRKS&&(k+=1);var g=0;if(null!=this.sidebarFooterContainer){var h=
-this.footerHeight+f,g=Math.max(0,Math.min(b-k-h,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=e+"px";this.sidebarFooterContainer.style.height=g+"px";this.sidebarFooterContainer.style.bottom=h+"px"}h=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=k+"px";this.sidebarContainer.style.width=e+"px";this.formatContainer.style.top=k+"px";this.formatContainer.style.width=h+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
+(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var e=Math.max(0,Math.min(this.hsplitPosition,d-this.splitSize-20)),h=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",h+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",h+=this.toolbarHeight);0<h&&!mxClient.IS_QUIRKS&&(h+=1);var g=0;if(null!=this.sidebarFooterContainer){var k=
+this.footerHeight+f,g=Math.max(0,Math.min(b-h-k,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=e+"px";this.sidebarFooterContainer.style.height=g+"px";this.sidebarFooterContainer.style.bottom=k+"px"}k=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=h+"px";this.sidebarContainer.style.width=e+"px";this.formatContainer.style.top=h+"px";this.formatContainer.style.width=k+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
null!=this.hsplit.parentNode?e+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+f+"px";this.hsplit.style.left=e+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);c?(this.menubarContainer.style.width=d+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-c=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=c-g+"px",this.formatContainer.style.height=c+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,d-e-this.splitSize-h)+"px":d+"px",this.footerContainer.style.width=this.menubarContainer.style.width,g=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
-this.footerHeight+f+"px",g-=this.tabContainer.clientHeight),this.diagramContainer.style.height=g+"px",this.hsplit.style.height=g+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px"),this.diagramContainer.style.right=h+"px",d=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,d=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+g+f+"px",this.formatContainer.style.bottom=
+c=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=c-g+"px",this.formatContainer.style.height=c+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,d-e-this.splitSize-k)+"px":d+"px",this.footerContainer.style.width=this.menubarContainer.style.width,g=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
+this.footerHeight+f+"px",g-=this.tabContainer.clientHeight),this.diagramContainer.style.height=g+"px",this.hsplit.style.height=g+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px"),this.diagramContainer.style.right=k+"px",d=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,d=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+g+f+"px",this.formatContainer.style.bottom=
this.footerHeight+f+"px",this.diagramContainer.style.bottom=this.footerHeight+f+d+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
@@ -2146,8 +2146,8 @@ 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";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};
EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var c=document.createElement("div");c.className=a;return c};
-EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=k){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-k.x:k.y-e.y)-d));mxEvent.consume(a);g!=m()&&(h=!0,l=null)}}function e(a){f(a);k=g=null}var k=null,g=null,h=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){k=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));g=m();h=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!h){var c=null!=l?l-d:0;l=m();b(c);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,k){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,k);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=h){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-h.x:h.y-e.y)-d));mxEvent.consume(a);g!=m()&&(k=!0,l=null)}}function e(a){f(a);h=g=null}var h=null,g=null,k=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));g=m();k=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!k){var c=null!=l?l-d:0;l=m();b(c);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,h){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,h);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,c){var d=this.editor.graph,b=d.cellEditor.saveSelection(),f=new ColorDialog(this,a||"none",function(a){d.cellEditor.restoreSelection(b);c(a)},function(){d.cellEditor.restoreSelection(b)});this.showDialog(f.container,230,430,!0,!1);f.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2157,16 +2157,16 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var c=null,d=null;null
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,c);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(c.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(c))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(c);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(d){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(a,c,d){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(f){throw f;}finally{this.allowAnimation&&c&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=d&&d()})),a.startAnimation()):(b.getModel().endUpdate(),null!=d&&d())}}};
-EditorUi.prototype.showImageDialog=function(a,c,d,b){b=this.editor.graph.cellEditor;var f=b.saveSelection(),e=mxUtils.prompt(a,c);b.restoreSelection(f);if(null!=e&&0<e.length){var k=new Image;k.onload=function(){d(e,k.width,k.height)};k.onerror=function(){d(null);mxUtils.alert(mxResources.get("fileNotFound"))};k.src=e}else d(null)};EditorUi.prototype.showLinkDialog=function(a,c,d){a=new LinkDialog(this,a,c,d);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.showImageDialog=function(a,c,d,b){b=this.editor.graph.cellEditor;var f=b.saveSelection(),e=mxUtils.prompt(a,c);b.restoreSelection(f);if(null!=e&&0<e.length){var h=new Image;h.onload=function(){d(e,h.width,h.height)};h.onerror=function(){d(null);mxUtils.alert(mxResources.get("fileNotFound"))};h.src=e}else d(null)};EditorUi.prototype.showLinkDialog=function(a,c,d){a=new LinkDialog(this,a,c,d);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var c=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=c&&0<c.length){var d=new Image;d.onload=function(){a(new mxImage(c,d.width,d.height))};d.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};d.src=c}else a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,c,d){mxUtils.confirm(a)?null!=c&&c():null!=d&&d()};
EditorUi.prototype.createOutline=function(a){var c=new mxOutline(this.editor.graph);c.border=20;mxEvent.addListener(window,"resize",function(){c.update()});this.addListener("pageFormatChanged",function(){c.update()});return c};
-EditorUi.prototype.createKeyHandler=function(a){function c(a,c,d){k.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var e=b.getSelectionCells(),f=0;f<e.length;f++)if(b.getModel().isVertex(e[f])&&b.isCellResizable(e[f])){var g=b.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-c):38==a?g.height=Math.max(0,g.height-c):39==a?g.width+=c:40==a&&(g.height+=c),b.getModel().setGeometry(e[f],g))}}finally{b.getModel().endUpdate()}}else e=
+EditorUi.prototype.createKeyHandler=function(a){function c(a,c,d){h.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var e=b.getSelectionCells(),f=0;f<e.length;f++)if(b.getModel().isVertex(e[f])&&b.isCellResizable(e[f])){var g=b.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-c):38==a?g.height=Math.max(0,g.height-c):39==a?g.width+=c:40==a&&(g.height+=c),b.getModel().setGeometry(e[f],g))}}finally{b.getModel().endUpdate()}}else e=
b.getSelectionCell(),f=b.model.getParent(e),g=null,1==b.getSelectionCount()&&b.model.isVertex(e)&&null!=b.layoutManager&&!b.isCellLocked(e)&&(g=b.layoutManager.getLayout(f)),null!=g&&g.constructor==mxStackLayout?(g=f.getIndex(e),37==a||38==a?b.model.add(f,e,Math.max(0,g-1)):39!=a&&40!=a||b.model.add(f,e,Math.min(b.model.getChildCount(f),g+1))):(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),e,f))});null!=g&&window.clearTimeout(g);g=window.setTimeout(function(){if(0<
-k.length){b.getModel().beginUpdate();try{for(var a=0;a<k.length;a++)k[a]();k=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var d=this,b=this.editor.graph,f=new mxKeyHandler(b),e=f.isEventIgnored;f.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&e.apply(this,arguments)};f.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};f.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var k=[],g=null,h={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},l=f.getFunction,m={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
-80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var e=m[a.keyCode];if(null!=e)return e.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=h[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=
-b.connectVertex(b.getSelectionCell(),h[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=d.hoverIcons&&d.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return l.apply(this,
+h.length){b.getModel().beginUpdate();try{for(var a=0;a<h.length;a++)h[a]();h=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var d=this,b=this.editor.graph,f=new mxKeyHandler(b),e=f.isEventIgnored;f.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
+!mxClient.IS_SF)&&e.apply(this,arguments)};f.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};f.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var h=[],g=null,k={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},l=f.getFunction,m={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
+80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var e=m[a.keyCode];if(null!=e)return e.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=k[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=
+b.connectVertex(b.getSelectionCell(),k[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=d.hoverIcons&&d.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return l.apply(this,
arguments)};f.bindAction=mxUtils.bind(this,function(a,b,c,d){var e=this.actions.get(c);null!=e&&(c=function(){e.isEnabled()&&e.funct()},b?d?f.bindControlShiftKey(a,c):f.bindControlKey(a,c):d?f.bindShiftKey(a,c):f.bindKey(a,c))});var p=f.escape;f.escape=function(a){p.apply(this,arguments)};f.enter=function(){};f.bindControlShiftKey(36,function(){b.exitGroup()});f.bindControlShiftKey(35,function(){b.enterGroup()});f.bindKey(36,function(){b.home()});f.bindKey(35,function(){b.refresh()});f.bindAction(107,
!0,"zoomIn");f.bindAction(109,!0,"zoomOut");f.bindAction(80,!0,"print");f.bindAction(79,!0,"outline",!0);f.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)f.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),f.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),f.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),f.bindAction(8,!1,"delete"),f.bindAction(8,!0,"deleteAll"),f.bindAction(46,!1,
"delete"),f.bindAction(46,!0,"deleteAll"),f.bindAction(72,!0,"resetView"),f.bindAction(72,!0,"fitWindow",!0),f.bindAction(74,!0,"fitPage"),f.bindAction(74,!0,"fitTwoPages",!0),f.bindAction(48,!0,"customZoom"),f.bindAction(82,!0,"turn"),f.bindAction(82,!0,"clearDefaultStyle",!0),f.bindAction(83,!0,"save"),f.bindAction(83,!0,"saveAs",!0),f.bindAction(65,!0,"selectAll"),f.bindAction(65,!0,"selectNone",!0),f.bindAction(73,!0,"selectVertices",!0),f.bindAction(69,!0,"selectEdges",!0),f.bindAction(69,!0,
@@ -2186,26 +2186,26 @@ Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhD
Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+
"/search.png";Sidebar.prototype.dragPreviewBorder="1px dashed black";Sidebar.prototype.enableTooltips=!0;Sidebar.prototype.tooltipBorder=16;Sidebar.prototype.tooltipDelay=300;Sidebar.prototype.dropTargetDelay=200;Sidebar.prototype.gearImage=STENCIL_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.thumbWidth=36;Sidebar.prototype.thumbHeight=36;Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1;Sidebar.prototype.thumbBorder=2;Sidebar.prototype.sidebarTitleSize=9;
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.getTooltipOffset=function(){return new mxPoint(0,0)};
-Sidebar.prototype.showTooltip=function(a,c,d,b,f,e){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var k=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),
+Sidebar.prototype.showTooltip=function(a,c,d,b,f,e){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var h=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(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.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width=
"14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage));this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=d>this.maxTooltipWidth||b>this.maxTooltipHeight?Math.round(100*Math.min(this.maxTooltipWidth/d,this.maxTooltipHeight/b))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==e||e;var g=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph2.addCells(c);
-mxClient.NO_FO=g;var k=this.graph2.getGraphBounds(),l=k.width+2*this.tooltipBorder+4,g=k.height+2*this.tooltipBorder;mxClient.IS_QUIRKS?(g+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible";this.tooltipImage.style.visibility="visible";this.tooltip.style.width=l+"px";this.tooltipTitles&&null!=f&&0<f.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",
+mxClient.NO_FO=g;var h=this.graph2.getGraphBounds(),l=h.width+2*this.tooltipBorder+4,g=h.height+2*this.tooltipBorder;mxClient.IS_QUIRKS?(g+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible";this.tooltipImage.style.visibility="visible";this.tooltip.style.width=l+"px";this.tooltipTitles&&null!=f&&0<f.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,f),l=this.tooltipTitle.offsetHeight+10,g+=l,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-l+"px":(g-=6,this.tooltipTitle.style.top=g-l+"px")):null!=this.tooltipTitle&&
-null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=g+"px";var l=-Math.round(k.x-this.tooltipBorder),k=-Math.round(k.y-this.tooltipBorder),m=document.body,p=document.documentElement,n=this.getTooltipOffset(),q=this.container.clientWidth+this.editorUi.splitSize+3+this.editorUi.container.offsetLeft+n.x,m=Math.min(Math.max(m.clientHeight||0,p.clientHeight)-g-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+a.offsetTop-this.container.scrollTop-
-g/2+16))+n.y;mxClient.IS_SVG?0!=l||0!=k?this.graph2.view.canvas.setAttribute("transform","translate("+l+","+k+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=l+"px",this.graph2.view.drawPane.style.top=k+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=q+"px";this.tooltip.style.top=m+"px";this.tooltipImage.style.left=q-13+"px";this.tooltipImage.style.top=m+g/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?k():this.thread=
-window.setTimeout(k,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.tooltipImage.style.visibility="hidden",this.currentElt=null)};Sidebar.prototype.addDataEntry=function(a,c,d,b,f){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(f,c,d,b)}))};
+null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=g+"px";var l=-Math.round(h.x-this.tooltipBorder),h=-Math.round(h.y-this.tooltipBorder),m=document.body,p=document.documentElement,n=this.getTooltipOffset(),q=this.container.clientWidth+this.editorUi.splitSize+3+this.editorUi.container.offsetLeft+n.x,m=Math.min(Math.max(m.clientHeight||0,p.clientHeight)-g-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+a.offsetTop-this.container.scrollTop-
+g/2+16))+n.y;mxClient.IS_SVG?0!=l||0!=h?this.graph2.view.canvas.setAttribute("transform","translate("+l+","+h+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=l+"px",this.graph2.view.drawPane.style.top=h+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=q+"px";this.tooltip.style.top=m+"px";this.tooltipImage.style.left=q-13+"px";this.tooltipImage.style.top=m+g/2-13+"px"});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.tooltipImage.style.visibility="hidden",this.currentElt=null)};Sidebar.prototype.addDataEntry=function(a,c,d,b,f){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(f,c,d,b)}))};
Sidebar.prototype.addEntry=function(a,c){if(null!=this.taglist&&null!=a&&0<a.length)for(var d=a.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),b=mxUtils.bind(this,function(a){if(1<a.length){var b=this.taglist[a];"object"!==typeof b&&(b={entries:[],dict:new mxDictionary},this.taglist[a]=b);null==b.dict.get(c)&&(b.dict.put(c,c),b.entries.push(c))}}),f=0;f<d.length;f++){b(d[f]);var e=d[f].replace(/\.*\d*$/,"");e!=d[f]&&b(e)}return c};
-Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var k=(d+1)*c;a=[];for(var g=0,h=0;h<e.length;h++)if(0<e[h].length){var l=this.taglist[e[h]],m=new mxDictionary;if(null!=l){var p=l.entries;a=[];for(var n=0;n<p.length;n++)if(l=p[n],0==g==(null==f.get(l))&&(m.put(l,l),a.push(l),h==e.length-1&&a.length==k)){b(a.slice(d*c,k),k,!0,e);return}}else a=[];f=m;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
+Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var h=(d+1)*c;a=[];for(var g=0,k=0;k<e.length;k++)if(0<e[k].length){var l=this.taglist[e[k]],m=new mxDictionary;if(null!=l){var p=l.entries;a=[];for(var n=0;n<p.length;n++)if(l=p[n],0==g==(null==f.get(l))&&(m.put(l,l),a.push(l),k==e.length-1&&a.length==h)){b(a.slice(d*c,h),h,!0,e);return}}else a=[];f=m;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var c=[],d={},b=0;b<a.length;b++)null==d[a[b]]&&(d[a[b]]="1",c.push(a[b]));return c.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,c){var d=a.clone();null!=c&&(d.value=c);return d};
Sidebar.prototype.addSearchPalette=function(a){var c=document.createElement("div");c.style.visibility="hidden";this.container.appendChild(c);var d=document.createElement("div");d.className="geSidebar";d.style.boxSizing="border-box";d.style.overflow="hidden";d.style.width="100%";d.style.padding="8px";d.style.paddingTop="14px";d.style.paddingBottom="0px";a||(d.style.display="none");var b=document.createElement("div");b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.paddingBottom="8px";
b.style.cursor="default";var f=document.createElement("input");f.setAttribute("placeholder",mxResources.get("searchShapes"));f.setAttribute("type","text");f.style.fontSize="12px";f.style.overflow="hidden";f.style.boxSizing="border-box";f.style.border="solid 1px #d5d5d5";f.style.borderRadius="4px";f.style.width="100%";f.style.outline="none";f.style.padding="6px";b.appendChild(f);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",mxResources.get("search"));
-e.style.position="relative";e.style.left="-18px";mxClient.IS_QUIRKS?(f.style.height="28px",e.style.top="-4px"):e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var k;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),h=mxUtils.button(mxResources.get("moreResults"),function(){k()});h.style.display="none";h.style.lineHeight="normal";h.style.marginTop="4px";h.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom="8px";g.appendChild(h);
-d.appendChild(g);var l="",m=!1,p=!1,n=0,q={},t=12,r=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),h.style.display="none",l=f.value="",r());f.focus()});k=mxUtils.bind(this,function(){t=4*Math.max(1,
-Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(r(),l=f.value,q={},p=!1,n=0),!m&&!p)){h.setAttribute("disabled","true");h.style.display="";h.style.cursor="wait";h.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;g.parentNode.removeChild(g);this.insertSearchHint(d,l,t,n,b,c,e,
-f);for(c=0;c<b.length;c++)f=b[c](),null==q[f.innerHTML]&&(q[f.innerHTML]="1",d.appendChild(b[c]()));e?(h.removeAttribute("disabled"),h.innerHTML=mxResources.get("moreResults")):(h.innerHTML=mxResources.get("reset"),h.style.display="none",p=!0);h.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){h.style.cursor=""}))}}else r(),l=f.value="",q={},h.style.display="none",p=!1,f.focus()});mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));
-mxEvent.addListener(f,"focus",function(){f.style.paddingRight=""});mxEvent.addListener(f,"blur",function(){f.style.paddingRight="20px"});f.style.paddingRight="20px";mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(p=!0,h.style.display="none"):f.value!=l?(h.style.display=
-"none",p=!1):m||(h.style.display=p?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
-Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,k,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
+e.style.position="relative";e.style.left="-18px";mxClient.IS_QUIRKS?(f.style.height="28px",e.style.top="-4px"):e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var h;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),k=mxUtils.button(mxResources.get("moreResults"),function(){h()});k.style.display="none";k.style.lineHeight="normal";k.style.marginTop="4px";k.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom="8px";g.appendChild(k);
+d.appendChild(g);var l="",m=!1,p=!1,n=0,q={},t=12,r=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),k.style.display="none",l=f.value="",r());f.focus()});h=mxUtils.bind(this,function(){t=4*Math.max(1,
+Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(r(),l=f.value,q={},p=!1,n=0),!m&&!p)){k.setAttribute("disabled","true");k.style.display="";k.style.cursor="wait";k.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;g.parentNode.removeChild(g);this.insertSearchHint(d,l,t,n,b,c,e,
+f);for(c=0;c<b.length;c++)f=b[c](),null==q[f.innerHTML]&&(q[f.innerHTML]="1",d.appendChild(b[c]()));e?(k.removeAttribute("disabled"),k.innerHTML=mxResources.get("moreResults")):(k.innerHTML=mxResources.get("reset"),k.style.display="none",p=!0);k.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){k.style.cursor=""}))}}else r(),l=f.value="",q={},k.style.display="none",p=!1,f.focus()});mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));
+mxEvent.addListener(f,"focus",function(){f.style.paddingRight=""});mxEvent.addListener(f,"blur",function(){f.style.paddingRight="20px"});f.style.paddingRight="20px";mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(p=!0,k.style.display="none"):f.value!=l?(k.style.display=
+"none",p=!1):m||(k.style.display=p?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
+Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,h,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
Sidebar.prototype.addGeneralPalette=function(a){var c=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",40,20,"Text","Text",null,null,"text textbox textarea label"),
this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",
80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;",120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;",
@@ -2305,96 +2305,96 @@ null,"bpmn send task"),this.createVertexTemplateEntry("shape=message;whiteSpace=
this.createEdgeTemplateEntry("startArrow=dash;startSize=8;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Default Flow",null,"bpmn default flow"),this.createEdgeTemplateEntry("startArrow=diamondThin;startFill=0;startSize=14;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Conditional Flow",null,"bpmn conditional flow"),this.createEdgeTemplateEntry("startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;",100,0,"","Message Flow 1",null,"bpmn message flow"),
this.addEntry("bpmn message flow",function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;b.geometry.offset=new mxPoint(-10,-7);a.insert(b);return d.createEdgeTemplateFromCells([a],
100,0,"Message Flow 2")}),this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"bpmn link")];this.addPaletteFunctions("bpmn","BPMN "+mxResources.get("general"),!1,b)};Sidebar.prototype.createTitle=function(a){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");c.setAttribute("title",mxResources.get("sidebarTooltip"));c.className="geTitle";mxUtils.write(c,a);return c};
-Sidebar.prototype.createThumb=function(a,c,d,b,f,e,k,g,h){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));if(this.graph.dialect!=mxConstants.DIALECT_SVG||
+Sidebar.prototype.createThumb=function(a,c,d,b,f,e,h,g,k){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));if(this.graph.dialect!=mxConstants.DIALECT_SVG||
mxClient.NO_FO){if(g=this.graph.container.cloneNode(!1),g.innerHTML=this.graph.container.innerHTML,mxClient.IS_QUIRKS||8==document.documentMode)g.firstChild.style.overflow="visible"}else g=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();mxClient.NO_FO=e;mxClient.IS_IE6&&(b.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")");g.style.position="relative";g.style.overflow="hidden";g.style.cursor="move";g.style.left=this.thumbBorder+"px";g.style.top=
-this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);this.sidebarTitles&&null!=f&&0!=k&&(b.style.height=this.thumbHeight+(mxClient.IS_QUIRKS?2*this.thumbPadding+2:0)+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),
+this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);this.sidebarTitles&&null!=f&&0!=h&&(b.style.height=this.thumbHeight+(mxClient.IS_QUIRKS?2*this.thumbPadding+2:0)+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),
c.style.paddingTop="4px",mxUtils.write(c,f),b.appendChild(c));return a};
-Sidebar.prototype.createItem=function(a,c,d,b,f,e,k){var g=document.createElement("a");g.setAttribute("href","javascript:void(0);");g.className="geItem";g.style.overflow="hidden";var h=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;g.style.width=this.thumbWidth+h+"px";g.style.height=this.thumbHeight+h+"px";g.style.padding=this.thumbPadding+"px";mxClient.IS_IE6&&(g.style.border="none");mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});this.createThumb(a,this.thumbWidth,this.thumbHeight,
-g,c,d,b,f,e);var l=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(g,this.createDropHandler(a,!0,k,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(g,this.createDropHandler(a,!1,k,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a));mxClient.IS_IOS||mxEvent.addGestureListeners(g,null,mxUtils.bind(this,
+Sidebar.prototype.createItem=function(a,c,d,b,f,e,h){var g=document.createElement("a");g.setAttribute("href","javascript:void(0);");g.className="geItem";g.style.overflow="hidden";var k=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;g.style.width=this.thumbWidth+k+"px";g.style.height=this.thumbHeight+k+"px";g.style.padding=this.thumbPadding+"px";mxClient.IS_IE6&&(g.style.border="none");mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});this.createThumb(a,this.thumbWidth,this.thumbHeight,
+g,c,d,b,f,e);var l=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(g,this.createDropHandler(a,!0,h,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(g,this.createDropHandler(a,!1,h,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a));mxClient.IS_IOS||mxEvent.addGestureListeners(g,null,mxUtils.bind(this,
function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(g,a,l.width,l.height,c,d)}));return g};
-Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),k="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".split(" "),g=0;g<c.length;g++){var h=c[g];if(d.getModel().isVertex(h)==d.getModel().isVertex(a)||
-d.getModel().isEdge(h)==d.getModel().isEdge(a)){var l=d.view.getState(h),m=null!=l?l.style:d.getCellStyle(c[g]);d.getModel().setStyle(h,e);if(null!=l&&"1"==mxUtils.getValue(l.style,"composite","0"))for(var p=d.model.getChildCount(h);0<=p;p--)d.model.remove(d.model.getChildAt(h,p));if(null!=m)for("umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[h]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],[h])),
-p=0;p<k.length;p++){var n=m[k[p]];null!=n&&d.setCellStyles(k[p],n,[h])}f.push(h)}}}finally{d.model.endUpdate()}return f};
-Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,k,g,h){if(f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();var l=null==k||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(k,a,e),m=null;null==k||l||(k=null);if(!f.isCellLocked(k||f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);h=Math.round(h);if(c&&f.isSplitTarget(k,a,e)){var p=f.cloneCells(a);f.splitEdge(k,p,null,g-b.width/2,h-b.height/2);m=p}else 0<a.length&&
-(m=f.importCells(a,g,h,k));if(null!=f.layoutManager){var n=f.layoutManager.getLayout(k);if(null!=n){var q=f.view.scale,t=f.view.translate,r=(g+t.x)*q,w=(h+t.y)*q;for(k=0;k<m.length;k++)n.moveCell(m[k],r,w)}}d&&f.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m))}}mxEvent.consume(e)}})};
+Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),h="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout recursiveResize container collapsible connectable".split(" "),g=0;g<c.length;g++){var k=c[g];if(d.getModel().isVertex(k)==d.getModel().isVertex(a)||
+d.getModel().isEdge(k)==d.getModel().isEdge(a)){var l=d.view.getState(k),m=null!=l?l.style:d.getCellStyle(c[g]);d.getModel().setStyle(k,e);if(null!=l&&"1"==mxUtils.getValue(l.style,"composite","0"))for(var p=d.model.getChildCount(k);0<=p;p--)d.model.remove(d.model.getChildAt(k,p));if(null!=m)for("umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[k]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],[k])),
+p=0;p<h.length;p++){var n=m[h[p]];null!=n&&d.setCellStyles(h[p],n,[k])}f.push(k)}}}finally{d.model.endUpdate()}return f};
+Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,h,g,k){if(f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();var l=null==h||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(h,a,e),m=null;null==h||l||(h=null);if(!f.isCellLocked(h||f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var p=f.cloneCells(a);f.splitEdge(h,p,null,g-b.width/2,k-b.height/2);m=p}else 0<a.length&&
+(m=f.importCells(a,g,k,h));if(null!=f.layoutManager){var n=f.layoutManager.getLayout(h);if(null!=n){var q=f.view.scale,t=f.view.translate,r=(g+t.x)*q,w=(k+t.y)*q;for(h=0;h<m.length;h++)n.moveCell(m[h],r,w)}}d&&f.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m))}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.style.border=this.dragPreviewBorder;d.style.width=a+"px";d.style.height=c+"px";return d};
-Sidebar.prototype.dropAndConnect=function(a,c,d,b){var f=this.getDropAndConnectGeometry(a,c[b],d,c),e=[];if(null!=f){var k=this.editorUi.editor.graph;k.model.beginUpdate();try{var g=k.getCellGeometry(a),h=k.getCellGeometry(c[b]),l=k.model.getParent(a),m=!0;if(null!=k.layoutManager){var p=k.layoutManager.getLayout(l);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,e=k.view.getState(l),null!=e)){var n=new mxPoint(e.x/k.view.scale-k.view.translate.x,e.y/k.view.scale-k.view.translate.y);f.x+=n.x;f.y+=
-n.y;var q=f.getTerminalPoint(!1);null!=q&&(q.x+=n.x,q.y+=n.y)}}var t=h.x,r=h.y;k.model.isEdge(c[b])&&(r=t=0);var w=k.model.isEdge(a)||null!=g&&!g.relative&&m,e=c=k.importCells(c,f.x-(w?t:0),f.y-(w?r:0),w?l:null);if(k.model.isEdge(a))k.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(k.model.isEdge(c[b])){k.model.setTerminal(c[b],a,!0);var v=k.getCellGeometry(c[b]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(w&&k.model.isVertex(l)){var u=
-k.view.getState(l),n=u.cell!=k.view.currentRoot?new mxPoint(u.x/k.view.scale-k.view.translate.x,u.y/k.view.scale-k.view.translate.y):new mxPoint(0,0);k.cellsMoved(c,n.x,n.y,null,null,!0)}}else h=k.getCellGeometry(c[b]),t=f.x-Math.round(h.x),r=f.y-Math.round(h.y),f.x=Math.round(h.x),f.y=Math.round(h.y),k.model.setGeometry(c[b],f),k.cellsMoved(c,t,r,null,null,!0),e=c.slice(),c.push(k.insertEdge(null,null,"",a,c[b],k.createCurrentEdgeStyle()));k.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{k.model.endUpdate()}}return e};
-Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,k=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
+Sidebar.prototype.dropAndConnect=function(a,c,d,b){var f=this.getDropAndConnectGeometry(a,c[b],d,c),e=[];if(null!=f){var h=this.editorUi.editor.graph;h.model.beginUpdate();try{var g=h.getCellGeometry(a),k=h.getCellGeometry(c[b]),l=h.model.getParent(a),m=!0;if(null!=h.layoutManager){var p=h.layoutManager.getLayout(l);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,e=h.view.getState(l),null!=e)){var n=new mxPoint(e.x/h.view.scale-h.view.translate.x,e.y/h.view.scale-h.view.translate.y);f.x+=n.x;f.y+=
+n.y;var q=f.getTerminalPoint(!1);null!=q&&(q.x+=n.x,q.y+=n.y)}}var t=k.x,r=k.y;h.model.isEdge(c[b])&&(r=t=0);var w=h.model.isEdge(a)||null!=g&&!g.relative&&m,e=c=h.importCells(c,f.x-(w?t:0),f.y-(w?r:0),w?l:null);if(h.model.isEdge(a))h.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(h.model.isEdge(c[b])){h.model.setTerminal(c[b],a,!0);var v=h.getCellGeometry(c[b]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(w&&h.model.isVertex(l)){var u=
+h.view.getState(l),n=u.cell!=h.view.currentRoot?new mxPoint(u.x/h.view.scale-h.view.translate.x,u.y/h.view.scale-h.view.translate.y):new mxPoint(0,0);h.cellsMoved(c,n.x,n.y,null,null,!0)}}else k=h.getCellGeometry(c[b]),t=f.x-Math.round(k.x),r=f.y-Math.round(k.y),f.x=Math.round(k.x),f.y=Math.round(k.y),h.model.setGeometry(c[b],f),h.cellsMoved(c,t,r,null,null,!0),e=c.slice(),c.push(h.insertEdge(null,null,"",a,c[b],h.createCurrentEdgeStyle()));h.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{h.model.endUpdate()}}return e};
+Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,h=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
-b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!k&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
+b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!h&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mxConstants.DIRECTION_WEST&&(b.x=b.x-g.width/2-b.width/2-e),f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=c.getTerminal(!1)&&(g=f.getCellGeometry(c.getTerminal(!1)),null!=g&&(d==mxConstants.DIRECTION_NORTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()+g.height/2):d==mxConstants.DIRECTION_EAST?(b.x-=g.getCenterX()-g.width/2,b.y-=g.getCenterY()):d==mxConstants.DIRECTION_SOUTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()-g.height/
2):d==mxConstants.DIRECTION_WEST&&(b.x-=g.getCenterX()+g.width/2,b.y-=g.getCenterY()))))));return b};
Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(c=document.createElement(mxClient.VML_PREFIX+":image"),c.setAttribute("src",a.src),c.style.borderStyle="none"):(c=document.createElement("div"),c.style.backgroundImage="url("+a.src+")",c.style.backgroundPosition="center",c.style.backgroundRepeat="no-repeat"),c.style.width=a.width+4+"px",c.style.height=a.height+4+"px",c.style.display=mxClient.IS_QUIRKS?
-"inline":"inline-block"):(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 k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),E=d):mxUtils.setOpacity(d,d==C?30:20));return c}for(var g=this.editorUi,h=g.editor.graph,l=null,m=null,p=this,n=0;n<b.length&&(null==m&&this.editorUi.editor.graph.model.isVertex(b[n])?
-m=n:null==l&&this.editorUi.editor.graph.model.isEdge(b[n])&&null==this.editorUi.editor.graph.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=v&&E==C){var k=a.isCellSelected(v.cell)?a.getSelectionCells():[v.cell],k=this.updateShapes(a.model.isEdge(v.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=b&&null!=E&&null!=
-r&&E!=C?(k=a.model.isEdge(r.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(r.cell,b,I,k))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(a,b){q.isActive()&&q.reset()});var t=q.mouseDown;q.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),t.apply(this,
-arguments))};var r=null,w=null,v=null,u=!1,z=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),D=e(this.triangleDown,mxResources.get("connect")),A=e(this.triangleLeft,mxResources.get("connect")),C=e(this.refreshTarget,mxResources.get("replace")),B=null,L=e(this.roundDrop),K=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,E=null,J=q.createPreviewElement;q.createPreviewElement=function(a){var b=J.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
+"inline":"inline-block"):(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),E=d):mxUtils.setOpacity(d,d==D?30:20));return c}for(var g=this.editorUi,k=g.editor.graph,l=null,m=null,p=this,n=0;n<b.length&&(null==m&&this.editorUi.editor.graph.model.isVertex(b[n])?
+m=n:null==l&&this.editorUi.editor.graph.model.isEdge(b[n])&&null==this.editorUi.editor.graph.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=v&&E==D){var h=a.isCellSelected(v.cell)?a.getSelectionCells():[v.cell],h=this.updateShapes(a.model.isEdge(v.cell)?b[0]:b[m],h);a.setSelectionCells(h)}else null!=b&&null!=E&&null!=
+r&&E!=D?(h=a.model.isEdge(r.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(r.cell,b,I,h))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(a,b){q.isActive()&&q.reset()});var t=q.mouseDown;q.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(k.stopEditing(),t.apply(this,
+arguments))};var r=null,w=null,v=null,u=!1,z=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),C=e(this.triangleDown,mxResources.get("connect")),A=e(this.triangleLeft,mxResources.get("connect")),D=e(this.refreshTarget,mxResources.get("replace")),B=null,L=e(this.roundDrop),K=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,E=null,J=q.createPreviewElement;q.createPreviewElement=function(a){var b=J.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var N=q.dragEnter;q.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");N.apply(this,arguments)};var Q=q.dragExit;q.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");Q.apply(this,arguments)};q.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=E&&this.currentGuide.hide();if(null!=this.previewElement){var d=
-a.view;if(null!=v&&E==C)this.previewElement.style.display=a.model.isEdge(v.cell)?"none":"",this.previewElement.style.left=v.x+"px",this.previewElement.style.top=v.y+"px",this.previewElement.style.width=v.width+"px",this.previewElement.style.height=v.height+"px";else if(null!=r&&null!=E){var e=a.model.isEdge(r.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(r.cell,b[e],I,b),k=a.model.isEdge(r.cell)?null:a.getCellGeometry(r.cell),h=a.getCellGeometry(b[e]),y=a.model.getParent(r.cell),H=d.translate.x*
-d.scale,G=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(y)&&y!=d.currentRoot&&(G=d.getState(y),H=G.x,G=G.y);k=h.x;h=h.y;a.model.isEdge(b[e])&&(h=k=0);this.previewElement.style.left=(g.x-k)*d.scale+H+"px";this.previewElement.style.top=(g.y-h)*d.scale+G+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=q.currentHighlight.state&&a.model.isEdge(q.currentHighlight.state.cell)?
-(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),F=0,H=null,G=this.editorUi.editor.graph.getCellStyle(b[0]);q.getDropTarget=mxUtils.bind(this,function(a,
-c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=f&&!this.graph.isCellConnectable(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 h=a.view.getState(f),g=E=null;H!=h?(H=h,O=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=h&&(this.updateThread=window.setTimeout(function(){null==E&&(H=h,q.getDropTarget(a,c,d,e))},this.dropTargetDelay+
-10))):F=(new Date).getTime()-O;if(2500>F&&null!=h&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(G,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(G,mxConstants.STYLE_SHAPE)||
-1500<F||a.model.isEdge(h.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){v=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);C.style.left=Math.floor(l.x)+"px";C.style.top=Math.floor(l.y)+"px";null==B&&(a.container.appendChild(C),B=C.parentNode);k(c,d,l,C)}else null==
-v||!mxUtils.contains(v,c,d)||1500<F&&!mxEvent.isShiftDown(e)?(v=null,null!=B&&(C.parentNode.removeChild(C),B=null)):null!=v&&null!=B&&(l=a.model.isEdge(v.cell)?a.view.getPoint(v):new mxPoint(v.getCenterX(),v.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(c,d,l,C));if(u&&null!=r&&!mxEvent.isAltDown(e)&&null==E){g=mxRectangle.fromRectangle(r);if(a.model.isEdge(r.cell)){var y=r.absolutePoints;null!=
-L.parentNode&&(l=y[0],g.add(k(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=K.parentNode&&(y=y[y.length-1],g.add(k(c,d,new mxRectangle(y.x-this.roundDrop.width/2,y.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)))}else l=mxRectangle.fromRectangle(r),null!=r.shape&&null!=r.shape.boundingBox&&(l=mxRectangle.fromRectangle(r.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),
-y=this.graph.selectionCellsHandler.getHandler(r.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),g.add(k(c,d,new mxRectangle(r.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),
-z)),g.add(k(c,d,new mxRectangle(l.x+l.width,r.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),g.add(k(c,d,new mxRectangle(r.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),D)),g.add(k(c,d,new mxRectangle(l.x-this.triangleLeft.width,r.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),A));null!=g&&g.grow(10)}I=mxConstants.DIRECTION_NORTH;E==x?I=mxConstants.DIRECTION_EAST:
-E==D||E==K?I=mxConstants.DIRECTION_SOUTH:E==A&&(I=mxConstants.DIRECTION_WEST);null!=v&&E==C&&(h=v);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=r&&5E3<=F||r!=h&&(null==g||!mxUtils.contains(g,c,d)||500<F&&null==E&&l))if(u=!1,r=5E3>F&&F>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=r&&l){g=[L,K,z,x,D,A];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(y=h.absolutePoints,
-null!=y&&(l=y[0],y=y[y.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",K.style.left=Math.floor(y.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(y.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(K))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&
-(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),y=this.graph.selectionCellsHandler.getHandler(h.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),
-z.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",z.style.top=Math.floor(l.y-this.triangleUp.height)+"px",x.style.left=Math.floor(l.x+l.width)+"px",x.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",D.style.left=z.style.left,D.style.top=Math.floor(l.y+l.height)+"px",A.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",A.style.top=x.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(z),a.container.appendChild(D)),a.container.appendChild(x),
-a.container.appendChild(A));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));u=!0}else for(g=[L,K,z,x,D,A],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);u||null==w||w.setHandlesVisible(!0);f=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=v&&E==C?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=E||!a.isSplitTarget(f,b,e))){for(;null!=f&&!a.isValidDropTarget(f,
-b,e)&&g.isVertex(g.getParent(f));)f=g.getParent(f);if(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f))f=null}return f});q.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,K,C,z,x,D,A],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=r&&null!=w&&w.reset();E=B=v=r=w=null};return q};
+a.view;if(null!=v&&E==D)this.previewElement.style.display=a.model.isEdge(v.cell)?"none":"",this.previewElement.style.left=v.x+"px",this.previewElement.style.top=v.y+"px",this.previewElement.style.width=v.width+"px",this.previewElement.style.height=v.height+"px";else if(null!=r&&null!=E){var e=a.model.isEdge(r.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(r.cell,b[e],I,b),h=a.model.isEdge(r.cell)?null:a.getCellGeometry(r.cell),k=a.getCellGeometry(b[e]),y=a.model.getParent(r.cell),G=d.translate.x*
+d.scale,H=d.translate.y*d.scale;null!=h&&!h.relative&&a.model.isVertex(y)&&y!=d.currentRoot&&(H=d.getState(y),G=H.x,H=H.y);h=k.x;k=k.y;a.model.isEdge(b[e])&&(k=h=0);this.previewElement.style.left=(g.x-h)*d.scale+G+"px";this.previewElement.style.top=(g.y-k)*d.scale+H+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=q.currentHighlight.state&&a.model.isEdge(q.currentHighlight.state.cell)?
+(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),F=0,G=null,H=this.editorUi.editor.graph.getCellStyle(b[0]);q.getDropTarget=mxUtils.bind(this,function(a,
+c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=f&&!this.graph.isCellConnectable(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=E=null;G!=k?(G=k,O=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=k&&(this.updateThread=window.setTimeout(function(){null==E&&(G=k,q.getDropTarget(a,c,d,e))},this.dropTargetDelay+
+10))):F=(new Date).getTime()-O;if(2500>F&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(H,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(H,mxConstants.STYLE_SHAPE)||
+1500<F||a.model.isEdge(k.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(k.cell)&&null!=m||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){v=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);D.style.left=Math.floor(l.x)+"px";D.style.top=Math.floor(l.y)+"px";null==B&&(a.container.appendChild(D),B=D.parentNode);h(c,d,l,D)}else null==
+v||!mxUtils.contains(v,c,d)||1500<F&&!mxEvent.isShiftDown(e)?(v=null,null!=B&&(D.parentNode.removeChild(D),B=null)):null!=v&&null!=B&&(l=a.model.isEdge(v.cell)?a.view.getPoint(v):new mxPoint(v.getCenterX(),v.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),h(c,d,l,D));if(u&&null!=r&&!mxEvent.isAltDown(e)&&null==E){g=mxRectangle.fromRectangle(r);if(a.model.isEdge(r.cell)){var y=r.absolutePoints;null!=
+L.parentNode&&(l=y[0],g.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=K.parentNode&&(y=y[y.length-1],g.add(h(c,d,new mxRectangle(y.x-this.roundDrop.width/2,y.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)))}else l=mxRectangle.fromRectangle(r),null!=r.shape&&null!=r.shape.boundingBox&&(l=mxRectangle.fromRectangle(r.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),
+y=this.graph.selectionCellsHandler.getHandler(r.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),g.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),
+z)),g.add(h(c,d,new mxRectangle(l.x+l.width,r.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),g.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),C)),g.add(h(c,d,new mxRectangle(l.x-this.triangleLeft.width,r.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),A));null!=g&&g.grow(10)}I=mxConstants.DIRECTION_NORTH;E==x?I=mxConstants.DIRECTION_EAST:
+E==C||E==K?I=mxConstants.DIRECTION_SOUTH:E==A&&(I=mxConstants.DIRECTION_WEST);null!=v&&E==D&&(k=v);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=r&&5E3<=F||r!=k&&(null==g||!mxUtils.contains(g,c,d)||500<F&&null==E&&l))if(u=!1,r=5E3>F&&F>this.dropTargetDelay||a.model.isEdge(f)?k:null,null!=r&&l){g=[L,K,z,x,C,A];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(y=k.absolutePoints,
+null!=y&&(l=y[0],y=y[y.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",K.style.left=Math.floor(y.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(y.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(K))):(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),y=this.graph.selectionCellsHandler.getHandler(k.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),
+z.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",z.style.top=Math.floor(l.y-this.triangleUp.height)+"px",x.style.left=Math.floor(l.x+l.width)+"px",x.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",C.style.left=z.style.left,C.style.top=Math.floor(l.y+l.height)+"px",A.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",A.style.top=x.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(z),a.container.appendChild(C)),a.container.appendChild(x),
+a.container.appendChild(A));null!=k&&(w=a.selectionCellsHandler.getHandler(k.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));u=!0}else for(g=[L,K,z,x,C,A],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);u||null==w||w.setHandlesVisible(!0);f=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=v&&E==D?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=E||!a.isSplitTarget(f,b,e))){for(;null!=f&&!a.isValidDropTarget(f,
+b,e)&&g.isVertex(g.getParent(f));)f=g.getParent(f);if(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f))f=null}return f});q.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,K,D,z,x,C,A],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=r&&null!=w&&w.reset();E=B=v=r=w=null};return q};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;if(mxEvent.isAltDown(d)){if(1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:mxConstants.DIRECTION_SOUTH,
c)),b.scrollCellToVisible(b.getSelectionCell()))}}else mxEvent.isShiftDown(d)&&!b.isSelectionEmpty()?(this.updateShapes(a[0],b.getSelectionCells()),b.scrollCellToVisible(b.getSelectionCell())):(a=b.getFreeInsertPoint(),c.drop(b,d,null,a.x,a.y),null!=this.editorUi.hoverIcons&&(mxEvent.isTouchEvent(d)||mxEvent.isPenEvent(d))&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell())))};
-Sidebar.prototype.addClickHandler=function(a,c,d){var b=this.editorUi.editor.graph,f=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(a){e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))});c.mouseUp=mxUtils.bind(this,function(k){if(!mxEvent.isPopupTrigger(k)&&null==this.currentGraph&&null!=e){var g=b.tolerance;Math.abs(e.x-mxEvent.getClientX(k))<=g&&Math.abs(e.y-mxEvent.getClientY(k))<=g&&this.itemClicked(d,c,k,a)}f.apply(c,arguments);e=null;this.currentElt=a})};
-Sidebar.prototype.createVertexTemplateEntry=function(a,c,d,b,f,e,k,g){g=null!=g&&0<g.length?g:f.toLowerCase();return this.addEntry(g,mxUtils.bind(this,function(){return this.createVertexTemplate(a,c,d,b,f,e,k)}))};Sidebar.prototype.createVertexTemplate=function(a,c,d,b,f,e,k,g){a=[new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,c,d,f,e,k,g)};
-Sidebar.prototype.createVertexTemplateFromData=function(a,c,d,b,f,e,k){a=mxUtils.parseXml(this.graph.decompress(a));var g=new mxCodec(a),h=new mxGraphModel;g.decode(a.documentElement,h);a=this.graph.cloneCells(h.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,c,d,b,f,e,k)};Sidebar.prototype.createVertexTemplateFromCells=function(a,c,d,b,f,e,k){return this.createItem(a,b,f,e,c,d,k)};
-Sidebar.prototype.createEdgeTemplateEntry=function(a,c,d,b,f,e,k,g){k=null!=k&&0<k.length?k:f.toLowerCase();return this.addEntry(k,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,c,d,b,f,e,g)}))};
-Sidebar.prototype.createEdgeTemplate=function(a,c,d,b,f,e,k){a=new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a);a.geometry.setTerminalPoint(new mxPoint(0,d),!0);a.geometry.setTerminalPoint(new mxPoint(c,0),!1);a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],c,d,f,e,k)};Sidebar.prototype.createEdgeTemplateFromCells=function(a,c,d,b,f,e){return this.createItem(a,b,f,!0,c,d,e)};
+Sidebar.prototype.addClickHandler=function(a,c,d){var b=this.editorUi.editor.graph,f=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(a){e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))});c.mouseUp=mxUtils.bind(this,function(h){if(!mxEvent.isPopupTrigger(h)&&null==this.currentGraph&&null!=e){var g=b.tolerance;Math.abs(e.x-mxEvent.getClientX(h))<=g&&Math.abs(e.y-mxEvent.getClientY(h))<=g&&this.itemClicked(d,c,h,a)}f.apply(c,arguments);e=null;this.currentElt=a})};
+Sidebar.prototype.createVertexTemplateEntry=function(a,c,d,b,f,e,h,g){g=null!=g&&0<g.length?g:f.toLowerCase();return this.addEntry(g,mxUtils.bind(this,function(){return this.createVertexTemplate(a,c,d,b,f,e,h)}))};Sidebar.prototype.createVertexTemplate=function(a,c,d,b,f,e,h,g){a=[new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,c,d,f,e,h,g)};
+Sidebar.prototype.createVertexTemplateFromData=function(a,c,d,b,f,e,h){a=mxUtils.parseXml(this.graph.decompress(a));var g=new mxCodec(a),k=new mxGraphModel;g.decode(a.documentElement,k);a=this.graph.cloneCells(k.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,c,d,b,f,e,h)};Sidebar.prototype.createVertexTemplateFromCells=function(a,c,d,b,f,e,h){return this.createItem(a,b,f,e,c,d,h)};
+Sidebar.prototype.createEdgeTemplateEntry=function(a,c,d,b,f,e,h,g){h=null!=h&&0<h.length?h:f.toLowerCase();return this.addEntry(h,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,c,d,b,f,e,g)}))};
+Sidebar.prototype.createEdgeTemplate=function(a,c,d,b,f,e,h){a=new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a);a.geometry.setTerminalPoint(new mxPoint(0,d),!0);a.geometry.setTerminalPoint(new mxPoint(c,0),!1);a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],c,d,f,e,h)};Sidebar.prototype.createEdgeTemplateFromCells=function(a,c,d,b,f,e){return this.createItem(a,b,f,!0,c,d,e)};
Sidebar.prototype.addPaletteFunctions=function(a,c,d,b){this.addPalette(a,c,d,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))};
Sidebar.prototype.addPalette=function(a,c,d,b){c=this.createTitle(c);this.container.appendChild(c);var f=document.createElement("div");f.className="geSidebar";mxClient.IS_POINTER&&(f.style.touchAction="none");d?(b(f),b=null):f.style.display="none";this.addFoldingHandler(c,f,b);d=document.createElement("div");d.appendChild(f);this.container.appendChild(d);null!=a&&(this.palettes[a]=[c,d]);return f};
Sidebar.prototype.addFoldingHandler=function(a,c,d){var b=!1;if(!mxClient.IS_IE||8<=document.documentMode)a.style.backgroundImage="none"==c.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(f){if("none"==c.style.display){if(b)c.style.display="block";else if(b=!0,null!=d){a.style.cursor="wait";var e=a.innerHTML;a.innerHTML=mxResources.get("loading")+
"...";window.setTimeout(function(){var b=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;d(c);mxClient.NO_FO=b;c.style.display="block";a.style.cursor="";a.innerHTML=e},0)}else c.style.display="block";a.style.backgroundImage="url('"+this.expandedImage+"')"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",c.style.display="none";mxEvent.consume(f)}))};
Sidebar.prototype.removePalette=function(a){var c=this.palettes[a];if(null!=c){this.palettes[a]=null;for(a=0;a<c.length;a++)this.container.removeChild(c[a]);return!0}return!1};
-Sidebar.prototype.addImagePalette=function(a,c,d,b,f,e,k){for(var g=[],h=0;h<f.length;h++)mxUtils.bind(this,function(a,c,e){if(null==e){e=a.lastIndexOf("/");var f=a.lastIndexOf(".");e=a.substring(0<=e?e+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}g.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+d+a+b,this.defaultImageWidth,this.defaultImageHeight,"",c,null!=c,null,this.filterTags(e)))})(f[h],null!=e?e[h]:null,null!=k?k[f[h]]:null);this.addPaletteFunctions(a,c,
+Sidebar.prototype.addImagePalette=function(a,c,d,b,f,e,h){for(var g=[],k=0;k<f.length;k++)mxUtils.bind(this,function(a,c,e){if(null==e){e=a.lastIndexOf("/");var f=a.lastIndexOf(".");e=a.substring(0<=e?e+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}g.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+d+a+b,this.defaultImageWidth,this.defaultImageHeight,"",c,null!=c,null,this.filterTags(e)))})(f[k],null!=e?e[k]:null,null!=h?h[f[k]]:null);this.addPaletteFunctions(a,c,
!1,g)};Sidebar.prototype.getTagsForStencil=function(a,c,d){a=a.split(".");for(var b=1;b<a.length;b++)a[b]=a[b].replace(/_/g," ");a.push(c.replace(/_/g," "));null!=d&&a.push(d);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,k,g,h){k=null!=k?k:1;if(this.addStencilsToIndex){var l=[];if(null!=h)for(var m=0;m<h.length;m++)l.push(h[m]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,h){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var m=null!=g?g[c]:null;null!=m&&d.push(m);l.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*k),Math.round(h*k),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,c,!1,l)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=h)for(var c=0;c<h.length;c++)h[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,h){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*k),Math.round(h*k),"",d.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,h,g,k){h=null!=h?h:1;if(this.addStencilsToIndex){var l=[];if(null!=k)for(var m=0;m<k.length;m++)l.push(k[m]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,k){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var m=null!=g?g[c]:null;null!=m&&d.push(m);l.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*h),Math.round(k*h),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,c,!1,l)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=k)for(var c=0;c<k.length;c++)k[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,k){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*h),Math.round(k*h),"",d.replace(/_/g," "),!0))}),!0)}))};
Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),
this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;
(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
Graph=function(a,c,d,b,f){mxGraph.call(this,a,c,d,b);this.themes=f||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;c=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=a.indexOf("/",c+2),0<c&&(this.domainUrl=a.substring(0,c)),c=a.lastIndexOf("/"),0<c&&(this.domainPathUrl=a.substring(0,c+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,k=null,g=null,h=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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(e=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())?h=mxEvent.LABEL_HANDLE:(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&null!=d.bends&&0<d.bends.length&&(h=d.getHandleForEvent(c))))}}}));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.isControlDown(b.getEvent())&&
-!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(d=this.tolerance,null!=e&&null!=g&&null!=k){if(c=g,Math.abs(e.x-b.getGraphX())>d||Math.abs(e.y-b.getGraphY())>d){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(k),p=this.view.getEdgeStyle(c);d=p==mxEdgeStyle.EntityRelation;l||h!=mxEvent.LABEL_HANDLE||(m=h);if(d&&0!=m&&m!=f.bends.length-1&&m!=mxEvent.LABEL_HANDLE)!d||
-null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState)d||m==mxEvent.LABEL_HANDLE||(d=c.absolutePoints,null!=d&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector)&&(m=h,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?
-m=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==p?mxEvent.VIRTUAL_HANDLE-m:m+1))),null==m&&(m=mxEvent.VIRTUAL_HANDLE)),f.start(b.getGraphX(),b.getGraphX(),m),h=e=k=g=null,l=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(m=new mxRectangle(b.getGraphX(),
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,h=null,g=null,k=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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(e=new mxPoint(c.getGraphX(),c.getGraphY()),l=this.isCellSelected(d.cell),g=d,h=c,null!=
+d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?k=mxEvent.LABEL_HANDLE:(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&null!=d.bends&&0<d.bends.length&&(k=d.getHandleForEvent(c))))}}}));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.isControlDown(b.getEvent())&&
+!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(d=this.tolerance,null!=e&&null!=g&&null!=h){if(c=g,Math.abs(e.x-b.getGraphX())>d||Math.abs(e.y-b.getGraphY())>d){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(h),p=this.view.getEdgeStyle(c);d=p==mxEdgeStyle.EntityRelation;l||k!=mxEvent.LABEL_HANDLE||(m=k);if(d&&0!=m&&m!=f.bends.length-1&&m!=mxEvent.LABEL_HANDLE)!d||
+null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState)d||m==mxEvent.LABEL_HANDLE||(d=c.absolutePoints,null!=d&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector)&&(m=k,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?
+m=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==p?mxEvent.VIRTUAL_HANDLE-m:m+1))),null==m&&(m=mxEvent.VIRTUAL_HANDLE)),f.start(b.getGraphX(),b.getGraphX(),m),k=e=h=g=null,l=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(m=new mxRectangle(b.getGraphX(),
b.getGraphY()),m.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))f="move";else if(mxUtils.contains(m,d[0].x,d[0].y)||mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)p=this.view.getEdgeStyle(c),f="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(p=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),
-p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}),mouseUp:mxUtils.bind(this,function(a,b){h=e=k=g=null})})}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);
+p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}),mouseUp:mxUtils.bind(this,function(a,b){k=e=h=g=null})})}this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),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=0;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(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=0;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var b=mxGraphHandler.prototype.getCells.apply(this,arguments),c=[],d=0;d<b.length;d++){var e=this.graph.view.getState(b[d]),e=null!=e?e.style:this.graph.getCellStyle(b[d]);
"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(b[d]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(b,e)&&c.push(e)):c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);
this.getRubberband=function(){return p};var n=(new Date).getTime(),q=0,t=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;t.apply(this,arguments);a!=this.currentState?(n=(new Date).getTime(),q=0):q=(new Date).getTime()-n};var r=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<q||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
"outlineConnect","1"))&&r.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var u=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
(u=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=u)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=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 z.apply(this,
arguments);b=b?a.sourceState.cell:a.getCell();if(null!=b){var c=this.getLinkForCell(b);null!=c&&(this.isPageLink(c)?this.pageLinkClicked(b,c):this.openLink(c))}};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 x=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
-this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return x.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),h=a+c,k=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var l=g.getChildCount(e),m=0;m<l;m++){var G=g.getChildAt(e,m),
-y=this.view.getState(G);if(null!=y&&this.isCellVisible(G)&&"1"!=mxUtils.getValue(y.style,"locked","0")){var p=mxUtils.getValue(y.style,mxConstants.STYLE_ROTATION)||0;0!=p&&(y=mxUtils.getBoundingBox(y,p));(g.isEdge(G)||g.isVertex(G))&&y.x>=a&&y.y+y.height<=k&&y.y>=b&&y.x+y.width<=h&&f.push(G);this.getAllCells(a,b,c,d,G,f)}}}return f};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:D.apply(this,
+this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return x.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,h=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var l=g.getChildCount(e),m=0;m<l;m++){var H=g.getChildAt(e,m),
+y=this.view.getState(H);if(null!=y&&this.isCellVisible(H)&&"1"!=mxUtils.getValue(y.style,"locked","0")){var p=mxUtils.getValue(y.style,mxConstants.STYLE_ROTATION)||0;0!=p&&(y=mxUtils.getBoundingBox(y,p));(g.isEdge(H)||g.isVertex(H))&&y.x>=a&&y.y+y.height<=h&&y.y>=b&&y.x+y.width<=k&&f.push(H);this.getAllCells(a,b,c,d,H,f)}}}return f};var C=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:C.apply(this,
arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var A=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();A=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)),p.start(c.x,c.y)):null!=A?this.addSelectionCells(A):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);A=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=
-function(a,b){return b&&a.view.graph.isCellSelected(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 C=this.updateMouseEvent;this.updateMouseEvent=function(a){a=C.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
+function(a,b){return b&&a.view.graph.isCellSelected(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 D=this.updateMouseEvent;this.updateMouseEvent=function(a){a=D.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
null);return a}}};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.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
Graph.createSvgImage=function(a,c,d){d=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+c+'px" version="1.1">'+d+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0)),a,c)};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.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);
Graph.prototype.transparentBackground=!0;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=(window!=window.top?document.referrer:document.location.toString()).split("#")[0];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,d){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,c=!0,e=null,k=mxUtils.bind(this,function(a){c=!0;e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){c=c&&null!=e&&Math.abs(e.x-mxEvent.getClientX(a))<b&&Math.abs(e.y-mxEvent.getClientY(a))<b}),h=mxUtils.bind(this,function(b){if(c)for(var e=mxEvent.getSource(b);null!=
-e&&e!=d.node;){if("a"==e.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,e,b);break}e=e.parentNode}});mxEvent.addGestureListeners(d.node,k,g,h);mxEvent.addListener(d.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,d){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,c=!0,e=null,h=mxUtils.bind(this,function(a){c=!0;e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){c=c&&null!=e&&Math.abs(e.x-mxEvent.getClientX(a))<b&&Math.abs(e.y-mxEvent.getClientY(a))<b}),k=mxUtils.bind(this,function(b){if(c)for(var e=mxEvent.getSource(b);null!=
+e&&e!=d.node;){if("a"==e.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,e,b);break}e=e.parentNode}});mxEvent.addGestureListeners(d.node,h,g,k);mxEvent.addListener(d.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
Graph.prototype.labelLinkClicked=function(a,c,d){c=c.getAttribute("href");if(null!=c&&!this.isPageLink(c)&&mxEvent.isLeftMouseButton(d)&&!mxEvent.isPopupTrigger(d)||mxEvent.isTouchEvent(d)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),a);mxEvent.consume(d)}};
Graph.prototype.openLink=function(a,c){var d=window;if("_self"==c&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var b=a.split("#")[1];window.location.hash=="#"+b&&(window.location.hash="");window.location.hash=b}else d=window.open(a,c);return d};Graph.prototype.isPageLink=function(a){return!1};
Graph.prototype.pageLinkClicked=function(a,c){this.fireEvent(new mxEventObject("pageLinkClicked","cell",a,"href",c))};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2410,29 +2410,29 @@ Graph.prototype.isSplitTarget=function(a,c,d){return!this.model.isEdge(c[0])&&!m
Graph.prototype.isLabelMovable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(c,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,d){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,k=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",h=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),q=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),r=d?0:a.getTimezoneOffset(),w={d:h,dd:k(h),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:k(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:k(n%12||12),H:n,HH:k(n),M:q,MM:k(q),s:t,ss:k(t),l:k(g,3),L:k(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<r?"-":"+")+k(100*Math.floor(Math.abs(r)/60)+Math.abs(r)%60,4),S:["th","st","nd","rd"][3<h%10?0:(10!=h%100-h%10)*h%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,h=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),q=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),r=d?0:a.getTimezoneOffset(),w={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:h(n%12||12),H:n,HH:h(n),M:q,MM:h(q),s:t,ss:h(t),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<r?"-":"+")+h(100*Math.floor(Math.abs(r)/60)+Math.abs(r)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var c=this.getModel(),d=c.getChildCount(c.root),b=0;b<d;b++)(function(b){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var f=document.createElement("input");f.style.display="inline-block";f.setAttribute("type","checkbox");c.isVisible(b)&&(f.setAttribute("checked","checked"),f.defaultChecked=
!0);d.appendChild(f);var g=b.value||mxResources.get("background")||"Background";d.setAttribute("title",g);mxUtils.write(d,g);a.appendChild(d);mxEvent.addListener(f,"click",function(){null!=f.getAttribute("checked")?f.removeAttribute("checked"):f.setAttribute("checked","checked");c.setVisible(b,f.checked)})})(c.getChildAt(c.root,b));return a};
-Graph.prototype.replacePlaceholders=function(a,c){for(var d=[],b=0;match=this.placeholderPattern.exec(c);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var e=null;if(match.index>b&&"%"==c.charAt(match.index-1))e=f.substring(1);else{var k=f.substring(1,f.length-1);if(0>k.indexOf("{"))for(var g=a;null==e&&null!=g;)null!=g.value&&"object"==typeof g.value&&(e=g.hasAttribute(k)?null!=g.getAttribute(k)?g.getAttribute(k):"":null),g=this.model.getParent(g);null==e&&(e=this.getGlobalVariable(k))}d.push(c.substring(b,
+Graph.prototype.replacePlaceholders=function(a,c){for(var d=[],b=0;match=this.placeholderPattern.exec(c);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var e=null;if(match.index>b&&"%"==c.charAt(match.index-1))e=f.substring(1);else{var h=f.substring(1,f.length-1);if(0>h.indexOf("{"))for(var g=a;null==e&&null!=g;)null!=g.value&&"object"==typeof g.value&&(e=g.hasAttribute(h)?null!=g.getAttribute(h)?g.getAttribute(h):"":null),g=this.model.getParent(g);null==e&&(e=this.getGlobalVariable(h))}d.push(c.substring(b,
match.index)+(null!=e?e:f));b=match.index+f.length}}d.push(c.substring(b));return d.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,c,d,b,f,e){e=e?e:!1;var k=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(k.x+=a.geometry.width/2,k.y-=d):c==mxConstants.DIRECTION_SOUTH?(k.x+=a.geometry.width/2,k.y+=a.geometry.height+d):(k.x=c==mxConstants.DIRECTION_WEST?k.x-d:k.x+(a.geometry.width+d),k.y+=a.geometry.height/2);d=this.view.getState(this.model.getParent(a));
-var g=this.view.scale,h=this.view.translate,l=h.x*g,h=h.y*g;this.model.isVertex(d.cell)&&(l=d.x,h=d.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(k.x+=a.parent.geometry.x,k.y+=a.parent.geometry.y);e=e||mxEvent.isControlDown(b)&&!f?null:this.getCellAt(l+k.x*g,h+k.y*g);this.model.isAncestor(e,a)&&(e=null);for(d=e;null!=d;){if(this.isCellLocked(d)){e=null;break}d=this.model.getParent(d)}null!=e&&(d=this.view.getState(a),g=this.view.getState(e),null!=d&&null!=g&&mxUtils.intersects(d,g)&&(e=
-null));if(f=!mxEvent.isShiftDown(b)||f)c==mxConstants.DIRECTION_NORTH?k.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?k.y+=a.geometry.height/2:k.x=c==mxConstants.DIRECTION_WEST?k.x-a.geometry.width/2:k.x+a.geometry.width/2;null==e||this.isCellConnectable(e)||(d=this.getModel().getParent(e),this.getModel().isVertex(d)&&this.isCellConnectable(d)&&(e=d));if(e==a||this.model.isEdge(e)||!this.isCellConnectable(e))e=null;d=[];this.model.beginUpdate();try{g=e;if(null==g&&f){for(var l=a,m=this.getCellGeometry(a);null!=
-m&&m.relative;)l=this.getModel().getParent(l),m=this.getCellGeometry(l);var p=this.view.getState(l),n=null!=p?p.style:this.getCellStyle(l);if(mxUtils.getValue(n,"part",!1)){var q=this.model.getParent(l);this.model.isVertex(q)&&(l=q)}g=this.duplicateCells([l],!1)[0];m=this.getCellGeometry(g);null!=m&&(m.x=k.x-m.width/2,m.y=k.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var t=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?
+Graph.prototype.connectVertex=function(a,c,d,b,f,e){e=e?e:!1;var h=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(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(h.x+=a.geometry.width/2,h.y-=d):c==mxConstants.DIRECTION_SOUTH?(h.x+=a.geometry.width/2,h.y+=a.geometry.height+d):(h.x=c==mxConstants.DIRECTION_WEST?h.x-d:h.x+(a.geometry.width+d),h.y+=a.geometry.height/2);d=this.view.getState(this.model.getParent(a));
+var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;this.model.isVertex(d.cell)&&(l=d.x,k=d.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(h.x+=a.parent.geometry.x,h.y+=a.parent.geometry.y);e=e||mxEvent.isControlDown(b)&&!f?null:this.getCellAt(l+h.x*g,k+h.y*g);this.model.isAncestor(e,a)&&(e=null);for(d=e;null!=d;){if(this.isCellLocked(d)){e=null;break}d=this.model.getParent(d)}null!=e&&(d=this.view.getState(a),g=this.view.getState(e),null!=d&&null!=g&&mxUtils.intersects(d,g)&&(e=
+null));if(f=!mxEvent.isShiftDown(b)||f)c==mxConstants.DIRECTION_NORTH?h.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?h.y+=a.geometry.height/2:h.x=c==mxConstants.DIRECTION_WEST?h.x-a.geometry.width/2:h.x+a.geometry.width/2;null==e||this.isCellConnectable(e)||(d=this.getModel().getParent(e),this.getModel().isVertex(d)&&this.isCellConnectable(d)&&(e=d));if(e==a||this.model.isEdge(e)||!this.isCellConnectable(e))e=null;d=[];this.model.beginUpdate();try{g=e;if(null==g&&f){for(var l=a,m=this.getCellGeometry(a);null!=
+m&&m.relative;)l=this.getModel().getParent(l),m=this.getCellGeometry(l);var p=this.view.getState(l),n=null!=p?p.style:this.getCellStyle(l);if(mxUtils.getValue(n,"part",!1)){var q=this.model.getParent(l);this.model.isVertex(q)&&(l=q)}g=this.duplicateCells([l],!1)[0];m=this.getCellGeometry(g);null!=m&&(m.x=h.x-m.width/2,m.y=h.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var t=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?
null:this.insertEdge(this.model.getParent(a),null,"",a,g,this.createCurrentEdgeStyle());if(null!=t&&this.connectionHandler.insertBeforeSource){var r=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=t.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==t.parent&&(r=b.parent.getIndex(b),this.model.add(b.parent,t,r))}null==e&&null!=g&&null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST&&(r=a.parent.getIndex(a),this.model.add(a.parent,
-g,r));null!=t&&d.push(t);null==e&&null!=g&&d.push(g);null==g&&null!=t&&t.geometry.setTerminalPoint(k,!1);null!=t&&this.fireEvent(new mxEventObject("cellsInserted","cells",[t]))}finally{this.model.endUpdate()}return d};
+g,r));null!=t&&d.push(t);null==e&&null!=g&&d.push(g);null==g&&null!=t&&t.geometry.setTerminalPoint(h,!1);null!=t&&this.fireEvent(new mxEventObject("cellsInserted","cells",[t]))}finally{this.model.endUpdate()}return d};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.getLabel(d),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var c=a.getAttribute("placeholder"),d=a,b=null;null==b&&null!=d;)null!=d.value&&"object"==typeof d.value&&(b=d.hasAttribute(c)?null!=d.getAttribute(c)?d.getAttribute(c):"":null),d=this.model.getParent(d);return b||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);this.model.isVertex(d)&&this.isCellCollapsed(a)&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!d.horizontal))}return c};
Graph.prototype.updateAlternateBounds=function(a,c,d){if(null!=a&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var k=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=k&&null!=g){var h=Math.round(g.width-k.width/this.view.scale),l=Math.round(g.height-k.height/this.view.scale);if(0!=l||0!=h){var m=this.model.getParent(d[e]),p=this.layoutManager.getLayout(m);
-null==p?null!=f&&this.isMoveCellsEvent(f)&&this.moveSiblings(k,m,h,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,h,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
-Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),k=this.getCellGeometry(f[c]);null!=e&&null!=k&&(k=k.clone(),k.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],k))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),k=this.view.getState(a);null!=k&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,k.width/this.view.scale-e.width):e.height+=b+Math.min(0,k.height/this.view.scale-e.height),this.model.setGeometry(a,
+Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var h=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=h&&null!=g){var k=Math.round(g.width-h.width/this.view.scale),l=Math.round(g.height-h.height/this.view.scale);if(0!=l||0!=k){var m=this.model.getParent(d[e]),p=this.layoutManager.getLayout(m);
+null==p?null!=f&&this.isMoveCellsEvent(f)&&this.moveSiblings(h,m,k,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,k,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
+Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),h=this.getCellGeometry(f[c]);null!=e&&null!=h&&(h=h.clone(),h.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],h))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),h=this.view.getState(a);null!=h&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,h.width/this.view.scale-e.width):e.height+=b+Math.min(0,h.height/this.view.scale-e.height),this.model.setGeometry(a,
e));a=this.model.getParent(a);c=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,c,d){d=d||this.getDefaultParent();this.isCellLocked(d)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,c,d){d=d||this.getDefaultParent();return this.isCellLocked(d)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=c.collapsible||!this.isContainer(a)&&"1"==c.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
@@ -2475,23 +2475,23 @@ this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activa
this.reset())}else 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};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,b){var d=this.getState(a);null!=d&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=c.apply(this,arguments);null!=
d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,b){return d.apply(this,arguments)||null!=a.routedPoints&&null!=b.routedPoints&&!mxUtils.equalPoints(b.routedPoints,a.routedPoints)};var b=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){b.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],v=[],u=b[g+2];g<
-b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,u.x,u.y,h.x,h.y)<1*this.scale*this.scale;)h=u,g++,u=b[g+2];for(var c=e(0,k.x,k.y)||c,z=0;z<this.validEdges.length;z++){var x=this.validEdges[z],D=x.absolutePoints;if(null!=D&&mxUtils.intersects(a,x)&&"1"!=x.style.noJump)for(x=0;x<D.length-1;x++){for(var A=D[x+1],C=D[x],u=D[x+2];x<D.length-2&&mxUtils.ptSegDistSq(C.x,C.y,u.x,u.y,A.x,A.y)<1*this.scale*this.scale;)A=u,x++,u=D[x+2];u=mxUtils.intersection(k.x,k.y,h.x,h.y,C.x,C.y,A.x,A.y);if(null!=u&&(Math.abs(u.x-
-C.x)>f||Math.abs(u.y-C.y)>f)&&(Math.abs(u.x-A.x)>f||Math.abs(u.y-A.y)>f)){A=u.x-k.x;C=u.y-k.y;u={distSq:A*A+C*C,x:u.x,y:u.y};for(A=0;A<v.length;A++)if(v[A].distSq>u.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;x<v.length;x++)c=e(1,v[x].x,v[x].y)||c}u=b[b.length-1];c=e(0,u.x,u.y)||c}a.routedPoints=d;return c}return!1};var f=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],v=[],u=b[g+2];g<
+b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,u.x,u.y,k.x,k.y)<1*this.scale*this.scale;)k=u,g++,u=b[g+2];for(var c=e(0,h.x,h.y)||c,z=0;z<this.validEdges.length;z++){var x=this.validEdges[z],C=x.absolutePoints;if(null!=C&&mxUtils.intersects(a,x)&&"1"!=x.style.noJump)for(x=0;x<C.length-1;x++){for(var A=C[x+1],D=C[x],u=C[x+2];x<C.length-2&&mxUtils.ptSegDistSq(D.x,D.y,u.x,u.y,A.x,A.y)<1*this.scale*this.scale;)A=u,x++,u=C[x+2];u=mxUtils.intersection(h.x,h.y,k.x,k.y,D.x,D.y,A.x,A.y);if(null!=u&&(Math.abs(u.x-
+D.x)>f||Math.abs(u.y-D.y)>f)&&(Math.abs(u.x-A.x)>f||Math.abs(u.y-A.y)>f)){A=u.x-h.x;D=u.y-h.y;u={distSq:A*A+D*D,x:u.x,y:u.y};for(A=0;A<v.length;A++)if(v[A].distSq>u.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;x<v.length;x++)c=e(1,v[x].x,v[x].y)||c}u=b[b.length-1];c=e(0,u.x,u.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,k=!0,l=null,m=null;h=[];var u=null;a.begin();for(var z=0;z<this.state.routedPoints.length;z++){var x=
-this.state.routedPoints[z],D=new mxPoint(x.x/this.scale,x.y/this.scale);0==z?D=b[0]:z==this.state.routedPoints.length-1&&(D=b[b.length-1]);var A=!1;if(null!=l&&1==x.type){var C=this.state.routedPoints[z+1],x=C.x/this.scale-D.x,C=C.y/this.scale-D.y,x=x*x+C*C;null==u&&(u=new mxPoint(D.x-l.x,D.y-l.y),m=Math.sqrt(u.x*u.x+u.y*u.y),u.x=u.x*e/m,u.y=u.y*e/m);x>e*e&&0<m&&(x=l.x-D.x,C=l.y-D.y,x=x*x+C*C,x>e*e&&(A=new mxPoint(D.x-u.x,D.y-u.y),x=new mxPoint(D.x+u.x,D.y+u.y),h.push(A),this.addPoints(a,h,c,d,!1,
-null,k),h=0>Math.round(u.x)||0==Math.round(u.x)&&0>=Math.round(u.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(A.x-u.y*h,A.y+u.x*h),a.lineTo(x.x-u.y*h,x.y+u.x*h),a.lineTo(x.x,x.y)):"arc"==g?(h*=1.3,a.curveTo(A.x-u.y*h,A.y+u.x*h,x.x-u.y*h,x.y+u.x*h,x.x,x.y)):(a.moveTo(x.x,x.y),k=!0),h=[x],A=!0))}else u=null;A||(h.push(D),l=D)}this.addPoints(a,h,c,d,!1,null,k);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==
+this.state.routedPoints[z],C=new mxPoint(x.x/this.scale,x.y/this.scale);0==z?C=b[0]:z==this.state.routedPoints.length-1&&(C=b[b.length-1]);var A=!1;if(null!=l&&1==x.type){var D=this.state.routedPoints[z+1],x=D.x/this.scale-C.x,D=D.y/this.scale-C.y,x=x*x+D*D;null==u&&(u=new mxPoint(C.x-l.x,C.y-l.y),m=Math.sqrt(u.x*u.x+u.y*u.y),u.x=u.x*e/m,u.y=u.y*e/m);x>e*e&&0<m&&(x=l.x-C.x,D=l.y-C.y,x=x*x+D*D,x>e*e&&(A=new mxPoint(C.x-u.x,C.y-u.y),x=new mxPoint(C.x+u.x,C.y+u.y),h.push(A),this.addPoints(a,h,c,d,!1,
+null,k),h=0>Math.round(u.x)||0==Math.round(u.x)&&0>=Math.round(u.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(A.x-u.y*h,A.y+u.x*h),a.lineTo(x.x-u.y*h,x.y+u.x*h),a.lineTo(x.x,x.y)):"arc"==g?(h*=1.3,a.curveTo(A.x-u.y*h,A.y+u.x*h,x.x-u.y*h,x.y+u.x*h,x.x,x.y)):(a.moveTo(x.x,x.y),k=!0),h=[x],A=!0))}else u=null;A||(h.push(C),l=C)}this.addPoints(a,h,c,d,!1,null,k);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==
a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)e.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var f=this.getNextPoint(a,c,d),g=this.graph.isOrthogonal(a),h=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=h)var l=Math.cos(-h),m=Math.sin(-h),f=mxUtils.getRotatedPoint(f,l,m,k);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);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;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 k=mxStencil.prototype.evaluateTextAttribute;
-mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=k.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=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&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(a.view.graph.decompress(c));
+0);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;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 h=mxStencil.prototype.evaluateTextAttribute;
+mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=h.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=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&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(a.view.graph.decompress(c));
return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var c=mxStencilRegistry.stencils[a];if(null==c&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var d=mxStencilRegistry.getBasenameForStencil(a);if(null!=d){c=mxStencilRegistry.libraries[d];if(null!=c){if(null==mxStencilRegistry.packages[d]){for(var b=0;b<c.length;b++){var f=c[b];if(".xml"==f.toLowerCase().substring(f.length-4,f.length))mxStencilRegistry.loadStencilSet(f,null);else if(".js"==f.toLowerCase().substring(f.length-3,f.length))try{if(mxStencilRegistry.allowEval){var e=
-mxUtils.load(f);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(k){null!=window.console&&console.log("error in getStencil:",f,k)}}mxStencilRegistry.packages[d]=1}}else d=d.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+d+".xml",null);c=mxStencilRegistry.stencils[a]}}return c};
+mxUtils.load(f);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",f,h)}}mxStencilRegistry.packages[d]=1}}else d=d.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+d+".xml",null);c=mxStencilRegistry.stencils[a]}}return c};
mxStencilRegistry.getBasenameForStencil=function(a){var c=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var c=a[1],d=2;d<a.length-1;d++)c+="/"+a[d];return c};
-mxStencilRegistry.loadStencilSet=function(a,c,d,b){var f=mxStencilRegistry.packages[a];if(null!=d&&d||null==f){var e=!1;if(null==f)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,e=!0,mxStencilRegistry.parseStencilSet(b.documentElement,c,e))}));return}f=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=f;e=!0}catch(k){null!=window.console&&console.log("error in loadStencilSet:",a,k)}null!=f&&null!=
+mxStencilRegistry.loadStencilSet=function(a,c,d,b){var f=mxStencilRegistry.packages[a];if(null!=d&&d||null==f){var e=!1;if(null==f)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,e=!0,mxStencilRegistry.parseStencilSet(b.documentElement,c,e))}));return}f=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=f;e=!0}catch(h){null!=window.console&&console.log("error in loadStencilSet:",a,h)}null!=f&&null!=
f.documentElement&&mxStencilRegistry.parseStencilSet(f.documentElement,c,e)}};mxStencilRegistry.loadStencil=function(a,c){if(null!=c)mxUtils.get(a,mxUtils.bind(this,function(a){c(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var c=0;c<a.length;c++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[c]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,c,d){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,c,d),b=b.nextSibling;else{d=null!=d?d:!0;var b=a.firstChild,f="";a=a.getAttribute("name");for(null!=a&&(f=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var f=f.toLowerCase(),e=a.replace(/ /g,"_");d&&mxStencilRegistry.addStencil(f+e.toLowerCase(),new mxStencil(b));if(null!=c){var k=b.getAttribute("w"),
-g=b.getAttribute("h"),k=null==k?80:parseInt(k,10),g=null==g?80:parseInt(g,10);c(f,e,a,k,g)}}b=b.nextSibling}}};
+mxStencilRegistry.parseStencilSet=function(a,c,d){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,c,d),b=b.nextSibling;else{d=null!=d?d:!0;var b=a.firstChild,f="";a=a.getAttribute("name");for(null!=a&&(f=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var f=f.toLowerCase(),e=a.replace(/ /g,"_");d&&mxStencilRegistry.addStencil(f+e.toLowerCase(),new mxStencil(b));if(null!=c){var h=b.getAttribute("w"),
+g=b.getAttribute("h"),h=null==h?80:parseInt(h,10),g=null==g?80:parseInt(g,10);c(f,e,a,h,g)}}b=b.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#99ccff";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR=
"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=8;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var c=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
c.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));
@@ -2505,8 +2505,8 @@ a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stenci
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){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(b,"dropTarget",
"1"))};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){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var f=b.getTerminal(e,!0),g=b.getTerminal(e,!1);b.setTerminal(e,g,!0);b.setTerminal(e,f,!1);var h=b.getGeometry(e);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var k=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);
-h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,h);var m=this.view.getState(e),H=this.view.getState(f),p=this.view.getState(g);if(null!=m){var n=null!=H?this.getConnectionConstraint(m,H,!0):null,q=null!=p?this.getConnectionConstraint(m,p,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,n)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;
-h.height=t;b.setGeometry(e,h);var x=this.view.getState(e);if(null!=x){var r=x.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,r,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);
+h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,h);var m=this.view.getState(e),G=this.view.getState(f),p=this.view.getState(g);if(null!=m){var n=null!=G?this.getConnectionConstraint(m,G,!0):null,q=null!=p?this.getConnectionConstraint(m,p,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,n)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;
+h.height=t;b.setGeometry(e,h);var r=this.view.getState(e);if(null!=r){var x=r.style[mxConstants.STYLE_DIRECTION]||"east";"east"==x?x="south":"south"==x?x="west":"west"==x?x="north":"north"==x&&(x="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,x,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);
if(0<b.length)for(var c=0;c<b.length;c++)this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],!1,!1)}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=
0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),h=0;h<g.length;h++)b(g[h]);d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=this.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),
e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||
@@ -2530,46 +2530,47 @@ Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink"
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 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.encodeCells=function(a){for(var b=this.cloneCells(a),c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(d=0;d<b.length;d++){var e=
this.view.getState(a[d]);if(null!=e){var f=this.getCellGeometry(b[d]);null==f||!f.relative||this.model.isEdge(a[d])||c.get(this.model.getParent(a[d]))||(f.relative=!1,f.x=e.x/e.view.scale-e.view.translate.x,f.y=e.y/e.view.scale-e.view.translate.y)}}c=new mxCodec;e=new mxGraphModel;f=e.getChildAt(e.getRoot(),0);for(d=0;d<a.length;d++)e.add(f,b[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var h=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument();d=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=d.style?d.style.backgroundColor=a:d.setAttribute("style","background-color:"+
-a));null==l.createElementNS?(d.setAttribute("xmlns",mxConstants.NS_SVG),d.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):d.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;d.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*c)+"px");d.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*c)+"px");d.setAttribute("version","1.1");var m=d;e&&(m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),m.setAttribute("transform",
-"translate(0.5,0.5)"),d.appendChild(m));l.appendChild(d);l=this.createSvgCanvas(m);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-h.x)/k),Math.floor((c/b-h.y)/k));var y=document.createElement("textarea"),p=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,H){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
+return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h){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;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument(),m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=m.style?m.style.backgroundColor=a:m.setAttribute("style","background-color:"+
+a));null==l.createElementNS?(m.setAttribute("xmlns",mxConstants.NS_SVG),m.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):m.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;m.setAttribute("width",Math.max(1,Math.ceil(d.width*a)+2*c)+"px");m.setAttribute("height",Math.max(1,Math.ceil(d.height*a)+2*c)+"px");m.setAttribute("version","1.1");var y=m;e&&(y=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),y.setAttribute("transform",
+"translate(0.5,0.5)"),m.appendChild(y));l.appendChild(m);l=this.createSvgCanvas(y);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-d.x)/k),Math.floor((c/b-d.y)/k));var p=document.createElement("textarea"),n=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,y,G){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
Math.round((e+q.fontSize)/2));t.setAttribute("fill",q.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(q.fontSize)+"px");t.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(q.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(q.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration",
-"underline");try{return y.innerHTML=f,t.textContent=y.value,t}catch(ia){return p.apply(this,arguments)}}else return p.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(h,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;g=this.createSvgImageExport();var n=g.drawCellState;g.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&n.apply(this,arguments)};g.drawState(this.getView().getState(this.model.root),
-l);return d};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");
-c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,
-f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&
-this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(W){}};var f=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));f.apply(this,arguments)};var e=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?e.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var k=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){k.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=
-c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var g=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
-a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}g.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()};var h=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",h.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(H){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var p=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);p.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};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 n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&
-null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+"underline");try{return p.innerHTML=f,t.textContent=p.value,t}catch(Ea){return n.apply(this,arguments)}}else return n.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var G=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&G.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),l);return m};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),
+e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=
+this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&
+(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(W){}};var f=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));f.apply(this,arguments)};var e=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?e.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var h=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){h.apply(this,
+arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var g=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}g.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(G){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var p=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);p.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
+d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};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 n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
@@ -2588,9 +2589,9 @@ arguments)};var r=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePrevi
"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&u.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),
e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?
HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var x=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return x.apply(this,
-arguments)};var D=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):D.apply(this,arguments)};var A=mxVertexHandler.prototype.mouseDown;
+arguments)};var C=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):C.apply(this,arguments)};var A=mxVertexHandler.prototype.mouseDown;
mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&A.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
-this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var C=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){C.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
+this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var D=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){D.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
function(a,b){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var L=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){L.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,c){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
b()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(c,d);if(null!=c||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b,c){if(null==b&&(null==c||0==c.length)||1<this.graph.getSelectionCount())null!=
@@ -2620,34 +2621,34 @@ Format.prototype.isAutoSizeState=function(a){return"1"==mxUtils.getValue(a.style
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(){if("0px"!=this.container.style.width){this.clear();var a=this.editorUi,c=a.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.color="rgb(112, 112, 112)";d.style.textAlign="left";d.style.cursor="default";var b=document.createElement("div");b.style.border="1px solid #c0c0c0";b.style.borderWidth="0px 0px 1px 0px";b.style.textAlign="center";b.style.fontWeight="bold";b.style.overflow="hidden";b.style.display=mxClient.IS_QUIRKS?"inline":
"inline-block";b.style.paddingTop="8px";b.style.height=mxClient.IS_QUIRKS?"34px":"25px";b.style.width="100%";this.container.appendChild(d);if(c.isSelectionEmpty())mxUtils.write(b,mxResources.get("diagram")),this.showCloseButton&&(c=document.createElement("img"),c.setAttribute("border","0"),c.setAttribute("src",Dialog.prototype.closeImage),c.setAttribute("title",mxResources.get("hide")),c.style.position="absolute",c.style.display="block",c.style.right="0px",c.style.top="8px",c.style.cursor="pointer",
-c.style.marginTop="1px",c.style.marginRight="17px",c.style.border="1px solid transparent",c.style.padding="1px",c.style.opacity=.5,b.appendChild(c),mxEvent.addListener(c,"click",function(){a.actions.get("formatPanel").funct()})),d.appendChild(b),this.panels.push(new DiagramFormatPanel(this,a,d));else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),this.panels.push(new TextFormatPanel(this,a,d));else{var f=this.getSelectionState().containsLabel,e=null,k=null,c=mxUtils.bind(this,
-function(a,b,c){var d=mxUtils.bind(this,function(d){e!=a&&(f?this.labelIndex=c:this.currentIndex=c,null!=e&&(e.style.backgroundColor=this.inactiveTabBackgroundColor,e.style.borderBottomWidth="1px"),e=a,e.style.backgroundColor="",e.style.borderBottomWidth="0px",k!=b&&(null!=k&&(k.style.display="none"),k=b,k.style.display=""))});mxEvent.addListener(a,"click",d);c==(f?this.labelIndex:this.currentIndex)&&d()}),g=0;b.style.backgroundColor=this.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.width=
-f?"50%":"33.3%";b.style.width=f?"50%":"33.3%";var h=b.cloneNode(!1),l=h.cloneNode(!1);h.style.backgroundColor=this.inactiveTabBackgroundColor;l.style.backgroundColor=this.inactiveTabBackgroundColor;if(f)h.style.borderLeftWidth="0px";else{b.style.borderLeftWidth="0px";mxUtils.write(b,mxResources.get("style"));d.appendChild(b);var m=d.cloneNode(!1);m.style.display="none";this.panels.push(new StyleFormatPanel(this,a,m));this.container.appendChild(m);c(b,m,g++)}mxUtils.write(h,mxResources.get("text"));
-d.appendChild(h);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(l,mxResources.get("arrange"));d.appendChild(l);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);c(h,b,g++);c(l,d,g++)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
+c.style.marginTop="1px",c.style.marginRight="17px",c.style.border="1px solid transparent",c.style.padding="1px",c.style.opacity=.5,b.appendChild(c),mxEvent.addListener(c,"click",function(){a.actions.get("formatPanel").funct()})),d.appendChild(b),this.panels.push(new DiagramFormatPanel(this,a,d));else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),this.panels.push(new TextFormatPanel(this,a,d));else{var f=this.getSelectionState().containsLabel,e=null,h=null,c=mxUtils.bind(this,
+function(a,b,c){var d=mxUtils.bind(this,function(d){e!=a&&(f?this.labelIndex=c:this.currentIndex=c,null!=e&&(e.style.backgroundColor=this.inactiveTabBackgroundColor,e.style.borderBottomWidth="1px"),e=a,e.style.backgroundColor="",e.style.borderBottomWidth="0px",h!=b&&(null!=h&&(h.style.display="none"),h=b,h.style.display=""))});mxEvent.addListener(a,"click",d);c==(f?this.labelIndex:this.currentIndex)&&d()}),g=0;b.style.backgroundColor=this.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.width=
+f?"50%":"33.3%";b.style.width=f?"50%":"33.3%";var k=b.cloneNode(!1),l=k.cloneNode(!1);k.style.backgroundColor=this.inactiveTabBackgroundColor;l.style.backgroundColor=this.inactiveTabBackgroundColor;if(f)k.style.borderLeftWidth="0px";else{b.style.borderLeftWidth="0px";mxUtils.write(b,mxResources.get("style"));d.appendChild(b);var m=d.cloneNode(!1);m.style.display="none";this.panels.push(new StyleFormatPanel(this,a,m));this.container.appendChild(m);c(b,m,g++)}mxUtils.write(k,mxResources.get("text"));
+d.appendChild(k);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(l,mxResources.get("arrange"));d.appendChild(l);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);c(k,b,g++);c(l,d,g++)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),d=null,b=0;b<c.length;b++){var f=a.view.getState(c[b]);if(null!=f&&(f=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null),null!=f))if(null==d)d=f;else if(d!=f)return null}return d};
-BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,k,g){e=null!=e?e:"";g=null!=g?g:!1;var h=this.editorUi,l=h.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&k)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),k(q),a.value=q+e,
-p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{l.setCellStyles(c,q,l.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")}),h.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}a.value=q+e;mxEvent.consume(n)});k&&l.cellEditor.isContentEditing()&&
+BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,h,g){e=null!=e?e:"";g=null!=g?g:!1;var k=this.editorUi,l=k.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&h)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),h(q),a.value=q+e,
+p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{l.setCellStyles(c,q,l.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")}),k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}a.value=q+e;mxEvent.consume(n)});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",n);mxEvent.addListener(a,"blur",n);return n};BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.style.padding="12px 0px 12px 18px";a.style.borderBottom="1px solid #c0c0c0";return a};
BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
-BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_QUIRKS)b-=2;else if(mxClient.IS_MT||8<=document.documentMode)b+=1;var k=document.createElement("div");mxUtils.setPrefixedStyle(k.style,"borderRadius","3px");k.style.border="1px solid rgb(192, 192, 192)";k.style.position="absolute";var g=document.createElement("div");g.style.borderBottom="1px solid rgb(192, 192, 192)";g.style.position="relative";g.style.height=b+"px";g.style.width="10px";g.className=
-"geBtnUp";k.appendChild(g);var h=g.cloneNode(!1);h.style.border="none";h.style.height=b+"px";h.className="geBtnDown";k.appendChild(h);mxEvent.addListener(h,"click",function(b){""==a.value&&(a.value=e||"2");var f=parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){""==a.value&&(a.value=e||"0");var f=parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var l=null;mxEvent.addGestureListeners(k,function(a){if(mxClient.IS_QUIRKS||
-8==document.documentMode)l=document.selection.createRange();mxEvent.consume(a)},null,function(a){if(null!=l){try{l.select()}catch(p){}l=null;mxEvent.consume(a)}})}return k};
-BaseFormatPanel.prototype.createOption=function(a,c,d,b){var f=document.createElement("div");f.style.padding="6px 0px 1px 0px";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.width="200px";f.style.height=mxClient.IS_QUIRKS?"27px":"18px";var e=document.createElement("input");e.setAttribute("type","checkbox");e.style.margin="0px 6px 0px 0px";f.appendChild(e);var k=document.createElement("span");mxUtils.write(k,a);f.appendChild(k);var g=!1,h=c(),l=function(a){g||(g=!0,a?(e.setAttribute("checked",
-"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),h!=a&&(h=a,c()!=h&&d(h)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=e.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==k)e.checked=!e.checked;l(e.checked)}});l(h);null!=b&&(b.install(l),this.listeners.push(b));return f};
-BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,k,g){b=null!=b?"null"==b?null:b:"1";f=null!=f?"null"==f?null:f:"0";var h=this.editorUi,l=h.editor.graph;return this.createOption(a,function(){var a=l.view.getState(l.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,d)!=f:null},function(a){g&&l.stopEditing();if(null!=k)k.funct();else{l.getModel().beginUpdate();try{a=a?b:f,l.setCellStyles(c,a,l.getSelectionCells()),null!=e&&e(l.getSelectionCells(),a),h.fireEvent(new mxEventObject("styleChanged",
+BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_QUIRKS)b-=2;else if(mxClient.IS_MT||8<=document.documentMode)b+=1;var h=document.createElement("div");mxUtils.setPrefixedStyle(h.style,"borderRadius","3px");h.style.border="1px solid rgb(192, 192, 192)";h.style.position="absolute";var g=document.createElement("div");g.style.borderBottom="1px solid rgb(192, 192, 192)";g.style.position="relative";g.style.height=b+"px";g.style.width="10px";g.className=
+"geBtnUp";h.appendChild(g);var k=g.cloneNode(!1);k.style.border="none";k.style.height=b+"px";k.className="geBtnDown";h.appendChild(k);mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"2");var f=parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){""==a.value&&(a.value=e||"0");var f=parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var l=null;mxEvent.addGestureListeners(h,function(a){if(mxClient.IS_QUIRKS||
+8==document.documentMode)l=document.selection.createRange();mxEvent.consume(a)},null,function(a){if(null!=l){try{l.select()}catch(p){}l=null;mxEvent.consume(a)}})}return h};
+BaseFormatPanel.prototype.createOption=function(a,c,d,b){var f=document.createElement("div");f.style.padding="6px 0px 1px 0px";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.width="200px";f.style.height=mxClient.IS_QUIRKS?"27px":"18px";var e=document.createElement("input");e.setAttribute("type","checkbox");e.style.margin="0px 6px 0px 0px";f.appendChild(e);var h=document.createElement("span");mxUtils.write(h,a);f.appendChild(h);var g=!1,k=c(),l=function(a){g||(g=!0,a?(e.setAttribute("checked",
+"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),k!=a&&(k=a,c()!=k&&d(k)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=e.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==h)e.checked=!e.checked;l(e.checked)}});l(k);null!=b&&(b.install(l),this.listeners.push(b));return f};
+BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,h,g){b=null!=b?"null"==b?null:b:"1";f=null!=f?"null"==f?null:f:"0";var k=this.editorUi,l=k.editor.graph;return this.createOption(a,function(){var a=l.view.getState(l.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,d)!=f:null},function(a){g&&l.stopEditing();if(null!=h)h.funct();else{l.getModel().beginUpdate();try{a=a?b:f,l.setCellStyles(c,a,l.getSelectionCells()),null!=e&&e(l.getSelectionCells(),a),k.fireEvent(new mxEventObject("styleChanged",
"keys",[c],"values",[a],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}},{install:function(a){this.listener=function(){var b=l.view.getState(l.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,d)!=f)};l.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){l.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,k){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";k||g.appendChild(h);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=!1,p=c(),n=null,q=function(a,f,g){if(!m){m=
-!0;n.innerHTML='<div style="width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>';if(mxClient.IS_QUIRKS||8==document.documentMode)n.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1);n.style.display=h.checked||k?"":"none";null!=e&&e(a);f||(p=a,(g||k||c()!=p)&&
-d(p));m=!1}},n=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(p,function(a){q(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right=mxClient.IS_QUIRKS?"0px":"20px";n.style.height="22px";n.className="geColorBtn";n.style.display=h.checked||k?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==h||"INPUT"!=a.nodeName)a!=h&&(h.checked=!h.checked),h.checked||null==p||p==mxConstants.NONE||
-b==mxConstants.NONE||(b=p),q(h.checked?b:mxConstants.NONE)});q(p,!0);null!=f&&(f.install(q),this.listeners.push(f));return g};
-BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,k=e.editor.graph;return this.createColorOption(a,function(){var a=k.view.getState(k.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){k.getModel().beginUpdate();try{null!=f&&f(a),k.setCellStyles(c,a,k.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}},d||mxConstants.NONE,
-{install:function(a){this.listener=function(){var b=k.view.getState(k.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};k.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){k.getModel().removeListener(this.listener)}},b)};
+BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=!1,p=c(),n=null,q=function(a,f,g){if(!m){m=
+!0;n.innerHTML='<div style="width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>';if(mxClient.IS_QUIRKS||8==document.documentMode)n.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1);n.style.display=k.checked||h?"":"none";null!=e&&e(a);f||(p=a,(g||h||c()!=p)&&
+d(p));m=!1}},n=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(p,function(a){q(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right=mxClient.IS_QUIRKS?"0px":"20px";n.style.height="22px";n.className="geColorBtn";n.style.display=k.checked||h?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=!k.checked),k.checked||null==p||p==mxConstants.NONE||
+b==mxConstants.NONE||(b=p),q(k.checked?b:mxConstants.NONE)});q(p,!0);null!=f&&(f.install(q),this.listeners.push(f));return g};
+BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,h=e.editor.graph;return this.createColorOption(a,function(){var a=h.view.getState(h.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){h.getModel().beginUpdate();try{null!=f&&f(a),h.setCellStyles(c,a,h.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",h.getSelectionCells()))}finally{h.getModel().endUpdate()}},d||mxConstants.NONE,
+{install:function(a){this.listener=function(){var b=h.view.getState(h.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};h.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){h.getModel().removeListener(this.listener)}},b)};
BaseFormatPanel.prototype.addArrow=function(a,c){c=null!=c?c:10;var d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.padding="6px";d.style.paddingRight="4px";var b=10-c;2==b?d.style.paddingTop="6px":0<b?d.style.paddingTop=6-b+"px":d.style.marginTop="-2px";d.style.height=c+"px";d.style.borderLeft="1px solid #a0a0a0";d.innerHTML='<img border="0" src="'+(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUeNpidHB2ZyAGsACxDRBPIKCuA6TwCBB/h2rABu4A8SYmKCcXiP/iUFgAxL9gCi8A8SwsirZCMQMTkmANEH9E4v+CmsaArvAdyNFI/FlQ92EoBIE+qCRIUz168DBgsU4OqhinQpgHMABAgAEALY4XLIsJ20oAAAAASUVORK5CYII=":
IMAGE_PATH+"/dropdown.png")+'" style="margin-bottom:4px;">';mxUtils.setOpacity(d,70);b=a.getElementsByTagName("div")[0];null!=b&&(b.style.paddingRight="6px",b.style.marginLeft="4px",b.style.marginTop="-1px",b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",mxUtils.setOpacity(b,60));mxUtils.setOpacity(a,100);a.style.border="1px solid #a0a0a0";a.style.backgroundColor=this.buttonBackgroundColor;a.style.backgroundImage="none";a.style.width="auto";a.className+=" geColorBtn";mxUtils.setPrefixedStyle(a.style,
-"borderRadius","3px");a.appendChild(d);return b};BaseFormatPanel.prototype.addUnitInput=function(a,c,d,b,f,e,k,g){k=null!=k?k:0;c=document.createElement("input");c.style.position="absolute";c.style.textAlign="right";c.style.marginTop="-2px";c.style.right=d+12+"px";c.style.width=b+"px";a.appendChild(c);b=this.createStepper(c,f,e,null,g);b.style.marginTop=k-2+"px";b.style.right=d+"px";a.appendChild(b);return c};
-BaseFormatPanel.prototype.createRelativeOption=function(a,c,d,b,f){function e(a){if(null!=b)b(h);else{var d=parseInt(h.value),d=Math.min(100,Math.max(0,isNaN(d)?100:d)),e=k.view.getState(k.getSelectionCell());null!=e&&d!=mxUtils.getValue(e.style,c,100)&&(100==d&&(d=null),k.setCellStyles(c,d,k.getSelectionCells()));h.value=(null!=d?d:"100")+" %"}mxEvent.consume(a)}d=null!=d?d:44;var k=this.editorUi.editor.graph,g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";mxUtils.write(g,
-a);g.style.fontWeight="bold";var h=this.addUnitInput(g,"%",20,d,e,10,-15,null!=b);if(null!=c){var l=mxUtils.bind(this,function(a,b,d){if(d||h!=document.activeElement)a=this.format.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,c,100)),h.value=isNaN(a)?"":a+" %"});mxEvent.addListener(h,"keydown",function(a){13==a.keyCode?(k.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(l(null,null,!0),k.container.focus(),mxEvent.consume(a))});k.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){k.getModel().removeListener(l)}});
-l()}mxEvent.addListener(h,"blur",e);mxEvent.addListener(h,"change",e);null!=f&&f(h);return g};BaseFormatPanel.prototype.addLabel=function(a,c,d,b){b=null!=b?b:61;var f=document.createElement("div");mxUtils.write(f,c);f.style.position="absolute";f.style.right=d+"px";f.style.width=b+"px";f.style.marginTop="6px";f.style.textAlign="center";a.appendChild(f)};
+"borderRadius","3px");a.appendChild(d);return b};BaseFormatPanel.prototype.addUnitInput=function(a,c,d,b,f,e,h,g){h=null!=h?h:0;c=document.createElement("input");c.style.position="absolute";c.style.textAlign="right";c.style.marginTop="-2px";c.style.right=d+12+"px";c.style.width=b+"px";a.appendChild(c);b=this.createStepper(c,f,e,null,g);b.style.marginTop=h-2+"px";b.style.right=d+"px";a.appendChild(b);return c};
+BaseFormatPanel.prototype.createRelativeOption=function(a,c,d,b,f){function e(a){if(null!=b)b(k);else{var d=parseInt(k.value),d=Math.min(100,Math.max(0,isNaN(d)?100:d)),e=h.view.getState(h.getSelectionCell());null!=e&&d!=mxUtils.getValue(e.style,c,100)&&(100==d&&(d=null),h.setCellStyles(c,d,h.getSelectionCells()));k.value=(null!=d?d:"100")+" %"}mxEvent.consume(a)}d=null!=d?d:44;var h=this.editorUi.editor.graph,g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";mxUtils.write(g,
+a);g.style.fontWeight="bold";var k=this.addUnitInput(g,"%",20,d,e,10,-15,null!=b);if(null!=c){var l=mxUtils.bind(this,function(a,b,d){if(d||k!=document.activeElement)a=this.format.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,c,100)),k.value=isNaN(a)?"":a+" %"});mxEvent.addListener(k,"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(k,"blur",e);mxEvent.addListener(k,"change",e);null!=f&&f(k);return g};BaseFormatPanel.prototype.addLabel=function(a,c,d,b){b=null!=b?b:61;var f=document.createElement("div");mxUtils.write(f,c);f.style.position="absolute";f.style.right=d+"px";f.style.width=b+"px";f.style.marginTop="6px";f.style.textAlign="center";a.appendChild(f)};
BaseFormatPanel.prototype.addKeyHandler=function(a,c){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!=c&&c(null,null,!0),this.editorUi.editor.graph.container.focus(),mxEvent.consume(a))}))};
BaseFormatPanel.prototype.styleButtons=function(a){for(var c=0;c<a.length;c++)mxUtils.setPrefixedStyle(a[c].style,"borderRadius","3px"),mxUtils.setOpacity(a[c],100),a[c].style.border="1px solid #a0a0a0",a[c].style.padding="4px",a[c].style.paddingTop="3px",a[c].style.paddingRight="1px",a[c].style.margin="1px",a[c].style.width="24px",a[c].style.height="20px",a[c].className+=" geColorBtn"};
BaseFormatPanel.prototype.destroy=function(){if(null!=this.listeners){for(var a=0;a<this.listeners.length;a++)this.listeners[a].destroy();this.listeners=null}};ArrangePanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(ArrangePanel,BaseFormatPanel);
@@ -2661,43 +2662,43 @@ function(a){c.actions.get("removeFromGroup").funct()}),e.setAttribute("title",mx
e.style.marginBottom="2px",a.appendChild(e),f++);1==d.getSelectionCount()&&(0<f&&mxUtils.br(a),e=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()})),e.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")"),e.style.width="100px",e.style.marginBottom="2px",a.appendChild(e),f++,e=mxUtils.button(mxResources.get("editLink"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editLink").funct()})),
e.setAttribute("title",mxResources.get("editLink")),e.style.width="100px",e.style.marginLeft="2px",e.style.marginBottom="2px",a.appendChild(e),f++);0==f&&(a.style.display="none");return a};
ArrangePanel.prototype.addAlign=function(a){var c=this.editorUi.editor.graph;a.style.paddingTop="6px";a.style.paddingBottom="12px";a.appendChild(this.createTitle(mxResources.get("align")));var d=document.createElement("div");d.style.position="relative";d.style.paddingLeft="0px";d.style.borderWidth="0px";d.className="geToolbarContainer";mxClient.IS_QUIRKS&&(a.style.height="60px");var b=this.editorUi.toolbar.addButton("geSprite-alignleft",mxResources.get("left"),function(){c.alignCells(mxConstants.ALIGN_LEFT)},
-d),f=this.editorUi.toolbar.addButton("geSprite-aligncenter",mxResources.get("center"),function(){c.alignCells(mxConstants.ALIGN_CENTER)},d),e=this.editorUi.toolbar.addButton("geSprite-alignright",mxResources.get("right"),function(){c.alignCells(mxConstants.ALIGN_RIGHT)},d),k=this.editorUi.toolbar.addButton("geSprite-aligntop",mxResources.get("top"),function(){c.alignCells(mxConstants.ALIGN_TOP)},d),g=this.editorUi.toolbar.addButton("geSprite-alignmiddle",mxResources.get("middle"),function(){c.alignCells(mxConstants.ALIGN_MIDDLE)},
-d),h=this.editorUi.toolbar.addButton("geSprite-alignbottom",mxResources.get("bottom"),function(){c.alignCells(mxConstants.ALIGN_BOTTOM)},d);this.styleButtons([b,f,e,k,g,h]);e.style.marginRight="6px";a.appendChild(d);return a};
+d),f=this.editorUi.toolbar.addButton("geSprite-aligncenter",mxResources.get("center"),function(){c.alignCells(mxConstants.ALIGN_CENTER)},d),e=this.editorUi.toolbar.addButton("geSprite-alignright",mxResources.get("right"),function(){c.alignCells(mxConstants.ALIGN_RIGHT)},d),h=this.editorUi.toolbar.addButton("geSprite-aligntop",mxResources.get("top"),function(){c.alignCells(mxConstants.ALIGN_TOP)},d),g=this.editorUi.toolbar.addButton("geSprite-alignmiddle",mxResources.get("middle"),function(){c.alignCells(mxConstants.ALIGN_MIDDLE)},
+d),k=this.editorUi.toolbar.addButton("geSprite-alignbottom",mxResources.get("bottom"),function(){c.alignCells(mxConstants.ALIGN_BOTTOM)},d);this.styleButtons([b,f,e,h,g,k]);e.style.marginRight="6px";a.appendChild(d);return a};
ArrangePanel.prototype.addFlip=function(a){var c=this.editorUi.editor.graph;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("flip"));a.appendChild(d);d=mxUtils.button(mxResources.get("horizontal"),function(a){c.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)});d.setAttribute("title",mxResources.get("horizontal"));d.style.width="100px";d.style.marginRight=
"2px";a.appendChild(d);d=mxUtils.button(mxResources.get("vertical"),function(a){c.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)});d.setAttribute("title",mxResources.get("vertical"));d.style.width="100px";a.appendChild(d);return a};
ArrangePanel.prototype.addDistribute=function(a){var c=this.editorUi.editor.graph;a.style.paddingTop="6px";a.style.paddingBottom="12px";a.appendChild(this.createTitle(mxResources.get("distribute")));var d=mxUtils.button(mxResources.get("horizontal"),function(a){c.distributeCells(!0)});d.setAttribute("title",mxResources.get("horizontal"));d.style.width="100px";d.style.marginRight="2px";a.appendChild(d);d=mxUtils.button(mxResources.get("vertical"),function(a){c.distributeCells(!1)});d.setAttribute("title",
mxResources.get("vertical"));d.style.width="100px";a.appendChild(d);return a};
-ArrangePanel.prototype.addAngle=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState();a.style.paddingBottom="8px";var f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";var e=null,k=null,g=null;0==b.edges.length?(mxUtils.write(f,mxResources.get("angle")),a.appendChild(f),e=this.addUnitInput(a,"°",20,44,function(){k.apply(this,arguments)}),mxUtils.br(a),a.style.paddingTop="10px"):a.style.paddingTop=
-"8px";b.containsLabel||(f=mxResources.get("reverse"),0<b.vertices.length&&0<b.edges.length?f=mxResources.get("turn")+" / "+f:0<b.vertices.length&&(f=mxResources.get("turn")),g=mxUtils.button(f,function(a){c.actions.get("turn").funct()}),g.setAttribute("title",f+" ("+this.editorUi.actions.get("turn").shortcut+")"),g.style.width="202px",a.appendChild(g),null!=e&&(g.style.marginTop="8px"));if(null!=e){var h=mxUtils.bind(this,function(a,c,d){if(d||document.activeElement!=e)b=this.format.getSelectionState(),
-a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isNaN(a)?"":a+"°"}),k=this.installInputHandler(e,mxConstants.STYLE_ROTATION,0,0,360,"°",null,!0);this.addKeyHandler(e,h);d.getModel().addListener(mxEvent.CHANGE,h);this.listeners.push({destroy:function(){d.getModel().removeListener(h)}});h()}return a};
-ArrangePanel.prototype.addGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel();f.style.paddingBottom="8px";var e=document.createElement("div");e.style.position="absolute";e.style.width="50px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("size"));f.appendChild(e);var k,g,h,l,m=this.addUnitInput(f,"pt",84,44,function(){k.apply(this,arguments)}),p=this.addUnitInput(f,"pt",20,44,function(){g.apply(this,arguments)}),
+ArrangePanel.prototype.addAngle=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState();a.style.paddingBottom="8px";var f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";var e=null,h=null,g=null;0==b.edges.length?(mxUtils.write(f,mxResources.get("angle")),a.appendChild(f),e=this.addUnitInput(a,"°",20,44,function(){h.apply(this,arguments)}),mxUtils.br(a),a.style.paddingTop="10px"):a.style.paddingTop=
+"8px";b.containsLabel||(f=mxResources.get("reverse"),0<b.vertices.length&&0<b.edges.length?f=mxResources.get("turn")+" / "+f:0<b.vertices.length&&(f=mxResources.get("turn")),g=mxUtils.button(f,function(a){c.actions.get("turn").funct()}),g.setAttribute("title",f+" ("+this.editorUi.actions.get("turn").shortcut+")"),g.style.width="202px",a.appendChild(g),null!=e&&(g.style.marginTop="8px"));if(null!=e){var k=mxUtils.bind(this,function(a,c,d){if(d||document.activeElement!=e)b=this.format.getSelectionState(),
+a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isNaN(a)?"":a+"°"}),h=this.installInputHandler(e,mxConstants.STYLE_ROTATION,0,0,360,"°",null,!0);this.addKeyHandler(e,k);d.getModel().addListener(mxEvent.CHANGE,k);this.listeners.push({destroy:function(){d.getModel().removeListener(k)}});k()}return a};
+ArrangePanel.prototype.addGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel();f.style.paddingBottom="8px";var e=document.createElement("div");e.style.position="absolute";e.style.width="50px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("size"));f.appendChild(e);var h,g,k,l,m=this.addUnitInput(f,"pt",84,44,function(){h.apply(this,arguments)}),p=this.addUnitInput(f,"pt",20,44,function(){g.apply(this,arguments)}),
n=document.createElement("div");n.className="geSprite geSprite-fit";n.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");n.style.position="relative";n.style.cursor="pointer";n.style.marginTop="-3px";n.style.border="0px";n.style.left="52px";mxUtils.setOpacity(n,50);mxEvent.addListener(n,"mouseenter",function(){mxUtils.setOpacity(n,100)});mxEvent.addListener(n,"mouseleave",function(){mxUtils.setOpacity(n,50)});mxEvent.addListener(n,"click",function(){c.actions.get("autosize").funct()});
f.appendChild(n);this.addLabel(f,mxResources.get("width"),84);this.addLabel(f,mxResources.get("height"),20);mxUtils.br(f);e=document.createElement("div");e.style.paddingTop="8px";e.style.paddingRight="20px";e.style.whiteSpace="nowrap";e.style.textAlign="right";var q=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");q.style.width="100%";e.appendChild(q);f.appendChild(e);var t=q.getElementsByTagName("input")[0];this.addKeyHandler(m,u);this.addKeyHandler(p,
-u);k=this.addGeometryHandler(m,function(a,b){0<a.width&&(b=Math.max(1,b),t.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});g=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,b),t.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(f);var r=this.createPanel();r.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,
-mxResources.get("position"));r.appendChild(e);var w=this.addUnitInput(r,"pt",84,44,function(){h.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){l.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);var u=mxUtils.bind(this,function(a,c,e){b=this.format.getSelectionState();if(b.containsLabel||b.vertices.length!=d.getSelectionCount()||null==b.width||null==b.height)f.style.display="none";else{f.style.display=
+u);h=this.addGeometryHandler(m,function(a,b){0<a.width&&(b=Math.max(1,b),t.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});g=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,b),t.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(f);var r=this.createPanel();r.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,
+mxResources.get("position"));r.appendChild(e);var w=this.addUnitInput(r,"pt",84,44,function(){k.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){l.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);var u=mxUtils.bind(this,function(a,c,e){b=this.format.getSelectionState();if(b.containsLabel||b.vertices.length!=d.getSelectionCount()||null==b.width||null==b.height)f.style.display="none";else{f.style.display=
"";if(e||document.activeElement!=m)m.value=b.width+(""==b.width?"":" pt");if(e||document.activeElement!=p)p.value=b.height+(""==b.height?"":" pt")}if(b.vertices.length==d.getSelectionCount()&&null!=b.x&&null!=b.y){r.style.display="";if(e||document.activeElement!=w)w.value=b.x+(""==b.x?"":" pt");if(e||document.activeElement!=v)v.value=b.y+(""==b.y?"":" pt")}else r.style.display="none"});this.addKeyHandler(w,u);this.addKeyHandler(v,u);d.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){d.getModel().removeListener(u)}});
-u();h=this.addGeometryHandler(w,function(a,b){a.relative?a.offset.x=b:a.x=b});l=this.addGeometryHandler(v,function(a,b){a.relative?a.offset.y=b:a.y=b});a.appendChild(r)};
-ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isVertex(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}else isNaN(e)&&(a.value=f+" pt")}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
+u();k=this.addGeometryHandler(w,function(a,b){a.relative?a.offset.x=b:a.x=b});l=this.addGeometryHandler(v,function(a,b){a.relative?a.offset.y=b:a.y=b});a.appendChild(r)};
+ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),k=0;k<g.length;k++)if(b.getModel().isVertex(g[k])){var l=b.getCellGeometry(g[k]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[k],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}else isNaN(e)&&(a.value=f+" pt")}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
-ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isEdge(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
+ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),k=0;k<g.length;k++)if(b.getModel().isEdge(g[k])){var l=b.getCellGeometry(g[k]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[k],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(p.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)&&(b.setCellStyles("width",c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",b.getSelectionCells())));p.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel(),
-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("width"));e.appendChild(k);var g,h,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,u);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.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,"Start");n.appendChild(k);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,u);this.addKeyHandler(t,u);var r=this.createPanel();r.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,"End");r.appendChild(k);var w=this.addUnitInput(r,"pt",84,44,function(){g.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);a.appendChild(r);this.addKeyHandler(w,u);this.addKeyHandler(v,u);var u=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
+h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("width"));e.appendChild(h);var g,k,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,u);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";
+h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"Start");n.appendChild(h);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,u);this.addKeyHandler(t,u);var r=this.createPanel();r.style.paddingBottom="30px";h=document.createElement("div");
+h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"End");r.appendChild(h);var w=this.addUnitInput(r,"pt",84,44,function(){g.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){k.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);a.appendChild(r);this.addKeyHandler(w,u);this.addKeyHandler(v,u);var u=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=p)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),p.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(q.value=d.sourcePoint.x,t.value=d.sourcePoint.y):n.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
-!1)?(w.value=d.targetPoint.x,v.value=d.targetPoint.y):r.style.display="none"):(n.style.display="none",r.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){b.getModel().removeListener(u)}});
+!1)?(w.value=d.targetPoint.x,v.value=d.targetPoint.y):r.style.display="none"):(n.style.display="none",r.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){b.getModel().removeListener(u)}});
u()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
TextFormatPanel.prototype.addFont=function(a){function c(a,b){mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter=b?"progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#c5ecff', EndColorStr='#87d4fb', GradientType=0)":"":a.style.backgroundImage=b?"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom=
-"6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(b.cellEditor.isContentEditing()){var k=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";
-g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";var h=g.getElementsByTagName("div")[0];h.style.cssFloat="right";a.appendChild(k);mxClient.IS_FF&&(g.getElementsByTagName("div")[0].style.marginTop="-18px")}a.appendChild(e);k=this.createPanel();k.style.marginTop="8px";k.style.borderTop="1px solid #c0c0c0";k.style.paddingTop="6px";k.style.paddingBottom="6px";var l=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e);l.style.color=
-"rgb(112, 112, 112)";l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px";mxClient.IS_FF&&(l.getElementsByTagName("div")[0].style.marginTop="-18px");h=e.cloneNode(!1);h.style.marginLeft="-3px";var m=this.editorUi.toolbar.addItems(["bold","italic","underline"],h,!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 p=this.editorUi.toolbar.addItems(["vertical"],h,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(h);this.styleButtons(m);this.styleButtons([p]);g=e.cloneNode(!1);g.style.marginLeft="-3px";g.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),
+"6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(b.cellEditor.isContentEditing()){var h=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",h);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";
+g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";var k=g.getElementsByTagName("div")[0];k.style.cssFloat="right";a.appendChild(h);mxClient.IS_FF&&(g.getElementsByTagName("div")[0].style.marginTop="-18px")}a.appendChild(e);h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var l=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e);l.style.color=
+"rgb(112, 112, 112)";l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px";mxClient.IS_FF&&(l.getElementsByTagName("div")[0].style.marginTop="-18px");k=e.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 p=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(k);this.styleButtons(m);this.styleButtons([p]);g=e.cloneNode(!1);g.style.marginLeft="-3px";g.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),
b.cellEditor.isContentEditing()?function(){document.execCommand("justifyleft",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),g),t=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifycenter",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),g),r=this.editorUi.toolbar.addButton("geSprite-right",
-mxResources.get("right"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),g);this.styleButtons([q,t,r]);if(b.cellEditor.isContentEditing()){var w=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},h);this.styleButtons([w])}var v=this.editorUi.toolbar.addButton("geSprite-top",
+mxResources.get("right"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),g);this.styleButtons([q,t,r]);if(b.cellEditor.isContentEditing()){var w=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},k);this.styleButtons([w])}var v=this.editorUi.toolbar.addButton("geSprite-top",
mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),g),u=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),g),z=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),
-g);this.styleButtons([v,u,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(g);var x,D,A,C,B,L,K;b.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",z.style.display="none",p.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},g),this.styleButtons([A,x=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",
-!1,null)},g),D=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},g)]),A.style.marginRight="9px",n=g.cloneNode(!1),n.style.paddingTop="4px",g=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),
+g);this.styleButtons([v,u,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(g);var x,C,A,D,B,L,K;b.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",z.style.display="none",p.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},g),this.styleButtons([A,x=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",
+!1,null)},g),C=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},g)]),A.style.marginRight="9px",n=g.cloneNode(!1),n.style.paddingTop="4px",g=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),
function(){document.execCommand("insertunorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},n)],this.styleButtons(g),g[g.length-1].style.marginLeft=
"9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),n.style.height="40"),a.appendChild(n)):(m[2].style.marginRight="9px",r.style.marginRight="9px");g=e.cloneNode(!1);g.style.marginLeft="0px";g.style.paddingTop="8px";g.style.paddingBottom="4px";g.style.fontWeight="normal";mxUtils.write(g,mxResources.get("position"));var I=document.createElement("select");I.style.position="absolute";I.style.right="20px";I.style.width="97px";I.style.marginTop="-2px";for(var w="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),
E={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,
@@ -2705,64 +2706,64 @@ mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDL
J.setAttribute("value",w[n]);mxUtils.write(J,mxResources.get(w[n]));I.appendChild(J)}g.appendChild(I);w=e.cloneNode(!1);w.style.marginLeft="0px";w.style.paddingTop="4px";w.style.paddingBottom="4px";w.style.fontWeight="normal";mxUtils.write(w,mxResources.get("writingDirection"));var N=document.createElement("select");N.style.position="absolute";N.style.right="20px";N.style.width="97px";N.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],Q={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,
rightToLeft:mxConstants.TEXT_DIRECTION_RTL},n=0;n<J.length;n++){var O=document.createElement("option");O.setAttribute("value",J[n]);mxUtils.write(O,mxResources.get(J[n]));N.appendChild(O)}w.appendChild(N);b.isEditing()||(a.appendChild(g),mxEvent.addListener(I,"change",function(a){b.getModel().beginUpdate();try{var c=E[I.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),
b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(w),mxEvent.addListener(N,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Q[N.value],b.getSelectionCells());mxEvent.consume(a)}));var F=document.createElement("input");F.style.textAlign="right";F.style.marginTop="4px";mxClient.IS_QUIRKS||(F.style.position="absolute",
-F.style.right="32px");F.style.width="46px";F.style.height=mxClient.IS_QUIRKS?"21px":"17px";h.appendChild(F);var H=null,g=this.installInputHandler(F,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(!window.getSelection||mxClient.IS_IE||mxClient.IS_IE11)for(H=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++){if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=H+"px";
-window.setTimeout(function(){F.value=H+" pt";H=null},0);break}}else{var c=function(c,e){c!=b.cellEditor.textarea&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==
-mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(var e=0;e<f.length;e++)c(f[e])}F.value=a+" pt"}},!0),g=this.createStepper(F,g,1,10,!0,Menus.prototype.defaultFontSize);g.style.display=F.style.display;g.style.marginTop="4px";mxClient.IS_QUIRKS||(g.style.right="20px");h.appendChild(g);h=l.getElementsByTagName("div")[0];h.style.cssFloat="right";var G=
-null,y="#ffffff",W=null,R="#000000",T=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return y},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){G=a},destroy:function(){G=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=
-null})});T.style.fontWeight="bold";var ca=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");ca.style.fontWeight="bold";h=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return R},function(a){document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){W=a},destroy:function(){W=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,
-"#000000",function(a){T.style.display=null==a||a==mxConstants.NONE?"none":"";ca.style.display=T.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});h.style.fontWeight="bold";k.appendChild(h);k.appendChild(T);b.cellEditor.isContentEditing()||k.appendChild(ca);
-a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBottom="4px";h=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);h.style.fontWeight="bold";f.containsLabel||f.autoSize||0!=f.edges.length||k.appendChild(h);h=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));h.style.fontWeight="bold";k.appendChild(h);h=this.createPanel();h.style.paddingTop="10px";
-h.style.paddingBottom="28px";h.style.fontWeight="normal";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("spacing"));h.appendChild(g);var X,U,ka,da,la,ea=this.addUnitInput(h,"pt",91,44,function(){X.apply(this,arguments)}),Y=this.addUnitInput(h,"pt",20,44,function(){U.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("top"),91);this.addLabel(h,mxResources.get("global"),
-20);mxUtils.br(h);mxUtils.br(h);var Z=this.addUnitInput(h,"pt",162,44,function(){ka.apply(this,arguments)}),fa=this.addUnitInput(h,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(h,"pt",20,44,function(){la.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("left"),162);this.addLabel(h,mxResources.get("bottom"),91);this.addLabel(h,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ba=null,ma=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
+F.style.right="32px");F.style.width="46px";F.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(F);var G=null,g=this.installInputHandler(F,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(!window.getSelection||mxClient.IS_IE||mxClient.IS_IE11)for(G=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++){if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=G+"px";
+window.setTimeout(function(){F.value=G+" pt";G=null},0);break}}else{var c=function(c,e){c!=b.cellEditor.textarea&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==
+mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(var e=0;e<f.length;e++)c(f[e])}F.value=a+" pt"}},!0),g=this.createStepper(F,g,1,10,!0,Menus.prototype.defaultFontSize);g.style.display=F.style.display;g.style.marginTop="4px";mxClient.IS_QUIRKS||(g.style.right="20px");k.appendChild(g);k=l.getElementsByTagName("div")[0];k.style.cssFloat="right";var H=
+null,y="#ffffff",W=null,R="#000000",T=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return y},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){H=a},destroy:function(){H=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=
+null})});T.style.fontWeight="bold";var ca=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");ca.style.fontWeight="bold";k=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return R},function(a){document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){W=a},destroy:function(){W=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,
+"#000000",function(a){T.style.display=null==a||a==mxConstants.NONE?"none":"";ca.style.display=T.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});k.style.fontWeight="bold";h.appendChild(k);h.appendChild(T);b.cellEditor.isContentEditing()||h.appendChild(ca);
+a.appendChild(h);h=this.createPanel();h.style.paddingTop="2px";h.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);k.style.fontWeight="bold";f.containsLabel||f.autoSize||0!=f.edges.length||h.appendChild(k);k=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));k.style.fontWeight="bold";h.appendChild(k);k=this.createPanel();k.style.paddingTop="10px";
+k.style.paddingBottom="28px";k.style.fontWeight="normal";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("spacing"));k.appendChild(g);var X,U,ja,da,ka,ea=this.addUnitInput(k,"pt",91,44,function(){X.apply(this,arguments)}),Y=this.addUnitInput(k,"pt",20,44,function(){U.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("top"),91);this.addLabel(k,mxResources.get("global"),
+20);mxUtils.br(k);mxUtils.br(k);var Z=this.addUnitInput(k,"pt",162,44,function(){ja.apply(this,arguments)}),fa=this.addUnitInput(k,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(k,"pt",20,44,function(){ka.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("left"),162);this.addLabel(k,mxResources.get("bottom"),91);this.addLabel(k,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ba=null,la=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
null,null,function(a){var c=""==a.value?120:parseInt(a.value),c=Math.max(0,isNaN(c)?120:c);null!=ba&&(b.cellEditor.restoreSelection(ba),ba=null);for(var d=b.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;null!=d&&d==b.cellEditor.textarea&&null!=b.cellEditor.textarea.firstChild&&("P"!=b.cellEditor.textarea.firstChild.nodeName&&(b.cellEditor.textarea.innerHTML="<p>"+b.cellEditor.textarea.innerHTML+"</p>"),d=b.cellEditor.textarea.firstChild);null!=d&&d!=b.cellEditor.textarea&&
-(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ma=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});a.value="120 %"}));k=e.cloneNode(!1);k.style.paddingLeft="0px";h=this.editorUi.toolbar.addItems(["link","image"],k,!0);g=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),
-function(){document.execCommand("inserthorizontalrule",!1)},k),this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(h);this.styleButtons(g);h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("insert")));h.appendChild(k);a.appendChild(h);mxClient.IS_QUIRKS&&(h.style.height="70");h=e.cloneNode(!1);
-h.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex:0))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex+1:-1))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),
-function(){try{null!=B&&null!=L&&b.deleteColumn(B,L.cellIndex)}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex+1))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-deleterow",
-mxResources.get("deleteRow"),function(){try{null!=B&&null!=K&&b.deleteRow(B,K.sectionRowIndex)}catch(S){alert(S)}},h)];this.styleButtons(g);g[2].style.marginRight="9px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(h);mxClient.IS_QUIRKS&&(mxUtils.br(a),k.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),
+(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){la=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});a.value="120 %"}));h=e.cloneNode(!1);h.style.paddingLeft="0px";k=this.editorUi.toolbar.addItems(["link","image"],h,!0);g=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),
+function(){document.execCommand("inserthorizontalrule",!1)},h),this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(k);this.styleButtons(g);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(h);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);
+k.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex:0))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex+1:-1))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),
+function(){try{null!=B&&null!=L&&b.deleteColumn(B,L.cellIndex)}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex+1))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-deleterow",
+mxResources.get("deleteRow"),function(){try{null!=B&&null!=K&&b.deleteRow(B,K.sectionRowIndex)}catch(S){alert(S)}},k)];this.styleButtons(g);g[2].style.marginRight="9px";h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("table")));h.appendChild(k);mxClient.IS_QUIRKS&&(mxUtils.br(a),h.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),
mxUtils.bind(this,function(){if(null!=B){var a=B.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?(B.removeAttribute("border"),B.style.border="",B.style.borderCollapse=""):(B.setAttribute("border","1"),B.style.border="1px solid "+a,B.style.borderCollapse="collapse")})}}),
e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(){if(null!=B){var a=B.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){B.style.backgroundColor=null==a||a==mxConstants.NONE?"":a})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",
mxResources.get("spacing"),function(){if(null!=B){var a=B.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?B.setAttribute("cellPadding",a):B.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=B&&B.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",
-mxResources.get("center"),function(){null!=B&&B.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=B&&B.setAttribute("align","right")},e)];this.styleButtons(g);g[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));k.appendChild(e);a.appendChild(k);C=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(h);var V=mxUtils.bind(this,
+mxResources.get("center"),function(){null!=B&&B.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=B&&B.setAttribute("align","right")},e)];this.styleButtons(g);g[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(h),mxUtils.br(h));h.appendChild(e);a.appendChild(h);D=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var V=mxUtils.bind(this,
function(a,b,d){f=this.format.getSelectionState();a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(m[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);l.firstChild.nodeValue=mxUtils.htmlEntities(mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));c(p,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=
F)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),F.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(r,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(v,a==mxConstants.ALIGN_TOP);c(u,a==mxConstants.ALIGN_MIDDLE);c(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,
mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);I.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&
b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?N.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?N.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(N.value="automatic");if(d||document.activeElement!=Y)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),Y.value=isNaN(a)?
"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_TOP,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_RIGHT,0)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),fa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Z)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,
-0)),Z.value=isNaN(a)?"":a+" pt"});U=this.installInputHandler(Y,mxConstants.STYLE_SPACING,2,-999,999," pt");X=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");la=this.installInputHandler(ga,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");da=this.installInputHandler(fa,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ka=this.installInputHandler(Z,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(F,V);this.addKeyHandler(Y,V);this.addKeyHandler(ea,V);this.addKeyHandler(ga,
-V);this.addKeyHandler(fa,V);this.addKeyHandler(Z,V);b.getModel().addListener(mxEvent.CHANGE,V);this.listeners.push({destroy:function(){b.getModel().removeListener(V)}});V();if(b.cellEditor.isContentEditing()){var na=!1,e=function(){na||(na=!0,window.setTimeout(function(){for(var a=b.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a){var d=function(a){return"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},e=function(a,b,c){return"%"==
+0)),Z.value=isNaN(a)?"":a+" pt"});U=this.installInputHandler(Y,mxConstants.STYLE_SPACING,2,-999,999," pt");X=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");ka=this.installInputHandler(ga,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");da=this.installInputHandler(fa,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ja=this.installInputHandler(Z,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(F,V);this.addKeyHandler(Y,V);this.addKeyHandler(ea,V);this.addKeyHandler(ga,
+V);this.addKeyHandler(fa,V);this.addKeyHandler(Z,V);b.getModel().addListener(mxEvent.CHANGE,V);this.listeners.push({destroy:function(){b.getModel().removeListener(V)}});V();if(b.cellEditor.isContentEditing()){var ma=!1,e=function(){ma||(ma=!0,window.setTimeout(function(){for(var a=b.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a){var d=function(a){return"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},e=function(a,b,c){return"%"==
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)};a==b.cellEditor.textarea&&1==b.cellEditor.textarea.children.length&&b.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.cellEditor.textarea.firstChild);var f=mxUtils.getCurrentStyle(a),g=d(f.fontSize),h=e(g,f.lineHeight,a),k=a.getElementsByTagName("*");if(0<k.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var p=
window.getSelection(),n=0;n<k.length;n++)if(p.containsNode(k[n],!0)){temp=mxUtils.getCurrentStyle(k[n]);var g=Math.max(d(temp.fontSize),g),u=e(g,temp.lineHeight,k[n]);if(u!=h||isNaN(u))h=""}null!=f&&(c(m[0],"bold"==f.fontWeight||null!=b.getParentByName(a,"B",b.cellEditor.textarea)),c(m[1],"italic"==f.fontStyle||null!=b.getParentByName(a,"I",b.cellEditor.textarea)),c(m[2],null!=b.getParentByName(a,"U",b.cellEditor.textarea)),c(q,"left"==f.textAlign),c(t,"center"==f.textAlign),c(r,"right"==f.textAlign),
-c(A,"justify"==f.textAlign),c(D,null!=b.getParentByName(a,"SUP",b.cellEditor.textarea)),c(x,null!=b.getParentByName(a,"SUB",b.cellEditor.textarea)),B=b.getParentByName(a,"TABLE",b.cellEditor.textarea),K=null==B?null:b.getParentByName(a,"TR",B),L=null==B?null:b.getParentByName(a,"TD",B),C.style.display=null!=B?"":"none",document.activeElement!=F&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=H?(a.removeAttribute("size"),a.style.fontSize=H+" pt",H=null):F.value=isNaN(g)?"":g+" pt",u=parseFloat(h),
-isNaN(u)?ma.value="100 %":ma.value=Math.round(100*u)+" %"),a=f.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),d=f.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
-null!=W&&(R="#"==a.charAt(0)?a:"#000000",W(R,!0)),null!=G&&(y="#"==d.charAt(0)?d:null,G(y,!0)),null!=l.firstChild&&(f=f.fontFamily,"'"==f.charAt(0)&&(f=f.substring(1)),"'"==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),'"'==f.charAt(0)&&(f=f.substring(1)),'"'==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),l.firstChild.nodeValue=f))}na=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
+c(A,"justify"==f.textAlign),c(C,null!=b.getParentByName(a,"SUP",b.cellEditor.textarea)),c(x,null!=b.getParentByName(a,"SUB",b.cellEditor.textarea)),B=b.getParentByName(a,"TABLE",b.cellEditor.textarea),K=null==B?null:b.getParentByName(a,"TR",B),L=null==B?null:b.getParentByName(a,"TD",B),D.style.display=null!=B?"":"none",document.activeElement!=F&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=G?(a.removeAttribute("size"),a.style.fontSize=G+" pt",G=null):F.value=isNaN(g)?"":g+" pt",u=parseFloat(h),
+isNaN(u)?la.value="100 %":la.value=Math.round(100*u)+" %"),a=f.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),d=f.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
+null!=W&&(R="#"==a.charAt(0)?a:"#000000",W(R,!0)),null!=H&&(y="#"==d.charAt(0)?d:null,H(y,!0)),null!=l.firstChild&&(f=f.fontFamily,"'"==f.charAt(0)&&(f=f.substring(1)),"'"==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),'"'==f.charAt(0)&&(f=f.substring(1)),'"'==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),l.firstChild.nodeValue=f))}ma=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel()));this.container.appendChild(this.addStroke(this.createPanel()));this.container.appendChild(this.addLineJumps(this.createPanel()));a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41);a.style.paddingTop="8px";a.style.paddingBottom="8px";this.container.appendChild(a);this.container.appendChild(this.addEffects(this.createPanel()));
a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),d=null;1==this.editorUi.editor.graph.getSelectionCount()&&(d=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="202px",d.style.marginBottom="2px",a.appendChild(d));c.image&&(c=mxUtils.button(mxResources.get("editImage"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="202px":(d.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));return a};
StyleFormatPanel.prototype.addFill=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var b=document.createElement("select");b.style.position="absolute";b.style.marginTop="-2px";b.style.right=mxClient.IS_QUIRKS?"52px":"72px";b.style.width="70px";mxEvent.addListener(b,"click",function(a){mxEvent.consume(a)});var f=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,"#ffffff",function(a){b.style.display=
-null==a||a==mxConstants.NONE?"none":""}),e="image"==d.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,k=this.createCellColorOption(mxResources.get("fill"),e,"#ffffff");k.style.fontWeight="bold";e=mxUtils.getValue(d.style,e,null);f.style.display=null!=e&&e!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";for(var g=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST],e=0;e<g.length;e++){var h=document.createElement("option");
-h.setAttribute("value",g[e]);mxUtils.write(h,mxResources.get(g[e]));b.appendChild(h)}f.appendChild(b);var l=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH);""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);f.style.display=!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?
-"none":""});c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(k);a.appendChild(f);k=this.getCustomColors();for(e=0;e<k.length;e++)a.appendChild(this.createCellColorOption(k[e].title,k[e].key,k[e].defaultValue));return a};
+null==a||a==mxConstants.NONE?"none":""}),e="image"==d.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,h=this.createCellColorOption(mxResources.get("fill"),e,"#ffffff");h.style.fontWeight="bold";e=mxUtils.getValue(d.style,e,null);f.style.display=null!=e&&e!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";for(var g=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST],e=0;e<g.length;e++){var k=document.createElement("option");
+k.setAttribute("value",g[e]);mxUtils.write(k,mxResources.get(g[e]));b.appendChild(k)}f.appendChild(b);var l=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH);""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);f.style.display=!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?
+"none":""});c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(h);a.appendChild(f);h=this.getCustomColors();for(e=0;e<h.length;e++)a.appendChild(this.createCellColorOption(h[e].title,h[e].key,h[e].defaultValue));return a};
StyleFormatPanel.prototype.getCustomColors=function(){var a=[];"swimlane"==this.format.getSelectionState().style.shape&&a.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return a};
StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));w.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
-c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
-"bold";var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var h=["sharp","rounded","curved"],l=0;l<h.length;l++){var m=document.createElement("option");m.setAttribute("value",h[l]);mxUtils.write(m,mxResources.get(h[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:
-"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,h=this.createCellColorOption(mxResources.get("line"),p,"#000000");h.appendChild(g);k.appendChild(h);
-var n=k.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=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=
+c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var h=document.createElement("div");h.style.fontWeight=
+"bold";var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var k=["sharp","rounded","curved"],l=0;l<k.length;l++){var m=document.createElement("option");m.setAttribute("value",k[l]);mxUtils.write(m,mxResources.get(k[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:
+"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,k=this.createCellColorOption(mxResources.get("line"),p,"#000000");k.appendChild(g);h.appendChild(k);
+var n=h.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=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(n,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));
q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),t=n.cloneNode(!1),r=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-connection",
mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",
mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),
m=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",
-mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),w=document.createElement("input");w.style.textAlign="right";w.style.marginTop="2px";w.style.width="41px";w.setAttribute("title",mxResources.get("linewidth"));n.appendChild(w);
+mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),k=n.cloneNode(!1),w=document.createElement("input");w.style.textAlign="right";w.style.marginTop="2px";w.style.width="41px";w.setAttribute("title",mxResources.get("linewidth"));n.appendChild(w);
var v=w.cloneNode(!0);t.appendChild(v);var u=this.createStepper(w,c,1,9);u.style.display=w.style.display;u.style.marginTop="2px";n.appendChild(u);var z=this.createStepper(v,d,1,9);z.style.display=v.style.display;z.style.marginTop="2px";t.appendChild(z);mxClient.IS_QUIRKS?(w.style.height="17px",v.style.height="17px"):(w.style.position="absolute",w.style.right="32px",w.style.height="15px",u.style.right="20px",v.style.position="absolute",v.style.right="32px",v.style.height="15px",z.style.right="20px");
-mxEvent.addListener(w,"blur",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(v,"blur",d);mxEvent.addListener(v,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(h),mxUtils.br(h));var x=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
+mxEvent.addListener(w,"blur",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(v,"blur",d);mxEvent.addListener(v,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));var x=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),"connector"==e.style.shape&&this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,
-mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),D=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-startclassic",
+mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),C=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-startclassic",
mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?
(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-startclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-startclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-startopen",
null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-startopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["openAsync",0],"geIcon geSprite geSprite-startopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-startblock",
@@ -2774,7 +2775,7 @@ null,!1).setAttribute("title",mxResources.get("oval")),this.editorUi.menus.edgeS
this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["dash",0],"geIcon geSprite geSprite-startdash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,
"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,
-"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),A=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
+"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),A=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
@@ -2785,27 +2786,27 @@ null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-endthindiamondtrans",null,!1).setAttribute("title",mxResources.get("diamondThin")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",
-null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(r,8);this.addArrow(x);this.addArrow(D);this.addArrow(A);u=this.addArrow(l,9);u.className="geIcon";u.style.width="84px";z=this.addArrow(m,9);z.className="geIcon";z.style.width="22px";var C=document.createElement("div");C.style.width="85px";C.style.height="1px";C.style.borderBottom=
-"1px solid "+this.defaultStrokeColor;C.style.marginBottom="9px";u.appendChild(C);var B=document.createElement("div");B.style.width="23px";B.style.height="1px";B.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.marginBottom="9px";z.appendChild(B);l.style.height="15px";m.style.height="15px";r.style.height="15px";x.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(k);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);
+null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(r,8);this.addArrow(x);this.addArrow(C);this.addArrow(A);u=this.addArrow(l,9);u.className="geIcon";u.style.width="84px";z=this.addArrow(m,9);z.className="geIcon";z.style.width="22px";var D=document.createElement("div");D.style.width="85px";D.style.height="1px";D.style.borderBottom=
+"1px solid "+this.defaultStrokeColor;D.style.marginBottom="9px";u.appendChild(D);var B=document.createElement("div");B.style.width="23px";B.style.height="1px";B.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.marginBottom="9px";z.appendChild(B);l.style.height="15px";m.style.height="15px";r.style.height="15px";x.style.height="17px";C.style.marginLeft="3px";C.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(h);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);
l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var L,K,I=this.addUnitInput(l,"pt",74,33,function(){L.apply(this,arguments)}),E=this.addUnitInput(l,"pt",20,33,function(){K.apply(this,arguments)});mxUtils.br(l);u=document.createElement("div");
-u.style.height="8px";l.appendChild(u);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,N,Q=this.addUnitInput(l,"pt",74,33,function(){J.apply(this,arguments)}),O=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom=
-"2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.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"));k.appendChild(m);var F,H=this.addUnitInput(k,"pt",20,41,function(){F.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(h),mxClient.IS_QUIRKS&&(mxUtils.br(a),
-mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(k));var G=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(f,e.style.shape,a,c);"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter=
+u.style.height="8px";l.appendChild(u);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,N,Q=this.addUnitInput(l,"pt",74,33,function(){J.apply(this,arguments)}),O=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);h=h.cloneNode(!1);h.style.fontWeight="normal";h.style.position="relative";h.style.paddingLeft="16px";h.style.marginBottom=
+"2px";h.style.marginTop="6px";h.style.borderWidth="0px";h.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));h.appendChild(m);var F,G=this.addUnitInput(h,"pt",20,41,function(){F.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(k),mxClient.IS_QUIRKS&&(mxUtils.br(a),
+mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(h));var H=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(f,e.style.shape,a,c);"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter=
"none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px");return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(d||document.activeElement!=w)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";
-"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?C.style.borderBottom="1px dashed "+this.defaultStrokeColor:C.style.borderBottom="1px dotted "+this.defaultStrokeColor:C.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.borderBottom=C.style.borderBottom;
+"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?D.style.borderBottom="1px dashed "+this.defaultStrokeColor:D.style.borderBottom="1px dotted "+this.defaultStrokeColor:D.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.borderBottom=D.style.borderBottom;
a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,
null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";r.getElementsByTagName("div")[0].className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";e.edges.length==
-f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),D,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",
-c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(A,100));if(d||document.activeElement!=O)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),E.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=H)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),H.value=isNaN(a)?"":
-a+" pt"});N=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(E,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");F=this.installInputHandler(H,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,G);this.addKeyHandler(O,
-G);this.addKeyHandler(Q,G);this.addKeyHandler(E,G);this.addKeyHandler(I,G);this.addKeyHandler(H,G);f.getModel().addListener(mxEvent.CHANGE,G);this.listeners.push({destroy:function(){f.getModel().removeListener(G)}});G();return a};
+f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),C,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",
+c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(C,30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(C,100),mxUtils.setOpacity(A,100));if(d||document.activeElement!=O)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,
+mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),E.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=G)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),G.value=isNaN(a)?"":
+a+" pt"});N=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(E,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");F=this.installInputHandler(G,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,H);this.addKeyHandler(O,
+H);this.addKeyHandler(Q,H);this.addKeyHandler(E,H);this.addKeyHandler(I,H);this.addKeyHandler(G,H);f.getModel().addListener(mxEvent.CHANGE,H);this.listeners.push({destroy:function(){f.getModel().removeListener(H)}});H();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,f=document.createElement("div");f.style.position="absolute";f.style.fontWeight="bold";f.style.width="80px";mxUtils.write(f,mxResources.get("lineJumps"));a.appendChild(f);var e=document.createElement("select");e.style.position="absolute";e.style.marginTop="-2px";
-e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],k=0;k<f.length;k++){var g=document.createElement("option");g.setAttribute("value",f[k]);mxUtils.write(g,mxResources.get(f[k]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
-mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var h,l=this.addUnitInput(a,"pt",22,33,function(){h.apply(this,arguments)});h=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
+e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],h=0;h<f.length;h++){var g=document.createElement("option");g.setAttribute("value",f[h]);mxUtils.write(g,mxResources.get(f[h]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
+mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var k,l=this.addUnitInput(a,"pt",22,33,function(){k.apply(this,arguments)});k=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
m);b.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){b.getModel().removeListener(m)}});m()}else a.style.display="none";return a};
-StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var b=document.createElement("table");mxClient.IS_QUIRKS&&(b.style.fontSize="1em");b.style.width="100%";b.style.fontWeight="bold";b.style.paddingRight="20px";var f=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var 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";e.appendChild(k);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var h=k,l=0,m=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";h.appendChild(a);h=h==k?g:k;l++}),p=mxUtils.bind(this,function(b,c,e){d=this.format.getSelectionState();k.innerHTML="";g.innerHTML="";h=k;d.rounded&&m(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&m(mxResources.get("divider"),
+StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var b=document.createElement("table");mxClient.IS_QUIRKS&&(b.style.fontSize="1em");b.style.width="100%";b.style.fontWeight="bold";b.style.paddingRight="20px";var f=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var h=document.createElement("td");h.style.padding="0px";h.style.width="50%";h.setAttribute("valign",
+"top");var g=h.cloneNode(!0);g.style.paddingLeft="8px";e.appendChild(h);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var k=h,l=0,m=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";k.appendChild(a);k=k==h?g:h;l++}),p=mxUtils.bind(this,function(b,c,e){d=this.format.getSelectionState();h.innerHTML="";g.innerHTML="";k=h;d.rounded&&m(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&m(mxResources.get("divider"),
"swimlaneLine",1);d.containsImage||m(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,0);d.glass&&m(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);d.comic&&m(mxResources.get("comic"),"comic",0);0==l&&(a.style.display="none")});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";var c=mxUtils.button(mxResources.get("setAsDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("setAsDefaultStyle").funct()}));c.setAttribute("title",mxResources.get("setAsDefaultStyle")+" ("+this.editorUi.actions.get("setAsDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};
mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))};
@@ -2816,53 +2817,53 @@ DiagramFormatPanel.prototype.addOptions=function(a){var c=this.editorUi,d=c.edit
a.appendChild(this.createOption(mxResources.get("connectionPoints"),function(){return d.connectionHandler.isEnabled()},function(a){c.actions.get("connectionPoints").funct()},{install:function(a){this.listener=function(){a(d.connectionHandler.isEnabled())};c.addListener("connectionPointsChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}})),a.appendChild(this.createOption(mxResources.get("guides"),function(){return d.graphHandler.guidesEnabled},function(a){c.actions.get("guides").funct()},
{install:function(a){this.listener=function(){a(d.graphHandler.guidesEnabled)};c.addListener("guidesEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}})));return a};
DiagramFormatPanel.prototype.addGridOption=function(a){function c(a){var c=parseInt(f.value),c=Math.max(1,isNaN(c)?10:c);c!=b.getGridSize()&&b.setGridSize(c);f.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=document.createElement("input");f.style.position="absolute";f.style.textAlign="right";f.style.width="38px";f.value=b.getGridSize()+" pt";var e=this.createStepper(f,c);f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display;mxEvent.addListener(f,"keydown",
-function(a){13==a.keyCode?(b.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(f.value=b.getGridSize(),b.container.focus(),mxEvent.consume(a))});mxEvent.addListener(f,"blur",c);mxEvent.addListener(f,"change",c);if(mxClient.IS_SVG){f.style.marginTop="-2px";f.style.right="84px";e.style.marginTop="-16px";e.style.right="72px";var k=this.createColorOption(mxResources.get("grid"),function(){var a=b.view.gridColor;return b.isGridEnabled()?a:null},function(a){a==mxConstants.NONE?(b.setGridEnabled(!1),
-d.fireEvent(new mxEventObject("gridEnabledChanged"))):(b.setGridEnabled(!0),d.setGridColor(a));f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display},"#e0e0e0",{install:function(a){this.listener=function(){a(b.isGridEnabled()?b.view.gridColor:null)};d.addListener("gridColorChanged",this.listener);d.addListener("gridEnabledChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});k.appendChild(f);k.appendChild(e);a.appendChild(k)}else f.style.marginTop="2px",
+function(a){13==a.keyCode?(b.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(f.value=b.getGridSize(),b.container.focus(),mxEvent.consume(a))});mxEvent.addListener(f,"blur",c);mxEvent.addListener(f,"change",c);if(mxClient.IS_SVG){f.style.marginTop="-2px";f.style.right="84px";e.style.marginTop="-16px";e.style.right="72px";var h=this.createColorOption(mxResources.get("grid"),function(){var a=b.view.gridColor;return b.isGridEnabled()?a:null},function(a){a==mxConstants.NONE?(b.setGridEnabled(!1),
+d.fireEvent(new mxEventObject("gridEnabledChanged"))):(b.setGridEnabled(!0),d.setGridColor(a));f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display},"#e0e0e0",{install:function(a){this.listener=function(){a(b.isGridEnabled()?b.view.gridColor:null)};d.addListener("gridColorChanged",this.listener);d.addListener("gridEnabledChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});h.appendChild(f);h.appendChild(e);a.appendChild(h)}else f.style.marginTop="2px",
f.style.right="32px",e.style.marginTop="2px",e.style.right="20px",a.appendChild(f),a.appendChild(e),a.appendChild(this.createOption(mxResources.get("grid"),function(){return b.isGridEnabled()},function(a){b.setGridEnabled(a);b.isGridEnabled()&&(b.view.gridColor="#e0e0e0");d.fireEvent(new mxEventObject("gridEnabledChanged"))},{install:function(a){this.listener=function(){f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display;a(b.isGridEnabled())};d.addListener("gridEnabledChanged",
this.listener)},destroy:function(){d.removeListener(this.listener)}}))};DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a};
DiagramFormatPanel.prototype.addPaperSize=function(a){var c=this.editorUi,d=c.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var b=PageSetupDialog.addPageFormatPanel(a,"formatpanel",d.pageFormat,function(a){if(null==d.pageFormat||d.pageFormat.width!=a.width||d.pageFormat.height!=a.height)a=new ChangePageSetup(c,null,null,a),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a)});this.addKeyHandler(b.widthInput,function(){b.set(d.pageFormat)});this.addKeyHandler(b.heightInput,
function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addListener("pageFormatChanged",f);this.listeners.push({destroy:function(){c.removeListener(f)}});d.getModel().addListener(mxEvent.CHANGE,f);this.listeners.push({destroy:function(){d.getModel().removeListener(f)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
-c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function e(){mxActor.call(this)}function k(){mxCylinder.call(this)}function g(){mxActor.call(this)}function h(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function t(a,b){this.canvas=
+c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function e(){mxActor.call(this)}function h(){mxCylinder.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function t(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,t.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,t.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,t.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,t.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,t.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,t.prototype.arcTo)}function r(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function A(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}
-function L(){mxEllipse.call(this)}function K(){mxShape.call(this)}function I(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function J(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function O(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function H(){mxDoubleEllipse.call(this)}function G(){mxArrowConnector.call(this);this.spacing=0}function y(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}
-function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function ka(){mxActor.call(this)}function da(){mxActor.call(this)}function la(){mxActor.call(this)}function ea(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function fa(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function ma(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function na(){mxEllipse.call(this)}
-function S(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function oa(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var P=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(P.x-e-g,P.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
+this.canvas.curveTo=mxUtils.bind(this,t.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,t.prototype.arcTo)}function r(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function A(){mxCylinder.call(this)}function D(){mxShape.call(this)}function B(){mxShape.call(this)}
+function L(){mxEllipse.call(this)}function K(){mxShape.call(this)}function I(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function J(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function O(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function G(){mxDoubleEllipse.call(this)}function H(){mxArrowConnector.call(this);this.spacing=0}function y(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}
+function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function ja(){mxActor.call(this)}function da(){mxActor.call(this)}function ka(){mxActor.call(this)}function ea(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function fa(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function la(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function ma(){mxEllipse.call(this)}
+function S(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var P=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(P.x-e-g,P.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var za=Math.tan(mxUtils.toRadians(30)),ia=(.5-za)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/za);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ia);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ia)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+za));f?(a.moveTo(0,.25*b),a.lineTo(.5*
-b,(.5-ia)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ia)*b),a.lineTo(.5*b,(1-ia)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ia),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ia)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.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);var za=Math.tan(mxUtils.toRadians(30)),oa=(.5-za)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/za);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*oa);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-oa)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+za));f?(a.moveTo(0,.25*b),a.lineTo(.5*
+b,(.5-oa)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-oa)*b),a.lineTo(.5*b,(1-oa)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*oa),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-oa)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.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())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
b);mxUtils.extend(f,mxCylinder);f.prototype.size=30;f.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(d-b,0),a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",f);mxUtils.extend(e,mxActor);e.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",e);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
-f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",k);mxUtils.extend(g,mxActor);g.prototype.size=30;g.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,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,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",g);mxUtils.extend(h,mxActor);h.prototype.size=.4;h.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*
-d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};h.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",
-h);mxUtils.extend(l,mxActor);l.prototype.size=.3;l.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();
+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",e);mxUtils.extend(h,mxCylinder);h.prototype.tabWidth=60;h.prototype.tabHeight=20;h.prototype.tabPosition="right";h.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
+f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",h);mxUtils.extend(g,mxActor);g.prototype.size=30;g.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,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,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",g);mxUtils.extend(k,mxActor);k.prototype.size=.4;k.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*
+d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};k.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",
+k);mxUtils.extend(l,mxActor);l.prototype.size=.3;l.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();
a.end()};mxCellRenderer.registerShape("document",l);mxCylinder.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,Math.min(this.maxHeight*this.scale,.3*a.height),0,0):null};mxUtils.extend(m,mxActor);m.prototype.size=.2;m.prototype.redrawPath=function(a,b,c,d,e){b=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,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",m);mxUtils.extend(p,mxActor);p.prototype.size=.2;p.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,
c,!0)};mxCellRenderer.registerShape("trapezoid",p);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=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(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};
mxCellRenderer.registerShape("curlyBracket",n);mxUtils.extend(q,mxActor);q.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",q);t.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};t.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};t.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};t.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};t.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=
-g};t.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var P=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
-k*f+this.lastX-P*e,c*f+this.lastY-P*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};t.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};var Ka=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ka.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ha=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ha.apply(this,arguments)};
-var Ia=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ia.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
+g};t.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var P=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
+P*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};t.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};var Ea=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ea.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};
+var Ja=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ja.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("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.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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()}};var Ja=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ja.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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=
+c)),a.close(),a.end(),a.fillAndStroke()}};var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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};r.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",r);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};w.prototype.paintForeground=
function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.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)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=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+h),e-c),new mxPoint(g,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",
v);mxUtils.extend(u,mxActor);u.prototype.size=.2;u.prototype.fixedSize=20;u.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",u);mxUtils.extend(z,mxHexagon);z.prototype.size=.25;z.prototype.redrawPath=function(a,b,c,d,e){b=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",z);mxUtils.extend(x,mxRectangleShape);x.prototype.isHtmlAllowed=function(){return!1};x.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",x);var Ea=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){Ea.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),Ea.apply(this,[a,b,
-c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.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};D.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]||
+this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",z);mxUtils.extend(x,mxRectangleShape);x.prototype.isHtmlAllowed=function(){return!1};x.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",x);var Fa=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){Fa.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),Fa.apply(this,[a,b,
+c,d,e]))}};mxUtils.extend(C,mxRectangleShape);C.prototype.isHtmlAllowed=function(){return!1};C.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};C.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,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],P=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,Aa=this.style["symbol"+f+"VSpacing"]||m,aa=this.style["symbol"+f+"ArcSpacing"];null!=aa&&(aa*=this.getArcSize(d+this.strokewidth,
-e+this.strokewidth),m+=aa,Aa+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-P)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-P-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-Aa):ra+Aa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,P,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(A,mxCylinder);A.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",A);mxUtils.extend(C,mxShape);C.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",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.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",B);mxUtils.extend(L,mxEllipse);L.prototype.paintVertexShape=function(a,
+e+this.strokewidth),m+=aa,Aa+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-P)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-P-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-Aa):ra+Aa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,P,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",C);mxUtils.extend(A,mxCylinder);A.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",A);mxUtils.extend(D,mxShape);D.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",D);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.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",B);mxUtils.extend(L,mxEllipse);L.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",L);mxUtils.extend(K,mxShape);K.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",K);mxUtils.extend(I,mxShape);I.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
a.height/8,a.width,7*a.height/8)};I.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()};I.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",I);mxUtils.extend(E,mxRectangleShape);E.prototype.size=40;E.prototype.isHtmlAllowed=function(){return!1};E.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)};E.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=E&&(g=new g,
@@ -2884,40 +2885,40 @@ e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,a),new mxPoint(f+h-e,g+k),new mxPoint(
a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",N);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.inset=2;Q.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",Q);mxUtils.extend(O,mxCylinder);O.prototype.jettyWidth=32;O.prototype.jettyHeight=12;O.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",O);mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);
-this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",F);mxUtils.extend(H,F);H.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",H);mxUtils.extend(G,mxArrowConnector);G.prototype.defaultWidth=4;G.prototype.isOpenEnded=function(){return!0};G.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};G.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-G);mxUtils.extend(y,mxArrowConnector);y.prototype.defaultWidth=10;y.prototype.defaultArrowWidth=20;y.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};y.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",F);mxUtils.extend(G,F);G.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",G);mxUtils.extend(H,mxArrowConnector);H.prototype.defaultWidth=4;H.prototype.isOpenEnded=function(){return!0};H.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};H.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+H);mxUtils.extend(y,mxArrowConnector);y.prototype.defaultWidth=10;y.prototype.defaultArrowWidth=20;y.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};y.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
y);mxUtils.extend(W,mxActor);W.prototype.size=30;W.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",W);mxUtils.extend(R,mxRectangleShape);R.prototype.dx=20;R.prototype.dy=20;R.prototype.isHtmlAllowed=
function(){return!1};R.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",R);mxUtils.extend(T,mxActor);T.prototype.dx=20;T.prototype.dy=20;T.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",T);mxUtils.extend(ca,mxActor);ca.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",ca);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
20;X.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",X);mxUtils.extend(U,mxActor);U.prototype.arrowWidth=.3;U.prototype.arrowSize=.2;U.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",U);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.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",ka);mxUtils.extend(da,mxActor);da.prototype.size=.1;da.prototype.redrawPath=function(a,b,c,d,e){b=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",da);mxUtils.extend(la,mxActor);la.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",la);mxUtils.extend(ea,mxActor);ea.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);
+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",U);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.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",ja);mxUtils.extend(da,mxActor);da.prototype.size=.1;da.prototype.redrawPath=function(a,b,c,d,e){b=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",da);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",ka);mxUtils.extend(ea,mxActor);ea.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",ea);mxUtils.extend(Y,mxActor);Y.prototype.size=20;Y.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",
Y);mxUtils.extend(Z,mxActor);Z.prototype.size=.375;Z.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",Z);mxUtils.extend(fa,mxEllipse);fa.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",fa);mxUtils.extend(ga,mxEllipse);ga.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",
-ga);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ba);mxUtils.extend(ma,mxRhombus);ma.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",ma);mxUtils.extend(V,mxEllipse);V.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",V);mxUtils.extend(na,mxEllipse);na.prototype.paintVertexShape=
-function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",na);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
+ga);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ba);mxUtils.extend(la,mxRhombus);la.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",la);mxUtils.extend(V,mxEllipse);V.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",V);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=
+function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ma);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),a.begin(),a.moveTo(b,c),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(b,c-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",S);mxUtils.extend(ua,
mxEllipse);ua.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",ua);mxUtils.extend(va,mxActor);va.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",va);mxUtils.extend(pa,mxActor);pa.prototype.size=.2;pa.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",
-pa);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.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",qa);mxUtils.extend(oa,mxConnector);oa.prototype.origPaintEdgeShape=oa.prototype.paintEdgeShape;oa.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;oa.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),oa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",oa);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
-l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Da.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-
-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 n=
-e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Fa=function(a,b,c){return sa(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})},sa=function(a,b,c,d,e){return M(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ja=function(a){return function(b){return[M(b,["arrowWidth",
+pa);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.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",qa);mxUtils.extend(na,mxConnector);na.prototype.origPaintEdgeShape=na.prototype.paintEdgeShape;na.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;na.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),na.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),p=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
+l){var m=e*(g+k+1),p=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.moveTo(d.x-m/2+p/2,d.y-p/2-m/2);a.lineTo(d.x-p/2-3*m/2,d.y-3*p/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),p=Da.apply(this,arguments),n=e*(g+2*k),q=f*(g+2*k);return function(){p.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*q+f*k);a.moveTo(m.x-
+n-q+f*k,m.y-q+n-e*k);a.lineTo(m.x+q-n-f*k,m.y-q-n+e*k);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 p=
+e.clone();return function(){b.begin();b.moveTo(p.x,p.y);k?b.lineTo(p.x-f-g/a,p.y-g+f/a):b.lineTo(p.x+g/a-f,p.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ga=function(a,b,c){return sa(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})},sa=function(a,b,c,d,e){return M(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,p=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,p,h/p,m/p,l,g,d,f)})},ia=function(a){return function(b){return[M(b,["arrowWidth",
"arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.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))})]}},Ba=function(a,b,c){return function(d){var e=
[M(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},wa=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[M(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(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ga=function(a){return function(b){var c=
+"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ha=function(a){return function(b){var c=
[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ha(b));return c}},ta=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b}},ha=function(a,b){return M(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},M=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};
-g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Fa(a,!0,10),Fa(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(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
+g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Ga(a,!0,10),Ga(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(sa(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(sa(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,
@@ -2939,24 +2940,24 @@ b)},function(a,b){mxUtils.getValue(this.state.style,"base",v.prototype.base);thi
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",R.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",R.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.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)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.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)))})]},singleArrow:ja(1),doubleArrow:ja(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(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",k.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)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",h.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))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.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))})]},step:wa(u.prototype.size,!0,null,!0,u.prototype.fixedSize),hexagon:wa(z.prototype.size,!0,.5,!0),curlyBracket:wa(n.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,Y.prototype.size,!0),trapezoid:Ga(.5),parallelogram:Ga(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=
+Math.min(a.height,b.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",h.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",h.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",h.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",h.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)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.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))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.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))})]},step:wa(u.prototype.size,!0,null,!0,u.prototype.fixedSize),hexagon:wa(z.prototype.size,!0,.5,!0),curlyBracket:wa(n.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,Y.prototype.size,!0),trapezoid:Ha(.5),parallelogram:Ha(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Ca[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&
-(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ja=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ja),Math.sin(ja)),ja=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,Math.cos(ja),Math.sin(ja));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=xa.x,l=xa.y,m=ya.x,n=ya.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+
+(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ia=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,Math.cos(ia),Math.sin(ia));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=xa.x,l=xa.y,m=ya.x,p=ya.y,n="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(p*a-m*d)/(k*p-l*m);a=(l*a-k*d)/(l*m-k*p);n?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+p*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+p*a),e.push(q)),q=new mxPoint(q.x+
k*b,q.y+l*b));e.push(q)};var q=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 La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return La.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];v.prototype.constraints=[];
mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;
+.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;
R.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;ua.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=
mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;Z.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)];C.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,
+.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)];D.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)];O.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)];e.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)];h.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,
+1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];k.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)];u.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)];N.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,
@@ -2964,15 +2965,15 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot
!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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;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(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;X.prototype.constraints=null;T.prototype.constraints=null;ca.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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.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),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];E.prototype.constraints=null;la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,
+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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.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),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];E.prototype.constraints=null;ka.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)];ea.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();var c=b.getDeletableCells(b.getSelectionCells());if(null!=c&&0<c.length){var d=b.model.getParents(c);b.removeCells(c,a);if(null!=d){a=[];for(c=0;c<d.length;c++)b.model.contains(d[c])&&(b.model.isVertex(d[c])||b.model.isEdge(d[c]))&&a.push(d[c]);b.setSelectionCells(a)}}}var c=this.editorUi,d=c.editor,b=d.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(c.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,
320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=f;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=f;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
function(){c.showDialog((new PageSetupDialog(c)).container,320,220,!0,!0)}).isEnabled=f;this.addAction("print...",function(){c.showDialog((new PrintDialog(c)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){c.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){c.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
function(){mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(b)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&mxClipboard.paste(b)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){b.getModel().beginUpdate();try{var c=mxClipboard.paste(b);if(null!=c){a=!0;for(var d=0;d<c.length&&
-a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,f=b.view.scale,g=e.x,k=e.y,e=null;if(1==c.length&&a){var t=b.getCellGeometry(c[0]);null!=t&&(e=t.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var r=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g)),w=Math.round(b.snap(b.popupMenuHandler.triggerY/f-k));b.cellsMoved(c,r-e.x,w-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
+a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,f=b.view.scale,g=e.x,h=e.y,e=null;if(1==c.length&&a){var t=b.getCellGeometry(c[0]);null!=t&&(e=t.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var r=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g)),w=Math.round(b.snap(b.popupMenuHandler.triggerY/f-h));b.cellsMoved(c,r-e.x,w-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){b.setSelectionCells(b.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){b.turnShapes(b.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){b.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){b.selectEdges()},
null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){b.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){b.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();try{var a=b.isCellMovable(b.getSelectionCell())?1:0;b.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);b.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);b.toggleCellStyles(mxConstants.STYLE_ROTATABLE,
a);b.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);b.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);b.toggleCellStyles("connectable",a)}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){b.home()},null,null,"Home");this.addAction("exitGroup",function(){b.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){b.enterGroup()},null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){b.foldCells(!0)},
@@ -2996,7 +2997,7 @@ e=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandle
new ChangePageSetup(c);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.foldingEnabled});e.isEnabled=f;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!b.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return b.pageVisible});
e=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionHandler.isEnabled()});
e=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});e.isEnabled=f;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=f;e.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(c.showDialog((new AboutDialog(c)).container,320,280,!0,!0,function(){k=!1}),k=!0)},null,null,"F1"));e=mxUtils.bind(this,function(a,c,d,e){return this.addAction(a,function(){if(null!=d&&b.cellEditor.isContentEditing())d();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var h=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){h||(c.showDialog((new AboutDialog(c)).container,320,280,!0,!0,function(){h=!1}),h=!0)},null,null,"F1"));e=mxUtils.bind(this,function(a,c,d,e){return this.addAction(a,function(){if(null!=d&&b.cellEditor.isContentEditing())d();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
c),(c&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(c&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.updateLabelElements(b.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
b.replaceElement(a)})}finally{b.getModel().endUpdate()}}},null,null,e)});e("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");e("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
@@ -3007,8 +3008,8 @@ this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyl
e=null!=d?d.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("curved",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,
"1"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=b.view.getState(b.getSelectionCell()),d="1";null!=a&&null!=b.getFoldingImage(a)&&(d="0");b.setCellStyles("collapsible",d);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",b.getSelectionCells()))});this.addAction("editStyle...",
mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var c=b.getModel(),c=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",c.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(c.container,420,300,!0,!0);c.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&c.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+
-"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&c.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var c=d.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var e=b.view.translate,f=b.view.scale,k=e.x,e=e.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=n;)k+=n.x,e+=n.y,a=b.getModel().getParent(a),n=
-b.getCellGeometry(a);k=Math.round(b.snap(b.popupMenuHandler.triggerX/f-k));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-e));c.addPointAt(c.state,k,f)}}});this.addAction("removeWaypoint",function(){var a=c.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().isEdge(d)){var e=
+"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&c.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var c=d.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var e=b.view.translate,f=b.view.scale,h=e.x,e=e.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=n;)h+=n.x,e+=n.y,a=b.getModel().getParent(a),n=
+b.getCellGeometry(a);h=Math.round(b.snap(b.popupMenuHandler.triggerX/f-h));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-e));c.addPointAt(c.state,h,f)}}});this.addAction("removeWaypoint",function(){var a=c.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().isEdge(d)){var e=
b.getCellGeometry(d);null!=e&&(e=e.clone(),e.points=null,b.getModel().setGeometry(d,e))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");e=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");e=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=b.getView().getState(b.getSelectionCell()),e="";null!=d&&(e=d.style[mxConstants.STYLE_IMAGE]||e);var f=b.cellEditor.saveSelection();c.showImageDialog(a,e,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate();
try{if(0==e.length){var h=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",h.x,h.y,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=b.view.getState(e[0]),l=null!=k?k.style:b.getCellStyle(e[0]);"image"!=l[mxConstants.STYLE_SHAPE]&&"label"!=l[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",
@@ -3024,7 +3025,7 @@ Menus.prototype.init=function(){var a=this.editorUi.editor.graph,c=mxUtils.bind(
this.put("formatBlock",new Menu(mxUtils.bind(this,function(c,b){function d(d,f){return c.addItem(d,null,mxUtils.bind(this,function(){a.cellEditor.textarea.focus();document.execCommand("formatBlock",!1,"<"+f+">")}),b)}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,b){for(var d=[6,8,9,10,11,12,14,18,24,36,48,72],e=mxUtils.bind(this,function(d){this.styleChange(c,d,[mxConstants.STYLE_FONTSIZE],[d],null,b,function(){document.execCommand("fontSize",!1,"3");for(var b=a.cellEditor.textarea.getElementsByTagName("font"),c=0;c<b.length;c++)if("3"==b[c].getAttribute("size")){b[c].removeAttribute("size");
-b[c].style.fontSize=d+"px";break}})}),k=0;k<d.length;k++)e(d[k]);c.addSeparator(b);if(0<this.customFontSizes.length){for(k=0;k<this.customFontSizes.length;k++)e(this.customFontSizes[k]);c.addSeparator(b);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),b);c.addSeparator(b)}this.promptChange(c,mxResources.get("custom")+"...","(pt)","12",mxConstants.STYLE_FONTSIZE,b,!0,mxUtils.bind(this,function(a){this.customFontSizes.push(a)}))})));this.put("direction",
+b[c].style.fontSize=d+"px";break}})}),h=0;h<d.length;h++)e(d[h]);c.addSeparator(b);if(0<this.customFontSizes.length){for(h=0;h<this.customFontSizes.length;h++)e(this.customFontSizes[h]);c.addSeparator(b);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),b);c.addSeparator(b)}this.promptChange(c,mxResources.get("custom")+"...","(pt)","12",mxConstants.STYLE_FONTSIZE,b,!0,mxUtils.bind(this,function(a){this.customFontSizes.push(a)}))})));this.put("direction",
new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("flipH"),null,function(){a.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},b);c.addItem(mxResources.get("flipV"),null,function(){a.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},b);this.addMenuItems(c,["-","rotation"],b)})));this.put("align",new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("leftAlign"),null,function(){a.alignCells(mxConstants.ALIGN_LEFT)},b);c.addItem(mxResources.get("center"),null,function(){a.alignCells(mxConstants.ALIGN_CENTER)},
b);c.addItem(mxResources.get("rightAlign"),null,function(){a.alignCells(mxConstants.ALIGN_RIGHT)},b);c.addSeparator(b);c.addItem(mxResources.get("topAlign"),null,function(){a.alignCells(mxConstants.ALIGN_TOP)},b);c.addItem(mxResources.get("middle"),null,function(){a.alignCells(mxConstants.ALIGN_MIDDLE)},b);c.addItem(mxResources.get("bottomAlign"),null,function(){a.alignCells(mxConstants.ALIGN_BOTTOM)},b)})));this.put("distribute",new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("horizontal"),
null,function(){a.distributeCells(!0)},b);c.addItem(mxResources.get("vertical"),null,function(){a.distributeCells(!1)},b)})));this.put("layout",new Menu(mxUtils.bind(this,function(c,b){var d=mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});c.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var b=new mxHierarchicalLayout(a,
@@ -3039,24 +3040,24 @@ b)})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItem
function(c,b){this.addMenuItems(c,["resetView","-"],b);for(var d=[.25,.5,.75,1,1.25,1.5,2,3,4],e=0;e<d.length;e++)(function(d){c.addItem(100*d+"%",null,function(){a.zoomTo(d)},b)})(d[e]);this.addMenuItems(c,"- fitWindow fitPageWidth fitPage fitTwoPages - customZoom".split(" "),b)})));this.put("file",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"new open - save saveAs - import export - pageSetup print".split(" "),b)})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};
Menus.prototype.get=function(a){return this.menus[a]};Menus.prototype.addSubmenu=function(a,c,d){var b=this.get(a).isEnabled();if(c.showDisabled||b)d=c.addItem(mxResources.get(a),null,null,d,null,b),this.addMenu(a,c,d)};Menus.prototype.addMenu=function(a,c,d){var b=this.get(a);null!=b&&(c.showDisabled||b.isEnabled())&&this.get(a).execute(c,d)};
-Menus.prototype.addInsertTableItem=function(a){function c(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("")}var d=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(a){var b=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=b){var e=d.getParentByName(b,"TR"),f=d.cellEditor.textarea.getElementsByTagName("table");a=[];for(var k=0;k<f.length;k++)a.push(f[k]);d.container.focus();
-d.pasteHtmlAtCaret(c(e.sectionRowIndex+1,b.cellIndex+1));b=d.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(k=b.length-1;0<=k;k--)if(0==k||b[k]!=a[k-1]){d.selectNode(b[k].rows[0].cells[0]);break}}}));var b='<img src="'+mxClient.imageBasePath+'/transparent.gif" width="16" height="16"/>';a.firstChild.innerHTML="";var f=function(a,c){var d=document.createElement("table");d.setAttribute("border","1");d.style.borderCollapse="collapse";mxClient.IS_QUIRKS||d.setAttribute("cellPadding",
-"8");for(var e=0;e<a;e++)for(var f=d.insertRow(e),g=0;g<c;g++){var k=f.insertCell(-1);mxClient.IS_QUIRKS&&(k.innerHTML=b)}return d}(5,5);a.firstChild.appendChild(f);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(f,"mouseover",function(a){var c=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var h=d.getParentByName(c,"TR"),k=Math.min(20,h.sectionRowIndex+2),
-m=Math.min(20,c.cellIndex+2),p=f.rows.length;p<k;p++)for(var n=f.insertRow(p),q=0;q<f.rows[0].cells.length;q++){var t=n.insertCell(-1);mxClient.IS_QUIRKS&&(t.innerHTML=b)}for(p=0;p<f.rows.length;p++)for(n=f.rows[p],q=n.cells.length;q<m;q++)t=n.insertCell(-1),mxClient.IS_QUIRKS&&(t.innerHTML=b);e.innerHTML=c.cellIndex+1+"x"+(h.sectionRowIndex+1);for(k=0;k<f.rows.length;k++)for(m=f.rows[k],p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=k<=h.sectionRowIndex&&p<=c.cellIndex?"blue":"white";
+Menus.prototype.addInsertTableItem=function(a){function c(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("")}var d=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(a){var b=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=b){var e=d.getParentByName(b,"TR"),f=d.cellEditor.textarea.getElementsByTagName("table");a=[];for(var h=0;h<f.length;h++)a.push(f[h]);d.container.focus();
+d.pasteHtmlAtCaret(c(e.sectionRowIndex+1,b.cellIndex+1));b=d.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(h=b.length-1;0<=h;h--)if(0==h||b[h]!=a[h-1]){d.selectNode(b[h].rows[0].cells[0]);break}}}));var b='<img src="'+mxClient.imageBasePath+'/transparent.gif" width="16" height="16"/>';a.firstChild.innerHTML="";var f=function(a,c){var d=document.createElement("table");d.setAttribute("border","1");d.style.borderCollapse="collapse";mxClient.IS_QUIRKS||d.setAttribute("cellPadding",
+"8");for(var e=0;e<a;e++)for(var f=d.insertRow(e),g=0;g<c;g++){var h=f.insertCell(-1);mxClient.IS_QUIRKS&&(h.innerHTML=b)}return d}(5,5);a.firstChild.appendChild(f);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(f,"mouseover",function(a){var c=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var h=d.getParentByName(c,"TR"),l=Math.min(20,h.sectionRowIndex+2),
+m=Math.min(20,c.cellIndex+2),p=f.rows.length;p<l;p++)for(var n=f.insertRow(p),q=0;q<f.rows[0].cells.length;q++){var t=n.insertCell(-1);mxClient.IS_QUIRKS&&(t.innerHTML=b)}for(p=0;p<f.rows.length;p++)for(n=f.rows[p],q=n.cells.length;q<m;q++)t=n.insertCell(-1),mxClient.IS_QUIRKS&&(t.innerHTML=b);e.innerHTML=c.cellIndex+1+"x"+(h.sectionRowIndex+1);for(l=0;l<f.rows.length;l++)for(m=f.rows[l],p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=l<=h.sectionRowIndex&&p<=c.cellIndex?"blue":"white";
mxEvent.consume(a)}})};
-Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,k){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(k){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var q=0;q<d.length;q++)a.setCellStyles(d[q],b[q],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",
-d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f)};Menus.prototype.styleChange=function(a,c,d,b,f,e,k,g){var h=this.createStyleChangeFunction(d,b);return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=k&&a.cellEditor.isContentEditing()?k():h(g)}),e,f)};
+Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,h){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(h){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var q=0;q<d.length;q++)a.setCellStyles(d[q],b[q],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",
+d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f)};Menus.prototype.styleChange=function(a,c,d,b,f,e,h,g){var k=this.createStyleChangeFunction(d,b);return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=h&&a.cellEditor.isContentEditing()?h():k(g)}),e,f)};
Menus.prototype.createStyleChangeFunction=function(a,c){return mxUtils.bind(this,function(d){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var f=0;f<a.length;f++)b.setCellStyles(a[f],c[f]);null!=d&&d();this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",a,"values",c,"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}})};
-Menus.prototype.promptChange=function(a,c,d,b,f,e,k,g,h){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,c=b,e=a.getView().getState(a.getSelectionCell());null!=e&&(c=e.style[f]||c);c=new FilenameDialog(this.editorUi,c,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(f,b)}finally{a.getModel().endUpdate()}null!=g&&g(b)}}),mxResources.get("enterValue")+(0<d.length?" "+
-d:""));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}),e,h,k)};
+Menus.prototype.promptChange=function(a,c,d,b,f,e,h,g,k){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,c=b,e=a.getView().getState(a.getSelectionCell());null!=e&&(c=e.style[f]||c);c=new FilenameDialog(this.editorUi,c,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(f,b)}finally{a.getModel().endUpdate()}null!=g&&g(b)}}),mxResources.get("enterValue")+(0<d.length?" "+
+d:""));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}),e,k,h)};
Menus.prototype.pickColor=function(a,c,d){var b=this.editorUi.editor.graph;if(null!=c&&b.cellEditor.isContentEditing()){var f=b.cellEditor.saveSelection();a=new ColorDialog(this.editorUi,d||"000000",mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(f);document.execCommand(c,!1,a!=mxConstants.NONE?a:"transparent")}),function(){b.cellEditor.restoreSelection(f)});this.editorUi.showDialog(a.container,230,430,!0,!0);a.init()}else{null==this.colorDialog&&(this.colorDialog=new ColorDialog(this.editorUi));
this.colorDialog.currentColorKey=a;d=b.getView().getState(b.getSelectionCell());var e="none";null!=d&&(e=d.style[a]||e);"none"==e?(e="ffffff",this.colorDialog.picker.fromString("ffffff"),this.colorDialog.colorInput.value="none"):this.colorDialog.picker.fromString(e);this.editorUi.showDialog(this.colorDialog.container,230,430,!0,!0);this.colorDialog.init()}};
Menus.prototype.toggleStyle=function(a,c){var d=this.editorUi.editor.graph,b=d.toggleCellStyles(a,c);this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[a],"values",[b],"cells",d.getSelectionCells()))};
Menus.prototype.addMenuItem=function(a,c,d,b,f){var e=this.editorUi.actions.get(c);return null!=e&&(a.showDisabled||e.isEnabled())&&e.visible?(c=a.addItem(e.label,null,function(){e.funct(b)},d,f,e.isEnabled()),e.toggleAction&&e.isSelected()&&a.addCheckmark(c,Editor.checkmarkImage),this.addShortcut(c,e),c):null};
Menus.prototype.addShortcut=function(a,c){if(null!=c.shortcut){var d=a.firstChild.nextSibling.nextSibling,b=document.createElement("span");b.style.color="gray";mxUtils.write(b,c.shortcut);d.appendChild(b)}};Menus.prototype.addMenuItems=function(a,c,d,b,f){for(var e=0;e<c.length;e++)"-"==c[e]?a.addSeparator(d):this.addMenuItem(a,c[e],d,b,null!=f?f[e]:null)};
Menus.prototype.createPopupMenu=function(a,c,d){var b=this.editorUi.editor.graph;a.smartSeparators=!0;b.isSelectionEmpty()?this.addMenuItems(a,["undo","redo","pasteHere"],null,d):this.addMenuItems(a,"delete - cut copy - duplicate".split(" "),null,d);if(b.isSelectionEmpty())this.addMenuItems(a,"- selectVertices selectEdges selectAll - clearDefaultStyle".split(" "),null,d);else{1==b.getSelectionCount()&&this.addMenuItems(a,["setAsDefaultStyle"],null,d);a.addSeparator();c=b.getSelectionCell();var f=
-b.view.getState(c);if(null!=f){var e=!1;this.addMenuItems(a,["toFront","toBack","-"],null,d);if(b.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null)){var e=b.selectionCellsHandler.getHandler(c),k=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var k=e.getHandleForEvent(b.updateMouseEvent(new mxMouseEvent(d))),g=this.editorUi.actions.get("removeWaypoint");g.handler=
-e;g.index=k;k=0<k&&k<e.bends.length-1}this.addMenuItems(a,["-",k?"removeWaypoint":"addWaypoint"],null,d);e=b.getModel().getGeometry(c);e=null!=e&&null!=e.points&&0<e.points.length}1==b.getSelectionCount()&&(e||b.getModel().isVertex(c)&&0<b.getModel().getEdgeCount(c))&&this.addMenuItems(a,["clearWaypoints"],null,d);1<b.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,d)):1==b.getSelectionCount()&&!b.getModel().isEdge(c)&&!b.isSwimlane(c)&&0<b.getModel().getChildCount(c)&&(a.addSeparator(),
+b.view.getState(c);if(null!=f){var e=!1;this.addMenuItems(a,["toFront","toBack","-"],null,d);if(b.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null)){var e=b.selectionCellsHandler.getHandler(c),h=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var h=e.getHandleForEvent(b.updateMouseEvent(new mxMouseEvent(d))),g=this.editorUi.actions.get("removeWaypoint");g.handler=
+e;g.index=h;h=0<h&&h<e.bends.length-1}this.addMenuItems(a,["-",h?"removeWaypoint":"addWaypoint"],null,d);e=b.getModel().getGeometry(c);e=null!=e&&null!=e.points&&0<e.points.length}1==b.getSelectionCount()&&(e||b.getModel().isVertex(c)&&0<b.getModel().getEdgeCount(c))&&this.addMenuItems(a,["clearWaypoints"],null,d);1<b.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,d)):1==b.getSelectionCount()&&!b.getModel().isEdge(c)&&!b.isSwimlane(c)&&0<b.getModel().getChildCount(c)&&(a.addSeparator(),
this.addMenuItems(a,["ungroup"],null,d));1==b.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["edit","-","editData","editLink"],null,d),b.getModel().isVertex(c)&&null!=mxUtils.getValue(f.style,mxConstants.STYLE_IMAGE,null)&&(a.addSeparator(),this.addMenuItem(a,"image",null,d).firstChild.nextSibling.innerHTML=mxResources.get("editImage")+"..."))}}};
Menus.prototype.createMenubar=function(a){for(var c=new Menubar(this.editorUi,a),d=this.defaultMenuItems,b=0;b<d.length;b++)mxUtils.bind(this,function(a){var e=c.addMenu(mxResources.get(d[b]),mxUtils.bind(this,function(){a.funct.apply(this,arguments)}));this.menuCreated(a,e)})(this.get(d[b]));return c};
Menus.prototype.menuCreated=function(a,c){null!=c&&a.addListener("stateChanged",function(){(c.enabled=a.enabled)?(c.className="geItem",8==document.documentMode&&(c.style.color="")):(c.className="geItem mxDisabled",8==document.documentMode&&(c.style.color="#c3c3c3"))})};function Menubar(a,c){this.editorUi=a;this.container=c}Menubar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};
@@ -3077,7 +3078,7 @@ null,!0).setAttribute("title",mxResources.get("simple"));this.editorUi.menus.edg
null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,
mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation"))})),this.addDropDownArrow(this.edgeStyleMenu,"geSprite-orthogonal",44,50,0,0,22,-4));this.addSeparator();
a=this.addMenu("",mxResources.get("insert")+" ("+mxResources.get("doubleClickTooltip")+")",!0,"insert",null,!0);this.addDropDownArrow(a,"geSprite-plus",38,48,-4,-3,36,-8)};
-Toolbar.prototype.addDropDownArrow=function(a,c,d,b,f,e,k,g){f=EditorUi.compactUi?f:g;a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.position="relative";a.innerHTML='<div class="geSprite '+c+'" style="margin-left:'+f+"px;margin-top:"+e+'px;"></div>'+this.dropdownImageHtml;a.style.width=mxClient.IS_QUIRKS?b+"px":b-(null!=k?k:32)+"px";mxClient.IS_QUIRKS&&(a.style.height=EditorUi.compactUi?"24px":"26px");EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top=
+Toolbar.prototype.addDropDownArrow=function(a,c,d,b,f,e,h,g){f=EditorUi.compactUi?f:g;a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.position="relative";a.innerHTML='<div class="geSprite '+c+'" style="margin-left:'+f+"px;margin-top:"+e+'px;"></div>'+this.dropdownImageHtml;a.style.width=mxClient.IS_QUIRKS?b+"px":b-(null!=h?h:32)+"px";mxClient.IS_QUIRKS&&(a.style.height=EditorUi.compactUi?"24px":"26px");EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top=
"5px",a.style.width=mxClient.IS_QUIRKS?d+"px":d-10+"px")};Toolbar.prototype.setFontName=function(a){null!=this.fontMenu&&(this.fontMenu.innerHTML='<div style="width:60px;overflow:hidden;display:inline-block;">'+mxUtils.htmlEntities(a)+"</div>"+this.dropdownImageHtml)};Toolbar.prototype.setFontSize=function(a){null!=this.sizeMenu&&(this.sizeMenu.innerHTML='<div style="width:24px;overflow:hidden;display:inline-block;">'+a+"</div>"+this.dropdownImageHtml)};
Toolbar.prototype.createTextToolbar=function(){var a=this.editorUi.editor.graph,c=this.addMenu("",mxResources.get("style"),!0,"formatBlock");c.style.position="relative";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.innerHTML=mxResources.get("style")+this.dropdownImageHtml;EditorUi.compactUi&&(c.style.paddingRight="18px",c.getElementsByTagName("img")[0].style.right="1px",c.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.fontMenu=this.addMenu("",mxResources.get("fontFamily"),
!0,"fontFamily");this.fontMenu.style.position="relative";this.fontMenu.style.whiteSpace="nowrap";this.fontMenu.style.overflow="hidden";this.fontMenu.style.width=mxClient.IS_QUIRKS?"80px":"60px";this.setFontName(Menus.prototype.defaultFont);EditorUi.compactUi&&(this.fontMenu.style.paddingRight="18px",this.fontMenu.getElementsByTagName("img")[0].style.right="1px",this.fontMenu.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.sizeMenu=this.addMenu(Menus.prototype.defaultFontSize,
@@ -3092,41 +3093,41 @@ mxResources.get("fontColor"));d=a.addItem("",null,this.editorUi.actions.get("bac
'<div class="geSprite geSprite-dots" style="margin-left:-2px;"></div>'+this.dropdownImageHtml;c.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(c.getElementsByTagName("img")[0].style.left="22px",c.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.addButton("geIcon geSprite geSprite-code",mxResources.get("html"),function(){a.cellEditor.toggleViewMode();0<a.cellEditor.textarea.innerHTML.length&&("&nbsp;"!=a.cellEditor.textarea.innerHTML||!a.cellEditor.clearOnChange)&&
window.setTimeout(function(){document.execCommand("selectAll",!1,null)})});this.addSeparator();c=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)}))}));c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.position="relative";c.innerHTML='<div class="geSprite geSprite-plus" style="margin-left:-4px;margin-top:-3px;"></div>'+this.dropdownImageHtml;c.style.width=mxClient.IS_QUIRKS?"36px":"16px";EditorUi.compactUi&&(c.getElementsByTagName("img")[0].style.left="24px",c.getElementsByTagName("img")[0].style.top="5px",c.style.width=mxClient.IS_QUIRKS?"50px":"30px");this.addSeparator();var d=this.addMenuFunction("geIcon geSprite geSprite-table",
-mxResources.get("table"),!1,mxUtils.bind(this,function(b){var c=a.getSelectedElement(),d=a.getParentByName(c,"TD",a.cellEditor.text2),k=a.getParentByName(c,"TR",a.cellEditor.text2);if(null==k)this.editorUi.menus.addInsertTableItem(b);else{var g=a.getParentByName(k,"TABLE",a.cellEditor.text2),c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex:0))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");
-c.setAttribute("title",mxResources.get("insertColumnBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex+1:-1))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=b.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{a.deleteColumn(g,d.cellIndex)}catch(h){mxUtils.alert(mxResources.get("error")+
-": "+h.message)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,k.sectionRowIndex))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,k.sectionRowIndex+1))}catch(h){mxUtils.alert(mxResources.get("error")+
-": "+h.message)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.deleteRow(g,k.sectionRowIndex)}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=b.addItem("",null,mxUtils.bind(this,function(){var a=g.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
+mxResources.get("table"),!1,mxUtils.bind(this,function(b){var c=a.getSelectedElement(),d=a.getParentByName(c,"TD",a.cellEditor.text2),h=a.getParentByName(c,"TR",a.cellEditor.text2);if(null==h)this.editorUi.menus.addInsertTableItem(b);else{var g=a.getParentByName(h,"TABLE",a.cellEditor.text2),c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex:0))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");
+c.setAttribute("title",mxResources.get("insertColumnBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex+1:-1))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=b.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{a.deleteColumn(g,d.cellIndex)}catch(k){mxUtils.alert(mxResources.get("error")+
+": "+k.message)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,h.sectionRowIndex))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,h.sectionRowIndex+1))}catch(k){mxUtils.alert(mxResources.get("error")+
+": "+k.message)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.deleteRow(g,h.sectionRowIndex)}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=b.addItem("",null,mxUtils.bind(this,function(){var a=g.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?(g.removeAttribute("border"),g.style.border="",g.style.borderCollapse=""):(g.setAttribute("border","1"),g.style.border="1px solid "+a,g.style.borderCollapse="collapse")})}),null,"geIcon geSprite geSprite-strokecolor");c.setAttribute("title",mxResources.get("borderColor"));c=b.addItem("",
null,mxUtils.bind(this,function(){var a=g.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){g.style.backgroundColor=null==a||a==mxConstants.NONE?"":a})}),null,"geIcon geSprite geSprite-fillcolor");c.setAttribute("title",mxResources.get("backgroundColor"));c=b.addItem("",null,mxUtils.bind(this,
function(){var a=g.getAttribute("cellPadding")||0,a=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?g.setAttribute("cellPadding",a):g.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=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","left")}),null,"geIcon geSprite geSprite-left");
c.setAttribute("title",mxResources.get("left"));c=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","center")}),null,"geIcon geSprite geSprite-center");c.setAttribute("title",mxResources.get("center"));c=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","right")}),null,"geIcon geSprite geSprite-right");c.setAttribute("title",mxResources.get("right"))}}));d.style.position="relative";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.innerHTML='<div class="geSprite geSprite-table" style="margin-left:-2px;"></div>'+
-this.dropdownImageHtml;d.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(d.getElementsByTagName("img")[0].style.left="22px",d.getElementsByTagName("img")[0].style.top="5px")};Toolbar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Toolbar.prototype.addMenu=function(a,c,d,b,f,e){var k=this.editorUi.menus.get(b),g=this.addMenuFunction(a,c,d,function(){k.funct.apply(k,arguments)},f,e);k.addListener("stateChanged",function(){g.setEnabled(k.enabled)});return g};
+this.dropdownImageHtml;d.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(d.getElementsByTagName("img")[0].style.left="22px",d.getElementsByTagName("img")[0].style.top="5px")};Toolbar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Toolbar.prototype.addMenu=function(a,c,d,b,f,e){var h=this.editorUi.menus.get(b),g=this.addMenuFunction(a,c,d,function(){h.funct.apply(h,arguments)},f,e);h.addListener("stateChanged",function(){g.setEnabled(h.enabled)});return g};
Toolbar.prototype.addMenuFunction=function(a,c,d,b,f,e){return this.addMenuFunctionInContainer(null!=f?f:this.container,a,c,d,b,e)};Toolbar.prototype.addMenuFunctionInContainer=function(a,c,d,b,f,e){c=b?this.createLabel(c):this.createButton(c);this.initElement(c,d);this.addMenuHandler(c,b,f,e);a.appendChild(c);return c};Toolbar.prototype.addSeparator=function(a){a=null!=a?a:this.container;var c=document.createElement("div");c.className="geSeparator";a.appendChild(c);return c};
Toolbar.prototype.addItems=function(a,c,d){for(var b=[],f=0;f<a.length;f++){var e=a[f];"-"==e?b.push(this.addSeparator(c)):b.push(this.addItem("geSprite-"+e.toLowerCase(),e,c,d))}return b};Toolbar.prototype.addItem=function(a,c,d,b){var f=this.editorUi.actions.get(c),e=null;null!=f&&(c=f.label,null!=f.shortcut&&(c+=" ("+f.shortcut+")"),e=this.addButton(a,c,f.funct,d),b||(e.setEnabled(f.enabled),f.addListener("stateChanged",function(){e.setEnabled(f.enabled)})));return e};
Toolbar.prototype.addButton=function(a,c,d,b){a=this.createButton(a);b=null!=b?b:this.container;this.initElement(a,c);this.addClickHandler(a,d);b.appendChild(a);return a};Toolbar.prototype.initElement=function(a,c){null!=c&&a.setAttribute("title",c);this.addEnabledState(a)};Toolbar.prototype.addEnabledState=function(a){var c=a.className;a.setEnabled=function(d){a.enabled=d;a.className=d?c:c+" mxDisabled"};a.setEnabled(!0)};
Toolbar.prototype.addClickHandler=function(a,c){null!=c&&(mxEvent.addListener(a,"click",function(d){a.enabled&&c(d);mxEvent.consume(d)}),null!=document.documentMode&&9<=document.documentMode&&mxEvent.addListener(a,"mousedown",function(a){a.preventDefault()}))};Toolbar.prototype.createButton=function(a){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");c.className="geButton";var d=document.createElement("div");null!=a&&(d.className="geSprite "+a);c.appendChild(d);return c};
Toolbar.prototype.createLabel=function(a,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.className="geLabel";mxUtils.write(d,a);return d};
-Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editorUi.editor.graph,e=null,k=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(g){if(k&&(null==a.enabled||a.enabled)){f.popupMenuHandler.hideMenu();e=new mxPopupMenu(d);e.div.className+=" geToolbarMenu";e.showDisabled=b;e.labels=c;e.autoExpand=!0;var h=mxUtils.getOffset(a);e.popup(h.x,h.y+a.offsetHeight,null,g);this.editorUi.setCurrentMenu(e,a);!c&&e.div.scrollHeight>e.div.clientHeight&&(e.div.style.width="40px");
-e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}k=!0;mxEvent.consume(g)}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(b){k=this.currentElt!=a;null!=document.documentMode&&9<=document.documentMode&&b.preventDefault()}))}};
+Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editorUi.editor.graph,e=null,h=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(g){if(h&&(null==a.enabled||a.enabled)){f.popupMenuHandler.hideMenu();e=new mxPopupMenu(d);e.div.className+=" geToolbarMenu";e.showDisabled=b;e.labels=c;e.autoExpand=!0;var k=mxUtils.getOffset(a);e.popup(k.x,k.y+a.offsetHeight,null,g);this.editorUi.setCurrentMenu(e,a);!c&&e.div.scrollHeight>e.div.clientHeight&&(e.div.style.width="40px");
+e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}h=!0;mxEvent.consume(g)}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(b){h=this.currentElt!=a;null!=document.documentMode&&9<=document.documentMode&&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";var c=mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)?20:0;a.setAttribute("width",(Editor.useLocalStorage?640:320)+c+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+c+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=
-function(a,c,d,b){function f(){var a=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function e(a,b,c,d){b=null!=b?b:12;var e=document.createElement("table");e.style.borderCollapse="collapse";e.setAttribute("cellspacing","0");e.style.marginBottom="20px";e.style.cellSpacing="0px";var h=document.createElement("tbody");e.appendChild(h);for(var m=a.length/b,n=0;n<m;n++){for(var p=document.createElement("tr"),q=0;q<b;q++)(function(a){var b=
-document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;p.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),k.value="none"):g.fromString(a)}))})(a[n*b+q]);h.appendChild(p)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
-a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();e.parentNode.replaceChild(f(),e)}));l.appendChild(e);return e}this.editorUi=a;var k=document.createElement("input");k.style.marginBottom="10px";
-k.style.width="216px";mxClient.IS_IE&&(k.style.marginTop="10px",document.body.appendChild(k));this.init=function(){mxClient.IS_TOUCH||k.focus()};var g=new jscolor.color(k);g.pickerOnfocus=!1;g.showPicker();var h=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";h.appendChild(jscolor.picker.box);var l=document.createElement("center");h.appendChild(k);
-mxUtils.br(h);f();var m=e(this.presetColors);m.style.marginBottom="8px";m=e(this.defaultColors);m.style.marginBottom="16px";h.appendChild(l);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var n=null!=d?d:this.createApplyFunction();d=mxUtils.button(mxResources.get("apply"),function(){var b=k.value;ColorDialog.addRecentColor(b,
-12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);n(b);a.hideDialog()});d.className="geBtn gePrimaryBtn";m.appendChild(d);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(g.fromString("ffffff"),k.value="none"):g.fromString(c));h.appendChild(m);this.picker=g;this.colorInput=k;mxEvent.addListener(h,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=h};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(" ");
+function(a,c,d,b){function f(){var a=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function e(a,b,c,d){b=null!=b?b:12;var e=document.createElement("table");e.style.borderCollapse="collapse";e.setAttribute("cellspacing","0");e.style.marginBottom="20px";e.style.cellSpacing="0px";var k=document.createElement("tbody");e.appendChild(k);for(var m=a.length/b,n=0;n<m;n++){for(var p=document.createElement("tr"),q=0;q<b;q++)(function(a){var b=
+document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;p.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),h.value="none"):g.fromString(a)}))})(a[n*b+q]);k.appendChild(p)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
+a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();e.parentNode.replaceChild(f(),e)}));l.appendChild(e);return e}this.editorUi=a;var h=document.createElement("input");h.style.marginBottom="10px";
+h.style.width="216px";mxClient.IS_IE&&(h.style.marginTop="10px",document.body.appendChild(h));this.init=function(){mxClient.IS_TOUCH||h.focus()};var g=new jscolor.color(h);g.pickerOnfocus=!1;g.showPicker();var k=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";k.appendChild(jscolor.picker.box);var l=document.createElement("center");k.appendChild(h);
+mxUtils.br(k);f();var m=e(this.presetColors);m.style.marginBottom="8px";m=e(this.defaultColors);m.style.marginBottom="16px";k.appendChild(l);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var n=null!=d?d:this.createApplyFunction();d=mxUtils.button(mxResources.get("apply"),function(){var b=h.value;ColorDialog.addRecentColor(b,
+12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);n(b);a.hideDialog()});d.className="geBtn gePrimaryBtn";m.appendChild(d);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(g.fromString("ffffff"),h.value="none"):g.fromString(c));k.appendChild(m);this.picker=g;this.colorInput=h;mxEvent.addListener(k,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=k};ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");
ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
-"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},FilenameDialog=function(a,c,d,b,f,e,k,g,h,l){h=null!=h?h:!0;var m,p,n=document.createElement("table"),q=document.createElement("tbody");n.style.marginTop="8px";m=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace=
-"nowrap";p.style.fontSize="10pt";p.style.width="120px";mxUtils.write(p,(f||mxResources.get("filename"))+":");m.appendChild(p);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width="180px";var r=mxUtils.button(d,function(){if(null==e||e(t.value))h&&a.hideDialog(),b(t.value)});r.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
+"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},FilenameDialog=function(a,c,d,b,f,e,h,g,k,l){k=null!=k?k:!0;var m,p,n=document.createElement("table"),q=document.createElement("tbody");n.style.marginTop="8px";m=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace=
+"nowrap";p.style.fontSize="10pt";p.style.width="120px";mxUtils.write(p,(f||mxResources.get("filename"))+":");m.appendChild(p);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width="180px";var r=mxUtils.button(d,function(){if(null==e||e(t.value))k&&a.hideDialog(),b(t.value)});r.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==h)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=n.parentNode,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")),r.click());a.stopPropagation();a.preventDefault()}))}};p=document.createElement("td");p.appendChild(t);m.appendChild(p);null==f&&null!=k||q.appendChild(m);null!=k&&(m=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(k),m.appendChild(p),q.appendChild(m));m=document.createElement("tr");p=document.createElement("td");p.colSpan=
+"",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(t.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),r.click());a.stopPropagation();a.preventDefault()}))}};p=document.createElement("td");p.appendChild(t);m.appendChild(p);null==f&&null!=h||q.appendChild(m);null!=h&&(m=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(h),m.appendChild(p),q.appendChild(m));m=document.createElement("tr");p=document.createElement("td");p.colSpan=
2;p.style.paddingTop="20px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});c.className="geBtn";a.editor.cancelFirst&&p.appendChild(c);null!=g&&(d=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),d.className="geBtn",p.appendChild(d));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&r.click()});p.appendChild(r);a.editor.cancelFirst||p.appendChild(c);m.appendChild(p);
-q.appendChild(m);n.appendChild(q);this.container=n},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var n,q,t=document.createElement("table"),r=document.createElement("tbody");n=document.createElement("tr");q=document.createElement("td");q.style.fontSize="10pt";q.style.width="100px";mxUtils.write(q,c);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=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,d||"");w.style.resize="none";w.style.width=k+"px";w.style.height=g+"px";this.textarea=w;this.init=function(){w.focus();w.scrollTop=0};q.appendChild(w);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=document.createElement("td");q.style.paddingTop="14px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");
-c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=h&&h(q);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(w.value)}),h.className="geBtn gePrimaryBtn",q.appendChild(h));a.editor.cancelFirst||q.appendChild(c);n.appendChild(q);r.appendChild(n);t.appendChild(r);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";
+q.appendChild(m);n.appendChild(q);this.container=n},TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,m,p){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var n,q,t=document.createElement("table"),r=document.createElement("tbody");n=document.createElement("tr");q=document.createElement("td");q.style.fontSize="10pt";q.style.width="100px";mxUtils.write(q,c);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=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,d||"");w.style.resize="none";w.style.width=h+"px";w.style.height=g+"px";this.textarea=w;this.init=function(){w.focus();w.scrollTop=0};q.appendChild(w);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=document.createElement("td");q.style.paddingTop="14px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");
+c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=k&&k(q);null!=b&&(k=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(w.value)}),k.className="geBtn gePrimaryBtn",q.appendChild(k));a.editor.cancelFirst||q.appendChild(c);n.appendChild(q);r.appendChild(n);t.appendChild(r);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";
var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();
a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className=
"geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),
@@ -3134,108 +3135,108 @@ f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),functi
f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};
EditDiagramDialog.showNewWindowOption=!0;
var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),q.setAttribute("disabled","true"),t.setAttribute("disabled","true"),w.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),t.removeAttribute("disabled"),w.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled")}
-function d(){q.style.backgroundColor=q.value*t.value>MAX_AREA||0>=q.value?"red":"";t.style.backgroundColor=q.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,k=Math.ceil(f.width/e),g=Math.ceil(f.height/e),h,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";h.style.width="100px";mxUtils.write(h,
-mxResources.get("filename")+":");f.appendChild(h);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";h=document.createElement("td");h.appendChild(m);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("format")+":");f.appendChild(h);var p=document.createElement("select");p.style.width="180px";h=document.createElement("option");h.setAttribute("value",
-"png");mxUtils.write(h,mxResources.get("formatPng"));p.appendChild(h);h=document.createElement("option");ExportDialog.showGifOption&&(h.setAttribute("value","gif"),mxUtils.write(h,mxResources.get("formatGif")),p.appendChild(h));h=document.createElement("option");h.setAttribute("value","jpg");mxUtils.write(h,mxResources.get("formatJpg"));p.appendChild(h);h=document.createElement("option");h.setAttribute("value","pdf");mxUtils.write(h,mxResources.get("formatPdf"));p.appendChild(h);h=document.createElement("option");
-h.setAttribute("value","svg");mxUtils.write(h,mxResources.get("formatSvg"));p.appendChild(h);ExportDialog.showXmlOption&&(h=document.createElement("option"),h.setAttribute("value","xml"),mxUtils.write(h,mxResources.get("formatXml")),p.appendChild(h));h=document.createElement("td");h.appendChild(p);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("zoom")+" (%):");f.appendChild(h);var n=document.createElement("input");
-n.setAttribute("type","number");n.setAttribute("value","100");n.style.width="180px";h=document.createElement("td");h.appendChild(n);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("width")+":");f.appendChild(h);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";h=document.createElement("td");h.appendChild(q);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");
-h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("height")+":");f.appendChild(h);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";h=document.createElement("td");h.appendChild(t);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("background")+":");f.appendChild(h);var r=document.createElement("input");r.setAttribute("type",
-"checkbox");r.checked=null==b.background||b.background==mxConstants.NONE;h=document.createElement("td");h.appendChild(r);mxUtils.write(h,mxResources.get("transparent"));f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("borderWidth")+":");f.appendChild(h);var w=document.createElement("input");w.setAttribute("type","number");w.setAttribute("value",ExportDialog.lastBorderValue);w.style.width="180px";
-h=document.createElement("td");h.appendChild(w);f.appendChild(h);l.appendChild(f);e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(q.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value=
-"100",q.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(k*a)):(n.value="100",q.value=k,t.value=g);d()});f=document.createElement("tr");h=document.createElement("td");h.setAttribute("align","right");h.style.paddingTop="22px";h.colSpan=2;var v=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=
-m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(w.value)),g=b.background;if(("svg"==d||"png"==d)&&r.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f)}}));v.className="geBtn gePrimaryBtn";var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst?(h.appendChild(u),h.appendChild(v)):(h.appendChild(v),h.appendChild(u));f.appendChild(h);
+function d(){q.style.backgroundColor=q.value*t.value>MAX_AREA||0>=q.value?"red":"";t.style.backgroundColor=q.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,
+mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var p=document.createElement("select");p.style.width="180px";k=document.createElement("option");k.setAttribute("value",
+"png");mxUtils.write(k,mxResources.get("formatPng"));p.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),p.appendChild(k));k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));p.appendChild(k);k=document.createElement("option");k.setAttribute("value","pdf");mxUtils.write(k,mxResources.get("formatPdf"));p.appendChild(k);k=document.createElement("option");
+k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));p.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),p.appendChild(k));k=document.createElement("td");k.appendChild(p);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");f.appendChild(k);var n=document.createElement("input");
+n.setAttribute("type","number");n.setAttribute("value","100");n.style.width="180px";k=document.createElement("td");k.appendChild(n);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");f.appendChild(k);var q=document.createElement("input");q.setAttribute("value",h);q.style.width="180px";k=document.createElement("td");k.appendChild(q);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");
+k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");f.appendChild(k);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";k=document.createElement("td");k.appendChild(t);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");f.appendChild(k);var r=document.createElement("input");r.setAttribute("type",
+"checkbox");r.checked=null==b.background||b.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(r);mxUtils.write(k,mxResources.get("transparent"));f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");f.appendChild(k);var w=document.createElement("input");w.setAttribute("type","number");w.setAttribute("value",ExportDialog.lastBorderValue);w.style.width="180px";
+k=document.createElement("td");k.appendChild(w);f.appendChild(k);l.appendChild(f);e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<h?(q.value=Math.floor(h*a),t.value=Math.floor(g*a)):(n.value="100",q.value=h,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/h;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value=
+"100",q.value=h,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(h*a)):(n.value="100",q.value=h,t.value=g);d()});f=document.createElement("tr");k=document.createElement("td");k.setAttribute("align","right");k.style.paddingTop="22px";k.colSpan=2;var v=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=
+m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(w.value)),g=b.background;if(("svg"==d||"png"==d)&&r.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f)}}));v.className="geBtn gePrimaryBtn";var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst?(k.appendChild(u),k.appendChild(v)):(k.appendChild(v),k.appendChild(u));f.appendChild(k);
l.appendChild(f);e.appendChild(l);this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
-ExportDialog.exportFile=function(a,c,d,b,f,e){var k=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(k.getSvg(b,f,e)),c,d);else{var g=k.getGraphBounds(),h=mxUtils.createXmlDocument(),l=h.createElement("output");h.appendChild(l);h=new mxXmlCanvas2D(l);h.translate(Math.floor((e/f-g.x)/k.view.scale),Math.floor((e/f-g.y)/k.view.scale));h.scale(f/k.view.scale);(new mxImageExport).drawState(k.getView().getState(k.model.root),
-h);l="xml="+encodeURIComponent(mxUtils.getXml(l));h=Math.ceil(g.width*f/k.view.scale+2*e);f=Math.ceil(g.height*f/k.view.scale+2*e);l.length<=MAX_REQUEST_SIZE&&h*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+h+"&h="+f+"&"+l)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
+ExportDialog.exportFile=function(a,c,d,b,f,e){var h=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(h.getSvg(b,f,e)),c,d);else{var g=h.getGraphBounds(),k=mxUtils.createXmlDocument(),l=k.createElement("output");k.appendChild(l);k=new mxXmlCanvas2D(l);k.translate(Math.floor((e/f-g.x)/h.view.scale),Math.floor((e/f-g.y)/h.view.scale));k.scale(f/h.view.scale);(new mxImageExport).drawState(h.getView().getState(h.model.root),
+k);l="xml="+encodeURIComponent(mxUtils.getXml(l));k=Math.ceil(g.width*f/h.view.scale+2*e);f=Math.ceil(g.height*f/h.view.scale+2*e);l.length<=MAX_REQUEST_SIZE&&k*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+k+"&h="+f+"&"+l)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(d)+"&format="+b)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,c){function d(){0<r.value.length?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var g=new mxForm("properties");g.table.style.width="100%";for(var k=e.attributes,h=[],l=[],m=0,p=function(a,b){var c=document.createElement("div");c.style.position="relative";
+var EditDataDialog=function(a,c){function d(){0<r.value.length?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",e||"");e=h}var g=new mxForm("properties");g.table.style.width="100%";for(var h=e.attributes,k=[],l=[],m=0,p=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<h.length;c++){if(h[c]==a){l[c]=null;g.table.deleteRow(b);break}null!=l[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},n=function(a,b,c){h[a]=b;l[a]=g.addTextarea(h[m]+":",c,2);l[a].style.width="100%";p(l[a],b)},q=[],t=0;t<k.length;t++)"label"!=k[t].nodeName&&"placeholders"!=k[t].nodeName&&q.push({name:k[t].nodeName,value:k[t].nodeValue});q.sort(function(a,b){return a.name<b.name?-1:
-a.name>b.name?1:0});for(t=0;t<q.length;t++)n(m,q[t].name,q[t].value),m++;k=document.createElement("div");k.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";k.appendChild(g.table);n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.marginTop="6px";var r=document.createElement("input");r.setAttribute("placeholder",mxResources.get("enterPropertyName"));r.setAttribute("type","text");r.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"18":
-"22");r.style.marginLeft="2px";n.appendChild(r);k.appendChild(n);b.appendChild(k);var w=mxUtils.button(mxResources.get("addProperty"),function(){var a=r.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(h,a);if(0<=b&&null!=l[b])l[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(h.splice(b,1),l.splice(b,1));h.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";l.push(c);p(c,a);c.focus()}r.value=""}catch(A){mxUtils.alert(A)}else mxUtils.alert(mxResources.get("invalidName"))});
-this.init=function(){0<l.length?l[0].focus():r.focus()};w.setAttribute("disabled","disabled");w.style.marginLeft="10px";w.style.width="144px";n.appendChild(w);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});k.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<h.length;d++)null==l[d]?e.removeAttribute(h[d]):(e.setAttribute(h[d],l[d].value),b=b||"placeholder"==h[d]&&"1"==
-e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(D){mxUtils.alert(D)}});n.className="geBtn gePrimaryBtn";mxEvent.addListener(r,"keyup",d);mxEvent.addListener(r,"change",d);q=document.createElement("div");q.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";var v=document.createElement("input");
+e=function(a){return function(){for(var b=0,c=0;c<k.length;c++){if(k[c]==a){l[c]=null;g.table.deleteRow(b);break}null!=l[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},n=function(a,b,c){k[a]=b;l[a]=g.addTextarea(k[m]+":",c,2);l[a].style.width="100%";p(l[a],b)},q=[],t=0;t<h.length;t++)"label"!=h[t].nodeName&&"placeholders"!=h[t].nodeName&&q.push({name:h[t].nodeName,value:h[t].nodeValue});q.sort(function(a,b){return a.name<b.name?-1:
+a.name>b.name?1:0});for(t=0;t<q.length;t++)n(m,q[t].name,q[t].value),m++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(g.table);n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.marginTop="6px";var r=document.createElement("input");r.setAttribute("placeholder",mxResources.get("enterPropertyName"));r.setAttribute("type","text");r.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"18":
+"22");r.style.marginLeft="2px";n.appendChild(r);h.appendChild(n);b.appendChild(h);var w=mxUtils.button(mxResources.get("addProperty"),function(){var a=r.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(k,a);if(0<=b&&null!=l[b])l[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(k.splice(b,1),l.splice(b,1));k.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";l.push(c);p(c,a);c.focus()}r.value=""}catch(A){mxUtils.alert(A)}else mxUtils.alert(mxResources.get("invalidName"))});
+this.init=function(){0<l.length?l[0].focus():r.focus()};w.setAttribute("disabled","disabled");w.style.marginLeft="10px";w.style.width="144px";n.appendChild(w);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<k.length;d++)null==l[d]?e.removeAttribute(k[d]):(e.setAttribute(k[d],l[d].value),b=b||"placeholder"==k[d]&&"1"==
+e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(C){mxUtils.alert(C)}});n.className="geBtn gePrimaryBtn";mxEvent.addListener(r,"keyup",d);mxEvent.addListener(r,"change",d);q=document.createElement("div");q.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";var v=document.createElement("input");
v.setAttribute("type","checkbox");v.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);mxEvent.addListener(v,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});t.appendChild(v);mxUtils.write(t,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){v=document.createElement("a");v.setAttribute("href",EditDataDialog.placeholderHelpLink);
-v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var u=document.createElement("img");u.setAttribute("border","0");u.setAttribute("valign","middle");u.style.marginTop=mxClient.IS_IE11?"0px":"-4px";u.setAttribute("src",Editor.helpImage);v.appendChild(u);t.appendChild(v)}q.appendChild(t)}a.editor.cancelFirst?(q.appendChild(k),q.appendChild(n)):(q.appendChild(n),q.appendChild(k));b.appendChild(q);this.container=b};
+v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var u=document.createElement("img");u.setAttribute("border","0");u.setAttribute("valign","middle");u.style.marginTop=mxClient.IS_IE11?"0px":"-4px";u.setAttribute("src",Editor.helpImage);v.appendChild(u);t.appendChild(v)}q.appendChild(t)}a.editor.cancelFirst?(q.appendChild(h),q.appendChild(n)):(q.appendChild(n),q.appendChild(h));b.appendChild(q);this.container=b};
EditDataDialog.placeholderHelpLink=null;
-var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var k=document.createElement("input");k.setAttribute("value",c);k.setAttribute("placeholder","http://www.example.com/");k.setAttribute("type",
-"text");k.style.marginTop="6px";k.style.width="400px";k.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";k.style.backgroundRepeat="no-repeat";k.style.backgroundPosition="100% 50%";k.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
-0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){k.value="";k.focus()});e.appendChild(k);e.appendChild(c);f.appendChild(e);this.init=function(){k.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?k.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(k,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
-b(k.value))});c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&e.appendChild(c);d=mxUtils.button(d,function(){a.hideDialog();b(k.value)});d.className="geBtn gePrimaryBtn";e.appendChild(d);a.editor.cancelFirst||e.appendChild(c);f.appendChild(e);this.container=f},OutlineWindow=function(a,c,d,b,f){function e(){h.outline.pageScale=k.pageScale;h.outline.pageFormat=k.pageFormat;h.outline.pageVisible=k.pageVisible;h.outline.background=null==
-k.background||k.background==mxConstants.NONE?k.defaultPageBackgroundColor:k.background;var a=mxUtils.getCurrentStyle(k.container);g.style.backgroundColor=a.backgroundColor;null!=k.view.backgroundPageShape&&null!=h.outline.view.backgroundPageShape&&(h.outline.view.backgroundPageShape.fill=k.view.backgroundPageShape.fill);h.outline.refresh()}var k=a.editor.graph,g=document.createElement("div");g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";
+var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var h=document.createElement("input");h.setAttribute("value",c);h.setAttribute("placeholder","http://www.example.com/");h.setAttribute("type",
+"text");h.style.marginTop="6px";h.style.width="400px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
+0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){h.value="";h.focus()});e.appendChild(h);e.appendChild(c);f.appendChild(e);this.init=function(){h.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?h.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(h,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
+b(h.value))});c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&e.appendChild(c);d=mxUtils.button(d,function(){a.hideDialog();b(h.value)});d.className="geBtn gePrimaryBtn";e.appendChild(d);a.editor.cancelFirst||e.appendChild(c);f.appendChild(e);this.container=f},OutlineWindow=function(a,c,d,b,f){function e(){l.outline.pageScale=h.pageScale;l.outline.pageFormat=h.pageFormat;l.outline.pageVisible=h.pageVisible;l.outline.background=null==
+h.background||h.background==mxConstants.NONE?h.defaultPageBackgroundColor:h.background;var a=mxUtils.getCurrentStyle(h.container);g.style.backgroundColor=a.backgroundColor;null!=h.view.backgroundPageShape&&null!=l.outline.view.backgroundPageShape&&(l.outline.view.backgroundPageShape.fill=h.view.backgroundPageShape.fill);l.outline.refresh()}var h=a.editor.graph,g=document.createElement("div");g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";
g.style.overflow="hidden";this.window=new mxWindow(mxResources.get("outline"),g,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,80,80);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||
-document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)}));var h=a.createOutline(this.window);this.window.addListener(mxEvent.RESIZE,mxUtils.bind(this,function(){h.update(!1);h.outline.sizeDidChange()}));this.window.addListener(mxEvent.SHOW,
-mxUtils.bind(this,function(){h.suspended=!1;h.outline.refresh();h.update()}));this.window.addListener(mxEvent.HIDE,mxUtils.bind(this,function(){h.suspended=!0}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){h.suspended=!1;h.update()}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){h.suspended=!0}));var l=h.createGraph;h.createGraph=function(a){var b=l.apply(this,arguments);b.gridEnabled=!1;b.pageScale=k.pageScale;b.pageFormat=k.pageFormat;b.background=
-null==k.background||k.background==mxConstants.NONE?k.defaultPageBackgroundColor:k.background;b.pageVisible=k.pageVisible;var c=mxUtils.getCurrentStyle(k.container);g.style.backgroundColor=c.backgroundColor;return b};h.init(g);a.editor.addListener("resetGraphView",e);a.addListener("pageFormatChanged",e);a.addListener("backgroundColorChanged",e);a.addListener("backgroundImageChanged",e);a.addListener("pageViewChanged",function(){e();h.update(!0)});if(h.outline.dialect==mxConstants.DIALECT_SVG){var m=
-a.actions.get("zoomIn"),p=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(a,b){for(var c=!1,d=mxEvent.getSource(a);null!=d;){if(d==h.outline.view.canvas.ownerSVGElement){c=!0;break}d=d.parentNode}c&&(b?m.funct():p.funct(),mxEvent.consume(a))})}},LayersWindow=function(a,c,d,b,f){function e(b){if(g.isEnabled()&&null!=b){var c=new FilenameDialog(a,b.value||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&g.getModel().setValue(b,a)}),mxResources.get("enterName"));
-a.showDialog(c.container,300,100,!0,!0);c.init()}}function k(){function a(a,b,c,d){var f=document.createElement("div");f.className="geToolbarContainer";f.style.overflow="hidden";f.style.position="relative";f.style.padding="4px";f.style.height="22px";f.style.display="block";f.style.backgroundColor="whiteSmoke";f.style.borderWidth="0px 0px 1px 0px";f.style.borderColor="#c3c3c3";f.style.borderStyle="solid";f.style.whiteSpace="nowrap";var h=document.createElement("div");h.style.display="inline-block";
-h.style.width="100%";h.style.textOverflow="ellipsis";h.style.overflow="hidden";mxEvent.addListener(f,"dragover",function(b){b.dataTransfer.dropEffect="move";n=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(f,"dragstart",function(a){p=f;mxClient.IS_FF&&a.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(f,"dragend",function(a){null!=p&&null!=n&&g.addCell(c,g.model.root,n);n=p=null;a.stopPropagation();a.preventDefault()});var l=document.createElement("img");l.setAttribute("draggable",
-"false");l.setAttribute("align","top");l.setAttribute("border","0");l.style.padding="4px";l.setAttribute("title",mxResources.get("lockUnlock"));var r=g.view.getState(c),u=null!=r?r.style:g.getCellStyle(c);"1"==mxUtils.getValue(u,"locked","0")?l.setAttribute("src",Dialog.prototype.lockedImage):l.setAttribute("src",Dialog.prototype.unlockedImage);g.isEnabled()&&(l.style.cursor="pointer");mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==mxUtils.getValue(u,
-"locked","0")?null:"1",g.setCellStyles("locked",b,[c])}finally{g.getModel().endUpdate()}"1"==b&&g.removeSelectionCells(g.getModel().getDescendants(c));mxEvent.consume(a)}});h.appendChild(l);l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));l.style.marginLeft="4px";l.style.marginRight="6px";l.style.marginTop="4px";h.appendChild(l);g.model.isVisible(c)&&(l.setAttribute("checked","checked"),l.defaultChecked=
-!0);mxEvent.addListener(l,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});mxUtils.write(h,b);f.appendChild(h);if(g.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_VML||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position="absolute",b.style.right="6px",b.style.top="6px",0<a&&(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<q-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)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==
-c?(f.style.background="#e6eff8",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),k())});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,c.value||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));w.setAttribute("title",mxResources.get("removeIt",[t.value||mxResources.get("background")]));v.setAttribute("title",
-mxResources.get("moveSelectionTo",[t.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("duplicateIt",[t.value||mxResources.get("background")]));u.setAttribute("title",mxResources.get("renameIt",[t.value||mxResources.get("background")]));g.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border=
-"1px solid whiteSmoke";h.style.height="100%";h.style.marginBottom="10px";h.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":"#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";h.appendChild(m);var p=null,n=null;mxEvent.addListener(h,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;
-a.stopPropagation();a.preventDefault()});mxEvent.addListener(h,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,r=document.createElement("div");r.className="geToolbarContainer";r.style.position="absolute";r.style.bottom="0px";r.style.left="0px";r.style.right="0px";r.style.height=l;r.style.overflow="hidden";r.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";r.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;r.style.borderWidth=
-"1px 0px 0px 0px";r.style.borderColor="#c3c3c3";r.style.borderStyle="solid";r.style.display="block";r.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(r.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var w=l.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(t);g.removeCells([t],
-!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");r.appendChild(w);var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(v,"click",function(a){g.isEnabled()&&
-!g.isSelectionEmpty()&&g.moveCells(g.getSelectionCells(),0,0,!1,t)});r.appendChild(v);var u=l.cloneNode();u.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';u.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(u,"click",function(a){g.isEnabled()&&e(t);mxEvent.consume(a)});g.isEnabled()||(u.className="geButton mxDisabled");r.appendChild(u);var z=l.cloneNode();z.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';
+document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var k=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",k);var l=a.createOutline(this.window);this.destroy=function(){mxEvent.removeListener(window,"resize",k);this.window.destroy();l.destroy()};this.window.addListener(mxEvent.RESIZE,
+mxUtils.bind(this,function(){l.update(!1);l.outline.sizeDidChange()}));this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){l.suspended=!1;l.outline.refresh();l.update()}));this.window.addListener(mxEvent.HIDE,mxUtils.bind(this,function(){l.suspended=!0}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){l.suspended=!1;l.update()}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){l.suspended=!0}));var m=l.createGraph;l.createGraph=function(a){var b=
+m.apply(this,arguments);b.gridEnabled=!1;b.pageScale=h.pageScale;b.pageFormat=h.pageFormat;b.background=null==h.background||h.background==mxConstants.NONE?h.defaultPageBackgroundColor:h.background;b.pageVisible=h.pageVisible;var c=mxUtils.getCurrentStyle(h.container);g.style.backgroundColor=c.backgroundColor;return b};l.init(g);a.editor.addListener("resetGraphView",e);a.addListener("pageFormatChanged",e);a.addListener("backgroundColorChanged",e);a.addListener("backgroundImageChanged",e);a.addListener("pageViewChanged",
+function(){e();l.update(!0)});if(l.outline.dialect==mxConstants.DIALECT_SVG){var p=a.actions.get("zoomIn"),n=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(a,b){for(var c=!1,d=mxEvent.getSource(a);null!=d;){if(d==l.outline.view.canvas.ownerSVGElement){c=!0;break}d=d.parentNode}c&&(b?p.funct():n.funct(),mxEvent.consume(a))})}},LayersWindow=function(a,c,d,b,f){function e(b){if(g.isEnabled()&&null!=b){var c=new FilenameDialog(a,b.value||mxResources.get("background"),mxResources.get("rename"),
+mxUtils.bind(this,function(a){null!=a&&g.getModel().setValue(b,a)}),mxResources.get("enterName"));a.showDialog(c.container,300,100,!0,!0);c.init()}}function h(){function a(a,b,c,d){var f=document.createElement("div");f.className="geToolbarContainer";f.style.overflow="hidden";f.style.position="relative";f.style.padding="4px";f.style.height="22px";f.style.display="block";f.style.backgroundColor="whiteSmoke";f.style.borderWidth="0px 0px 1px 0px";f.style.borderColor="#c3c3c3";f.style.borderStyle="solid";
+f.style.whiteSpace="nowrap";var k=document.createElement("div");k.style.display="inline-block";k.style.width="100%";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxEvent.addListener(f,"dragover",function(b){b.dataTransfer.dropEffect="move";n=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(f,"dragstart",function(a){p=f;mxClient.IS_FF&&a.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(f,"dragend",function(a){null!=p&&null!=n&&g.addCell(c,g.model.root,n);n=p=
+null;a.stopPropagation();a.preventDefault()});var l=document.createElement("img");l.setAttribute("draggable","false");l.setAttribute("align","top");l.setAttribute("border","0");l.style.padding="4px";l.setAttribute("title",mxResources.get("lockUnlock"));var r=g.view.getState(c),u=null!=r?r.style:g.getCellStyle(c);"1"==mxUtils.getValue(u,"locked","0")?l.setAttribute("src",Dialog.prototype.lockedImage):l.setAttribute("src",Dialog.prototype.unlockedImage);g.isEnabled()&&(l.style.cursor="pointer");mxEvent.addListener(l,
+"click",function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==mxUtils.getValue(u,"locked","0")?null:"1",g.setCellStyles("locked",b,[c])}finally{g.getModel().endUpdate()}"1"==b&&g.removeSelectionCells(g.getModel().getDescendants(c));mxEvent.consume(a)}});k.appendChild(l);l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));l.style.marginLeft="4px";l.style.marginRight="6px";
+l.style.marginTop="4px";k.appendChild(l);g.model.isVisible(c)&&(l.setAttribute("checked","checked"),l.defaultChecked=!0);mxEvent.addListener(l,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});mxUtils.write(k,b);f.appendChild(k);if(g.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_VML||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position=
+"absolute",b.style.right="6px",b.style.top="6px",0<a&&(k=document.createElement("a"),k.setAttribute("title",mxResources.get("toBack")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9660;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<q-1&&(k=document.createElement("a"),k.setAttribute("title",
+mxResources.get("toFront")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9650;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",
+function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="#e6eff8",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),h())});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,c.value||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,
+b));w.setAttribute("title",mxResources.get("removeIt",[t.value||mxResources.get("background")]));v.setAttribute("title",mxResources.get("moveSelectionTo",[t.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("duplicateIt",[t.value||mxResources.get("background")]));u.setAttribute("title",mxResources.get("renameIt",[t.value||mxResources.get("background")]));g.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var g=a.editor.graph,k=document.createElement("div");k.style.userSelect=
+"none";k.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;k.style.border="1px solid whiteSmoke";k.style.height="100%";k.style.marginBottom="10px";k.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":"#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";k.appendChild(m);
+var p=null,n=null;mxEvent.addListener(k,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;a.stopPropagation();a.preventDefault()});mxEvent.addListener(k,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,r=document.createElement("div");r.className="geToolbarContainer";r.style.position="absolute";r.style.bottom="0px";r.style.left="0px";r.style.right="0px";r.style.height=l;r.style.overflow="hidden";r.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";r.style.backgroundColor=
+"white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;r.style.borderWidth="1px 0px 0px 0px";r.style.borderColor="#c3c3c3";r.style.borderStyle="solid";r.style.display="block";r.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(r.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var w=l.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
+try{var b=g.model.root.getIndex(t);g.removeCells([t],!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");r.appendChild(w);var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';
+mxEvent.addListener(v,"click",function(a){g.isEnabled()&&!g.isSelectionEmpty()&&g.moveCells(g.getSelectionCells(),0,0,!1,t)});r.appendChild(v);var u=l.cloneNode();u.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';u.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(u,"click",function(a){g.isEnabled()&&e(t);mxEvent.consume(a)});g.isEnabled()||(u.className="geButton mxDisabled");r.appendChild(u);var z=l.cloneNode();z.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';
mxEvent.addListener(z,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCells([t])[0],a.value=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()||(z.className="geButton mxDisabled");r.appendChild(z);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));
-mxEvent.addListener(l,"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()||(l.className="geButton mxDisabled");r.appendChild(l);h.appendChild(r);k();g.model.addListener(mxEvent.CHANGE,function(){k()});g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});
-this.window=new mxWindow(mxResources.get("layers"),h,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=k;this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-
-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)}))};
+mxEvent.addListener(l,"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()||(l.className="geButton mxDisabled");r.appendChild(l);k.appendChild(r);h();g.model.addListener(mxEvent.CHANGE,function(){h()});g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});
+this.window=new mxWindow(mxResources.get("layers"),k,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=h;this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-
+this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var x=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",x);this.destroy=function(){mxEvent.removeListener(window,"resize",x);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="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";
Sidebar.prototype.searchFileData="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";
Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.libAliases={aws2:"aws3"};Sidebar.prototype.defaultEntries="general;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.ibm="Analytics Applications Blockchain Data DevOps Infrastructure Management Miscellaneous Security Social Users".split(" ");Sidebar.prototype.gcp="Cards;Big Data;Compute;Developer Tools;Extras;Identity and Security;Machine Learning;Management Tools;Networking;Storage Databases".split(";");
Sidebar.prototype.rack="General APC Cisco Dell F5 HP IBM Oracle".split(" ");Sidebar.prototype.pids="Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";");Sidebar.prototype.cisco="Buildings;Computers and Peripherals;Controllers and Modules;Directors;Hubs and Gateways;Misc;Modems and Phones;People;Routers;Security;Servers;Storage;Switches;Wireless".split(";");
-Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");
+Sidebar.prototype.cisco_safe=["Architecture","Capability","Design","Threat"];Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");
Sidebar.prototype.aws2="Analytics;Application Services;Compute;Database;Developer Tools;Enterprise Applications;Game Development;General;Internet of Things;Management Tools;Mobile Services;Networking;On-Demand Workforce;SDKs;Security and Identity;Storage and Content Delivery;Groups".split(";");Sidebar.prototype.aws3="Analytics;Application Services;Artificial Intelligence;Business Productivity;Compute;Contact Center;Database;Desktop and App Streaming;Developer Tools;Game Development;General;Groups;Internet of Things;Management Tools;Messaging;Migration;Mobile Services;Networking and Content Delivery;On Demand Workforce;SDKs;Security Identity and Compliance;Storage".split(";");
Sidebar.prototype.office="Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.electrical="LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments RotMech Transmission".split(" ");
Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"sitemap"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;General Symbols;Intune;OMS;OpsManager;Other;System Center;Virtual Machine;Deprecated;Cloud Color;Deprecated Color".split(";")},
{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"ibm",prefix:"ibm",libs:Sidebar.prototype.ibm},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},
-{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},
-{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;
-Sidebar.prototype.insertSearchHint=function(b,c,d,e,m,l,r,n){if(null!=n&&1==e){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=document.createElement("a");k.setAttribute("href",
-"https://youtu.be/Z0D96ZikMkc");k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className="geDialogClose";h.style.position="relative";h.style.cursor=
-"default";h.style.top="1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(b)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,c){for(var d=0;d<a.length;d++)this.showPalette(b+a[d],c)};
-Sidebar.prototype.showPalette=function(b,a){var c=this.palettes[b];if(null!=c)for(var d=null!=a?a?"block":"none":"none"==c[0].style.display?"block":"none",e=0;e<c.length;e++)c[e].style.display=d};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var c=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=
-function(b,a,c){this.libs=null!=b&&(c||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var d=0;d<c.length;d++)c[d]=this.libAliases[c[d]]||c[d];for(d=0;d<this.configuration.length;d++)"search"!=this.configuration[d].id&&this.showPalettes(this.configuration[d].prefix||"",this.configuration[d].libs||[this.configuration[d].id],0<=mxUtils.indexOf(c,this.configuration[d].id));a&&(mxSettings.setLibraries(b),
-mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",
-image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},
-{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:"Sitemap",id:"sitemap",image:IMAGE_PATH+"/sidebar-sitemap.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+
-"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+
-"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),
-id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",
-image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;this.shapetags={};this.initPalettes()};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,
-a,c){var d=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var e=document.createElement("button");e.style.marginLeft="4px";mxUtils.write(e,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(h){if("BUTTON"==mxEvent.getSource(h).nodeName){var f=b.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration=
-"none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);h=a.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+
-f.outerHTML+h.outerHTML+"</body></html>";h.style.position="absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(d)b.appendChild(e);else if(d=!0,null!=c){null!=e.parentNode&&e.parentNode.removeChild(e);b.style.cursor="wait";var k=b.innerHTML;b.innerHTML=mxResources.get("loading")+
-"...";window.setTimeout(function(){c(a);b.style.cursor="";b.innerHTML=k;b.appendChild(e)},0)}else b.appendChild(e);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=e.parentNode&&e.parentNode.removeChild(e);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape="==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,
-a)}return null};var e=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,c){var d=e.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&d.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&d.push(this.shapetags[a]));return d};Sidebar.prototype.addTagIndex=function(b){b=b.split("\n");for(var a=0;a<b.length;a++)if(null!=b[a]){var c=b[a].split("\t");if(1<c.length){var d=c[0].toLowerCase().replace(" ","_"),
-c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());0<c.length&&(this.shapetags[d]=c)}}};Sidebar.prototype.addSearchFileData=function(b){if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var c=b[a].getAttribute("style"),d=this.extractShapeStyle(c);if(null!=c&&null!=d){var e=d.lastIndexOf(".");if(0<e){var h=d.substring(0,e),d=d.substring(e+1,d.length),e=this.getTagsForStencil(h,d,b[a].getAttribute("tags"));if(null!=e){var r=c.indexOf(";"),c="shape="+h+"."+d.toLowerCase()+
-";"+(0>r?"":c.substring(r+1));this.createVertexTemplateEntry(c,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",d.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,c=this.signs,d=this.gcp,e=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);
-this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();
-this.addSitemapPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
-"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",b+"/lib/clip_art/finance/",
-"_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",b+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),
-"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",b+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),
+{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"cisco_safe",prefix:"cisco_safe",libs:Sidebar.prototype.cisco_safe},
+{id:"office",prefix:"office",libs:Sidebar.prototype.office},{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];
+var a=Sidebar.prototype.insertSearchHint;Sidebar.prototype.insertSearchHint=function(b,c,d,e,m,l,r,n){if(null!=n&&1==e){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=
+document.createElement("a");k.setAttribute("href","https://youtu.be/Z0D96ZikMkc");k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className=
+"geDialogClose";h.style.position="relative";h.style.cursor="default";h.style.top="1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(a){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(a)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(a,b){this.showPalettes(a,b)};Sidebar.prototype.togglePalette=function(a){this.showPalette(a)};Sidebar.prototype.showPalettes=function(a,
+b,c){for(var d=0;d<b.length;d++)this.showPalette(a+b[d],c)};Sidebar.prototype.showPalette=function(a,b){var c=this.palettes[a];if(null!=c)for(var d=null!=b?b?"block":"none":"none"==c[0].style.display?"block":"none",e=0;e<c.length;e++)c[e].style.display=d};Sidebar.prototype.isEntryVisible=function(a){for(var b=0;b<this.configuration.length;b++)if(this.configuration[b].id==a){var c=this.palettes[null!=this.configuration[b].libs?(this.configuration[b].prefix||"")+this.configuration[b].libs[0]:a];if(null!=
+c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=function(a,b,c){this.libs=null!=a&&(c||0<a.length)?a:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var d=0;d<c.length;d++)c[d]=this.libAliases[c[d]]||c[d];for(d=0;d<this.configuration.length;d++)"search"!=this.configuration[d].id&&this.showPalettes(this.configuration[d].prefix||"",this.configuration[d].libs||[this.configuration[d].id],0<=
+mxUtils.indexOf(c,this.configuration[d].id));b&&(mxSettings.setLibraries(a),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+
+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},
+{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:"Sitemap",id:"sitemap",image:IMAGE_PATH+"/sidebar-sitemap.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},
+{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Cisco Safe",id:"cisco_safe",image:IMAGE_PATH+"/sidebar-cisco_safe.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+
+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+
+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),
+id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;
+this.shapetags={};this.initPalettes()};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(a,b,c){var d=!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%";var e=document.createElement("button");e.style.marginLeft="4px";mxUtils.write(e,"Save");mxEvent.addListener(a,"click",mxUtils.bind(this,function(h){if("BUTTON"==
+mxEvent.getSource(h).nodeName){var f=a.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration="none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);h=b.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+
+f.outerHTML+h.outerHTML+"</body></html>";h.style.position="absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==b.style.display){if(d)a.appendChild(e);else if(d=!0,null!=c){null!=e.parentNode&&e.parentNode.removeChild(e);a.style.cursor="wait";var k=a.innerHTML;a.innerHTML=mxResources.get("loading")+
+"...";window.setTimeout(function(){c(b);a.style.cursor="";a.innerHTML=k;a.appendChild(e)},0)}else a.appendChild(e);a.style.backgroundImage="url('"+this.expandedImage+"')";b.style.display="block"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",b.style.display="none",null!=e.parentNode&&e.parentNode.removeChild(e);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(a){if(null!=a&&"shape="==a.substring(0,6)){var b=a.indexOf(";");0>b&&(b=a.length);return a.substring(6,
+b)}return null};var e=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(a,b,c){var d=e.apply(this,arguments);null!=this.shapetags&&(a=a.toLowerCase(),b=b.toLowerCase(),null!=this.shapetags[a]&&d.push(this.shapetags[a]),b=a+"."+b,null!=this.shapetags[b]&&d.push(this.shapetags[b]));return d};Sidebar.prototype.addTagIndex=function(a){a=a.split("\n");for(var b=0;b<a.length;b++)if(null!=a[b]){var c=a[b].split("\t");if(1<c.length){var d=c[0].toLowerCase().replace(" ","_"),
+c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());0<c.length&&(this.shapetags[d]=c)}}};Sidebar.prototype.addSearchFileData=function(a){if(null!=a){a=a.getElementsByTagName("shape");for(var b=0;b<a.length;b++){var c=a[b].getAttribute("style"),d=this.extractShapeStyle(c);if(null!=c&&null!=d){var e=d.lastIndexOf(".");if(0<e){var h=d.substring(0,e),d=d.substring(e+1,d.length),e=this.getTagsForStencil(h,d,a[b].getAttribute("tags"));if(null!=e){var r=c.indexOf(";"),c="shape="+h+"."+d.toLowerCase()+
+";"+(0>r?"":c.substring(r+1));this.createVertexTemplateEntry(c,parseInt(a[b].getAttribute("w")),parseInt(a[b].getAttribute("h")),"",d.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}};Sidebar.prototype.initPalettes=function(){var a=GRAPH_IMAGE_PATH,b=STENCIL_PATH,c=this.signs,d=this.gcp,e=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);
+this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(b,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();
+this.addSitemapPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),b+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",a+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
+"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",a+"/lib/clip_art/finance/",
+"_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",a+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),
+"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",a+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),
"Bridge;Certificate;Certificate Off;Cloud;Cloud Computer;Cloud Computer Private;Cloud Rack;Cloud Rack Private;Cloud Server;Cloud Server Private;Cloud Storage;Concentrator;Email;Firewall 1;Firewall 2;Firewall;Camera;Modem;Power Distribution Unit;Print Server;Print Server Wireless;Repeater;Router;Router Icon;Switch;UPS;Wireless Router;Wireless Router N".split(";"),{Wireless_Router:"wireless router switch wap wifi access point wlan",Wireless_Router_N:"wireless router switch wap wifi access point wlan",
-Router:"router switch",Router_Icon:"router switch"});this.addImagePalette("people","Clipart / People",b+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" "));
-this.addImagePalette("telco","Clipart / Telecommunication",b+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));for(b=0;b<c.length;b++)this.addStencilPalette("signs"+c[b],"Signs / "+c[b],a+"/signs/"+c[b].toLowerCase()+".xml",";html=1;fillColor=#000000;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");
-for(b=0;b<d.length;b++)"cards"===d[b].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+d[b],"GCP / "+d[b],a+"/gcp/"+d[b].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(b=0;b<e.length;b++)"general"===e[b].toLowerCase()?this.addRackGeneralPalette():"f5"===e[b].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+e[b],"Rack / "+
-e[b],a+"/rack/"+e[b].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(b=0;b<l.length;b++)"Instruments"==l[b]?this.addPidInstrumentsPalette():"Misc"==l[b]?this.addPidMiscPalette():"Valves"==l[b]?this.addPidValvesPalette():"Compressors"==l[b]?this.addPidCompressorsPalette():"Engines"==l[b]?this.addPidEnginesPalette():"Filters"==l[b]?this.addPidFiltersPalette():"Flow Sensors"==l[b]?this.addPidFlowSensorsPalette():"Piping"==l[b]?this.addPidPipingPalette():
-this.addStencilPalette("pid"+l[b],"Proc. Eng. / "+l[b],a+"/pid/"+l[b].toLowerCase().replace(" ","_")+".xml",";html=1;align=center;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;dashed=0;");for(b=0;b<n.length;b++)"Model Elements"==n[b]?this.addSysMLModelElementsPalette():"Blocks"==n[b]?this.addSysMLBlocksPalette():"Ports and Flows"==n[b]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==n[b]?this.addSysMLConstraintBlocksPalette():"Activities"==
-n[b]?this.addSysMLActivitiesPalette():"Interactions"==n[b]?this.addSysMLInteractionsPalette():"State Machines"==n[b]?this.addSysMLStateMachinesPalette():"Use Cases"==n[b]?this.addSysMLUseCasesPalette():"Allocations"==n[b]?this.addSysMLAllocationsPalette():"Requirements"==n[b]?this.addSysMLRequirementsPalette():"Profiles"==n[b]?this.addSysMLProfilesPalette():"Stereotypes"==n[b]&&this.addSysMLStereotypesPalette();for(b=0;b<p.length;b++)"Message Construction"==p[b]?this.addEipMessageConstructionPalette():
-"Message Routing"==p[b]?this.addEipMessageRoutingPalette():"Message Transformation"==p[b]?this.addEipMessageTransformationPalette():"Messaging Channels"==p[b]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==p[b]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==p[b]?this.addEipMessagingSystemsPalette():"System Management"==p[b]&&this.addEipSystemManagementPalette();for(b=0;b<r.length;b++)this.addStencilPalette("cisco"+r[b],"Cisco / "+r[b],a+"/cisco/"+r[b].toLowerCase().replace(/ /g,
-"_")+".xml",";html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;",null,null,1.6);this.addFloorplanPalette();this.addAtlassianPalette();this.addBootstrapPalette();for(b=0;b<q.length;b++)"Bottom Navigation"==q[b]?this.addGMDLBottomNavigationPalette():"Bottom Sheets"==q[b]?this.addGMDLBottomSheetsPalette():"Buttons"==q[b]?this.addGMDLButtonsPalette():"Cards"==q[b]?this.addGMDLCardsPalette():"Chips"==q[b]?this.addGMDLChipsPalette():
-"Dialogs"==q[b]?this.addGMDLDialogsPalette():"Dividers"==q[b]?this.addGMDLDividersPalette():"Grid Lists"==q[b]?this.addGMDLGridListsPalette():"Icons"==q[b]?this.addGMDLIconsPalette():"Lists"==q[b]?this.addGMDLListsPalette():"Menus"==q[b]?this.addGMDLMenusPalette():"Misc"==q[b]?this.addGMDLMiscPalette():"Pickers"==q[b]?this.addGMDLPickersPalette():"Selection Controls"==q[b]?this.addGMDLSelectionControlsPalette():"Sliders"==q[b]?this.addGMDLSlidersPalette():"Steppers"==q[b]?this.addGMDLSteppersPalette():
-"Tabs"==q[b]?this.addGMDLTabsPalette():"Text Fields"==q[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var d=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,c,e,m,l,r,n){d.apply(this,arguments);r=null!=r?r:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(b,a,c,d,h){if(null==m||
-0>mxUtils.indexOf(m,a))c=null!=n?n[a]:null,mxLog.debug('<shape style="shape='+b+a+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,d,e,m){var h=e;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
+Router:"router switch",Router_Icon:"router switch"});this.addImagePalette("people","Clipart / People",a+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" "));
+this.addImagePalette("telco","Clipart / Telecommunication",a+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));for(a=0;a<c.length;a++)this.addStencilPalette("signs"+c[a],"Signs / "+c[a],b+"/signs/"+c[a].toLowerCase()+".xml",";html=1;fillColor=#000000;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");
+for(a=0;a<d.length;a++)"cards"===d[a].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+d[a],"GCP / "+d[a],b+"/gcp/"+d[a].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(a=0;a<e.length;a++)"general"===e[a].toLowerCase()?this.addRackGeneralPalette():"f5"===e[a].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+e[a],"Rack / "+
+e[a],b+"/rack/"+e[a].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(a=0;a<l.length;a++)"Instruments"==l[a]?this.addPidInstrumentsPalette():"Misc"==l[a]?this.addPidMiscPalette():"Valves"==l[a]?this.addPidValvesPalette():"Compressors"==l[a]?this.addPidCompressorsPalette():"Engines"==l[a]?this.addPidEnginesPalette():"Filters"==l[a]?this.addPidFiltersPalette():"Flow Sensors"==l[a]?this.addPidFlowSensorsPalette():"Piping"==l[a]?this.addPidPipingPalette():
+this.addStencilPalette("pid"+l[a],"Proc. Eng. / "+l[a],b+"/pid/"+l[a].toLowerCase().replace(" ","_")+".xml",";html=1;align=center;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;dashed=0;");for(a=0;a<n.length;a++)"Model Elements"==n[a]?this.addSysMLModelElementsPalette():"Blocks"==n[a]?this.addSysMLBlocksPalette():"Ports and Flows"==n[a]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==n[a]?this.addSysMLConstraintBlocksPalette():"Activities"==
+n[a]?this.addSysMLActivitiesPalette():"Interactions"==n[a]?this.addSysMLInteractionsPalette():"State Machines"==n[a]?this.addSysMLStateMachinesPalette():"Use Cases"==n[a]?this.addSysMLUseCasesPalette():"Allocations"==n[a]?this.addSysMLAllocationsPalette():"Requirements"==n[a]?this.addSysMLRequirementsPalette():"Profiles"==n[a]?this.addSysMLProfilesPalette():"Stereotypes"==n[a]&&this.addSysMLStereotypesPalette();for(a=0;a<p.length;a++)"Message Construction"==p[a]?this.addEipMessageConstructionPalette():
+"Message Routing"==p[a]?this.addEipMessageRoutingPalette():"Message Transformation"==p[a]?this.addEipMessageTransformationPalette():"Messaging Channels"==p[a]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==p[a]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==p[a]?this.addEipMessagingSystemsPalette():"System Management"==p[a]&&this.addEipSystemManagementPalette();for(a=0;a<r.length;a++)this.addStencilPalette("cisco"+r[a],"Cisco / "+r[a],b+"/cisco/"+r[a].toLowerCase().replace(/ /g,
+"_")+".xml",";html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;",null,null,1.6);this.addCiscoSafePalette();this.addFloorplanPalette();this.addAtlassianPalette();this.addBootstrapPalette();for(a=0;a<q.length;a++)"Bottom Navigation"==q[a]?this.addGMDLBottomNavigationPalette():"Bottom Sheets"==q[a]?this.addGMDLBottomSheetsPalette():"Buttons"==q[a]?this.addGMDLButtonsPalette():"Cards"==q[a]?this.addGMDLCardsPalette():"Chips"==
+q[a]?this.addGMDLChipsPalette():"Dialogs"==q[a]?this.addGMDLDialogsPalette():"Dividers"==q[a]?this.addGMDLDividersPalette():"Grid Lists"==q[a]?this.addGMDLGridListsPalette():"Icons"==q[a]?this.addGMDLIconsPalette():"Lists"==q[a]?this.addGMDLListsPalette():"Menus"==q[a]?this.addGMDLMenusPalette():"Misc"==q[a]?this.addGMDLMiscPalette():"Pickers"==q[a]?this.addGMDLPickersPalette():"Selection Controls"==q[a]?this.addGMDLSelectionControlsPalette():"Sliders"==q[a]?this.addGMDLSlidersPalette():"Steppers"==
+q[a]?this.addGMDLSteppersPalette():"Tabs"==q[a]?this.addGMDLTabsPalette():"Text Fields"==q[a]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var d=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(a,b,c,e,m,l,r,n){d.apply(this,arguments);r=null!=r?r:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,
+function(a,b,c,d,h){if(null==m||0>mxUtils.indexOf(m,b))c=null!=n?n[b]:null,mxLog.debug('<shape style="shape='+a+b+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,d,e,m){var h=e;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
this.tagIndex=null);this.editorUi.isOffline()||0!=d||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(e=mxUtils.bind(this,function(b,e,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=d-Math.ceil((e-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)h(b,e,!1,g),this.editorUi.handleError(f);
else{for(a=0;a<f.icons.length;a++){for(var k=f.icons[a].raster_sizes,l=k.length-1;0<l&&128<k[l].size;)l--;var m=k[l].size,n=k[l].formats[0].preview_url;null!=m&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+c,a,a,"")}))})(m,n)}h(b,(d-1)*c+b.length,f.icons.length==c,g)}}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}else h(b,
-e,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}},function(){h(b,e,!1,g)}))):h(b,e,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,d){var e=this.editorUi.editor.graph,h=!1;if(null!=b&&1==e.getSelectionCount()&&e.getModel().isVertex(b[0])){var f=e.cloneCells(b)[0];if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),
+e,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}},function(){h(b,e,!1,g)}))):h(b,e,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,b,d){var e=this.editorUi.editor.graph,h=!1;if(null!=a&&1==e.getSelectionCount()&&e.getModel().isVertex(a[0])){var f=e.cloneCells(a)[0];if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),
!1)&&e.getModel().isVertex(f)){e.getModel().beginUpdate();try{var g=e.view.getState(e.getSelectionCell());if(null!=g){var n=e.view.translate,p=e.view.scale,q=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=q.x/p-n.x-f.geometry.width/2;f.geometry.y=q.y/p-n.y-f.geometry.height/2}e.addCell(f);e.getModel().setTerminal(e.getSelectionCell(),f,!1)}finally{e.getModel().endUpdate()}e.scrollCellToVisible(f);e.setSelectionCell(f);h=!0}}h||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var e=a.apply(this,arguments),d=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var h=new mxCell("Task",new mxGeometry(20,
20,100,40),"whiteSpace=wrap;html=1;");h.vertex=!0;b.insert(h);var f=new mxCell("",new mxGeometry(0,0,0,0),"html=1;curved=1;");f.geometry.relative=!0;f.edge=!0;c.insertEdge(f,!0);h.insertEdge(f,!1);b.insert(f);var g=new mxCell("Task",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");g.vertex=!0;b.insert(g);f=f.clone();c.insertEdge(f,!0);g.insertEdge(f,!1);b.insert(f);c=new mxCell("End",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);f=f.clone();h.insertEdge(f,
!0);c.insertEdge(f,!1);b.insert(f);f=f.clone();g.insertEdge(f,!0);c.insertEdge(f,!1);b.insert(f);return e.concat([this.addDataEntry("container swimlane pool horizontal",480,380,"Horizontal Pool 1","zZRLbsIwEIZP4709TlHXhJYNSEicwCIjbNWJkWNKwumZxA6IlrRUaisWlmb+eX8LM5mXzdyrnV66Ai2TL0zm3rkQrbLJ0VoG3BRMzhgAp8fgdSQq+ijfKY9VuKcAYsG7snuMyso5G8U6tDaJ9cGUVlXkTXUoacuZIHOjjS0WqnX7blYd1OZt8KYea3PE1bCI+CAtVUMq7/o5b46uCmroSn18WFMm+XCdse5GpLq0OPqAzejxvZQun6MrMfiWUg6mCDpmZM8RENdotjqVyUFUdRS259oLSzISztto5Se0i44gcHEn3i9A/IQB3GbQpmi69DskAn4BSTaGBB4Jicj+k8nTGBP5SExg8odMyL38eH3s6kM8AQ=="),
@@ -3313,7 +3314,7 @@ this.createVertexTemplateEntry("strokeWidth=1;html=1;shadow=0;dashed=0;shape=mxg
174,30,"","Textfield Activated",null,null,"android textfield activated"),this.createVertexTemplateEntry(e+"text_insertion_point;",20,30,"","Text Insertion Point",null,null,"android textfield insertion point"),this.createVertexTemplateEntry(e+"textSelHandles;fillColor=#33b5e5;strokeColor=#0099cc;",168.8,42.2,"","Text Selection Handles",null,null,"android text selection handle"),this.createVertexTemplateEntry(e+"time_picker;",150,230,"","Time Picker (Bright)",null,null,"android time picker bright"),
this.createVertexTemplateEntry(e+"time_picker_dark;",150,230,"","Time Picker (Dark)",null,null,"android time picker dark"),this.createVertexTemplateEntry(d+"rect;fillColor=#33b5e5;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#0099cc;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#aa66cc;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#9933cc;",50,50,"","Color",
null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#99cc00;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#669900;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ffbb33;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ff8800;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ff4444;",50,
-50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#cc0000;",50,50,"","Color",null,null,"android color")];this.addPalette("android",mxResources.get("android"),!1,mxUtils.bind(this,function(b){for(var a=0;a<c.length;a++)b.appendChild(c[a](b))}))}})();(function(){Sidebar.prototype.addArchiMatePalette=function(){this.addPaletteFunctions("archimate",mxResources.get("archiMate21"),!1,[this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=actor",100,75,"","Business Actor",null,null,this.getTagsForStencil("mxgraph.archimate","application","archimate business actor").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=role",
+50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#cc0000;",50,50,"","Color",null,null,"android color")];this.addPalette("android",mxResources.get("android"),!1,mxUtils.bind(this,function(a){for(var b=0;b<c.length;b++)a.appendChild(c[b](a))}))}})();(function(){Sidebar.prototype.addArchiMatePalette=function(){this.addPaletteFunctions("archimate",mxResources.get("archiMate21"),!1,[this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=actor",100,75,"","Business Actor",null,null,this.getTagsForStencil("mxgraph.archimate","application","archimate business actor").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=role",
100,75,"","Business Role",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business role").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=collab",100,75,"","Business Collaboration",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business collaboration").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=interface",
100,75,"","Business Interface",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business interface").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=interface2",100,75,"","Business Interface",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business interface").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.location",100,75,
"","Location",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate location").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.business;busType=process",100,75,"","Business Process",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business process").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.business;busType=function",100,75,"","Business Function",
@@ -3881,11 +3882,11 @@ this.createVertexTemplateEntry(a+"unidentified_code_object;",50,42.5,"","Unident
this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.document",100,100,"","Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+
"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout",100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout",
"").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;",100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon",
-"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,100,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;whiteSpace=wrap;align=center;size=0.24;",100,60,"","Parallelepiped",
-null,null,this.getTagsForStencil("mxgraph.basic","parallelepiped","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout",
-"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic",
-"star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;size=0.24;",100,100,"","Trapezoid",null,null,this.getTagsForStencil("mxgraph.basic","trapezoid","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,
-null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="),
+"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70,"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle",
+"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;whiteSpace=wrap;align=center;size=0.24;",100,60,"","Parallelepiped",null,null,this.getTagsForStencil("mxgraph.basic","parallelepiped","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",
+100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",
+null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic","star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+
+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;size=0.24;",100,100,"","Trapezoid",null,null,this.getTagsForStencil("mxgraph.basic","trapezoid","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="),
this.addDataEntry("bootstrap button bar bright",800,40,"Button Bar (Bright)","5ZdRb5swEMc/DY9FBhNCXkPavmxStUh798IB1gxGxmvIPv0OcBKoSZetpYpUIyT77DP278+dwaFx0TwqVuVfZQLCofcOjZWUuq8VTQxCOD7hiUM3ju8TvB3/4UKv1/WSiiko9TUOfu/wzMQv6C29odYHYQy5LnBZG8+h6zpnidxjg2AjYXUOiWlgT9WOL5qs3Yv7A3dQa6y6Cna4knXKhYilkKqblKZhe7WOWsmfcOwpZYmzrPc517Ct2K6dco+zoM0sFJSG5uJmO5PZ6SPIArQ64JA9T3Tej4hID4TkwLPcuAXGxuq+nZ1cz+iwYuhNk6QWyVgWFSsP/wd0yMtQmUT1d/Cy1APwSVeMfct/t75e8Bbm/hXM50EeWMifQFaI+WNeYdJel3R5gX3VlXYwEuZl9s2QoGQG9M0Y+0CJ1UxKLCwlouDdVTAyKPPWRhOSpATLlZKkXXkL/uBV/MbhYNKwu7DUOGIbquGFvU2BYJo/w2iuKYnM858kx2WdHn5Hyejxd9F4BpmmNWhL4tMurlI9tFT/zmW7bFnWN5r1PjD8vKUdf543UwAuLSmC9z/Jby4Aw08egJGl+lbjomvNd7cagDMF29RhN9dnx8qmDlpjVvlkzGloM1/OxPyYN0fQmdrlruvOnecWU3nOpK6xUC+/r6fsTPCsRJuAVJ8PpC9da+PNeB6Fi3FGstOhRyfUo/+uHjbPf7B9Whv+4P4B"),
this.addEntry("bootstrap button group vertical",function(){var d=new mxCell("",new mxGeometry(0,0,100,150),"html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#dddddd;html=1;whiteSpace=wrap;fillColor=#ffffff;");d.vertex=!0;var b=new mxCell("Edit",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.topButton;rSize=5;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.vertex=
!0;d.insert(b);b=new mxCell("Create",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,30);b.vertex=!0;d.insert(b);var c=new mxCell("Delete",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");
@@ -4219,7 +4220,76 @@ null,null,this.getTagsForStencil("mxgraph.cabinets","surge_protection_3p","cabin
25,25,"","Terminal 4mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_4_6mm2;",2.5,30,"","Terminal 4-6mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4_6mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_4_6mm2_x10;",25,30,"","Terminal 4-6mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4_6mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+
"terminal_6_25mm2;",5,37.5,"","Terminal 6-25mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_6_25mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_6_25mm2_x10;",50,37.5,"","Terminal 6-25mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_6_25mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_40mm2;",11,50,"","Terminal 40mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_40mm2","cabinet ").join(" ")),
this.createVertexTemplateEntry(a+"terminal_40mm2_x10;",50*2.2,50,"","Terminal 40mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_40mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_50mm2;",12.5,50*1.1,"","Terminal 50mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_50mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_50mm2_x10;",125,50*1.1,"","Terminal 50mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets",
-"terminal_50mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2;",15,70,"","Terminal 75mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2_x10;",150,70,"","Terminal 75mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2_x10","cabinet ").join(" "))];this.addPalette("cabinets",mxResources.get("cabinets"),!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();(function(){Sidebar.prototype.addCitrixPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;aspect=fixed;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeColor=none;outlineConnect=0;shape=mxgraph.citrix.";this.addPaletteFunctions("citrix","Citrix",!1,[this.createVertexTemplateEntry(a+"1u_2u_server;",100,39.1,"","1U 2U Server",null,null,this.getTagsForStencil("mxgraph.citrix","1U 2U Server","").join(" ")),this.createVertexTemplateEntry(a+"access_card;",55.5,75,"","Access Card",
+"terminal_50mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2;",15,70,"","Terminal 75mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2_x10;",150,70,"","Terminal 75mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2_x10","cabinet ").join(" "))];this.addPalette("cabinets",mxResources.get("cabinets"),!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();(function(){Sidebar.prototype.addCiscoSafePalette=function(){this.addCiscoSafeArchitecturePalette();this.addCiscoSafeCapabilityPalette();this.addCiscoSafeDesignPalette();this.addCiscoSafeThreatPalette()};Sidebar.prototype.addCiscoSafeArchitecturePalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#6ABD46;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.architecture.";this.addPaletteFunctions("cisco_safeArchitecture","Cisco Safe / Architecture",
+!1,[this.createVertexTemplateEntry(a+"aci_controller;",50,50,"","ACI Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","aci controller","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"aci_leaf_switch;",50,50,"","ACI Leaf Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","aci leaf switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"aci_spine_switch;",50,50,"","ACI Spine Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"aci spine switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"adaptive_security_appliance;",50,50,"","Adaptive Security Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","adaptive security appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"automated_system;",50,50,"","Automated System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","automated system","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+
+"blade_server;",50,50,"","Blade Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","blade server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"catalyst_switch;",50,50,"","Catalyst Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","catalyst switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"corporate_device;",50,50,"","Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"corporate device","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"email_security;",50,50,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","email security","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"fabric_switch;",50,50,"","Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","fabric switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"firepower_appliance;",
+50,50,"","Firepower Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","firepower appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"firewall;",50,50,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","firewall","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"generic_appliance;",50,50,"","Generic Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","generic appliance",
+"cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,50,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","intrusion detection","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"l3_switch;",50,50,"","L3 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","l3 switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,50,"","Load Balancer",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","load balancer","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_1kv;",50,50,"","Nexus 1kv",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus 1kv","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_data_center_switch;",50,50,"","Nexus Data Center Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus data center switch","cisco safe architecture").join(" ")),
+this.createVertexTemplateEntry(a+"nexus_fabric_switch;",50,50,"","Nexus Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus fabric switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_switch;",50,50,"","Nexus Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"phone;",50,50,"","Phone",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"phone","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"router;",50,50,"","Router",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","router","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"secure_server;",50,50,"","Secure Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","secure server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"server;",50,50,"","Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"stacked_switch;",50,50,"","Stacked Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","stacked switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,50,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","storage","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"switch;",50,50,"","Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"tls_appliance;",50,50,"","TLS Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","tls appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"unified_access_switch;",50,50,"","Unified Access Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","unified access switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"web_application_firewall;",
+50,50,"","Web Application Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","web application firewall","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"web_security;",50,50,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","web security","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wide_area_application_engine;",50,50,"","Wide Area Application Engine",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"wide area application engine","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wireless_access_point;",50,50,"","Wireless Access Point",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","wireless access point","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wireless_lan_controller;",50,50,"","Wireless LAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","wireless lan controller","cisco safe architecture").join(" "))])};
+Sidebar.prototype.addCiscoSafeCapabilityPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#28A8E0;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.capability.";this.addPaletteFunctions("cisco_safeCapability","Cisco Safe / Capability",!1,[this.createVertexTemplateEntry(a+"access_control_using_trustsec;",50,50,"","Access Control Using TrustSec",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","access control using trustsec",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"analysis_correlation",50,50,"","Analysis Correlation",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","analysis correlation","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anomaly_detection;",50,50,"","Anomaly Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anomaly detection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_malware;",
+50,50,"","Anti-Malware",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti malware","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_spam;",50,50,"","Anti-Spam",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti spam","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_virus;",50,50,"","Anti-Virus",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti virus","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"application;",50,50,"","Application",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","application","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"application_visibility_control;",50,50,"","Application Visibility Control",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","application visibility control","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"client_based_security;",50,50,"","Client Based Security",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","client based security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"cloud_web_security;",50,50,"","Cloud Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","cloud web security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"conference_bridge;",50,50,"","Conference Bridge",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","conference bridge","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"database;",50,50,"","Database",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","database","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"data_loss_prevention;",50,50,"","Data Loss Prevention",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","data loss prevention","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"distributed_denial_of_service_protection;",50,50,"","Distributed Denial of Service Protection",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","distributed denial of service protection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"dns;",50,50,"","DNS",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","dns","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"email_encryption;",50,50,"","Email Encryption",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","email encryption","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"email_security;",50,50,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","email security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"fabric_switching;",50,50,"","Fabric Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","fabric switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"firewall;",50,50,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"flow_analytics;",50,50,"","Flow Analytics",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","flow analytics","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"identity_authorization;",50,50,"","Identity Authorization",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","identity authorization","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"identity_authorization_alt;",
+50,50,"","Identity Authorization (alternative)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","identity authorization alt alternative","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,50,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","intrusion detection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"intrusion_prevention;",50,50,"","Intrusion Prevention",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"intrusion prevention","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l2_l3_network;",50,50,"","L2 L3 Network",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 l3 network","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l2_l3_network_virtual;",50,50,"","L2 L3 Network (virtual)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 l3 network virtual","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+
+"l2_switching;",50,50,"","L2 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l3_switching;",50,50,"","L3 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l3 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,50,"","Load Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","load balancer",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"logging_reporting;",50,50,"","Logging Reporting",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","logging reporting","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"malware_sandbox;",50,50,"","Malware Sandbox",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","malware sandbox","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"mobile_device_manager;",50,50,
+"","Mobile Device Manager",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","mobile device manager","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"monitoring;",50,50,"","Monitoring",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","monitoring","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"policy_configuration;",50,50,"","Policy Configuration",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","policy configuration",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"posture_assesment;",50,50,"","Posture Assesment",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","posture assesment","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"routing;",50,50,"","Routing",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","routing","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"server_based_security;",50,50,"","Server Based Security",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","server based security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"ssl_tls_offload;",50,50,"","SSL TLS Offload",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","ssl tls offload","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,50,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","storage","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+
+"threat_intelligence;",50,50,"","Threat Intelligence",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","threat intelligence","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"time_synchronization;",50,50,"","Time Synchronization",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","time synchronization","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"user;",50,50,"","User",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"user","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"video;",50,50,"","Video",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","video","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtualized_capability;",50,50,"","Virtualized Capability",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtualized capability","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_firewall;",50,50,"","Virtual Firewall",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_l2_switching;",50,50,"","Virtual L2 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual l2 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_private_network;",50,50,"","Virtual Private Network",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual private network vpn",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"voice;",50,50,"","Voice",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","voice","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"vpn_concentrator;",50,50,"","VPN Concentrator",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","vpn concentrator virtual private network","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"vulnerability_management;",50,50,"","Vulnerability Management",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","vulnerability management","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_application_firewall;",50,50,"","Web Application Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","web application firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_reputation_filtering_dcs;",50,50,"","Web Reputation Filtering DCS",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"web reputation filtering dcs","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_security;",50,50,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","web security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_connection;",50,50,"","Wireless Connection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless connection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_intrusion_detection_system;",
+50,50,"","Wireless Intrusion Detection System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless intrusion detection system","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_intrusion_prevention_system;",50,50,"","Wireless Intrusion Prevention System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless intrusion prevention system","cisco safe capability").join(" "))])};Sidebar.prototype.addCiscoSafeDesignPalette=function(){var a=
+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#A153A0;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.design.";this.addPaletteFunctions("cisco_safeDesign","Cisco Safe / Design",!1,[this.createVertexTemplateEntry(a+"access_point;",50,45,"","Access Point",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","access point","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_controller;",50,45,"","ACI Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"aci controller","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_leaf_switch;",50,45,"","ACI Leaf Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","aci leaf switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_spine_switch;",50,45,"","ACI Spine Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","aci spine switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"actor_1;",23.5,50,"","Actor (female)",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","actor female","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"actor_2;",19,50,"","Actor (male)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","actor male","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"adaptive_security_appliance;",50,45,"","Adaptive Security Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","adaptive security appliance","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"automated_system;",50,45,"","Automated System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","automated system","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blade_server;",50,45,"","Blade Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","blade server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blank_device;",50,45,"","Blank Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"blank device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blank_service;",50,45,"","Blank Service",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","blank service","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"call_manager;",50,45,"","Call Manager",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","call manager","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"catalyst_data_center_switch;",50,45,"","Catalyst Data Center Switch",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","catalyst data center switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"catalyst_switch_stack;",50,45,"","Catalyst Switch Stack",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","catalyst switch stack","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"cisco_amp;",50,45,"","Cisco Amp",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco amp amplifier","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"cisco_anyconnect;",50,45,"","Cisco AnyConnect",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco anyconnect","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"cisco_cloud_web_security;",50,45,"","Cisco Cloud Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco cloud web security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"client_firewall;",50,45,"","Client Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"client firewall","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"corporate_device;",50,45,"","Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","corporate device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"email_security;",50,45,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","email security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"encryption_offload;",50,45,"","Encryption Offload",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","encryption offload","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"fabric_switch;",50,45,"","Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","fabric switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"firepower_appliance;",50,45,"","Firepower Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","firepower appliance","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+
+"firewall;",50,45,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","firewall","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,45,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","intrusion detection","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"l2_switch;",50,45,"","L2 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","l2 switch","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"l3_switch;",50,45,"","L3 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","l3 switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,45,"","Load Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","load balancer","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"mobile_device;",50,45,"","Mobile Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","mobile device",
+"cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_1kv;",50,45,"","Nexus 1kv",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus 1kv","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_data_center_switch;",50,45,"","Nexus Data Center Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus data center switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_fabric_switch;",50,45,"","Nexus Fabric Switch",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus fabric switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_switch;",50,45,"","Nexus Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"phone;",50,45,"","Phone",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","phone","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"radware;",50,
+45,"","Radware",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","radware","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"router;",50,45,"","Router",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","router","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"server_1;",50,45,"","Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"server_2;",50,45,"",
+"Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,45,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","storage","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"user;",50,50,"","User",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","user","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"users;",50,50,"","Users",null,null,
+this.getTagsForStencil("mxgraph.cisco_safe.design","users","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"virtual_secure_server;",50,45,"","Virtual Secure Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","virtual secure server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vload_balancer;",50,45,"","vLoad Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vload balancer","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+
+"vwaf_security;",50,45,"","vWAF Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vwaf security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vweb_security;",50,45,"","vWeb Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vweb security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vwlan_controller;",50,45,"","vWLAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vwlan controller","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"web_security;",50,45,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","web security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wireless_corporate_device;",50,45,"","Wireless Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","wireless corporate device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wireless_switch;",50,45,"","Wireless Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"wireless switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wlan_controller;",50,45,"","WLAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","wlan controller","cisco safe design").join(" "))])};Sidebar.prototype.addCiscoSafeThreatPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#F06650;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.threat.";this.addPaletteFunctions("cisco_safeThreat","Cisco Safe / Threat",
+!1,[this.createVertexTemplateEntry(a+"threat_a1;",49,50,"","Threat A1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a2;",49,50,"","Threat A2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a3;",49,50,"","Threat A3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_a4;",49,50,"","Threat A4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a5;",49,50,"","Threat A5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a6;",49,50,"","Threat A6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_a7;",49,50,"","Threat A7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a8;",49,50,"","Threat A8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b1;",31.5,50,"","Threat B1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b2;",31.5,50,"","Threat B2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b3;",31.5,50,"","Threat B3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b4;",31.5,50,"","Threat B4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b5;",31.5,50,"","Threat B5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b6;",31.5,50,"","Threat B6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b7;",31.5,50,"","Threat B7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b8;",31.5,50,"","Threat B8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c1;",50,40.5,"","Threat C1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c2;",50,40.5,"","Threat C2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_c3;",50,40.5,"","Threat C3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c4;",50,40.5,"","Threat C4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c5;",50,40.5,"","Threat C5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_c6;",50,40.5,"","Threat C6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c7;",50,40.5,"","Threat C7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c8;",50,40.5,"","Threat C8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d1;",46.5,50,"","Threat D1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d2;",46.5,50,"","Threat D2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d3;",46.5,50,"","Threat D3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d4;",46.5,50,"","Threat D4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d5;",46.5,50,"","Threat D5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d6;",46.5,50,"","Threat D6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d7;",46.5,50,"","Threat D7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d8;",46.5,50,"","Threat D8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e1;",50,47,"","Threat E1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e2;",50,47,"","Threat E2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e3;",50,47,"","Threat E3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e4;",50,47,"","Threat E4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e5;",50,47,"","Threat E5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e6;",50,47,"","Threat E6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e7;",50,47,"","Threat E7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e8;",50,47,"","Threat E8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" "))])}})();(function(){Sidebar.prototype.addCitrixPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;aspect=fixed;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeColor=none;outlineConnect=0;shape=mxgraph.citrix.";this.addPaletteFunctions("citrix","Citrix",!1,[this.createVertexTemplateEntry(a+"1u_2u_server;",100,39.1,"","1U 2U Server",null,null,this.getTagsForStencil("mxgraph.citrix","1U 2U Server","").join(" ")),this.createVertexTemplateEntry(a+"access_card;",55.5,75,"","Access Card",
null,null,this.getTagsForStencil("mxgraph.citrix","Access Card","").join(" ")),this.createVertexTemplateEntry(a+"branch_repeater;",100,39,"","Branch Repeater",null,null,this.getTagsForStencil("mxgraph.citrix","Branch Repeater","").join(" ")),this.createVertexTemplateEntry(a+"browser;",47.5,72.5,"","Browser",null,null,this.getTagsForStencil("mxgraph.citrix","Browser","").join(" ")),this.createVertexTemplateEntry(a+"cache_server;",71,97.5,"","Cache Server",null,null,this.getTagsForStencil("mxgraph.citrix",
"Cache Server","").join(" ")),this.createVertexTemplateEntry(a+"calendar;",75,100,"","Calendar",null,null,this.getTagsForStencil("mxgraph.citrix","Calendar","").join(" ")),this.createVertexTemplateEntry(a+"cell_phone;",25,60,"","Cell Phone",null,null,this.getTagsForStencil("mxgraph.citrix","Cell Phone","").join(" ")),this.createVertexTemplateEntry(a+"chassis;",137.5,177.5,"","Chassis",null,null,this.getTagsForStencil("mxgraph.citrix","Chassis","").join(" ")),this.createVertexTemplateEntry(a+"citrix_hdx;",
77.5,41,"","Citrix HDX",null,null,this.getTagsForStencil("mxgraph.citrix","Citrix HDX","").join(" ")),this.createVertexTemplateEntry(a+"citrix_logo;fillColor=#4E4F53;",160,62.5,"","Citrix Logo",null,null,this.getTagsForStencil("mxgraph.citrix","Citrix Logo","").join(" ")),this.createVertexTemplateEntry(a+"cloud;",95,62,"","Cloud",null,null,this.getTagsForStencil("mxgraph.citrix","Cloud","").join(" ")),this.createVertexTemplateEntry(a+"command_center;",75.5,96,"","Command Center",null,null,this.getTagsForStencil("mxgraph.citrix",
@@ -4252,13 +4322,13 @@ null,null,this.getTagsForStencil("mxgraph.citrix","Role Synchronizer","").join("
"XenApp Web","").join(" ")),this.createVertexTemplateEntry(a+"xencenter;",76,89,"","XenCenter",null,null,this.getTagsForStencil("mxgraph.citrix","XenCenter","").join(" ")),this.createVertexTemplateEntry(a+"xenclient;",91,77,"","XenClient",null,null,this.getTagsForStencil("mxgraph.citrix","XenClient","").join(" ")),this.createVertexTemplateEntry(a+"xenclient_synchronizer;fillColor=#CCCCCC;gradientColor=#000000;gradientDirection=south;",76,91,"","XenClient Synchronizer",null,null,this.getTagsForStencil("mxgraph.citrix",
"Synchronizer","").join(" ")),this.createVertexTemplateEntry(a+"xendesktop_server;",75,91,"","XenDesktop Server",null,null,this.getTagsForStencil("mxgraph.citrix","XenDesktop Server","").join(" ")),this.createVertexTemplateEntry(a+"xenmobile;fillColor=#CCCCCC;gradientColor=#000000;gradientDirection=south;",70,89,"","XenMobile",null,null,this.getTagsForStencil("mxgraph.citrix","XenMobile","").join(" ")),this.createVertexTemplateEntry(a+"xenserver;",76.5,90,"","XenServer",null,null,this.getTagsForStencil("mxgraph.citrix",
"XenServer","").join(" "))])}})();(function(){Sidebar.prototype.addEipMessageConstructionPalette=function(a){var e=this,d=[this.createEdgeTemplateEntry("edgeStyle=none;html=1;strokeColor=#808080;endArrow=block;endSize=10;dashed=0;verticalAlign=bottom;strokeWidth=2;",160,0,"","Pipe",null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction pipe").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
-150,90,"","Filter",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction filter").join(" ")),this.addEntry("eip enterprise integration pattern message construction command message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("C",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#FF8080;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Command Message")}),this.addDataEntry("eip enterprise integration pattern message construction correlation identifier",78,30,"Correlation Identifier","5ZZLT8JAEIB/Ta+mDwv1KAicTEw8qMeVDu2GpUO2ixZ/vbPdAVorilExkTZN5rEznf1mtqkXDRfVRItlfo0pKC8aedFQIxonLaohKOWFvky96MoLQ58eLxzv8Qa1118KDYU5JCB0AU9CrcBZnKE0a8UGSDO4ZRW1yTHDQqjRzjrQuCpSsBl90qCS5r4hP1j5LLZakV5qjc9kKLCwkako821gbha0/6uAxNJonMMQFeq6iCjx7b313MnU5OQJyeIKtlW2GJS40lM29ZzJCJ0BY4m7pOpAxjQBXIDRa1qiQQkjn9rZRenUbLtuB5kE5vw+8+gkmCdd5v2/Y35+APMdqUeF03mbDnnHUrVZNYl06I3HF4RwD6ifRMChNygpY+hXvGEe8HXrBGziXaM4pPl5eJMl6H+UxfW2k6XuxXYnB7Un/rw9XeStQRZKZgXJU+IK1ILBDAtzK19sdGL7k4ullem9clnaczCjdu6f9o2HDw3XB9pA9dVOPnPNdgXvKweZ5aZt+8549zr8Ln8LoIap6dLjaX/nHPj1tcnH5QSsN9bN6uubqDcBvdbYBnwMj9CI/n8eZA6I/aPhTDo4B6c8171jzTWpu39Q9z1v/qK+Ag=="),
-this.addEntry("eip enterprise integration pattern message construction document message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("D",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#C7A0FF;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Document Message")}),this.addEntry("eip enterprise integration pattern message construction event message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("E",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#83BEFF;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Event Message")}),this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messExp;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top",
+150,90,"","Filter",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction filter").join(" ")),this.addEntry("eip enterprise integration pattern message construction command message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("C",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#FF8080;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Command Message")}),this.addDataEntry("eip enterprise integration pattern message construction correlation identifier",78,30,"Correlation Identifier","5ZZLT8JAEIB/Ta+mDwv1KAicTEw8qMeVDu2GpUO2ixZ/vbPdAVorilExkTZN5rEznf1mtqkXDRfVRItlfo0pKC8aedFQIxonLaohKOWFvky96MoLQ58eLxzv8Qa1118KDYU5JCB0AU9CrcBZnKE0a8UGSDO4ZRW1yTHDQqjRzjrQuCpSsBl90qCS5r4hP1j5LLZakV5qjc9kKLCwkako821gbha0/6uAxNJonMMQFeq6iCjx7b313MnU5OQJyeIKtlW2GJS40lM29ZzJCJ0BY4m7pOpAxjQBXIDRa1qiQQkjn9rZRenUbLtuB5kE5vw+8+gkmCdd5v2/Y35+APMdqUeF03mbDnnHUrVZNYl06I3HF4RwD6ifRMChNygpY+hXvGEe8HXrBGziXaM4pPl5eJMl6H+UxfW2k6XuxXYnB7Un/rw9XeStQRZKZgXJU+IK1ILBDAtzK19sdGL7k4ullem9clnaczCjdu6f9o2HDw3XB9pA9dVOPnPNdgXvKweZ5aZt+8549zr8Ln8LoIap6dLjaX/nHPj1tcnH5QSsN9bN6uubqDcBvdbYBnwMj9CI/n8eZA6I/aPhTDo4B6c8171jzTWpu39Q9z1v/qK+Ag=="),
+this.addEntry("eip enterprise integration pattern message construction document message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("D",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#C7A0FF;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Document Message")}),this.addEntry("eip enterprise integration pattern message construction event message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("E",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#83BEFF;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Event Message")}),this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messExp;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top",
48,48,"","Message Expiration",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction message expiration").join(" ")),this.addDataEntry("eip enterprise integration pattern message construction message sequence",60,24,"Message Sequence","5VVdb4MgFP01vKtY4+vKZp+WLNnDnpneKSmKQWp1v34gtKWhXfawNPswMbn33A+45xBAmLTTRtK+eRQVcIQfECZSCGWtdiLAOUoiViF8j5Ik0j9KiivReIlGPZXQqa8UJLZgpHwHFrHAoGbugHInRzDpMcJr6Ko7KcVeu69clFsNNarlLjooKbZABBdyqcUxIUUUHSMvrFKNjiS20zN7N2tg7dlVoarhbJBB7GTpoJWFFJU1uNnScNyl0M26AdGCkrNOkcCpYuN5dzpYtz7muVI9Ip29hF6wTg1e5ycD6ITJ9ct9krVhGxw8bycnaBHisij494iShaKsfogoafKtoqSBKHGgSkhoRYdm0cnwTTmrO22XmhjQYqzfRKcc37nRo6G9sSWUykQZ555seVQUGbkkaLR8h35uO/FRwBGkgglduyCuiDO7qDt7ezeUBzXA6kadY5fU8yT4lOFVwHB47v8Sw67gcLJuT3gWEI7/A+FpfiPCtXt6ye2V4z/0Hw=="),
-this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.retAddr;html=1;verticalLabelPosition=bottom;fillColor=#FFE040;strokeColor=#000000;verticalAlign=top;",78,48,"","Return Address",null,null,this.getTagsForStencil("mxgraph.eip","retAddr","eip enterprise integration pattern message construction return address").join(" "))];this.addPalette("eipMessage Construction","EIP / Message Construction",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};
+this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.retAddr;html=1;verticalLabelPosition=bottom;fillColor=#FFE040;strokeColor=#000000;verticalAlign=top;",78,48,"","Return Address",null,null,this.getTagsForStencil("mxgraph.eip","retAddr","eip enterprise integration pattern message construction return address").join(" "))];this.addPalette("eipMessage Construction","EIP / Message Construction",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};
Sidebar.prototype.addEipMessageRoutingPalette=function(a){var e=[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.aggregator;",150,90,"","Aggregator",null,null,this.getTagsForStencil("mxgraph.eip","aggregator","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.composed_message_processor;",
150,90,"","Composed Message Processor",null,null,this.getTagsForStencil("mxgraph.eip","composed_message_processor","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.content_based_router;",150,90,"","Content Based Router",null,null,this.getTagsForStencil("mxgraph.eip","content_based_router","eip enterprise integration pattern message routing ").join(" ")),
this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.dynamic_router;",150,90,"","Dynamic Router",null,null,this.getTagsForStencil("mxgraph.eip","dynamic_router","eip enterprise integration pattern message routing ").join(" ")),this.addDataEntry("eip enterprise integration pattern message routing message broker",120,90,"Message Broker","5ZjJboMwEIafxneDWZJjQ9qcesqhZxcGjGpwZJytT1+DnQUpUZEqmYQiIWb+YcbMZySwEUmqw0rSDXsXGXBEXhFJpBDKWNUhAc6Rj8sMkSXyfaxP5L/diXpdFG+ohFoNSfBNwo7yLRjFCI06cis0Soov+CgzxbTgI7LIaMOgLYC1Q3lZ1NpO9YggtZCLWq3L7zZ7pt2G0U1rS0hVGy05TwQXsitO8jz/TNsyZpSrCO4OHbFPCFLB4W6XnWRbXIGoQMmjvsUmBLHJ2Nsm2sYjIzEoC3YqMjMabYxfnAtdCGrDQrwNlEwb6LFPygHQYNpAbcLctumebzhtvhZoGDgDGk0b6O0X1iHf+F/wPX2yLN/Yd8Z3NjLfFOchnTvmSyJnfOe/84WsgLV1a1HrywLq7EVKsb8oPeRMVXq8pXfGdj05pn5btAerEVuZQm/SFZUFqN6v4QCkEjhV5a5f/S+IPPwkjMiIjLwnYRSMyGjA8uYhGIUjMhqwYnkIRtGIjAYsQh6CUeyMkXYvuxRdrLeJ8QM="),
@@ -4284,16 +4354,16 @@ this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeC
150,90,"","Selective Consumer",null,null,this.getTagsForStencil("mxgraph.eip","selective_consumer","eip enterprise integration pattern messaging endpoint ").join(" ")),this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeColor=#000000;html=1;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.service_activator;",150,90,"","Service Activator",null,null,this.getTagsForStencil("mxgraph.eip","service_activator","eip enterprise integration pattern messaging endpoint ").join(" ")),
this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeColor=#000000;html=1;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.transactional_client;",150,90,"","Transactional Client",null,null,this.getTagsForStencil("mxgraph.eip","transactional_client","eip enterprise integration pattern messaging endpoint ").join(" "))])};Sidebar.prototype.addEipMessagingSystemsPalette=function(a){var e=this,d=[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.content_based_router;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Message Router",null,null,this.getTagsForStencil("mxgraph.eip","content_based_router","eip enterprise integration pattern messaging system ").join(" ")),this.createVertexTemplateEntry("strokeWidth=1;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messageChannel;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top;",100,20,"","Message Channel",null,null,this.getTagsForStencil("mxgraph.eip","messageChannel","eip enterprise integration pattern messaging system ").join(" ")),
-this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var b=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");b.vertex=!0;var a=new mxCell("",new mxGeometry(85,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-b.geometry.width,b.geometry.height,"Message Endpoint")}),this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var b=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");b.vertex=!0;var a=new mxCell("",new mxGeometry(25,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Message Endpoint")}),this.addDataEntry("eip enterprise integration pattern messaging system message endpoint",400,90,"Message Endpoint","zVXLbsIwEPwa300eFRwhbbm0UiUOPZtkSSycbOQsr3597cRAIkILKhUkiuSd9fgxs46ZH+XbqRZl9o4JKOa/MD/SiNS08m0ESjGPy4T5z8zzuPmY93omO6izvBQaCrqE4DWEtVAraJAGqGinHFCRxiV8yoQyA3jMnySiysAOwE0glEwL047NjKANsMCCZvLLsocmrDJR2raGmGxWKhWhQl0P7sd8EYqR7VbP0srw+jGZNWiSsVBvYg7qAytJEu2EcyTCvNVh7FZCWBrUbczkYHtWnBpyykwBcyC9M102brO2R9gIyDOQaeZoI4eJqonTA/UotWk4tfuV969VfnBb5Rf1czflvX7lHcELG8auG7Z8CXpsCW5gS/D4B+IvlX3Ql58o+m+VHj5+pV8kafCjpMO7lezT7/pCksLMhaDmuHk5ApPTeta4KpKD+lAkY61xY0++wnhZU4SmPVhgAXvMmTJwvHbYcTSjXDmnT1wZcvv2LqzZmN1Nx6UKVzqGzn/VLCYF6hTgBcdDgxIk193Rr/DGhMe7u851rvZv"),
+this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var a=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");a.vertex=!0;var c=new mxCell("",new mxGeometry(85,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+a.geometry.width,a.geometry.height,"Message Endpoint")}),this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var a=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");a.vertex=!0;var c=new mxCell("",new mxGeometry(25,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Message Endpoint")}),this.addDataEntry("eip enterprise integration pattern messaging system message endpoint",400,90,"Message Endpoint","zVXLbsIwEPwa300eFRwhbbm0UiUOPZtkSSycbOQsr3597cRAIkILKhUkiuSd9fgxs46ZH+XbqRZl9o4JKOa/MD/SiNS08m0ESjGPy4T5z8zzuPmY93omO6izvBQaCrqE4DWEtVAraJAGqGinHFCRxiV8yoQyA3jMnySiysAOwE0glEwL047NjKANsMCCZvLLsocmrDJR2raGmGxWKhWhQl0P7sd8EYqR7VbP0srw+jGZNWiSsVBvYg7qAytJEu2EcyTCvNVh7FZCWBrUbczkYHtWnBpyykwBcyC9M102brO2R9gIyDOQaeZoI4eJqonTA/UotWk4tfuV969VfnBb5Rf1czflvX7lHcELG8auG7Z8CXpsCW5gS/D4B+IvlX3Ql58o+m+VHj5+pV8kafCjpMO7lezT7/pCksLMhaDmuHk5ApPTeta4KpKD+lAkY61xY0++wnhZU4SmPVhgAXvMmTJwvHbYcTSjXDmnT1wZcvv2LqzZmN1Nx6UKVzqGzn/VLCYF6hTgBcdDgxIk193Rr/DGhMe7u851rvZv"),
this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","5ZVRb4IwEMc/Da8LghJ9nCg+7cmHbY+NHLRZ6ZGjKu7Tr6VVR5RsiZlbMgjJ3f965d8fJQ3itGpXxGr+hDnIIF4GcUqI2kVVm4KUQRSKPIgXQRSF5gmibKA66qphzQiU/k5D5Bp2TG7BKU5o9EF6AfIS1j5F0hxLVEwuz+qccKtysDOGJoNW6JdP8auNHyY2U/kjEe6NoFDZzpw1/NTIdWXWvxiZsNGEb5CiROpMxNPQ3qfKs8g1N5XIKM6wddlj0OCWNl6aOEkzKsFjGV+S6ho9phVgBZoOZgiBZFrs+rOzxqXladwZsgk85+vM43/BPPlTzMdfM79cZY8Uk6JUJt4Y72AIzQtUei3ebffUQuKstrF5r6gbC7oQUg7jPFb8V/H+gDS0g//yAK2992xH+HVxECXXfe0WfpO78SPY6GvwsixJr+3SsLuO83k7oxuJHhv8Jj74dOrSO/BOfpl3Ucxm4eVmvS/vOPkp3iY9n7FdrXcEfwA="),
-this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","vZRNb4MwDIZ/DdeJj25qjyvtetqph23HqBgSLcTIuC3dr19C0naIoU3qNBCS/TqvcR5Qoiyvuw2JRj5jATrK1lGWEyL7qO5y0DpKY1VE2SpK09g+Ufo0UU36atwIAsO/MaTecBB6D17xQssnHQQoKtiGFIklVmiEXl/VJeHeFOA6xjaDTvHrl/jNxXf3LjPFIxEerWDQOGchWnkxSq7t/leJDVsmfIccNVI/RDaP3X2pvKiCpa2kVvEDuykHDFrc0y5IMy+xoAoClmxMqjcGTBvAGphOdgmBFqwOw+6i9Wl1WXeFbIPA+Xvm2c/Mx7sckBJaVcbGOzs7WELLEg1v1Ydzzx0kKRoX2/eqpnWgS6X1NM5zJXyVMB8QQzf5X03QOoaZ3YqwLwmqkjzUbuE3+zd+BDsewyvLxSIew7OVuL/O/cI4yY1Ez4YH7ziFdO7Tv+dt0+v509cGx9Mn"),
-this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_translator;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
-150,90,"","Message-Translator",null,null,this.getTagsForStencil("mxgraph.eip","message_translator","eip enterprise integration pattern messaging system ").join(" "))];this.addPalette("eipMessaging Systems","EIP / Messaging Systems",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addEipSystemManagementPalette=function(a){this.addPaletteFunctions("eipSystem Management","EIP / System Management",!1,[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.channel_purger;fillColor=#c0f5a9;strokeColor=#000000;",
+this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","vZRNb4MwDIZ/DdeJj25qjyvtetqph23HqBgSLcTIuC3dr19C0naIoU3qNBCS/TqvcR5Qoiyvuw2JRj5jATrK1lGWEyL7qO5y0DpKY1VE2SpK09g+Ufo0UU36atwIAsO/MaTecBB6D17xQssnHQQoKtiGFIklVmiEXl/VJeHeFOA6xjaDTvHrl/jNxXf3LjPFIxEerWDQOGchWnkxSq7t/leJDVsmfIccNVI/RDaP3X2pvKiCpa2kVvEDuykHDFrc0y5IMy+xoAoClmxMqjcGTBvAGphOdgmBFqwOw+6i9Wl1WXeFbIPA+Xvm2c/Mx7sckBJaVcbGOzs7WELLEg1v1Ydzzx0kKRoX2/eqpnWgS6X1NM5zJXyVMB8QQzf5X03QOoaZ3YqwLwmqkjzUbuE3+zd+BDsewyvLxSIew7OVuL/O/cI4yY1Ez4YH7ziFdO7Tv+dt0+v509cGx9Mn"),
+this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_translator;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
+150,90,"","Message-Translator",null,null,this.getTagsForStencil("mxgraph.eip","message_translator","eip enterprise integration pattern messaging system ").join(" "))];this.addPalette("eipMessaging Systems","EIP / Messaging Systems",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addEipSystemManagementPalette=function(a){this.addPaletteFunctions("eipSystem Management","EIP / System Management",!1,[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.channel_purger;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Channel Purger",null,null,this.getTagsForStencil("mxgraph.eip","channel_purger","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.control_bus;fillColor=#c0f5a9;strokeColor=#000000;",60,40,"","Control Bus",null,null,this.getTagsForStencil("mxgraph.eip","control_bus","eip enterprise integration pattern system management ").join(" ")),
this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.detour;fillColor=#c0f5a9;strokeColor=#000000;",150,90,"","Detour",null,null,this.getTagsForStencil("mxgraph.eip","detour","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.message_store;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Message Store",null,null,this.getTagsForStencil("mxgraph.eip","message_store","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.smart_proxy;fillColor=#c0f5a9;strokeColor=#000000;",70,90,"","Smart Proxy",null,null,this.getTagsForStencil("mxgraph.eip","smart_proxy","eip enterprise integration pattern system management ").join(" ")),
@@ -4454,7 +4524,7 @@ this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure",
this.createVertexTemplateEntry(t+"2_line_bus;",130,25,"","2-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"3_line_bus;",130,30,"","3-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"4_line_bus;",130,75,"","4-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
"3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"8_line_bus;",130,180,"","8-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"twoLineBusElbow;notch=25;",120,120,"","2-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus elbow","electrical transmission paths bus buses").join(" ")),
this.createVertexTemplateEntry(t+"threeLineBusElbow;notch=30;",120,120,"","3-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"fourLineBusElbow;notch=75;",120,120,"","4-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","4 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+
-"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<z.length;a++)b.appendChild(z[a](b))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
+"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(a){for(var b=0;b<z.length;b++)a.appendChild(z[b](a))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Table")}),this.addEntry("er entity relation table section subsection",function(){var b=new mxCell("Section",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=22;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Section")}),this.addDataEntry("er entity relation table section subsection",160,144,"ER Table 1","7ZjbbqMwEIafhtuVDSHdXBZ60GpTqWr6AgYcsNbYrHE2SZ9+x8a0SUmURCnZdkUOEjMeH2bm44+CF8Tl6l6RqniQGeVecOuhaw9NvCBWUuo327rKVUw593zEMi+48Xwfwdfz7w6FYRuGKqKo0CfN9JuZfwhf0MbzTBJOG2+t19x56yUrORFgRXMp9MyNILDTgvFsStZyYbauNUl/tVZUSMVeIJ5A5jcYHDCs9Iy9mMn+2KzGOI8ll8ruE1Bk3lszZ2ZFt5eiNcx9bPPE71wPZLUVOCW1bk8pOSdVzRJ7bjOxJCpnIpJay9IFtVnebR9qbl8wTjjLBfhS2IuqthZNNngEtqsmVZqu9rbGujb74lpzT2VJtVpD+JJlunDR46aVqKAsL9olRqPGSerGkb/O3dF18LjGH6Ah6NCwEOz3gv7IukAUpDKXkJhmhD/RVBORm9FIy8rVk9N5W3/lDm+uk7bmeKOmTWxkasdSwq+du2RZZlfdBEVIS2JdkZSJfNrsEozeXE9uN+OSsOScyyWYBSxGhTmN1EST5JXhSjKhbSnDCD5Q8Rh9C70QMo3Bxm82fEy40rEUtVaE2a5SAG1JDWxRpmT1DGjRNtvN+yV8x4x/LDP+ScxMdiAToD6IGXWIefx5NivJ5j25o+/HIrPNx4fhcYgAk6aD++hep1IIU5akrRnqMhCcxEBwMQbCDgMKyukj3I9ooMME2MW+uGJcXiHg97gHOsYdOv61PjR0/GfiEJ4tDv20/2qPOJxPwSAOX18cvg/icAlxuPqk4jDZIw7BIA6DOPgYDepwCXWYfFJ1wPjj+z/owiV1AffyfxN3H1oOutCDLuDTHlTuEoZzAbDOjQflLmjrgfpf"),
this.addDataEntry("er entity relation table section subsection",160,112,"ER Table 2","7ZdRb+IwDIB/TV9Pabuy2+Najj2MSdPYHzBtaKNLkyrNDtivPydNRjtAwLFN22lQpNqxndj+atEgzurVjYKmupMF5UH8KyDXAbkK4kxJqTeyVdWrjHIeRIQVQTwOoojgL4gmh8xCa0YaUFTokzyjzvMP8CfaaR5hzmmnbfWaO227ZDUHgVK6kELP3ApBOa8YL6awlk9m61ZD/ttLaSUVe0Z7wMzHISpwWekZezbO0chEY5xnkktl94kpMd+B58xEdHsp2qLvvc8zfKW6g9XAcAqt9qeUnEPTsrk9t3GsQZVMpFJrWTsjn+VkeKiF/eA6cFYK1OW4F1W+Fl024QXKrppUabra2xqr6vfFteaGyppqtUbzJSt05axHXStJRVlZ+RChaxy0naJ88d3RddS4xh+gId6iQcklKsJtHipozC3mpRnwB5prEKVZTbVsXDk5XfjyK3d2cz/vl9yXtLNNTelYDvzaqWtWFDZqnxMhLYhtAzkT5bTbZUQ2qge3m2mJxJALjmnE4wqDUWFOIzVomL8g3EgmtK1kkuKFBc/IjyRIMNMM5XAj42XMlc6kaLUCZptKkbMlNaylhZLNI5JFfbb9xyV5hUx0LDLRSchc7SAmJu8BzMUWMPe3WKzJ7UnE9EsU7iNoQM0OGo4FaUjNxVtBc4gLk7ZL72gCcimEKdPc15BskxGfREYy+igykj2jJHqfURJ+j5IvPkpG+0bJScR8j5J/HyXJJx0ll5/uX4kN9sXnyMfPDf+Ivy0dP7foOBuLM+dDR8d/Nhwuzx4O57bfKnsvzc5o8HL9Fw=="),
@@ -4560,48 +4630,48 @@ this.addDataEntry("gmdl google media design library button dropdown button selec
this.addDataEntry("gmdl google media design library button dropdown button selected editable",100,150,"Dropdown Button (Selected, Editable)","7ZZRT4MwEMc/DY8uQJn66lDngyYmJvpc6QGNhS6l6uan90rLNkARFX1aE5L2endtf/9y4JG4WC8VXeU3koHwyIVHYiWltr1iHYMQXuhz5pFzLwx9fLzw8pPZoJ71V1RBqccEhDbghYpnsBZrqPRGOAOjVQ7G3ffIggqeldhPMD8oNKSy1Hf8zfgGIY6rnK7MQEGizTQXIpZCqjoXSetm3LSST7A3k9TNJmDy1aTDgdsdKA3rT09Ym9zxliAL0GqDLq+c6dx5+JaCnwPP8iZs7oy0soZsG7sDhh3H7GN+pMfvTHEqehC7WJDa3uH9uqHdnJQnVJw5zAVnzKRYVCua8DK7htTsPiAd8tEg0kY0UUcvFFQY9uDwjMYc/gxz5GwKBNX8BVr5f4M++vrqDlzGUpYwCM1SumpOMhoT+RhTO2APWjQFM7fereS4je1iR1Hnhss0rUD3IG+3OYr7/JslI9eFcAAbPYp1ZireLCuYmGl8YcqsvuWdarGrCS2VnHSj1IgG1fBn7jCbzrh1qfv6zKeRp734UdisPqlcxz25YqwHj4r3VEOOf1Wb/rfkkF++Pk6Q7vdhEjlO+nLIZ8XxW3qQY1iO07+Q47Qnxz0oRkt6kOMLOYJgAj1wuPvXte77v8Lv"),
this.addDataEntry("gmdl google media design library button persistent footer button",300,40,"Persistent Footer Buttons","3ZXRTsMgFIafhnsK64y3q25X6oXzAYicDSLtaQBd59NLAbdVXabJ3EVJSM75f/4WvpBAeFV3CytadYcSDOG3hFcW0aeq7iowhjCqJeE3hDEaJmHzI24RXdoKC43/TYClwJswr5CUJDi/NVlwSrR9aeE5fHK20sZUaNBGl6/iCLrzFl/gwIE4ekcJiZsg0tDk/4H10B3dc5TyhheANXi7DUs2WnqVVnCazkUV6LXKsUnWhEv9ehfdEwhFhvAzEP4NyOxpuXy4P4VlePwGG/jC6lPCxj/q9z5ZsNwfQGPF9XTOgy6FUyD/Ao2dhHZV/g+zydiYdUNeF0BYjhRhUdKLMZyOlOHudpyfYWj3b030Bk/RBw=="),this.addDataEntry("gmdl google media design library button persistent footer button fixed",
300,40,"Persistent Footer Buttons (fixed)","7ZXfboMgFMafhnuEtstu69buZn+SdQ9A5rGQoRhgrd3TDwWtrjN1aXcniQnnO5wD/D4TEI2zcq1ZwR9VAhLRe0RjrZT1s6yMQUpEsEgQvUOEYPchshrIRnUWF0xDbscUEF+wY/ITvOIFYw8yCIazoppqeHctl6mQMlZS6TpL03o43VitPqCTgXpUGc4StXcidkHYD7SFcvDMtRQOvAaVgdUHt2QvEsv9Cor9vTAHseWhbBY0Zny8bUuPBNwkQPgdCD0BsnzbbJ6fzmHpXz9XOfxg1Ugqt6/iq6qMSIg70Eh0u1hRpyfMcEgCNA3GlTw0V43GciRnOd7MhzFqkMyKHfTaX8J2NrH9M9uww4sSbmOCy37rpkKlqQF74kV7rlH2zCd7rmRPNMf/4M9i8udK/rT/+iX+uPD4Tvvl3Wf8Gw=="),this.addEntry("gmdl google media design library button floating action button",
-function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;fillColor=#FF4081;strokeColor=none;shadow=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#ffffff;strokeWidth=2;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,
-0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.edit;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",
-function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.star;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),
-this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.heart;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.reply;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.users;strokeColor=#ffffff;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.gps;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.share2;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.navigate;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.chat;strokeColor=#737373;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.voice;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,16,16,24),"dashed=0;html=1;shape=mxgraph.gmdl.google;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.video;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.gallery;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.birthday;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.cloud;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.x;strokeColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.bookmark;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.calendar;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(17,20,22,16),"dashed=0;html=1;shape=mxgraph.gmdl.attractions;strokeColor=#ffffff;fillColor=#737373;strokeWidth=1;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,18,16,20),"dashed=0;html=1;shape=mxgraph.gmdl.dining;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.education;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.family;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.health;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.office;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.promotions;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.radio;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.recipes;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.sports;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.travel;strokeColor=none;fillColor=#737373;direction=south;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button mini",function(){var b=new mxCell("",new mxGeometry(0,0,40,40),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(12,12,16,16),
-"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#737373;strokeWidth=2;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],40,40,"Floating Action Button (Mini)")}),this.addDataEntry("gmdl google media design library button toolbar",358,64,"Toolbar","3ZXRboMgFIafhssaBLtut7Vbr5bsbtekHoUMxCDr7NsPhdpaa2bSZlmmMYHD+TmH7zcB0VQ1W8Mq/qozkIg+I5oara0fqSYFKRHBIkN0gwjB7kPkZWI17lZxxQyUdo6AeMGeyU/wER+o7UGGQM1Z1Q4N7NyW61xImWqpTbdK8+5x8doa/QHHlVKXTrMuDBOuk4toqAnGQjPZdxcKTW9BK7Dm4FK+RGa5z6DLRy/jIAoeZA+Jj7Haz4teeqLgBgHEdSj0ZygZqzm06didh1vlttrELYUASzVF62lUqExGO6bAsBGjc3oXVFfd2yvew6HJXHjkOrwgwBFZes3hGAjzM7okGcONA3ADklmxh0H9a8RDC29auM76+ouYDMovnoY76DyvwY4c6w8yy8TkzibuRQZ66j//Zfv+v3vLO7tXMCmhLf4n/FvNMBCPDTxCuNlAPDQwjm930E1Pt5ZPP7/UvgE="),
+function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;fillColor=#FF4081;strokeColor=none;shadow=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#ffffff;strokeWidth=2;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,
+0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.edit;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",
+function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.star;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),
+this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.heart;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.reply;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.users;strokeColor=#ffffff;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.gps;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.share2;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.navigate;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.chat;strokeColor=#737373;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.voice;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,16,16,24),"dashed=0;html=1;shape=mxgraph.gmdl.google;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.video;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.gallery;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.birthday;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.cloud;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.x;strokeColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.bookmark;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.calendar;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(17,20,22,16),"dashed=0;html=1;shape=mxgraph.gmdl.attractions;strokeColor=#ffffff;fillColor=#737373;strokeWidth=1;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,18,16,20),"dashed=0;html=1;shape=mxgraph.gmdl.dining;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.education;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.family;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.health;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.office;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.promotions;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.radio;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.recipes;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.sports;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.travel;strokeColor=none;fillColor=#737373;direction=south;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button mini",function(){var a=new mxCell("",new mxGeometry(0,0,40,40),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(12,12,16,16),
+"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#737373;strokeWidth=2;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],40,40,"Floating Action Button (Mini)")}),this.addDataEntry("gmdl google media design library button toolbar",358,64,"Toolbar","3ZXRboMgFIafhssaBLtut7Vbr5bsbtekHoUMxCDr7NsPhdpaa2bSZlmmMYHD+TmH7zcB0VQ1W8Mq/qozkIg+I5oara0fqSYFKRHBIkN0gwjB7kPkZWI17lZxxQyUdo6AeMGeyU/wER+o7UGGQM1Z1Q4N7NyW61xImWqpTbdK8+5x8doa/QHHlVKXTrMuDBOuk4toqAnGQjPZdxcKTW9BK7Dm4FK+RGa5z6DLRy/jIAoeZA+Jj7Haz4teeqLgBgHEdSj0ZygZqzm06didh1vlttrELYUASzVF62lUqExGO6bAsBGjc3oXVFfd2yvew6HJXHjkOrwgwBFZes3hGAjzM7okGcONA3ADklmxh0H9a8RDC29auM76+ouYDMovnoY76DyvwY4c6w8yy8TkzibuRQZ66j//Zfv+v3vLO7tXMCmhLf4n/FvNMBCPDTxCuNlAPDQwjm930E1Pt5ZPP7/UvgE="),
this.addDataEntry("gmdl google media design library button floating action button",50,156,"Floating action buttons","3ZZPb4MgGMY/Dcc2iH/mrtO1pyW77UwmChkWg6zVbz8Uamu1m5m2h5KYwCMv8P54IAA3yqutxAV9EwnhwH0FbiSFUKaWVxHhHCDIEuDGACGoP4A2V/467V9YYEl2akoAMgF7zL+JUYxQqppboaS4aKo6kBWlrr2USoovEgkupNZ3YteIKeP8KAHkxk7sxl7TmeJEHLTo6EYmccL00i5i7SKIVKS6mkgr2Sy2ROREyVp3sQGhCTiwRFGjeCZzSAnLqOpruDTtrBvnxEhXLKZxZO7fyBJcUtJ0hzo5qnJu0z+izKus2fF1lid8/SmKegBVEwzaMiTb6Sbiw2aMpnJEv3KEa9+E1BftM7IOGpJ1AqNJwrFie9Kbfgy3XcG7YHph3fSroDf7KuwPINK0JGqwW10akzbQezDPW1Y+vNsR8Bc+AoVsTDAN8lz7e/PtH97O/s+3t39wK/tvNh4MnTvY39Jx4NDxfjDcm6M2x/FPCzu+Grvx07b839rBfGuP4FvK2v3baglr6+bppWS6nz+kfgA="),
this.addDataEntry("gmdl google media design library button related actions",200,40,"Related actions","3VbRboMgFP0aHtsgWtu9zm19WrK3PZNxFTIsBlhr/34o1NbqMpO1zTaNyb2He4R77nkAxVlZrzWt+LNiIFH8iOJMK2V9VNYZSIkIFgzFD4gQ7D5Enr5YjdpVXFENGzuFQDxhS+UHeMQDxu5lAAynVRM6oqiMi+6N1eodMiWVdvhGbRowF1IeIETivH2aYk6Z2jkwckmhKRPuaGfccAjQFuovG2mh0MUaVAlW713JTjDLfUXie8UcRMFtH6PG50XHPKrigiDMuEjx9yIxajg05di1w20pQ8MH8cq6aGY8L0om50y9DVQ8lexMymX7dozX0DCZKhwZFy4Q8HzhKfuz/ETYKBkKG6Ue0yCpFVvobT+mdjjBixLuYN32s2Vv99mq/wOV5wbsYFhdG5Pml/x5kwfCCg9Gcy3PLy7seVNpoMwR3DRv6P3k595Pr+f9u+t7P/0v3o/S25l/eWnzj9p+XNfO8ZM0S3+1v1cX97dLj5cjX356d/oE"),
this.addDataEntry("gmdl google media design library button floating action button",50,456,"Floating action buttons","5ZZNj4MgEIZ/DcdtEPp1ru32tMne9mzCKGSxGKCt/vtFQVtXu9tkN16UmDAvM8PwMAcQjfPyqJOCvykGEtEDorFWyvpZXsYgJSJYMET3iBDsfkReH6xGzSouEg0n+0wA8QGXRJ7BK14wtpJBYInhULtjRHfc5q7GfeSmhidF7ZKXWV3+IsuZXJwN6HrNavUJsZLKWfuTOjnHXSqkbCVE6BbXwydi6hqyulxMuOK/xYYyQVsoHx61kcI5j6BysLpyLiFg6wOuglnulaVngzmIjNu+lhhvZ12eG0U3CSDHodLZQa2ChSdjvJwr42g9HeTVXCF39CaAvJ4rZEqmg7z5HXIL0wWKwsCTCNPmmwBh1cIYQluth9Ba7S/Qtv/cmeWAqQO4aUa38hGORZ7Ftfmx4/Bi1eu5zr7DF43gazUNMrHiAr3tx5iGCt6VcIV127/0O7412wQqTQ3YwZV0xxi7JWfenofe/f71+AU=")];
-this.addPalette("gmdlButtons","GMDL / Buttons",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLCardsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library card card",342,356,"Card","5VZdb5swFP01PDbiu91jPhtp2VY107pXDy7BmrGRcUqyX7/r4ISkQEsXtD0sURT7+Nr3+pzDFZY3zXb3kuTpJxEDs7y55U2lEKoaZbspMGa5No0tb2a5ro0/y110rDqHVTsnErjqs8GtNjwTtoUKqYBC7ZkBipTkeighwiMnCWVsKpiQh1UvOXwQL5QUP+G4wgUHDaYkFiXOHZyYVCAV7DrLPUCm1nsQGSi5x5CSxiqtIjzf1JgC3aRmmxeEFUiKCtic9ta3x4EhoJ0M791ktF76BUOTmf4iXqZUwTonkT6gRMn7cuL+GSfOhwE48RucfCR8Q9ChiH4jjIEuZU0SImmDLbyUZklfj0aEjRndcFz5IZQSmWZKcLWmv3Q0ko90IjmUb1aQ6Cs4YQ3h1K5nE3PA7CZAUEKBZzwZNno7rYPVvXlsRkFgG/7eItoPKkwCI4o+w0XKa8gPGuSvREQUxAiqUiuQiq0sNOliiyW6tki0GvuYH2ShXAemoDEdAFIDS6ycER4Xx/jPUJoI/HsiDHAFa7NHo1GXpG1e7lbv0XDVouiZBRy/VcwKWR75/gf63obv1NdkfRCUqzplYF/uEElSgGr44VRrL4uEVzXwY5tua2MDkDxIV75t3HC9HD/Ou5x5bijXzM+68WIxDjy/tuFXkRsnvmJpE/Gyj2U0jnX2CTFAhLyAPBZhSutt2PBVLm98v+HWO7ulGfmDmPWUblC33jW0nH9/WH35j9TcXSr3l8V9I/s1WuO0fm2tws/fan8D"),
+this.addPalette("gmdlButtons","GMDL / Buttons",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLCardsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library card card",342,356,"Card","5VZdb5swFP01PDbiu91jPhtp2VY107pXDy7BmrGRcUqyX7/r4ISkQEsXtD0sURT7+Nr3+pzDFZY3zXb3kuTpJxEDs7y55U2lEKoaZbspMGa5No0tb2a5ro0/y110rDqHVTsnErjqs8GtNjwTtoUKqYBC7ZkBipTkeighwiMnCWVsKpiQh1UvOXwQL5QUP+G4wgUHDaYkFiXOHZyYVCAV7DrLPUCm1nsQGSi5x5CSxiqtIjzf1JgC3aRmmxeEFUiKCtic9ta3x4EhoJ0M791ktF76BUOTmf4iXqZUwTonkT6gRMn7cuL+GSfOhwE48RucfCR8Q9ChiH4jjIEuZU0SImmDLbyUZklfj0aEjRndcFz5IZQSmWZKcLWmv3Q0ko90IjmUb1aQ6Cs4YQ3h1K5nE3PA7CZAUEKBZzwZNno7rYPVvXlsRkFgG/7eItoPKkwCI4o+w0XKa8gPGuSvREQUxAiqUiuQiq0sNOliiyW6tki0GvuYH2ShXAemoDEdAFIDS6ycER4Xx/jPUJoI/HsiDHAFa7NHo1GXpG1e7lbv0XDVouiZBRy/VcwKWR75/gf63obv1NdkfRCUqzplYF/uEElSgGr44VRrL4uEVzXwY5tua2MDkDxIV75t3HC9HD/Ou5x5bijXzM+68WIxDjy/tuFXkRsnvmJpE/Gyj2U0jnX2CTFAhLyAPBZhSutt2PBVLm98v+HWO7ulGfmDmPWUblC33jW0nH9/WH35j9TcXSr3l8V9I/s1WuO0fm2tws/fan8D"),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card Collection","7Zlbb5swFIB/DY+JbG4hj7n0Mq3dqrZa9zY5wQRUgyNDmmS/fjaYBGLISAJrVY0oUnywsX0+nwsnmjEJNzcMLf176mKiGVeaMWGUJtmvcDPBhGg6CFzNmGq6DvhX069r7sL0LlgihqOkyQA9G/CGyApnkkwQJ1siBS6KfSy6A80Yxz5aCjnDc/78sRcQMqGEsrSr4aWX6JYw+orzOxGN+JixnAqzBG9ql5uK5FpvMA1xwra8yzpwEz/rYVhONszHwcKXw2xTLhzFmWCxG7vfPf8hFVCtDENRBuRrGRngJJ0gEiwi0cxWd6gj07JGtlmnI49GSaHzdXqJzks0D6LFo9yxuRc90yUXQDn2Sa4R5O3gt2hCg7cZjnnrRWoSNiWin0dENzMZwwQlwRsuPf8SSuaZRzbcLISZ9RehS/oJXf6aIabi0afG0LEvOsJGtcLKA7bSOvtW1i6o07RVbcJTtSnnf6ABX9Zu8t5QL03fG5SfQD0vxolCY7eLRoAsBdAzQ2+YpIwYRuFJ5lRtJmVoNhhMnXHlES8YgdDK3wwss6aeMBdBOZgjMpL2HAauKxacd73DnoAz0As2T1JZp3ZlDS47CduyebZK3m7DNJcMe5iraY7jhvh3YaeR3q1qvR8xyFxXJYO0WzHI/DG5PTodUBm0QSXGiM19BUhR+0UqElTWObdH/UJEjT0orPKg7QDr5dlAl8ScNoiFiC2C6DHzosKZ3qcC3s05NXPjz3fpWnpU1cdmkttc2V1nFoZ9IUqJzoEdoBuqwY+HFB1AfmzAaMXVy2MFinhjhtHc5z6ubbJ7wZgmCQ1FPHMaetLxVHy4fO0HCX7igU5MvuZTHwmdh4FyJqc9jIrFUFxIYMWJsZseGee8I6MDs/50NE08IVDYfluFM8wk3gOOfBvJsTSimJ4X1CHTigMNgX1rT9VSoQzT6/xkv0a/e19rqd622ki7Sv8hVCi8iMPqY55jCrsaC7vSRC5iQKE2cTdeRS4SG/kSExS5ms6nARU3VGuUFKvsoR5Y/pqWnusyxEPq783JAq34UqOLdBKq1Ymn29HjVR2kom4rc/2RZShvzuA4Xdmj1opzHzfnaDA7eAtvCSdUUDpAJWm284rolNMbS+8CrFppufr5cPf9P9pu0f4Ttmp95iuKFohRyqU/ECFY7P8JeYgFrSc/Hz3JOYzhenUMaDmj3oUFe9gwLEDn1LjQOH6r5aFmp+CEehBIr9ZLnrU2W6lC02klsvbMLt4wYSulmhmavzYuCRS5nFkXgMcLA6Cf1x6P1QaqijktVVcHZf/aRXEVNqjm5Kz4yGAZ4w9F6PMDalC8OerS3pPO4LPh4c39n6lZ9+J/rX8A"),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card Collection","3Vpdb6M4FP01eUyE+e5jk6adlaazo+ms5nFFwQloDEbGaZL99WuDnQAGhgToV6oq+MbG5hzfc69tZsYqPjwQLw0fcQDRzFjPjBXBmBZX8WEFEZrpWhTMjLuZrmvsf6bft/wK8l+11CMwoX0a6EWDFw/tYGEpDBk9ImEIvCyEvLo2M5ZZ6KXcTqDP7r/cRAitMMIkr2ps8g+vRgn+DeUvCU5Ym6XoChIKD63DzU1irA8Qx5CSI6uyjwIaFjUMyy2ahTDahqKZbYqBe1lh2J7anp+eXQgAmsEwFDAAG8utoV2EiYeibcKLxejqGK104FrLNow2OKGlyvf5h1dOPT9Ktj/EE5tn00+cMgMQbZ/EGDVZjv7jRWCwMoEZK/0SSIK+jOjXMaKbhY1A5NHoBVbuP4Ql88opGx+23M0W2zhAC4rTf589MmiqGs3AVBschRcurKJcgs20VdTApaiJ/r/jiA3r1Pn8Rq90P3eqd8CbTQapgvrpKXoRYSlEPPLnj3dZ5F/kMc2eUHWb9Q1Y282zuDTPOSB/8qHCYeb8XpzgyPfQrXDZOAoCPmBZ9SvccF4cveTWKLdN6jqWM2wSHKseOCrp9hjelxK4gQwmH2Y96bfvtTUfdT/crWbcO3xRYlXxRXsUX5S3ka7oTsCKMwYrGfSIHyqEMPT1O8u2lzVWBFFFZemP+kCKeosnaBLPcQiby4A/JWPuGIzFHtlGyY9CRbmYPuYGVs2tGJaYUhxz1TNV1zqR2+iHrN8A74XSqtpbWL5IEqZOKoCjjyKNLpiA0huF0n8SFMURZSSewqKWMDTrTDOkOIP7kNV9YqGHm/eM5o5gVg9dz4LiepwqB8dS1si5ss/F8wRxr08U3T9zKrP0SuquXUhp30QRaAohX6OMwoTZKOaTAe8I+9p4L5gw5Hl3DNSMZvwq4aR56HkX8+I+hAlkz19cEnGJGb8JPNVms4iXF5fwW800ypzIXL9sa8jszY5J8rpEWpcS2eybljWBbwKgzoW/nn6uvzHbt79/tTHWmiDW11ZVGjWFsbqfaR2sSQ/2GSGQDCTtWGlQDqBiZ6BK4UB5PVSCm4yf8q7jMnrt1sVVEVQsGswLwqruWK7dK6wOiZgy17fUFKk5glr2CMqq7pQ87VJI4nwL651Ht15ogx4JSlcwG4SuusNxjzOaRxwa8nDzHeKUoftewswgRGuq3zfIDAJY3bkYVTr0qkxIhF1VJJZ3/G/YhmkLrrLFjalKv9202u0ShpaFEqhP93GUfZQ9humU3XXA2r59LWU3gRq7J1R2dSfhi4f8I+ZJ8513zD6HuttvqO7qyn+NUMRl/QHvUMAf8GMJewuYbyHs6hL8Awt7C64fV9h1dUH+roT9dgls69VSdst2+gm7YbXz19czdHX9+3E9o5hHwz2jC9jXdYxr17IXHKBp+ef6TaHuydwzRzGFbeAW0dycYku+4fz/Ch959vzfTWcop3cj2ni58iCljRjRQlvIc9quw5SmsDHSSbRT6X2Sg+g+rwRIrljLKM3gu2Lo8xPUY8HdKWlvyY7z2ehhxfMLZkX18vtn/wM="),
this.addDataEntry("gmdl google media design library card card collection varied layouts",358,642,"Card collection with varied layouts","7Vtdb5swFP01PKbCGEjyuLRL97BK1TZpj5MTnGCVxMiwNt2vnw12woeTEWIoTUdVKVxsMPfce3x841jwdrO7ZygOH2iAIwt+tuAtozTNP212tziKLMcmgQXvLMex+b/lzI9cBdlVO0YMb9MmHZy8wzOKfuPckhuS9DWShgAlIRbNbQvOkhDFws7wkt9/tiJRdEsjyrKmcJUdolnK6BNWV7Z0y/vM5KMwS/Hu6HAzkxzrPaYbnLJX3uSFBGmYt4DeJO8WYrIOZTfflQNHSW5Y7/se3p5/kA7QOwPWnAH4WD5B+yyfoIist+I0H13VR9CG8+n8mI9WdJsWGs+zQzSO0ZJs19/kG7sH0w8acwOQfb/LMdrqnPwRpwDyc4YTfvZTehI0RcRph4jj5jaGI5SSZ1y6/yUouS1DdrNbizS7WW+C6Cal8a8FYheFKtQ7ptzhVWbhjZefF9zm+nWvgXO9Jp//SAkf1v7ho6lTevxoXL4DXa0SnNa8vn+LRkB4NSDuSLKk3Gtn5Ys+DypJM/fAzBPA6MK4EOjCI/9KojxjRiIlBMJkiaJPMmc3JAjEmFXTr3glgBk7hbyOMlunueONL4uC13IKGkXdN5F+McMrzN20xEnDCNhPLY387un9fiIZla9KyegbSUZ1G5WLkw5QGZtAJcGILcMaIEXvF1GRQOWNVT46F0LUmD2Bjj3NADZSM36XiE1qiD0yPFqhhXgnfqOkBYAbxNZk+y3nVUGvD5mBN/NLhhlNU7pRJFjJtNmd+DuWlvy5AX0pEK+OaIuE7GpodiGfr2h2Px6vIGwUm1d4t07/ueWLioPOhQ2ERth5AjqIqqkJHjASRqfXAi216OQkr4MaSehnV2AEv5HXBYDANoFgyJlcs/Y4ndrF9YMmu6fZUVlXNKb76aV0rwHSFN0Dz+ue7wEwAeyC0ieenk/Xha1mKpd1i8uxtSsrIZVgZsFtW0cp66+QO7UxssUrbeFtqd2GDLg77QPveqlojp4pIym2xAoJAgEyoyjgjVJGYrNqDpYMcpFqVModBH9Fyr2E/B2/c4UmLC98sCXBBvxTaq+i5Kriz530Ie/2YQl9z69H5niqCU2VzUNUfMBIPayd5DvYVWGyNyUIjlTfjkpBLbLDloL1AlsLZIcnBfOI/dBa0EgRbZBa8HJw378YNFOMey9icNCI96MG67W8GU7SghJEhEVka7imp5+B/8vARjJwV4nHq5OFb1gJrC1N+lOF5xYI358qdK60QAg+fIVQjesaVeGQK0b9qEIF5kdRhUNGvBdVqNlO1tsM3F4A9ld/Gzf8us6/EPQuVVbrzWhn7H2ys6O9JjqNQ0MQ3IkREEZuJxOnkULZAi2fdAyq3ftSxKUlQzqn1832jVNdmmhIUrdrydAWwnGZI7vYQdhkM5nCivckcYIHhdD1A9SglHWS0t4SnfG1wcNPD78MyJsXfzjwFw=="),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card collection","5Vptk6I4EP41ftSCAKIfR+dmb6tu9652rbraT1dRoqQGCAVx1Pv110mAAQMzKLA7emztaJp0XvrpTvqJGVnL8PgpwbH/hXkkGFm/jaxlwhhX38LjkgTBCBnUG1mPI4QM+D9CTw1vTfnWiHFCIt5GASmFFxzsiZIoQcpPQSbwcOoTUd0YWYvUx7GQJ2QD7S+2NAiWLGCJrGpt5SOq8YQ9k/xNxCLQWWRdkYSTY+NwpSgb6yfCQsKTE1Q5UI/7qoblzJSaT+jOz9SmdjZwnCrBrtB9nT18yQxQbwxLM4YJY3mwjItsggO6i0RRje7cRobhzqeLJhttWcRLlZ/kIyrHeEOj3bdsxvaraMViEJiZ7vdsjEZepv+KomlBOSEplP7OLGm2RQRdhwiylSwhAeb0hVTa74KSfaXLhsedCLPJLvSCCWfxP2ucdHJVq94wVYVTFoUTR5VLZrOnutXMS62W9f8XozCsovPxHFW6H7vVFth2mxKuWb2YRSsgHA2IJwJWF4PHHkkuCpr6YDiPnPl0NhPo1PlyyduR8X4kqbAZi7gQMNMNDh6ywA2p54kx51X/IFuBjotKwR1I2aAB5LjdXOFUjcNeoZ/2EYNxQrYEzLQhaWsPsJGEv5XdnXq7vxGRua0qETntJSLzZvKAnA2AitsHKgAKBJevIVI2fxMsSiOPStQRqNYLqVm3kPYD23jqDI/brA/cYBgcFqufGkqtEXKGAyiP2SEBmvcBUIiTHY2+qf1ObHtfpACqzSqCBeOchWJzsltn2PCGyEd17rFDtiuqffL33O5m7dY55C6GXNTLNjYzB8DVNN4H9m3Gs3gU/zqlkfM2sVUys1uz2rk9BdO8uktl5LFno5ua0VcJfgHue256sBqvyc/WWYCc5WfIruE8Z1ngXD7XB0EDVuUUwjF0eGyjnxgYAg39BOArOYDgB0ue4WNJ+aktMA2J8zkwYn7nwBjyuVVgzg8f+kFGP454xCdFr+KYwOS9CZRWPoG/nIQxSbmEicpmEryTZOxAwQLI2EceDWlE5S6FjO1eDANsa6z3QovLVg40EluH6ILvk0jW5Kx4nbI998cEp1x0/FnoHWDKMG/RIn5h+wSvA1Fz4+NoJ77gyCvUVzh6FsRQyneYRpMmxzr4lBPhREJ8gC00l32vyjI/E44yPQt+u8Y/OSspFdusoZFCc1BHtHJvKTvibNaLI5rGIGuEfuTysFx9/vMryMyOi0PdQdXZ2mAvncfFQ4l8b8DaJKngXzSTjaMrXqeKQgm9eU2OY/cD3tgZZBnRj2kK8PRs5zLwZkOBNwhydet/R+SOVacYFsheDl3aspBsKbwFClLwThvpzLOelOSm+5CkpMUxzuCkRDnb/4mV6IcwECSQanHKorbL5C9kJk2A3TI10Y9dnvaR6OU1Y10QvPE77mI/g5/8YngGIShIPz0BMiLT+4P6SKE58QHmFzSBbTOuAJiEOY4RY1GZKKRCY002WKqGTDbkUaA10YarKRR8ZH+XFKKFr9weh0D6qc/dcIgmwO6HROQpyN2RiMuhu3EWUXPJRcOvK4u4Jc6Q56jvUYa+8qQhGMPVV2IuunzRLQF6Gwc9zupB6GmNtAfZ4fSDlisia403z3VxUkRQEy5X/vaufKeR6BkTVP0BvPb397prEz1dZHKra+IQ95ja3GbJsQJNGqfkQyF0/wBdfiLycdBx7w0eKL7eT1bVy9eX/wM="),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card collection","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"),
-this.addEntry("gmdl google media design library card card",function(){var b=new mxCell("",new mxGeometry(0,0,344,254),"shape=rect;fillColor=#BDBDBD;strokeColor=#BDBDBD;shadow=1;");b.vertex=!0;var a=new mxCell("Greyhound divisively hello couldly wonderfully marginally far upon excluding.",new mxGeometry(0,172,344,82),"shape=rect;strokeColor=none;fillColor=#ffffff;;whiteSpace=wrap;align=left;spacingLeft=16;fontColor=#666666;fontSize=14;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
+this.addEntry("gmdl google media design library card card",function(){var a=new mxCell("",new mxGeometry(0,0,344,254),"shape=rect;fillColor=#BDBDBD;strokeColor=#BDBDBD;shadow=1;");a.vertex=!0;var c=new mxCell("Greyhound divisively hello couldly wonderfully marginally far upon excluding.",new mxGeometry(0,172,344,82),"shape=rect;strokeColor=none;fillColor=#ffffff;;whiteSpace=wrap;align=left;spacingLeft=16;fontColor=#666666;fontSize=14;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
300,230,"Card")}),this.addDataEntry("gmdl google media design library card card",342,378,"Card","3Zhtb5swEIB/DR9Tgc1bPzYkrSbtTWulfXaDAWsORsYkYb9+h3GaEohCG9JpIy9wZ59tnjt8NhaO1rsHSYrsi4gpt/DSwpEUQrVX611EObeQzWILLyyEbPhZ6P5EqaNL7YJImqsxBqg12BBe0VbTKkpVc6MoM1I0l5KuoMl5wjiPBBdSl+L5ovmAvlRS/KKvSqg+mpKMxGILSgcE0x+Viu5OjlmrzIAfqFhTJWuosmWxytoa2DUDzShLM2OGg7BVkrJVpC+2BwRwYSgME8FvJnL6zo9YJfoAvaQl+01/mtsZjQW9D0vQhoAtKSeKbWin/UtQueNRgSErStqjlYt8ANStPsZiwWexuHafivtWKqaH74JBx8jej8drLequuG9AJElJVQ/qyzBHcfZ6nJ+YAsLHsAGSmg4awl6fGpqGmv8B1PwetcfqOaMkPsUtEbm6YhB+IE98DZ5Bj+eDpHUmqhyI2jHbsBJugNf6DjkXcF6JisdasxV5TGVScS2tiUxZTlohIRL+q0LkcKK7Fa9ilqc308+68N1mTNHHgqyahraQdUFHOEtzEDlNdLtQCv1/1tLC8fuB4esD9E1IsBXhd6YFJYpDA0+NsHBsY/8IE34j40ONHyYMdB+XJADjdeSZYDqXEBw0QZ4MPyBPvstjbt9jL4uUaRNv3TE4R90NL3vUTW8z98h5kzzctxd6cziP36MgitBYyuEbKe/XH5351L1GVp/hazB37PPQY1JmtKlvtwtp7YH1Lm02DDfpOuY3kNHkWH/MPbwMvbH+uB32x66zTq47S8FX3nHCgYnHv3zecZzrhKo/ny+W/2Co+l1HXClUR+wTz4eqpAVk/LFbAG8Zjt8wntgx/u1Y7W8m76KnT9++Thqxx8uTO3Tvof2yw3ThDCxDLon0rsHJuA8GNl7YnyTuZ46HupG/T7rTRn5/kzuhC3GwiHDfhWHkeF70/7sw8Kb3IIiH12dt9ddv1/4A"),
this.addDataEntry("gmdl google media design library card card",344,420,"Card","7Znvj5sgGMf/Gl9uQdRqX27edluyX0kv2WvufKxkVAxy13Z//ShibYfm7K69VDLaJvDgg/D9WB4BL0hXm1tBquIrz4B5wQcvSAXnssmtNikw5mFEMy+48TBG6ufhjwO1vq5FFRFQyjEOuHF4IuwRGktjqOWWGUNdkGqXFfCgmnyfU8ZSzrjQtUGuk7LXUvBfcFADOu1qCpLxtTL6qmDuB0LCZrDP2mQ6fAt8BVJs1SVrmsmiuSIIw8atALosjFtoBotI3RiWe99OApUxKvQrEoxXRDnSqgZr8CUvwVZqrtNYCfCzEoSoRwFjE8CIpE9w1HyfKuYOPzhVN8ao7U/UeGyPi20DPM9rkJao+26O0jm0dL6jUin8t9hKJHk+0XAQ2arh86g2ewXVIku1xeN9ASQb0i3npbzgQ/iKegaX0HN28vw35q8+00nZBdT0N/w0evl7y6dWrdFT4gAK44DeIt83Yzmgk/g2nNb2r3AMjRhdgEbsCg0cJfHkaSSu0IhQlEyextwVGnHUjmXCNHzkCo4ucGz3sxdq386mTMh3hVAXTBwjdPri80oJdQHGMUInLIavm1AXdBwjZC+jJ0qoJw6FKJz+e5tvL9knSqgnDrlByJlNgJ445AYhZzYGeuKQG4TszYJ36d3n799O43R4bDB00KC+64JKWFTkYdfQWpBK2Qijy1IVGeS6XVVLy+UXXbpRYdLaCo31x9gXpoN+W1b0Wz/76XjJo7A9cnj2SCM5C/M389kloNt7Ev+hXxH0tp2XQFfF7jSyufzwsPIP"),
this.addDataEntry("gmdl google media design library card card",344,162,"Card","5ZfbjpswEIafhstKYAeSXCbOQZV220obqdduGIJVByPjZEOfvgYMIWtQQbtIVUsUYY9n8Mz3Y1s4mJxve0nT+FmEwB28dTCRQqiqdb4R4NxBLgsdvHEQcvXfQbueUa8cdVMqIVFDAlAVcKX8ApWlMmQq58aQxTQtmhKO+pHriHFOBBeyHMVReWl7pqT4Ca0RKK9iJKaheNVGT3fMfCAV3HpzLk0m4T2IMyiZa5dXFqq48sCzWRUWAzvFdVhgsqdZZTg1sXcEumEodBPBo4n0V97HSkLGfsF3U85gLKgbS/4Q8CdIs0Vlk8CpYld4CO4CZyb8JpjOo5ntU/2cOkREUQbKIt3kOQj+zIK/OiomkmIeCVTf8Mj3c4fnG4ItlRKRlAKJRLWct8RbLgNtFyk9MlWUil3j9qIVK8Rq+iYD7z3SmYBGlJZ4Oo9pXnDfYnxgSpfylqsuRz3WjlwbWVBeBd8CWXI6iLSmVCBhR8pXnJ0SbTyzMORwd32CSNW+H7siWhgbtA9rwB25BoayDSy2L5cfMdBwAF0PDaX7d8NFY+F2bzC1Rh+6v8wtffYS8lhcEq2QG7Iry3TGPC9L4lwMkQ3bsmFS/P5L2QJ/AtkW9rFADp+/fhl3Mtd7fs8B8UbDBfF8n1ibvb1kJzm6566tEA7ep9DtYf9vznE0gWDLKQUL1uvNtmOvXKGdj/5BwRYTKKa794+Myr39DfIb"),
@@ -4621,11 +4691,11 @@ this.addDataEntry("gmdl google media design library card card",342,146,"Card","7
this.addDataEntry("gmdl google media design library card card",300,176,"Card","7VbbbqMwEP0aHiv5Qmjz2NBtVKl7kZofcMMQrBqMjJsm+/XrW5oQhwZt07eOhITPzPGYcxhEQvN6M1esrX7KAkRCfyQ0V1Jqf1dvchAiIYgXCb1LCEHmSsj9QBa7LGqZgkaPIRBPWDPxCh5ZcC3AQBUo8MlOb0VIFqyrwFJRQmddxVqLK1iaXrOSC5FLIZUrpaULW6aVfIGDDLjwGxTyzYDY0mWjD4qQi4A/8b+2EUl363Aim1+D0nzJxK3gq8ZgWrZ265YtebOaSa1lvTuvxx6htNLgbA8tLOcOTwzCwjbCVc2CPKYHbAYldlDQdw6yBq22puSNF7ryFTQNQlfAV9WOdp15kHUeWL1z946Zm2DaaQNpZODT67P+yEPzJDrWe+qirzemI/SueVEIGC/5KEXJWUVJmsWKhpcdKRBM8zX09j+lcmjxR3LTmaCtr5hM+wxZlh3oyJX3g40yKo2Mipz5eKCeXUQD1cgGPilrn3AgMsanXtsd+L8qh3ZXmNx4TpAdZ18g+ySS/TZfPPz+ZTB81oCjUTgp/NBn72i+UhdH84Q/adx2yLgbFPtGL2Nb37OrFH2Badmwaeen5tu02LRpdnnXzHL/n+LLD39j/gE="),
this.addDataEntry("gmdl google media design library card card",300,224,"Card","7VbbbqMwEP0aHiv5QlDz2NCLKnW3lZofcMMQrDUYGTdN9uvXtyYhhgb18rYjIcGZOR5zjgeR0Lze3inWVr9kASKhNwnNlZTa39XbHIRICOJFQq8TQpC5EnI7ksUui1qmoNFTCMQTNky8gkeWXAswUAUKfLLTOxGSBesqsFSU0EVXsdbiClam16LkQuRSSOVKaenClmkl/8BRBlz4BQr5ZkBs6bLRR0XIRcCf+V/biKTvz2FHNr8BpfmKiSvB143BtGzt0i1b8Wa9kFrL+n2/HnuA0kqDswO0tJxrPDMIC8sIV7UI8pgesB2V2EFB3zuQNWi1MyVvvNCVr6BpELoCvq4CjZBLD7LOA+s99+CYuQmmDRtIIwOfX1/0Rx6aN9Gx3nMXfb0xnaB3zYtCwHTJJylKzipK0mxAUX/YkQLBNN9Ab/0hlUOLJ8lNZ4J2vmI27zNkWXagI1f2G5tkVBoZFTnz8UC9uIgGqpENfFHWPuFIZDwbOLZ78LMqh3YXOAvnP8iOsx+QfRbJfpUv7x9/GwyfNeBkFAaFH/vsncxX6uJknvAXjduNGXeJYt/o99jW9+wiRT9gWjZu2vmp+W9abNo8+37XzOPhP8WXH//G/AM="),
this.addDataEntry("gmdl google media design library card card",342,272,"Card","zVXbboMwDP2aPLaCBLo+j219mrRfSIchqAGjkLXw9wtJemGlaqXSqZaQkmM7ds7BCmFJ2a4Ur8UnpiAJeycsUYjarco2ASkJDYqUsDdCaWA+Qj8ueEPrDWquoNK3JFCXsOXyBxzigEZ30gON4HW/VPBtjnzNCikTlKisl2XWDN5ohRs48YC13iN4ijsDhmbj64HS0F7s2UK+4RVgCVp1JmRXpFq4CBb5RgUUufBp9MWDvHFAfsg9UmAWnoVxRti9jKytnTFSYQW33p9evT+NgpH770EFkutiC4MCY6T4Gl9YmNI02He0cBndcLs/ALOsAX3G6aHRm2iOrtOc8kZAHx64n8hyXrZ5PyzzvEzlXABX+hLTf2RZWLtTgWHCqR4jcoTLSdSYxWwgB1s+QI54CjnWiJuSq81TKBJGIwMyzXzM4nCgyPIRA7KYQhEFteyeQo5/HJCQxffrYbbHV9iFnz7Svw==")];
-this.addPalette("gmdlCards","GMDL / Cards",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLChipsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library chip chip",170,32,"Chip with text and icon","rZRfT4MwEMA/TR+3sHZMXx3T+aCJiSY+N3BAY2lJ203mp7cthY0wHWaWkPTuen/6uwNEkqrZKlqXzzIDjsg9IomS0rS7qkmAc4QjliGyQRhH9kX44QfrwlujmioQZooDbh32lO+g1bwp2EtldY9UaBCtXZsDD3Zd0tptFaQ2w5qq9JV9OUUcWVEbJT8gkdyGIBshhbWsc8Z5p0KYgF9Wr+ROZOAqWTjXmqZMFE+Qu8rx0jlKYUL0BXHJOCuEFVJ7O7DR1qF6UAaaHwl4Vbj+FmQFRh3skU+WmTKcuGkpRSWwogxuJLChupWL3vXI024C0vN4yQjviGdGdekZeHwBbtUUbiTmRZXx+U77u05Bu/JrKhh8EUzH4BwXBZwatodB+GtgLS/D6vhYR1ZrmEjlLnaPmx9d+6nd5KxxzK/CNHQ4hK9tHrfy6XStxhA73WSIIf+LZLasPvmsgxbSz26HEWSeazCjJvS3mNSX+D+GuBn1yjYm96u3vAdmeGpnlr92Jh6gGfflTFtWf55iKx7/1i3c05/5Nw=="),
-this.addEntry("gmdl google media design library chip chip",function(){var b=new mxCell("ANZ Bank",new mxGeometry(0,0,170,32),"shape=rect;arcSize=50;strokeColor=none;fillColor=#eeeeee;rounded=1;spacingLeft=24;fontSize=13;align=center;");b.vertex=!0;var a=new mxCell("A",new mxGeometry(0,0,32,32),"shape=ellipse;strokeColor=none;fillColor=#009587;fontColor=#ffffff;fontSize=14;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,
+this.addPalette("gmdlCards","GMDL / Cards",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLChipsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library chip chip",170,32,"Chip with text and icon","rZRfT4MwEMA/TR+3sHZMXx3T+aCJiSY+N3BAY2lJ203mp7cthY0wHWaWkPTuen/6uwNEkqrZKlqXzzIDjsg9IomS0rS7qkmAc4QjliGyQRhH9kX44QfrwlujmioQZooDbh32lO+g1bwp2EtldY9UaBCtXZsDD3Zd0tptFaQ2w5qq9JV9OUUcWVEbJT8gkdyGIBshhbWsc8Z5p0KYgF9Wr+ROZOAqWTjXmqZMFE+Qu8rx0jlKYUL0BXHJOCuEFVJ7O7DR1qF6UAaaHwl4Vbj+FmQFRh3skU+WmTKcuGkpRSWwogxuJLChupWL3vXI024C0vN4yQjviGdGdekZeHwBbtUUbiTmRZXx+U77u05Bu/JrKhh8EUzH4BwXBZwatodB+GtgLS/D6vhYR1ZrmEjlLnaPmx9d+6nd5KxxzK/CNHQ4hK9tHrfy6XStxhA73WSIIf+LZLasPvmsgxbSz26HEWSeazCjJvS3mNSX+D+GuBn1yjYm96u3vAdmeGpnlr92Jh6gGfflTFtWf55iKx7/1i3c05/5Nw=="),
+this.addEntry("gmdl google media design library chip chip",function(){var a=new mxCell("ANZ Bank",new mxGeometry(0,0,170,32),"shape=rect;arcSize=50;strokeColor=none;fillColor=#eeeeee;rounded=1;spacingLeft=24;fontSize=13;align=center;");a.vertex=!0;var c=new mxCell("A",new mxGeometry(0,0,32,32),"shape=ellipse;strokeColor=none;fillColor=#009587;fontColor=#ffffff;fontSize=14;");c.geometry.relative=!0;c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,
"Chip with text and icon")}),this.addDataEntry("gmdl google media design library chip list style",358,642,"List Style","5Vldj5s6EP01qE8b2YYk5HE3u+1WaquqrdTHKzcMwY2DETibpL++HgNJCCQhG6iqXqTVwthjhjnnjD/iuNPl5l3Kk+ijCkA67pPjTlOldH633ExBSocRETjuo8MYMX8Oe3uildpWkvAUYt3GgeUOL1yuILfkhkxvZWEIeBYBdieO+5BFPEF7CjMz/kMopJwqqVLb1Q3thd10qhZQtsQqNj4Pxasg1bA5Ga41FbG+A7UEnW5Nl7UIdJT3cId+7haBmEeF28grAudZbpjvfPdfb26KBDQnw60lg5pY7l1yXU5UrL+KX2ihrnnmUsxjbM6jPc7ZlFF/+HAqZzjYQee39sLOCZ+JeP6lyIC3N31TCb65DKSIGeNMITNhfS8ySdsiwl6HCPNyWwqSa/EClfFvQcl7JWWXmznKbDBfBnKgVfLfD57eRFW3OTFVh22hwsEwfz5ImzeqZ41em7Xi/Z+VMGHtXn43YZXX342rI6gwzEDXsr77ilZADGtATNUyURlcJZdm2lc18jShTyO3kcIHamPksmByddwd6lJCqPcdPtinxzHrWR7D8W1Ab6sq6xTYURcKK9Nagbc+R5RYts73sDnfZ3RGm3Q26kRnpQZKmfk9oDHuAo0M4qCl2HYA3QJH6yJYfk1l6mDdFEH3CB1Ke4DHr8HzTd1QAA0AYK8zwJytgobZtSo4sdf1VdCO1WsVvHG6K5D1+wB2Ugc2hReTUkaeeWwEVUP5CFiezgpMhqSl9nbQp2oVB5YxtIYK8xpWma1Q8q+vneXi9xA1txt9jsmRPEc9oEhJF+VzlcHJteIRhCN7IfxZYnnwGIoNjt4OosllITVUzNJ2y7q6rI4HmbqXJlJGPoHM1P+D7qw/ujPi/wm+v3ZH3zXfW232W+z2+2J7fbP/WZqybkyhrfE6AowEYIFLpwvcP6bn9XP65Xn4z27fO5qZabkG65bk9TOAZ+Ew42ck5VKk9XvT/HOVYShrHmskJNFmYUZmEcwWOFaMUSG0JAOEWoQYtlphInhgGzFRScEKHQn8t0pmammQ2XNjYG6/4wAm6Xm/eJF3UKFNKg/yx1VSxvCJJxzdPmAmyArHXcRqfRDEGwxAigWULnO1C3cNb2w2ltw2G15A+mJAUnE2uIaoXhuFF6Z1JDR8NaREz7UpFMaGxBMzLu8L6mpcVZ4g8mkS55bnknp989ojpBti+5M+iF0/U2lXva84TCH26rygbCsOF2HwO0Hhzutjx007OQD5wU2dOXcAcgqXVx6M0PNbcTI4OqxoXP94dai6OpIcV1c/fZxI0hZnJSVWxlMkGfxVCP37ANVPSy7NWH8POuN/DR7zuP+lMe9++EPkbw=="),
this.addDataEntry("gmdl google media design library chip list style",358,642,"List Style","5Vpdb6M4FP01aJ4aGUMIeWzSznSl2dnRzkjzWLnBCWwAI3CaZH/92gaSgE3Ch2k1XaSqibGdm3POvb73BsNaRocvKUr8P4mHQ8N6NKxlSgjNX0WHJQ5DA4LAM6wHA0LA/gz4ueGuKe6CBKU4pm0WwHzBKwp3OB/JBzJ6DIsBD2U+5tOBYS0yHyV8PMUrtv9iHYThkoQkFVOttbj4NJqSLS7vxCRmaxbFR+GU4kOjuWKosPULJhGm6ZFN2Qce9fMZ1tTNl/k42PjFMscuDEdZPrA5rT1/e/aiAEANhiWBYTJb7i3QDRMS0x/Bv3zEtNh7FAabmN/Ora1jtoSmO100YcY3u5j8WVx8coJWQbz5u0DAPg/9JAn/5NKQwmZuZ4ozZtavAkmzLSOwHyPQzsdSHCIavOLK/kNYsntKNjpsuJtNNpEXTihJnl9QOkiqlhqY6oJj4YWTaf7+AjbbkVEzu6JWfP53EjCzTh9+N4eVj7+bVXcg63WGqYT66Vu0ImIqEbEkUUIy3Mld1LKv+sjj3Hx0LKWEL7wNgtsOk3vH3aVfhnhNzxO+incPMziye0xnw4g+Vr1MK7GODg8rYa3QK58RJZet8Z6q8b7iZ6bKzxwtflb6QOlm7ghszHSwkeHYa+lsJ4KG0NE6CJbfpnJ0QD1B0KqxY5oj0ONK9PwkAwIgIwCL6woxV6MgU7YUBefi6h4FxV6jRsGBx13BrDsGsXOZ2BS/MkgheEIxcyiJ5RqxKF0VnExBS987UZ+SXewJxZgSK9BWZJmtWHK7x84y+b1kzdLjnzNQc09nBBZNoCN87jLcmCvWKHTExenPEqGDh3Vw4Lu3o2h+25EUEbMcG5JXl9HxAqn7kFkKwTccZuT/IXc4ntwhcN9C730ret16b1Xst6j2x1K7XOx/D1lYZ0NrEeOpj7klGG956nRD+3V5dj/Tb5/Db1u+azqZzTIH0ytyuQfwFBiQrWMuZZlc1n+w2//sMm7KHsWUCxJQlpiBlY9XW75XzK3i1IIMc6qDNTeb7DgQyBM3OVBJoQrqB/zfLlmRiDFz1saEvfzFN2Cg5/PibT6BrAWoyMvf7pLShm8oQXzZV44E2PF9tzHZXxjxiRsQBltcLtmQk7l7/EmgESFxm+kCp6+MJBJnky5Ctdt4eDG09wOKfzBR8pV7FijYGBdesELhfSFdyrPKBiE3izgfeSqlN7aubQD0CNudjyFsuafSLnp3aKacC3Amcya6SxpGiC5wbsssmK6ePtfUqRyp7hj1t9m3HdKBEwAWrmjitjs2G4ruW6jPdJybWtoRffKLdtA4nXM+S9EesvS0h8x6hTOKPuUOxJJFebTihsQoktuxDMD6WaBoGpzjhNQ0qEf+F0IpiaS0ZTrVRJstkabUd1mrDtK3XPZTUfY/+4YN8AFFSYgnLAdog6o9CNX8POXb/sXnUg6GA8ZD2XpDmGHfspxtEyQZHqWX2YRP+2amonqEA/ONUzMT1mJJjQUtsQTKPYAe0f2gqoBOR1zPvn+OYyM51UTAkahRpIJuMwetZfxu1fagROEsYevjnYeKn/HzCN4jgFtte+lAEb+jwPNCPCReX6fPVQSg0eK1ll/d30/orny2/fY6l2tFX/wu8Uw/mNBNG7yh0t+k3OOX9qr7WFlwsxPiDtN6KW57FHFrKTNf0Gp79RmEJl765ijXE0gwqT0voPwJQtUu0fRU0KwalsZ4KEjxe7hE3K1c/j0Z+vgEyQVuI0FNTyi8Gzuzj0YPe3t+2Deffvks8H8=")];
-this.addPalette("gmdlChips","GMDL / Chips",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLDialogsPalette=function(a){var e=[this.addDataEntry("gmdl google media design library dialog dialog persistent footer",280,472,"Dialog with persistent footer button","5ZhdU6MwFIZ/DZd1QigfvVSsvem6ndEZr2NJS2ZTwoSo7f76TUJAaMCtCnXWxXGmnHzAed5zThIcL97tFxzl6Q+WYOp4c8eLOWOi/LXbx5hSBwKSON61AyGQ/w686Wl1dSvIEceZOGUALAc8I/qES0tpKMSBGkOCihSr7sDxrooU5crO8VrOf7UhlMaMMq67eht9qW6Cs1+40YL1VU6QsBdpdOWNeTjmAu97HdAm8/YLzHZY8IPs8kISkRonotJJkGKyTc2waWhcQUVp2NZjX3nIHwZJNx7PwrNgbCvJQPBAJjfEgiUdUVyUS2SN6CUl20y27EiSUO1+jtYk2yr/A8WPZeKO/FaDIajuzWwKEMeFbH0wrp6MDH4MWWBsHFMkyDNuzf8ZjFML453kgqhmJ197K1+rh6QBtsQb0YTWCK0IqL82TNd9HXrPcmkJzk7Tey9N84gVI/LJEBzaolQj2GZTYGHRr1/sJEF8S5D5fi27KJ97hGjS9VuRDPtl+rpYHoj+bAz6gZ0OeP3EiTicWk8emRBs183dmK5Ml2u/IzX6Uui8GvnDaOTCMUQKLZEiAC/cvbTNL1fvLFfNxPnavJgOxDwcg3lkMV+honhhPPnoQvvGugHALIiif7UwQXcMAWaWAE4Yf7Qo1RUI/DUx6s3P99HH80fQpxL9rf16tUWnJMP1Vryip9bqjC3RozpqaJbWVn0k7mYAuAB+aEY1pZhG40kxyhbKde1VPJUnGwWjp2YdHZ5sZajSZcUKIghTGcVLFnWmLY/a62qHTApSnV6fq4rq6oqLQF9HC9pUxQl7yhJ9QtTxZDJ6wDTtyFL4ydDYt6c5VAE3StLah2wTKSh5RtlaooOA5UrT4r+PmbroaKWHLPbniyJ/lHpjf4uIL2/j+bJveW4i9zr2nX3LbW8gDFD93RYoexkIfVukKRxEpIkbtGWaVBMPK5P9rSP+eXs7j++/k07RiDpVcw8pk7x9/aZadm9+cv0D"),
+this.addPalette("gmdlChips","GMDL / Chips",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLDialogsPalette=function(a){var e=[this.addDataEntry("gmdl google media design library dialog dialog persistent footer",280,472,"Dialog with persistent footer button","5ZhdU6MwFIZ/DZd1QigfvVSsvem6ndEZr2NJS2ZTwoSo7f76TUJAaMCtCnXWxXGmnHzAed5zThIcL97tFxzl6Q+WYOp4c8eLOWOi/LXbx5hSBwKSON61AyGQ/w686Wl1dSvIEceZOGUALAc8I/qES0tpKMSBGkOCihSr7sDxrooU5crO8VrOf7UhlMaMMq67eht9qW6Cs1+40YL1VU6QsBdpdOWNeTjmAu97HdAm8/YLzHZY8IPs8kISkRonotJJkGKyTc2waWhcQUVp2NZjX3nIHwZJNx7PwrNgbCvJQPBAJjfEgiUdUVyUS2SN6CUl20y27EiSUO1+jtYk2yr/A8WPZeKO/FaDIajuzWwKEMeFbH0wrp6MDH4MWWBsHFMkyDNuzf8ZjFML453kgqhmJ197K1+rh6QBtsQb0YTWCK0IqL82TNd9HXrPcmkJzk7Tey9N84gVI/LJEBzaolQj2GZTYGHRr1/sJEF8S5D5fi27KJ97hGjS9VuRDPtl+rpYHoj+bAz6gZ0OeP3EiTicWk8emRBs183dmK5Ml2u/IzX6Uui8GvnDaOTCMUQKLZEiAC/cvbTNL1fvLFfNxPnavJgOxDwcg3lkMV+honhhPPnoQvvGugHALIiif7UwQXcMAWaWAE4Yf7Qo1RUI/DUx6s3P99HH80fQpxL9rf16tUWnJMP1Vryip9bqjC3RozpqaJbWVn0k7mYAuAB+aEY1pZhG40kxyhbKde1VPJUnGwWjp2YdHZ5sZajSZcUKIghTGcVLFnWmLY/a62qHTApSnV6fq4rq6oqLQF9HC9pUxQl7yhJ9QtTxZDJ6wDTtyFL4ydDYt6c5VAE3StLah2wTKSh5RtlaooOA5UrT4r+PmbroaKWHLPbniyJ/lHpjf4uIL2/j+bJveW4i9zr2nX3LbW8gDFD93RYoexkIfVukKRxEpIkbtGWaVBMPK5P9rSP+eXs7j++/k07RiDpVcw8pk7x9/aZadm9+cv0D"),
this.addDataEntry("gmdl google media design library dialog scrollable dialog persistent footer",280,345,"Scrollable dialog with persistent footer button","3Zjfb6owFMf/Gh5dShHER2XOF6/XZEv23EmF5lZqSjf1/vW3hYKYwuYcdbnDmMBpz2nP50t/4XjR9jDnaJf+YjGmjjdzvIgzJsq77SHClDoQkNjx7h0Igfw78KGj1C1KwQ5xnIlLHGDp8IboKy4tpSEXR6oNMcpTrKoDx5vmKdopO8drGX+6IZRGjDJeVPU2xaWqCc7+4EYJLq4yQMz20ujKB9045gIfOhMoTLr3c8y2WPCjrLInsUh1EmGZJEgxSVLt5g390ojy0pDUvice8kYjacfjGXjmjCWSDATPZPBADFgyEcVFpUTWiE4oSTJZsiVxTIv0d2hNskTlHyh+LBOP5K9yhqB61tEUII5zWfqsU70YGbwOWaBtHFMkyBs+i/8VjEMD46PkgmjBTnY7kd3qIKmBLfBGNKE1Xq0QqN85TNc9uT6xnbQEN6fpfZambmLFiGwZguO5KJUH22xyLAz6dccuEsQ3BJkd1rKKyrlDiCZd/+xNht0yfd+73BP9sQ36gTkc8PqVE3G8dD55YUKwbTt3bZrqKvd+y9DoGkK31cjvRyMX2hBpZIgUAnjnHqRtNll9crpqDpzvHRfDnpiPbDAPDeYrlOd7xuNrF9p31g0AxkEY/q8TE3RtCDA2BHBG0bWTUj0DgQ8HRr35+Tn6eL4FfSrR39uvV1t0SjJcb8UremqtztgCvaijRsHS2Kpb4q4dwB3wR9qrKcUwtCeFlS2U69qXoj41WZfieBbjRsIM/MCGMOaZNposo9miax5rLtBeywLdNS91rj09aPORLCO/ZWmHX1NFNz1wq/FSyVQF7lcm82wd/V4uZ9HTT9IptKhTFbtPmeTj6eNTWb35beof"),
this.addDataEntry("gmdl google media design library dialog message dialog",480,480,"Message dialog","1Zhdc6IwFIZ/DZc6gSjqZau2N91OZ9qZvY4QIbuBMBCr7q/fhCQoBC1WmNnFcUZOvsj7nJNzxIHL5PCcoyz+wUJMHbh24DJnjKtfyWGJKXU8QEIHrhzPA+LreE8XWt2yFWQoxynvMsBTAz4R3WFlUYaCH6k2hKiIsewOHPhYxCiT9hwHYv7HLaF0ySjLy65wW16yG8/Zb3zWgstLTRCyvTC64kYvjnOODxc3UJr00z9jlmCeH0WXPQl5rHpM5mqTIMYkinnDiApliKqxJz3EDy1JuzzQkucV74UhwUWBInyTVnKbJED0gZIoFeaEhCEtJclQQNJIauJLTVnK38kfOdKF5l4vIUXLcSFaf+rtuw0KKUvxVQBIL0/xlndF4H0XgbLlmCJOPnFt/nuwTL7ptckhkpE2jpKQjg+VTEZLr004v7y6KgXblaoPOOrIHE/V/ZmO7sSW0dg6y6jXf2NEPFa1+AhOasuPZvUZ2HZbYG5hqHbRiczUIvPBLDZCQH7y+5fSEU++f6b9HMhPS0zooR8sExa/NSiGdGwI7iOiCfhgAAK+ReB9t/klj6ALGC5oa+KhHZI5kMAVaP8BARdMB0Aw6+N40lmjfkK5V4/2ljzQb1wcawO+YuRPe2E08odgNLcYPViQGgn8q2ShJadog+kbKwgnTCbaQKiK87MC4KXRgctTrMrLVndTL2wY5yypB6wHTiH6qNtXI2gHZZXFGhVbUF4tQd3JTWY3uonXkt36SW4m8RifMdP26jOLPuIacY6COCk17L/+uJXIwgbSE5FZo9qYDEHEBX0gyeiu+BdgDFj8uUYpgwMuhsDh2sXH+nXVtfJo/tNpnGHeejZ/OqtJVPUHrv21sg7Ve7JfaxHfElIDpEJTwi8aFPtIjeL29L5BdT9/HfEX"),
this.addDataEntry("gmdl google media design library dialog dialog",280,273,"Dialog","7ZZRb9owEMc/TbQnKifpgD4WCmzSJk2j056t+JJYc+zINgns0+8cmxAI1VC77WmWIPbd/e+s+12kROmy2m80rcvPioGI0lWULrVS1u+q/RKEiBLCWZQ+RUlC8Bcl6xe8ceclNdUg7S2CxAsaKnbgLd8MoGGjVCHgncGtUBm1XEncGtANzzBw7WXGHkSQMWpKcElJlC5MSWtn15DhLRY5F2KphNJdaJp3y4VZrX7A0SOVBK9lqsVz7JRK2i3/6XLFD+E8yES65UQ1zbgsnlWNjskULW3JLWzR7LQt9vcU5ZK5ECp4IfEgIHe3bEBbnlHxGMzWJVuE/qAP9i/2uDOFBm9AVWD1AUNazmwZ+jz3HEgJvCiDLJml3kiNNxS99oQMN4HadYLpiOAnsD3BrqKoXY26djQZWNAVlzAge4f755I7dwVUmo60ZK5VqEMuh0rtLkaBUUvxYdWgFN6VQAPO3ZbdQ6pTZewX/uudlJj4bjRA2F97QXw6Jv7QrdcS12Aw9feAJe4tH45Q4luJJ68jHk+DUYPATjZwVuDaGIQaXxSXjurBR8zIuULluXHUL8amv9lNk3Q/mqSnj9vHzdfV6hZY6RhWsprN18klLPJbVuTK21hxxlz1/q3NkAXo4yXC1d7K71xwODsN2F5Dez9/G9lQetKPSKg+OSb+o6zfj1j/B/2PQc//Amc8nr4dfPjw0+IX"),
@@ -4695,8 +4765,8 @@ this.addDataEntry("gmdl google media design library menu scrollable menu",272,42
this.addDataEntry("gmdl google media design library menu cascading menu",604,590,"Cascading menu","7VvRbqs4EP0aHoswTkjuY5O7e7VSd1VttNpnEpxg1eDIkHvb/fo12NDAQEoDTtVCpKrBYIPPmTP2zBALr6PnH8I/hn/ygDAL/2bhteA8Vd+i5zVhzHIdGlj4u+W6jvyz3N9bzqL8rHP0BYnTLh1c1eGnz05EtaiGJH1huuFIBI1ISoQ8jHksW1eBn4QkG8GRB0noH7NLBdnJW672lLE1Z1zkvfE+/2SXpYI/kbMzJP+oAQL+SzYieaCfh4iUPLfOKW/SE/pBuHw68SIvKTogT3X5RYM0VG0YLVVbSOgh1MPMsL7QT1TDoRzrFTL5RaPWjCAGCK44CwCKcjoZOtnE6M5n94weYnkmokHAchCO/o7GhwJTdfRA9tmjyvlIXHmcbuh/2XBoLo8FSeTRv3qKnaFzm6F7EyptF4IwP6U/SWX8PvDNIHxXW2D0fMiEZB+igNk7HkV+LC9ZMX9L2CNPaEp5hrlQ0yq5eKidLznxNUksp6Gduzo1nYjAl21YdXjRGrbnwKKRC1lC72VJ3/+RU/lY5c3vZtXb39Vkwvf7hKSA5XIWnYifA+L/SCXgu9Erp8bJS3WYQTnwIAfjEN985OJbAOL/iQMiGJX8Tvpr0t9yZoCGJaRhHPpbjFx/3wDxm1TQJzkAPx3CSYKNEkSuCSqQA7i4Z3LQ1Sak++z/vI2OurR2EqdMpt21VRfjMOL61ldcjgc51HFkb3WhYqBCXgX+w5KKoMBO0pMmO0GP6aSvZn15SxNUwBSDPY5FDr2RpvjyqxyCuZHNaTtp8IIGXTPuEGZZLHc9EhWOPdGCYKYFMF8wmweAl3K1txUV6rnpKEQ1N5E8QTB78ugLP5dGgW7ybjdXt/FXt5c7uc/p1Dwj+MMkxjAeTUZifnxgUAh6hFqFw8s/2cg0K4Eo3xZzkSHb0UV5PV3UfHjpFB4KL6seam6CSZgHecgzUU5h/S0qqjFReqlRqQs7JlJTCKYo/jpFWyKkdlyH0eT9O7gvCf7MxJLtwpzEQ464w4+Zg5mWlXzspYl41YWpA4D2194uzVwTMUgBYxdc9asE7bi2vmQw8KsE7tKrLH+lr32LirJjn9p4w7sFG5rvTAaWfzWaXrg9LPdWLqEzhjD0RTZqzemOCMEb1pkbiv3f+Wk7GXIrDUbKjQ31/vUpSXlk4XvZjGzokYfno23P/jl5MlOTaqjPA2auS9aFZPdUI0F3Vottgb/btPyWkW43Zlqi2kuptqZNzawfUfoBcXUhv1uYoA3GscPQdvOMRBt3Y8lINBToAZPGg4CPjQLMVANxQ7U9CCyV6ckyPluy54IoKIpcqsk1qVf4eyVDeKC1Z2GEIRj/Vhny95n3mgj6qGJe8XAj9k1mohQMw229PS4T0bYN3134/Nbec4dltMqGYfzeau0fnzYqg2gN8xn0ZUaoWkdetsPc+RcoMLruVj65wmRb3r240mIVuRcttsyF3yRbhGGEPGxUfIbf33o+OYD1NwJ7wVftcQam12CCfQPhYlvumQiEMQyEKzX2wr7LbePYDf2GST0Mo91JK+/TilF6YAjbLB29n5+Uc7M87AwGwcgesiQxGuUMQY88fP29tbr8/OfY/wM=")];
this.addPalette("gmdlMenus","GMDL / Menus",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLMiscPalette=function(a){var e=this,d=[this.createVertexTemplateEntry("shape=rect;fillColor=#eeeeee;strokeColor=none;",358,642,"","Background (Light)",null,null,this.getTagsForStencil("mxgraph.gmdl","background","gmdl google media design library misc ").join(" ")),this.createVertexTemplateEntry("shape=rect;fillColor=#333333;strokeColor=none;",
358,642,"","Background (Dark)",null,null,this.getTagsForStencil("mxgraph.gmdl","background","gmdl google media design library misc ").join(" ")),this.addDataEntry("gmdl google media design library misc keyboard",358,224,"Keyboard","1dvLcpswFAbgp2GbQRLXpU2arLrqomsCsqHmViCJnaevuCi1OXhKYw9njmcyYwvkwGfQ0Y+xIYL8+FyHVfK9jGVmiG+GCOqybIdn+TGQWWZwM40N8Whwbqo/gz9dWcr6pWYV1rJol3TgQ4e3MHuVQ8vQ0LSnbGyIwyaR3eqmIbZNElZdey0j9f7bXZplQZmVdb+q4I7gwutWa+vyIPWSoixUn23YVH2vx1167N5wO/5vWbfyeHX7+6Zx459lmcu2PqlV3tO4TYY1hO0N3RKZ7pOxG+fW0Bg2Q8P+s+9fDvVkFJnXEUDnN+BR295LlEV7JvHSP8b2H+lHt7LaIrHt9jaNwmyTpftCNeZpHGe9ztgQqT2X9VIdPq+jO4yf5kmbDC/P7UxIp9tukbOA3DspOcvBkrOBnCQl55lYcg6Qq0nJMWZh0bmArqVFZ3lYdB6gO9Gi89CKhA/oXknRcYZWJZgJ7FJadjZanWAM2JW07Dy0QqFnlGd2FSk7wdAqBYNxIiRlp6cJI51rr0cH80RDis5haHQwUMSk6HwbjQ4mih0pOqanWAh2MFLsadk5As0OZoqElp2PVylgqPhFyk7NULDsOAwVB1p2Dlqt4DBUZLTsfLRaoefgZ3YfpOwmszumL0WuYQdDxZGU3WR6t6odTBURKbvp/G5VPJgr3mjhTSZ4q+LBZPFCC28yw1sVD0aLghTedIq3Kh7MFjktPAexYMBwwRbi+f3jEo+Zq+Pxid1qdAJmC06KznbQ6GC0EKTofBONDiYLixQd4xaaHUwWNi0720Ozg8nCoWXn41UKGCxcUnafnzWCHcwVHi07B69WwFjh07Lz8WoFTBUmKTvB8WoFDBWAbvYe7Py47+4bf9jncfbQJOmu052983pym/aGbdyNf6eDbhJlBbxsrPfn8vbs2+EsGCm+APcSRoemCiOJgCfYZLQT8LDTxeRcT39BeJMeTBWGeGKLo8Xc1QC2/nWoyWUo113tvLVgtjB4cIMewvcWk0mea62nB9PFAyk7cB3KNdfDg/EC2OnBTvVMq2bp6GYFW3uzvdPoZk5qqjNzcs6MbrrtJiEYIr5QG6JERgcgp5h2/eNzyc9xh/hSuOEDvD6q/XMSzOaqwj1qKgwQV4+s8TdgSw4rEViuFaj2unwt4h6ddV2Hk1fcqRaY0zMSDmdMHxgXkxH7v+HUy78/0uuXXfyG7w8="),
-this.addEntry("gmdl google media design library misc snackbar",function(){var b=new mxCell("Archived",new mxGeometry(0,0,358,48),"shape=rect;strokeColor=none;fillColor=#333333;fontColor=#FFFFFF;align=left;spacing=16;fontSize=13;spacingLeft=8;");b.vertex=!0;var a=new mxCell("UNDO",new mxGeometry(1,0,88,48),"text;verticalAlign=middle;align=center;fontColor=#EEFF41;fontSize=14;resizeHeight=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(-88,0);a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-358,48,"Snackbar")})];this.addPalette("gmdlMisc","GMDL / Misc",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLPickersPalette=function(a){var e=[this.addDataEntry("gmdl google media design library picker date picker portrait",328,484,"Date picker (portrait)","7Zxdc6IwFIZ/DZfdSQgiXHbtx8VutzvTzvSa1SjMojCQ1rq/fhNBiz3YVsuJe5jVqSMhATyPoed9OeiI0fz5uojy+CabyNQRl44YFVmmqnfz55FMU8dlycQRF47rMv3nuFd71vL1WpZHhVyojwxwqwFPUfooq5aqoVSrtG4o4yg3bws51pv8Ok3SdJSlWbFeK6brh24vVZH9lo01cv0wa+Joki11I9cL9f5koeTz3mNeN9UHfC2zuVTFSndZJhMVVz2EG1TDYpnM4nqYF3hVY1RWDbPt2JcQ6Dd1FNojIkBE7uNHx9Xj2Hle6FcuDgwRY6EfBKY9W6j3Q7fIFiZqUZrMFnoxlVOzzTKPxsliZqLo15u6S/6YnQqhl01Ak3GUntejfmVKZXO9opCl7vZQR+7DBNzjCIR+1VbINFLJk9zZ/meoeICKBjEEIPRHUi3RmCeTienymsDV+vES3fss1yv8N8PNB3rZ7OfWdFEr3TRkxwdaHPlVZ0iBHrScEPxUbT/O8cH2LszzsGC7rDETxjpossD8TntdRLrew88s0Tt22Wp3ZmxGZNNpKRUgsz2uD8HyASx9ikpMjy5mxzHAuGgDtu5QHwfvHGA9gH3hnl+fmxtM9fyhBXXYNgNnfZ6BW4DBQAwBQGqTMgD87g4G1zqDGiQDZp6op8IQLep6miKEPQRhv6ES9rdPYJtokSHBGUBxTw6FG2xODqRRcIDigRwKzw3DHqCAUpverBgMGe8BCqjxr8ihGHLm9QAFFPZksqVG2spa/ldQS6A4lP68cxRbCWJJElpHE6CggULfpYrGDoetN9ItB6jNoRlMhMPJRAcSGii7PfJobIsQJDRQmg/Io7EtSnDQuFCq++TR2BYpSGigdD/c0X8Pzc6lSQtobIsWJDRQygfkZ43tTBkJDZT2IVU0ljj4KBygrt/YwvRAnC5VxmHTIvTpK33ruTIOG6j0N8YxYTbWk2UcNlD9v1ELpscmeWlo7CsHay37OprptprsNdNOCPoecyFB1j3Beo9nG2WCSxSaBpy+a2A9ycZhA10DTt82sJ5lo7AR0DbgZH0DOyAEQwEBTYIj6v7+ERAnS7OR2ECXgNO3CWyn2UhsoE3AyfoEJ0uzkdi01fqTZ2PblEZiA62DHhQJ2E6Ykdi0FAnQtw5sJ8xIbKB1QLdywBIIlCInARV/D+oErCfMOGyg4u9BoYD1hBmFjQcVfw8qBawnzDhsoAmAUCrQ+4QZhw00AXpQK2A9YcZhA00AusUCp0uYcdhAE0CQNQEsgUApPfeg4h+d/xhdft8H4/XN4PsqznbuQTY3ZyzjRMk73WqGLosod5r3JbODOXd8DbQesNpZapAdtlwMHXR0MZT7u1dDzzYb7hY1NBBuv/3HvIs5RMQcIlDWiy+/JlR1b/7Y0F8="),
+this.addEntry("gmdl google media design library misc snackbar",function(){var a=new mxCell("Archived",new mxGeometry(0,0,358,48),"shape=rect;strokeColor=none;fillColor=#333333;fontColor=#FFFFFF;align=left;spacing=16;fontSize=13;spacingLeft=8;");a.vertex=!0;var c=new mxCell("UNDO",new mxGeometry(1,0,88,48),"text;verticalAlign=middle;align=center;fontColor=#EEFF41;fontSize=14;resizeHeight=1;");c.geometry.relative=!0;c.geometry.offset=new mxPoint(-88,0);c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+358,48,"Snackbar")})];this.addPalette("gmdlMisc","GMDL / Misc",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLPickersPalette=function(a){var e=[this.addDataEntry("gmdl google media design library picker date picker portrait",328,484,"Date picker (portrait)","7Zxdc6IwFIZ/DZfdSQgiXHbtx8VutzvTzvSa1SjMojCQ1rq/fhNBiz3YVsuJe5jVqSMhATyPoed9OeiI0fz5uojy+CabyNQRl44YFVmmqnfz55FMU8dlycQRF47rMv3nuFd71vL1WpZHhVyojwxwqwFPUfooq5aqoVSrtG4o4yg3bws51pv8Ok3SdJSlWbFeK6brh24vVZH9lo01cv0wa+Joki11I9cL9f5koeTz3mNeN9UHfC2zuVTFSndZJhMVVz2EG1TDYpnM4nqYF3hVY1RWDbPt2JcQ6Dd1FNojIkBE7uNHx9Xj2Hle6FcuDgwRY6EfBKY9W6j3Q7fIFiZqUZrMFnoxlVOzzTKPxsliZqLo15u6S/6YnQqhl01Ak3GUntejfmVKZXO9opCl7vZQR+7DBNzjCIR+1VbINFLJk9zZ/meoeICKBjEEIPRHUi3RmCeTienymsDV+vES3fss1yv8N8PNB3rZ7OfWdFEr3TRkxwdaHPlVZ0iBHrScEPxUbT/O8cH2LszzsGC7rDETxjpossD8TntdRLrew88s0Tt22Wp3ZmxGZNNpKRUgsz2uD8HyASx9ikpMjy5mxzHAuGgDtu5QHwfvHGA9gH3hnl+fmxtM9fyhBXXYNgNnfZ6BW4DBQAwBQGqTMgD87g4G1zqDGiQDZp6op8IQLep6miKEPQRhv6ES9rdPYJtokSHBGUBxTw6FG2xODqRRcIDigRwKzw3DHqCAUpverBgMGe8BCqjxr8ihGHLm9QAFFPZksqVG2spa/ldQS6A4lP68cxRbCWJJElpHE6CggULfpYrGDoetN9ItB6jNoRlMhMPJRAcSGii7PfJobIsQJDRQmg/Io7EtSnDQuFCq++TR2BYpSGigdD/c0X8Pzc6lSQtobIsWJDRQygfkZ43tTBkJDZT2IVU0ljj4KBygrt/YwvRAnC5VxmHTIvTpK33ruTIOG6j0N8YxYTbWk2UcNlD9v1ELpscmeWlo7CsHay37OprptprsNdNOCPoecyFB1j3Beo9nG2WCSxSaBpy+a2A9ycZhA10DTt82sJ5lo7AR0DbgZH0DOyAEQwEBTYIj6v7+ERAnS7OR2ECXgNO3CWyn2UhsoE3AyfoEJ0uzkdi01fqTZ2PblEZiA62DHhQJ2E6Ykdi0FAnQtw5sJ8xIbKB1QLdywBIIlCInARV/D+oErCfMOGyg4u9BoYD1hBmFjQcVfw8qBawnzDhsoAmAUCrQ+4QZhw00AXpQK2A9YcZhA00AusUCp0uYcdhAE0CQNQEsgUApPfeg4h+d/xhdft8H4/XN4PsqznbuQTY3ZyzjRMk73WqGLosod5r3JbODOXd8DbQesNpZapAdtlwMHXR0MZT7u1dDzzYb7hY1NBBuv/3HvIs5RMQcIlDWiy+/JlR1b/7Y0F8="),
this.addDataEntry("gmdl google media design library picker date picker portrait dark",328,484,"Date picker (portrait, dark)","7Zxdc5pAFIZ/DZfp7LKIcJnSJBdtms4kM7mmugpTFAZIjP313QVU9GCqlrPmOCWTDOwH4Puw5LycRUsEs7e7PMyi+3QsE0vcWCLI07Ss12ZvgUwSy2bx2BJfLNtm6teyb/fU8qqWZWEu5+UhHey6w2uYvMi6pC4oymXSFBRRmOnVXI7ULj9P4iQJ0iTNq1rh2PpHlRdlnv6SrRpZLbomCsfpQhVytdEcT+alfNt7zlVRc8J3Mp3JMl+qJot4XEZ1C2F7dbdIxtOo6eZ4Tl0YFnXBdN13I4FaaVToVkQARZ6iF8tW/dh1lqu/XBwp0aBadHk6L1vlk2oB0s3TuVYtTOLpXG0mcqL3WWThKJ5PtYpus6vH+Lc+qBBqWwsaj8Lkuun1My3LdKYqclmoZs+NcgcTsE8j4Lt1WS6TsIxf5db+/4WKA6goEEMAQn2kskONWTwe6ya7BG6rZaPuU5qpCvddubkmqY/zoJuUS1U0ZKcLLU681BmS0IOOG4KblOuPc7rYm8v9cLFt1hoJIyWazDGvaacPpZsj/EhjdWCbLbdHxqpHOpkUsgRk1ud1ECwXwFK3qFi36GN0nAKMiy5gVYPmPHjvAJsO7BN33Obe3GKqxg8tqMOuETi95BG4BugNxBAApDYoPcDv8WhwnSOoRXJULai3Qh9NdTVMEWT3gez3VGR//wa2UosMCc4AiidyKGxvdXMgjYIDFM/kUDi2718ACmi16Y2KwZDxC0ABPf4tORRDzpwLQAGNPZloqRW2so7/FdQCKA6tP+8dxdqCXAoKDwUFNPY2FRRmdF8/++hXd+i94cPeD6r72UwEEgpoox1yKEybCCQU0FoPyKEwbSJwUNjQWrvkUJg2EUgooLU+/on731B4LPgcOJdjIpBQQGvtkRsVpiNXJBTQWvtUUBjS3UXRHfro1WPYjy/8+UJXHBYdRpqekzYeu+KwgE569SCWEAvjwSsOC+iu35lLpfrGWaHV35lOtY6JOqdNncxwPZFtd7JCLwRdh9mQIOufYHPEq5VTwCUKTTqn59KNB8E4LKBL5/RsuvEoGIWFgDadk/HpZoQXDEV4aMpPmAd37kFgOgxGYgFdOadny02HwUgsoC3nZHz52cJgJBZdc9nJsTD9EBeJBbTqBJPepgNYJBYdSW96Vt10AIvEAlp1OplwQ8KjTMIR0FETzHsbD2BxWEBHTTDxbTyARWHhQEdNMPNtPIDFYQFNNkLq++ICWBwW0GQTzH0bD2BxWECTTSf5fb4AFocFNNmCjMk2JDzK1GUHOurg+ntw822f+LsvD++bAbX1zqp+KXURxaV8VKW66yIPM6v9His7mmvPOb+mw3Jrq0V22JH8G/SU/OPudvbvarXjflFDw/7w9T/mbcw+ImYfgbLa3Hz7TN28/eU0fwA="),
this.addDataEntry("gmdl google media design library picker date picker landscape",512,304,"Date picker (landscape)","7Zxbb9owFMc/TR47+ZLrY0cvD1vXSa205wgMiRYIStJS9ulnE0OBY1pgsdeTjaoScexc/r/EnPPnBI8Ppi+3VTrP7sqRKDx+7fFBVZZN+276MhBF4TGSjzx+5TFG5L/Hbg6spau1ZJ5WYtYcM4C1A57T4km0LW1D3SwL3VBn6Vy9rcRQbvLzOC+KQVmU1WotH69esr1uqvKn2FojVi+1JktH5UI2Urmg9yeqRrwcPOZVkz7gW1FORVMtZZdFPmqytkdA9YFmIp9kehgnftuY1m3DZDP2VQL5RqtgVoQDRR6zJ4/JcaE8KUrkOVzOK9mD8hOlIiQJ41i1l7PmfQln5Uyplxb5ZCYXCzFW26zn6TCfTZSaod7UQ/5L7ZRzuayEzYdpcalHNeX8ddCjWrii/rEY2LsYaBhbwuADDFLxCCguD78xnPY0H41Ul32pb1avfUXCN3WlgVxW+7lXXZqlbIrUVVCJWnb4ocU4+trm54nqt/cxqUSRNvmz2Nn+nwgdGGaAsGg2p3O+2P6V+jtNbEa2LvmhFE1U50t94PrVA8gnzkI9i2zPLMSh+CEQX84tuerRxdV+DgDKTQBWHfRxUHtAfJZEAAjzDVO9NSKR6XaY/BO3Q0LWH35/63aIgfgPJ6tuvHa3MMRE/bmeVEzRCjtRRb3T72Uuj4WRpd5MuDuiHI9r0QDVN4d6FIgEgLhDB8I4mfimeOUDg6AEkHhERyKQkx9+EhSQ+IGOREgjODmhIwGTVnz3RERJgp8ETJZv0JGIid+DzwmYL+MLneIkhp8T2EInChNq2jmJTS7hKDEzkvETa2TWDki3ZGC2zdCTMaYbFslQQmyggWk3dFexoTEnICE2NDAp99GjMWck6NDAND1Aj8acomBDw2DeHqJHY85Z0KGBifzpTvt7aHa+63MRoBmTGHRoYGYfo79rXMfOltDAVD9Bj8Z58LzeTrdoYO6/to0Rs3EePdthY3AD8NsBzsNnO2ygH7C2lhGzcR4/22EDDYE36q3k2HxeKxqHSq6MpVVnM91UbO0z7YRgFAQA4FrkLgHqHV6sfTG7QKGNQPH7CM7DbjtsoI9A8RsJzuNuK2w4NBIofifBeeAd+jbYQCfhjKK9j8bGeeBthw2DbPB7Cc4DbztsoJdA8ZsJzgNvO2xMhffo2Th3ru2wgWZCH2oLXMfQdtgYigsYfjauY2g7bKCZ0IPyAucxdGKjXIpDX6AH9QXOY2g7bKAv0IMCA+cxtBU2PvQFelBh4DyGtsMG+gIWSgx6H0PbYQN9gT7UGLiOoe2wgb5AD4oMnMfQdthAX4Dj9wVcx9CbuaZbNtAXGFx+G1x/PcRn/3nvQ8VrO08qqwc/FlneiAfZqoYuqnTrxyV0j9PQd/zdqR6w3FnaIhsZHmYOTn2Y+eC3qGRn7xeBjTIsH9oM91/+Y97FnFjEnFigLBdff/Gn7b79g0C/AQ=="),
this.addDataEntry("gmdl google media design library picker date picker landscape dark",512,304,"Date picker (landscape, dark)","7Zxdb5swFIZ/DZed/MFHuOzox8XWdVIr9RolTkAjIQLaNPv1s8FJkxynTTLs9nSjqgTGBvM+xpwXm3g8mT5fV+k8uylHovD4pceTqiybbm36nIii8BjJRx6/8Bgj8t9jV3v20nYvmaeVmDWHFGBdgae0eBRdSpdQN8tCJ9RZOlerlRjKQ34d50WRlEVZtXu5z9SfTK+bqvwlNvaIdlF7snRULmQilRv6fKJqxPPeOrdJusLXopyKplrKLIt81GRdjoDqimYin2S6GCd+l5jWXcJkXfZFArmiVTArwoEi99mjx2S5UF4UJfIazueVzEH5kVIF7aLSy1mzkT5uFyDhrJwp9dIin8zkZiHG6pj1PB3ms4lSM9SHust/q5NyLreVsPkwLc51qaacvxS6VxsX1D8UA3sTAw0HljD4AINUPAKKy+o3hsue5qORyrIr9VW77CoSvqorVcjUeW5VlmYpkyLVCipRywwPWoyD2zY/TVS/u49JJYq0yZ/E1vH/RujA0AOERbO+nNPFfmnXh4vNyEaTH0rRRHW61Hvary5AvnAW6l5ks2chDsUPgfiyb8lVjj5a+ykAKDcBaDPoelB7QHwWRwCIery4IxKZbofJP3E7xGT18Huv22EAxL87WnVj293AMGwX152KKVphR6qoT/qzzGVdGFnqw4TbJcrxuBYNUH1d1YNAxADEDToQxs7EN8UrHxgEJYDEPToSgbQJ+ElQQOIBHYmQRrBzQkcCmlZ890RESYyfBDTLV+hIDIj/CZ4T0C/jC50G8QA+J7CFThQaato7ibWXcEnCj62RWL3x6JcEdNcMHQmjnbBIghJiAwW01fDt6UdHYTYUITYU0GT76FCYHQU6FNBmB+hQmC0FNhQM+uwQHQqzp0CHAhrt49+Ev4ViQJKvie/aVKBDAZ32AN1d4TqWtYQCWu0YHQrnwezqOP2igF579ZoWEQvn0awdFga3jc9uOw9n7bCAfnv1qhYRC+fxrB0W0HC/Ml9Jls3ntVJ/Z8rSOkwyTk06meF60tjuvIJeCEZBAACuRO4ToD7h2eo9k12g0LZTfL7deVhshwX07RSfcXceF1thwaFxp/icu/PAOPRtsIDO/YRJbO/NwnlgbIcFgyzweXfngbEdFtC7U3zm3XlgbIeFaWI5OhbO3/TaYQHNO8axctcxrR0WhsFyho+F65jWDgto3hEOlzuPaWMb03k49N0Ix8udx7R2WEDfjXDA3HlMa4WFD303whFz5zGtHRbQd1sYMv90Ma0dFtB3Yxwzdx3T2mEBfTfCQXPnMa0dFtB3c3y+23VMu+47+mUBfXdy/iO5/L6Px+73wfsmU2192ao+XV1keSPuZKoquqjSjR8j0DmOQ93zWKEusNza2iAbGT5+DY79+HXvqCHZOvtZYGPakA9t/e23/5i3MccWMccWKMvNl1+I6bJv/oDMHw=="),
@@ -4708,32 +4778,32 @@ this.addDataEntry("gmdl google media design library picker year picker light",32
this.addDataEntry("gmdl google media design library picker year picker dark",328,484,"Year picker (dark)","7ZjLbuIwFIafJstKviQhWdK008VcOhKVZp0hhlhj4shxC8zTzzE2lDSXIS3pKiBQ/NvHdv7P6HDi0WSze1BpmX+XGRMevfdooqTU9mqzS5gQHkE88+idRwiCj0e+dPTiQy8qU8UKfUkAsQEvqXhmVrFCpffCCVWeluZSsSVMebviQiRSSHXopT4xb9ArreQfduwpZMGMmKeZ3EIbQ8MtxZRmu87tHiS31wcmN0yrPQzZ8kzndgQlkQ3LGV/nLsyPfCumlRXWp9jXu4cLZ0C7GbRhxlP+7BGIQ/NSwTemA90JDi+jy0Kf6avDq8u1VPB1AU3BVmbOqkyXvFgbF0M31YL/NYtSCm1jKF+mYu6ifkut5QY6wGb9aGL1HuQZAkmxCiJ/OTMvhkLeByUOraaYSDV/YbX5PwLKb4ACNrMGG2NAi0EbnmVmSDcUa/iTLKEj7CWAj3CvYzR95+lHIxkdtBntDzb6eKCXcKNM9Tj/1tnPPa9+NNBGt8RPyWFlgvb1Y3+MkKtVxXTD9tPGLiIRtpEIJhK9JLDvj4Bi1oYinFD0o4jJCCii6ySC/6GIUHKb+HUUJP50FMHQfNqO4pQurooibkMRTb+KfhSj5AqM2ljEE4teFnSUZIFxCwtXlE0sOlmMki1ws9pN5j+S+29dNM69pD1poVYwmL//25xrtgDVhG6huq8VEWgw6IXb2kfx1QP2tdYZ2hlqST5Da4w3ZN3SNzhEtdVvgjGyEW7W8o9fJ8x1zPGImOMRKEPz9cmYHX7+4Owf"),
this.addDataEntry("gmdl google media design library picker date picker landscape light",512,304,"Date picker (landscape, light)","7ZhNb6MwEIZ/DceubAwEjlnS9rDbdqVU2rMVnGCtg5Fxm2R//Y7BSSCQJrRB2gNEkZjxjD/exwYNDonX20dF8/RJJkw45N4hsZJSV3frbcyEcFzEE4fMHNdF8HfchzOtuGxFOVUs09ckuFXCOxVvrPJUjkLvhHUUKc3NrWIL6PL7kgsRSyFV2UqW5QX+Qiv5h9VaWHmZlpQmcgNODIYdjynNtmfnXLrshB+ZXDOtdhCy4YlOqwgf24mmjK9Sm0aQVzlpUTlWh9yjBHBjVehWhLQUeU3fHBfyAlgURrCGaa4gApOeUiEUBWFo/DLTlyXMZGbUo4KvMjAFW5o+i5wueLYyaga2qzn/awYlBGwjLF9QMbVZWubHpFdjzLB3LQb3IgYchANh8FoYQPFJS3GYvu5Y9poniQk5lfqhvE4VCT7UFftgm3FeTIjegWtidoFiBQT8tmJcvbfJ50T1qnOMFBNU83fW6P8rQvtdQnu9hd5v0wUslKm28t7M/DqU/aSMZ/amTUDfiBvarJqyxPM6tmswkLJBl7L+qOx5Ze2ovySHybho1+xmnyGXy4LpFonDXK+CM+mCE4xw+sKZuAPACW/z8L8Ep/FCtnDc6H+As/d9EQ5G4QB0oi464Xh0etPxhzg7GHXhiUY8vfGEQxwejDvw2CJtxNMDz6FEuC2edkEcT5/j+5/nANXlJR+8YhoFhykfNinXbA5ek7pRtFan2Yh+7Od2ajciahN2DauGdoLaZP2+NcoJWTv0HQ5QY/S7fce3Rd2u9F9+jJibmKMBMUcDUAbz+PGsCq9/W/sH"),
this.addDataEntry("gmdl google media design library picker date picker landscape dark",512,304,"Date picker (landscape, dark)","7ZhLb+IwEMc/TY5d+ZGEcKTp47CPrkSlPVvEEGtNHDlugf30O04MTUigpCVSDzFCiscz9vj/s0ETj8br7aNmefpTJVx69N6jsVbKVE/rbcyl9AgSiUfvPEIQfD3ycGIUl6MoZ5pn5pIAUgW8MvnCK0tlKMxOOkORstw+ar6AKW+XQspYSaXLUeoT+wF7YbT6y2sjvGx2JGWJ2oARQ8etx7Xh25M5lyaX8CNXa270Dlw2IjFp5RFgl2jKxSp1YRT5lZEVlWF1iH2TAB6cCt2K0JYiz+mLRyAuhE1hBHuY5Ro8MO0pVVA2a1eZqdmXZWtJmKnMqsekWGXQlXxp5yxythDZyqoZuqnm4p9dlFLoW2HFgsmZizIqfwt6tp077F+KgbyLAYfRQBj8FgZQfNJSHNI3HdteiySxLsdSP5TtWJHwrK7YIrPrPFkXswPTxJ4CzQtw+OPEuPhs04+J6lf3GGkumRGvvDH/Z4QOuoT2ewu9P6YL2CjXZw75sbIflPHE2XQB6BslkYuqKUt9v+O4hgMpG3YpG4zKnlbWrfpbCUiGoF1zmn2EWi4LblokDrleBGfSBScc4fSFMyEDwImu8+P/HpwIxbex34RDpl8Bzt72STgYRQPQmXbRicar05tOMMTdwagLz3TE0xtPNMTlwbgDjyvSRjw98BxKhOviaRfE8exXfP/jFKC6vPTMX0yj4LDlwyYVhs/BakM3mtXqNOfRj/3cpXYloi5g1+jV0E5Qm2zQt0Y5IuuWvsEhaqx+s5/4uqjblf7T9xFzE/N0QMzTAShD9+3lWeVef7f2Hw==")];
-this.addPalette("gmdlPickers","GMDL / Pickers",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLSelectionControlsPalette=function(a){var e=this,d=[this.addEntry("gmdl google media design library selection control checkbox on hover light dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],
-16,16,"Checkbox (on, hover))")}),this.addEntry("gmdl google media design library selection control checkbox on focused pressed light dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, focused or pressed))")}),
-this.addEntry("gmdl google media design library selection control checkbox on disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused light",function(){var b=new mxCell("",new mxGeometry(0,
-0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox off hover light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, hover, light))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-48,48,"Checkbox (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused light",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled dark",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,
-16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off hover dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],
-16,16,"Checkbox (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, focused or pressed, dark))")}),
-this.addEntry("gmdl google media design library selection control checkbox off disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,
-0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button on hover light dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, hover))")}),this.addEntry("gmdl google media design library selection control radio button on focused pressed light dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, focused or pressed))")}),this.addEntry("gmdl google media design library selection control radio button on disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused light",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button off hover light",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, hover, light))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",
-new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused dark",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button off hover dark",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",
-new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, focused or pressed, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control switch on light",function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#0E9D57;");b.vertex=!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (on, light)")}),this.addEntry("gmdl google media design library selection control switch on dark",
-function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#80CBC4;");b.vertex=!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (on, dark)")}),this.addEntry("gmdl google media design library selection control switch off light dark",function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=off;strokeColor=none;fillColor=#0E9D57;");b.vertex=
-!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (off)")})];this.addPalette("gmdlSelection Controls","GMDL / Selection Controls",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLSlidersPalette=function(a){var e=[this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl",
+this.addPalette("gmdlPickers","GMDL / Pickers",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLSelectionControlsPalette=function(a){var e=this,d=[this.addEntry("gmdl google media design library selection control checkbox on hover light dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],
+16,16,"Checkbox (on, hover))")}),this.addEntry("gmdl google media design library selection control checkbox on focused pressed light dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, focused or pressed))")}),
+this.addEntry("gmdl google media design library selection control checkbox on disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused light",function(){var a=new mxCell("",new mxGeometry(0,
+0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox off hover light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, hover, light))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+48,48,"Checkbox (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused light",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled dark",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,
+16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off hover dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],
+16,16,"Checkbox (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, focused or pressed, dark))")}),
+this.addEntry("gmdl google media design library selection control checkbox off disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,
+0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button on hover light dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, hover))")}),this.addEntry("gmdl google media design library selection control radio button on focused pressed light dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, focused or pressed))")}),this.addEntry("gmdl google media design library selection control radio button on disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused light",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button off hover light",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, hover, light))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",
+new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused dark",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button off hover dark",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",
+new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, focused or pressed, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control switch on light",function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#0E9D57;");a.vertex=!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (on, light)")}),this.addEntry("gmdl google media design library selection control switch on dark",
+function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#80CBC4;");a.vertex=!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (on, dark)")}),this.addEntry("gmdl google media design library selection control switch off light dark",function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=off;strokeColor=none;fillColor=#0E9D57;");a.vertex=
+!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (off)")})];this.addPalette("gmdlSelection Controls","GMDL / Selection Controls",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLSlidersPalette=function(a){var e=[this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl",
"slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=50;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=100;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=10;shadow=0;",
200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=30;shadow=0;",200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=50;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=30;shadow=0;",
200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=100;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=30;shadow=0;",200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=20;shadow=0;",
@@ -4774,26 +4844,26 @@ this.addDataEntry("gmdl google media design library tab desktop tab bar",758,152
this.addDataEntry("gmdl google media design library tab desktop tab bar overflow",758,152,"Desktop tab bar with overflow","7Zldb5swFIZ/DZetwIZALksS2krrUrVdu1sUDFhzMAK3S/brZ/PVEGCFxDBtaqRI4djnYN7nHGM7Clxsd9eJG4d31ENEgSsFLhJKWf5ru1sgQhSgYk+BSwUAlX8V4HS0almrGrsJilgfB5A7vLnkFeWW3JCyPSkMnpuGSHRXFWinoRsLe4I2PL7tY0IWlNAk6wr97CO6sYT+QGVLRCPuYxe3QglDu87hZqZirNeIbhFL9rzLT+yxMO9hGlbuFiIchKWbUQzcTXNDUPm+Pz3/UQjQLgaUKoaqXqm23iVGglL8C70Uj6X1lQecJg8sniRBxGX4DdXinyOZfqJk210gcv4y2HrkctcQict3ZS+d1axqKZUCfZWC7UrVHQ5000BLVg2VrbjfPcV8GNXNLoCZu+yLAEcRqO+niDVkr0bdi4TxMYmjfB0i+WFuDynnwRRgCwVVDgVjXqcAR6Aw60+B4EzGv5/4elNySXk/12qKH0eQorjZUPzeDRC3MMy45EMm8NaJujGr24ul3jqB55abUkZh8mnEHrlR8FOL64NgTvYRd47dDY6CJxrzhjk3CMZ445IrgoOI25hosd3iiiCfvXt9ya6WZu8MOfElooEzC3FffxlJTQNLxosoTpCPuE4blPZMh2rF00t480PhQUsxajMp1ViGKYtRHYHCvEHh9ml1xy3rr6sGD64Uq9cIn5K7a+S4JLbY80Soqio2XGeUnMliX3M4nCbVWRONbklBM7NqaC7KsFLZlK/RJpynl/V0cETgtZi4mHhaS/0XeWmmPgUwrRPYzcNqwnr6H5ABS50CWXM/XSBz1t8ePokNIQat2RTEmpv+ktjt82eNDSKmz8EUxJpnDgWxx9vvn8CGADPmkyw8ehxNfLw2f43bNsvV+tvDYhOHqWCU0leh3qkb6A5CdYdOXi20ZB0j6UflBcdYwms9jjDO3UQ7mmNbzrQVIwXB8UJ9jCMkrXmicUK5pMhNNuEfS6blTG/Mijkk1FYkcna5F6ZRQzTKNleTctrAx8FwFEx61NCJxBiPCLCkE+GX7/+R5d0P/0L7DQ=="),
this.addDataEntry("gmdl google media design library tab desktop tab bar overflow",758,152,"Desktop tab bar with overflow","7Zldb5swFIZ/DZetwIZALksS2krrUrVdu1sUDFhzMAK3S/brZ/PVEGCFxDBtaqRI4djnYN7nHGM7Clxsd9eJG4d31ENEgSsFLhJKWf5ru1sgQhSgYk+BSwUAlX8V4HS0almrGrsJilgfB5A7vLnkFeWW3JCyPSkMnpuGSHRXFWinoRsLe4I2PL7tY0IWlNAk6wr97CO6sYT+QGVLRCPuYxe3QglDu87hZqZirNeIbhFL9rzLT+yxMO9hGlbuFiIchKWbUQzcTXNDUPm+Pz3/UQjQLgaUKoaqXqm23iVGglL8C70Uj6X1lQecJg8sniRBxGX4DdXinyOZfqJk210gcv4y2HrkctcQict3ZS+d1axqKZUCfZWC7UrVHQ5000BLVg2VrbjfPcV8GNXNLoCZu+yLAEcRqO+niDVkr0bdi4TxMYmjfB0i+WFuDynnwRRgCwVVDgVjXqcAR6Aw60+B4EzGv5/4elNySXk/12qKH0eQorjZUPzeDRC3MMy45EMm8NaJujGr24ul3jqB55abUkZh8mnEHrlR8FOL64NgTvYRd47dDY6CJxrzhjk3CMZ445IrgoOI25hosd3iiiCfvXt9ya6WZu8MOfElooEzC3FffxlJTQNLxosoTpCPuE4blPZMh2rF00t480PhQUsxajMp1ViGKYtRHYHCvEHh9ml1xy3rr6sGD64Uq9cIn5K7a+S4JLbY80Soqio2XGeUnMliX3M4nCbVWRONbklBM7NqaC7KsFLZlK/RJpynl/V0cETgtZi4mHhaS/0XeWmmPgUwrRPYzcNqwnr6H5ABS50CWXM/XSBz1t8ePokNIQat2RTEmpv+ktjt82eNDSKmz8EUxJpnDgWxx9vvn8CGADPmkyw8ehxNfLw2f43bNsvV+tvDYhOHqWCU0leh3qkb6A5CdYdOXi20ZB0j6UflBcdYwms9jjDO3UQ7mmNbzrQVIwXB8UJ9jCMkrXmicUK5pMhNNuEfS6blTG/Mijkk1FYkcna5F6ZRQzTKNleTctrAx8FwFEx61NCJxBiPCLCkE+GX7/+R5d0P/0L7DQ==")];
this.addPalette("gmdlTabs","GMDL / Tabs",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLTextFieldsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library text field single line text field",346,360,"Single-line text field","7Zhbb5swFMc/yx54bORLSsnjcqsq9TJt1frsBgNWDI6M1yb79LPBJBCHNllCtVUBheBjH1/+Pzi28fAoXV5LskjuREi5hyceHkkhVHmXLkeUcw8BFnp47CEE9M9D05ZcWOSCBZE0U/s4oNLhhfBftLSUhlytuDWEJE+oKQ48PMwTsjB2SWe6/mHEOB8JLmRRFEfFYYopKea0lkOLo6wgFK/aCHXCNk6losvWARQm2/trKlKq5EoXeWWhSsoSuO+XbgllcWLdsF+OHJC8NMRr340e+sZKslse7MgzFGKeEjk3FYchDb84eumxGGnMqNiM8K+cxZnOSVkY8kKBBZmxLDYS+EZCkakf7LdxRrBK29pMWtJc5z7Z0e6tGvo71SrRJOVEsRfaqP8YJfuOkvckpW3iWY1uaaTqOtUeqACYs6kfxBvXR7HQFv/DBcSHCmib+CaYbhmBVVkiCJoeIopyqhzB1x3bi8GlwwAC3V0wJqtc/4lIX25mGgoYSUrSNjh1xf3GA43a0VWPNHBRguL4X0lBeNkBKv/9uFyFYs4yug65dfEycUuezZRSpNpD8mlltw6gB/q+7XSdBOy7JNCJSPRBBySuHBJTwUMqz6GrDYPvd4AhaJ2JTeh6Jq08ztGqAWeAO4AzeD9a7VxFpsvYrHx7cRrynpKMZDGnTqzKRBHgttaaV8Cc+6oevBmsoBOnIHARXB5HwLZ1UcX2ikgXQKruH0zkPJlYLAh2sQKD0OHyfXL38HOyT/TCO3YHW8EJ4mA6RdtTCXhrO0KsYaZZ6FntOF4rr+V9Gux4nw7ea+wmdbG90TsNKXdnPBnfPH4STk2HD6VWhUEYgEbrHWF0d/Djh/vP8rr9AxgHHVDUyc0XsLJ4/QPZHw=="),
-this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var b=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field hover light dark",
-function(){var b=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (hover)")}),this.addEntry("gmdl google media design library text field single line text field press light dark",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;opacity=50;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (press)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (focus, light)")}),this.addEntry("gmdl google media design library text field single line text field normal light",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field error light",function(){var b=new mxCell("Input text",
-new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");a.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (error, light)")}),
-this.addEntry("gmdl google media design library text field single line text field disabled",function(){var b=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#B3B3B3;dashed=1;dashPattern=1 4;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (disabled)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
-function(){var b=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (focus, dark)")}),this.addEntry("gmdl google media design library text field single line text field normal dark",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field error dark",function(){var b=new mxCell("Input text",
-new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");a.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (error, dark)")}),
+this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var a=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field hover light dark",
+function(){var a=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (hover)")}),this.addEntry("gmdl google media design library text field single line text field press light dark",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;opacity=50;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (press)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (focus, light)")}),this.addEntry("gmdl google media design library text field single line text field normal light",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field error light",function(){var a=new mxCell("Input text",
+new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");c.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (error, light)")}),
+this.addEntry("gmdl google media design library text field single line text field disabled",function(){var a=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#B3B3B3;dashed=1;dashPattern=1 4;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (disabled)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
+function(){var a=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (focus, dark)")}),this.addEntry("gmdl google media design library text field single line text field normal dark",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field error dark",function(){var a=new mxCell("Input text",
+new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");c.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (error, dark)")}),
this.addDataEntry("gmdl google media design library text field single line text field icon normal light",346,35,"Single-line text field with icon (normal, light)","1ZbfT4MwEMf/Gh5dSjtQH3X+eNFo4oPPddygsVBSqjL/enu0zjG6jUyNkYWkvfbo3ee+3IjYrGyvNa+LW5WBjNhlxGZaKeNGZTsDKSNKRBaxi4hSYu+IXm1ZjbtVUnMNlRnjQJ3DK5cv4CzO0Jil9Iam4DUONcztI88bo9UzzJRU2horVdm184WQcsPkHwzaQLs1uM7kI7sGVYLRS7vlTWSmcDvY1EdUgMgL78YSZ+ONm+cr169U7cBnG86c7c88400BuJ1g3h5D2eZYrUleZnJiQEJduIT3gokoS7trLB0aprP0hZ14Cmu04nQIyyuAaJDciFfoHRci6E+8V8IGsjruKCZ9F7VYNGAGyFeBjqrCdFCF+w7nZiksJhTfQlUmhBPtD+IdN8c4R7BizuWZFHmFRRNZJkcVyZvwvLuaz4XB9BPyzZJ5h2QaqNhJQN9ke3XG6js5UN9SrKn50QcaW0ulbvgTdqhu1gdpa3GZ4u9nOXnp0ZDQA9g2FXoItnSA7VY9Cfn3ilQ/rkaa0AHXU/I7ajw+UI1GC17lHahd+tvTbTOBf15CIfhGvWCy4wCmOwHGPZUG+3EAZ/K9dtx+tuP+O3LEfqE7n/zjHrJS9/YmEhL7AT3ETr8+2Bzl9e+5Dw=="),
this.addDataEntry("gmdl google media design library text field single line text field icon focus light",342,35,"Single-line text field with icon (focus, light)","zZZRb4IwEMc/DY+a0gpzj0OnLzNZsoc9d+OEZoWaUh3u06+lnVMpypxLBiEp1x69+92fg4BMinou6SpfiBR4QO4DMpFCKDsq6glwHmDE0oBMA4yRvgI865gNm1m0ohJK1ccBW4cN5WuwFmuo1JY7Q5XTlRlKeNWPTColxRtMBBdSG0tR6rlkyTg/MrkHg1RQdwbXmFxkcxAFKLnVS95ZqnK7goxcRDmwLHduJLI2Wtn7bOf6naoeuGz9mZPzmae0ysEsRyZvh6GoM1OtYVakfKiAwyq3CZ8FE2ASzm6T2bQvHeyns3WFHToKe7TCuA3LKQBJ4FSxDRxs5yPodnwUTAey224QokMXsVxWoFrId4H2qsKoVYU4Qq1CaEhGektRqj2YqDmc/Yl9mMUaAEkMVvZK+R1nWWlKxtKU9yrRT7TbUR3nEI08xRl7pIy6C9FXytGFUuZsT7jPLlCdU1KKB/pimtE0bFG7loqPODmVYZ+mPdiOxXgJtriFbSFemCbWT35Jc/5T+eEIt0Deor+R382F8lOS0TJryJwSnL+Txs2h7SkzHyYmDOlKrE2y/QDGJwGGB7L09loPzuh3rbb+arWHL8WA/EHnHV+zaYTnm8Z9bM4rq7u7a/jEfkHT0LffP2OW8v6/2ic="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal light",342,35,"Single-line text field with icon (normal, light)","3ZZNU4MwEIZ/Dcd2QtKgHrV+XHTGGQ+e07KFjIF0Qlqpv96ExFoktFjtQWGYSTZZsvvs2y0RmRb1nWLL/EGmICJyE5GpklK7UVFPQYgII55G5DrCGJknwrc9q3GzipZMQamHOGDnsGZiBc7iDJXeCG+ocra0QwVz88qrSiv5AlMppDLGUpZm7WrBhfhi8i8GpaHuDa4x+cjuQBag1cZseeWpzt0OMvER5cCz3LsR6myscvNs6/qZqhn4bMOZk8OZp6zKwW5HNm+PoagzW61xVqRirEHAMncJHwQTYZI011A6OExn4ws79hR2aMVJF5ZXAFIgmOZraB0XIuhPfJTcBLI9bhSjtotcLCrQHeTbQAdVYdKpQkLRiFI6ik3pOxUxtKwGF7LUO1RRc3n7E3+zm2NL2fLlcyYuBc9KWzuepmJQrb4j4p4yeQc6CVTpPKBp1F+RoZqmR2pa8B0FP/tAY2Mp5T2b2a7UzNrUDPibxN6/y8nLDYfEHcD2VZXHYEs62B7kjBti/0B+mOIOyAt0GvmdHSk/rTgrs4bMPsEdaKkpt/9QXFrSlVzZZIcBTPYCjFuyDDbdAE76s55bf/Tc9o9iRE7Qgs//cNPYqru/a4TEfkTTMNPPrzJHefej7R0="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal dark",342,35,"Single-line text field with icon (normal, dark)","1ZZRT8IwEMc/zR4lXcsAHwWVF01IfPC5sGNr7Nalqzr89LZrRcY6mAgxNiFpr7317nf/HQvILKvmkhbpo4iBB+QuIDMphLKzrJoB5wFGLA7IbYAx0r8A33fshvUuKqiEXPVxwNbhjfJXsBZrKNWGO0OZ0sJMJaz0I6elkuIFZoILqY25yPXedM043zO5B4NUUHUGV5tcZHMQGSi50UfeWaxSe4IMXUQpsCR1biSyNlradbJ1/U5VT1y2/szJ8cxjWqZgjiOTt8OQVYmp1iDJYj5QwKFIbcJHwQSYrOrRlw7209m4wg4chR1a4agNyykASeBUsTdoXOcj6G5cCKYD2V53FaKmi1ivS1At5NtAe1Vh2KrCosa5XwqNyYhvLXK1g3NcD2d/Yh/msEZApgYsW1F+w1mSm6KxOOa9ivQT9XbUxzlEQ095Jh4xo+5S9BVzdKKYOduR7rMLNNSWXDzQpWlH9apJTYOP6nFeTk5n2KdqD7Z9OZ6CbdTC9iiWjP+9/ERBV0wZIhE6D2Uc4RbXa3QZNY5PVKOSjOZJDeqQ/o601piZfyomDPhSvJpk+wEcHQQYNlTqbb4enNHvem/11Xub78gVuUArnvzjHrJVd3cT8Yn9hB6il99fZ5by7sfbJw=="),
this.addDataEntry("gmdl google media design library text field single line text field icon focus dark",342,35,"Single-line text field with icon (focus, dark)","zZZRb4IwEMc/DY+a0opuj0OnL1uyZA977uSAZoWaUjfcp19LO6dSlDlN1oSkXHv07nd/DgIyLeqFpKv8USTAA3IfkKkUQtlZUU+B8wAjlgRkFmCM9BXgecdq2KyiFZVQqj4O2Dq8U74Ga7GGSm24M1Q5XZmphKV+ZFwpKd5gKriQ2liKUq/FKeP8wOQeDFJB3RlcY3KRLUAUoORGb/lgicrtDjJyEeXAsty5kcjaaGXvs63rT6p64rL1Z05OZ57QKgezHZm8HYaizky1hlmR8KECDqvcJnwSTIBJOL+N57O+dLCfzsYVdugo7NAKx21YTgFIAqeKvcPecT6C7sQnwXQg2+MGIdp3EWlagWoh3wbaqwqjVhXGEWoVQkMy0ktFqXZgps1w9mf2aTZrACQ2WNmS8jvOstKUjCUJ71Wi32i3ozrOIRp5inPjkTLqLkRfKUdnSpmzHeG+uEB1TnEpHuiraUazsEXtUio+4ORUhn2a9mA7FOM52MYtbI/ilWli/eQ3acY/lR+OcAvkLbqO/CZnyk9JRsusIXNMcP5OumyGtifMfJiYMKQrsTbJ9gM4Pgow3JOlt9d6cEZ/a7X1d6vdfykG5Aqd9+aSTSM83TSiZlxY3d1dwyf2M5qGvv35GbOUd//VvgA="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal dark",342,35,"Single-line text field with icon (normal, dark)","3ZZNU8MgEIZ/TY7tEChVj7Z+XHTGGQ+eabNJGEnoENTUXy8EbJuG2FjtQZnpDCxs2H32zTYRmRf1rWKr/F4mICJyHZG5klK7WVHPQYgII55E5CrCGJlfhG96duNmF62YglIPccDO4ZWJF3AWZ6j0WnhDlbOVnSpYmkfOKq3kM8ylkMoYS1mavVnKhdgz+QeD0lD3BteYfGS3IAvQam2OvPFE5+4EmfiIcuBZ7t0IdTZWuXW2cd2maiY+23Dm5HDmCatysMeRzdtjKOrMVmucFYkYaxCwyl3CB8FEmCybMZQODtNZ+8KOPYUdWvG0C8srACkQTPNXaF0XIuhvfJDcBLK5bhSjtotM0wp0B/km0EFVmHSqMKVoRCkdxab0nYoYWlaDqSz1DtW0Gd7+yN/tYUOCzCxfvmTiUvCstLXjSSIG1eo7Iu4pk3egk0CVzgOaRv0VGappeqSmBd9R8JMPNDaWUt6xhe1KzapNzYCnzfhdTl5uOCTuALZ9VR6DbdrBdi8X3BD7B/LDFHdAXqDTyO/sSPlpxVmZNWS+EtyBlppw+w/FpSVdyReb7DCA0y8Bxi1ZBptuACf9Wc+tP3tu+6UYkRO04PM/3DQ26u7vGiGxH9E0zHL7VeYo7360fQA="),
-this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;opacity=80;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal)")}),
-this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");
-d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#cccccc;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#eeeeee;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");
+this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;opacity=80;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal)")}),
+this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");
+d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#cccccc;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#eeeeee;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");
a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;dashed=1;dashPattern=1 4;opacity=80;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");d.vertex=!0;return e.createVertexTemplateFromCells([a,
c,d],346,55,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#cccccc;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",
@@ -4956,7 +5026,7 @@ e+"").join(" ")),this.createVertexTemplateEntry(c+"iKeybNumb;",174,100,"","iPhon
12,12,"","Circle",null,null,this.getTagsForStencil("mxgraph.ios7.misc","circle",e+"").join(" ")),this.createVertexTemplateEntry(d+"pageControl;fillColor=#222222;strokeColor=#aaaaaa;",50,5,"","Page control",null,null,this.getTagsForStencil(b,"pageControl",e+"").join(" ")),this.createVertexTemplateEntry("html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=2;shape=mxgraph.ios7.misc.current_location;strokeColor=#ffffff;fillColor=#0080F0",60,
60,"","Current Location",null,null,this.getTagsForStencil("mxgraph.ios7.misc","current_location",e+"").join(" ")),this.createVertexTemplateEntry("html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=2;shape=mxgraph.ios7.misc.expand;fillColor=#c0c0c0;",24,6,"","Expand",null,null,this.getTagsForStencil("mxgraph.ios7.misc","expand",e+"").join(" ")),this.addDataEntry(e+"volume control",160,14,"Volume Control","vVVdb8IgFP01fbTBVqvPuunTEpM97HFhchUyWhqgWvfrd1to/WjdjHEjacI9cLmcc4AG8Twtl5rm/EUxkEH8HMRzrZR1vbScg5RBRAQL4qcgigh+QbS4MjqsR0lONWT2loTIJeyoLMAhDjD2ID1gOM2rroY1LjkzVqtPmCupNIKZynBsthFSXkB+YdAWyqubqyG/syWoFKw+4JS9YJb7GYkjQDiILW/SRg6jxsXbNvVIFTuebT/z+HbmabmtDAqFMpMwFWYd7pQsUnhnap9dsA+iOKnbNalu0iXq1+XgLQ3HLuVEp6Sr0tRBGiS1YgdnxfqU8/VWSuA22mKDC63VZmPAdpRud3mT+KMHiF/k/yn9ecIPRjRns++83muFLz5o1mmsmfyBNePfreE2xeynYavzm6dfI5zitcCAYMCo4cB80OdoIUIjBQN0afZB9UpVVBLScRC9JcmULJDXTOV0LWylwZCQ7hlY1A1xTjMm4VV8VUVRusccgGnX8WHP5bvjicLw+PA7507/C98="),
this.addDataEntry(e+"picker",175,160,"Picker","7ZZta8IwEMc/Td5Km9i6vV3dZLDBYC/2OqxXE5Y2kkSt+/S7mtQHtEx8gg0Vofe/u9z1/6tQwrKyHhk+Ea86B0XYI2GZ0dr5q7LOQClCI5kTNiSURvgj9KkjGy+z0YQbqNwhDdQ3zLiagle8YN1CBUG4EtcaxoQ9WGf0F3zI3IlWETzXcwwiDHJuBeQhwMykOaGsx83d9aS2g6ns8epTaIP5MBiMg7pz+aUUNh+BLsGZBZbMwwZNxSDxbQLkWLRtqb/riFsvjFe9ay/wItix3xq2Y82zgxKV+FoWFbpy7/K7KYmTEGdaNTmcynjUfFE3YLFqc+ZB5tLjzGXhETGguJMz2Dr/FMP7XYZf7Zn8J4aHEW9a4mQaLbaPaTt0UVhwO4BWix3ELOlixi7MDIG9yArs79To8rOauo9nIZVq9UpXsLMi/avQ0/4FoKdd0Pu3P+oZmN2nF2A26GKW3JidgVlM706HhuH6zc+Xb74Y/gA=")];
-this.addPalette("ios7ui","iOS UI",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))}})();(function(){Sidebar.prototype.addLeanMappingPalette=function(){var a=mxConstants.STYLE_STROKEWIDTH+"=2;html=1;shape=mxgraph.lean_mapping.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=2;shape=mxgraph.lean_mapping.",d=this,b=[this.createVertexTemplateEntry(e+"boat_shipment;align=center;",100,100,"","Boat Shipment",null,null,this.getTagsForStencil("mxgraph.lean_mapping","boat_shipment","value stream lean mapping ").join(" ")),this.addDataEntry("value stream lean mapping data box",
+this.addPalette("ios7ui","iOS UI",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))}})();(function(){Sidebar.prototype.addLeanMappingPalette=function(){var a=mxConstants.STYLE_STROKEWIDTH+"=2;html=1;shape=mxgraph.lean_mapping.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=2;shape=mxgraph.lean_mapping.",d=this,b=[this.createVertexTemplateEntry(e+"boat_shipment;align=center;",100,100,"","Boat Shipment",null,null,this.getTagsForStencil("mxgraph.lean_mapping","boat_shipment","value stream lean mapping ").join(" ")),this.addDataEntry("value stream lean mapping data box",
60,100,"Data Box","1ZVfT8MgFMU/Da9LB7Pude10LxofNPFxuRZWiLQQirP10wstczbd4p9osz00uT2XA/f8HgCRtKhXBjS/VZRJRK4QSY1StquKOmVSIhwJisgSYRy5D+HrI91p2400GFba7xhwZ9iCfGGd0gmVbWQQKmvUM3sU1HInYEQSbgs36HLqyoqD9uuKOvcZJpJBuS5Aa1HmEwoW1k+q7lvCicxYVh+dupXCyCumCmZN45a8hilcN+6CRZyJnO9cURCh6oT8w7pn4IqA4TASMkDiLQ87Op/RuATu5GSjSnsv3rw490w0ZC7+DdvYAMyHFRnIhRR56WkJSv0eP8aCf4UF/wGV2UEqd6dMpemnHwHSxQBSAjbjZwBpNh6keABpsQUhzwBSPB6ky6/v5RODM/83OO53/yC2vd57+Q4="),this.createVertexTemplateEntry(a+"outside_sources;whiteSpace=wrap;align=center;",
100,70,'<table cellpadding="5" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr><td height="50%"></td></tr><tr><td align="center" height="50%">XYZ Corp</td></tr></table>',"Customer/Supplier",null,null,this.getTagsForStencil("mxgraph.lean_mapping","outside_sources","value stream lean mapping ").join(" ")),this.addEntry("value stream lean mapping dedicated process manufacturing",function(){var b=new mxCell("\nDescription",new mxGeometry(0,0,100,70),a+"manufacturing_process;fontSize=12;verticalAlign=middle;html=1;align=center;whiteSpace=wrap;");
b.vertex=!0;var e=new mxCell("Process",new mxGeometry(0,0,100,13),"text;fontSize=12;spacingLeft=2;verticalAlign=top;html=1;align=center;spacingTop=-5;resizeWidth=1;");e.vertex=!0;b.insert(e);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Dedicated Process")}),this.createVertexTemplateEntry(a+"manufacturing_process_shared;spacingTop=-5;align=center;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;",100,70,"Process","Shared Process",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
@@ -4965,8 +5035,8 @@ null,null,this.getTagsForStencil("mxgraph.lean_mapping","push_arrow","value stre
"fifo_lane;overflow=fill;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;align=center;",100,50,'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr><td height="0%">MAX=XX</td></tr><tr><td align="center" height="100%"></td></tr></table>',"FIFO Lane",null,null,this.getTagsForStencil("mxgraph.lean_mapping","fifo_lane","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"buffer_or_safety_stock;",40,100,"","Safety Stock",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
"buffer_or_safety_stock","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","truck_shipment","value stream lean mapping ").join(" "),function(){var b=new mxCell("",new mxGeometry(0,0,100,100),a+"truck_shipment;");b.vertex=!0;var e=new mxCell("2x per\nWeek",new mxGeometry(0,0,60,80),"text;fontSize=12;verticalAlign=middle;html=1;align=center;whiteSpace=wrap;");e.vertex=!0;b.insert(e);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,
"Truck Shipment")}),this.createVertexTemplateEntry(a+"schedule;whiteSpace=wrap;align=center;",100,70,"Production\nControl","Production Control",null,null,this.getTagsForStencil("mxgraph.lean_mapping","schedule","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"schedule;whiteSpace=wrap;align=center;",100,70,"Other\nInformation","Other Information",null,null,this.getTagsForStencil("mxgraph.lean_mapping","schedule","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+
-"go_see_production_scheduling;",92,60,"","Go See Production Scheduling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","go_see_production_scheduling","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","kaizen_lightening_burst","value stream lean mapping ").join(" "),function(){var b=new mxCell("",new mxGeometry(0,0,90,40),e+"kaizen_lightening_burst;");b.vertex=!0;var a=new mxCell("",new mxGeometry(8,8,74,24),"rect;fillColor=#000000;strokeColor=none;");
-a.vertex=!0;b.insert(a);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Kaizen Lightening Burst")}),this.createVertexTemplateEntry(e+"kanban_post;",50,100,"","Kanban Post",null,null,this.getTagsForStencil("mxgraph.lean_mapping","kanban_post","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"load_leveling;",100,30,"","Load Leveling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","load_leveling","value stream lean mapping ").join(" ")),
+"go_see_production_scheduling;",92,60,"","Go See Production Scheduling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","go_see_production_scheduling","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","kaizen_lightening_burst","value stream lean mapping ").join(" "),function(){var a=new mxCell("",new mxGeometry(0,0,90,40),e+"kaizen_lightening_burst;");a.vertex=!0;var b=new mxCell("",new mxGeometry(8,8,74,24),"rect;fillColor=#000000;strokeColor=none;");
+b.vertex=!0;a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Kaizen Lightening Burst")}),this.createVertexTemplateEntry(e+"kanban_post;",50,100,"","Kanban Post",null,null,this.getTagsForStencil("mxgraph.lean_mapping","kanban_post","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"load_leveling;",100,30,"","Load Leveling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","load_leveling","value stream lean mapping ").join(" ")),
this.createVertexTemplateEntry(e+"move_by_forklift;",92,100,"","Move by Forklift",null,null,this.getTagsForStencil("mxgraph.lean_mapping","move_by_forklift","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"mrp_erp;whiteSpace=wrap;",70,100,"","MRP/ERP",null,null,this.getTagsForStencil("mxgraph.lean_mapping","mrp_erp","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"operator;",100,84,"","Operator",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
"operator","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"quality_problem;fontSize=24;fontStyle=1;whiteSpace=wrap;align=center;",80,100,"Q","Quality Problem",null,null,this.getTagsForStencil("mxgraph.lean_mapping","quality_problem","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"verbal;",50,100,"","Verbal Information",null,null,this.getTagsForStencil("mxgraph.lean_mapping","verbal","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+
"fifo_sequence_flow;fontStyle=0;fontSize=20;align=center;",100,50,"FIFO","FIFO Sequence",null,null,this.getTagsForStencil("mxgraph.lean_mapping","fifo_sequence_flow","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"production_kanban;overflow=fill;",100,100,'<p style="font-size:2em;margin-right:35px;margin-top:13px;text-align:right">P</p>',"Production Kanban",null,null,this.getTagsForStencil("mxgraph.lean_mapping","production_kanban","value stream lean mapping ").join(" ")),
@@ -4987,55 +5057,55 @@ e.geometry.relative=!0;e.geometry.offset=new mxPoint(0,-50);e.vertex=!0;b.insert
150,50,"ON","On-off button",null,null,this.getTagsForStencil("mxgraph.mockup.buttons","onOffButton","mockup button on off").join(" "))];this.addPalette("mockupButtons","Mockup Buttons",!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))};Sidebar.prototype.addMockupContainersPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+
"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=mxConstants.STYLE_STROKECOLOR+"=#666666;",b=mxConstants.STYLE_FILLCOLOR+"=#ffffff;",c=this,h=[this.createVertexTemplateEntry(a+"containers.videoPlayer;"+d+"strokeColor2=#008cff;strokeColor3=#c4c4c4;textColor=#666666;"+b+"fillColor2=#008cff;barHeight=30;barPos=20;",300,200,"","Video Player",null,null,this.getTagsForStencil("mxgraph.mockup.containers","videoPlayer",
"mockup container ").join(" ")),this.addDataEntry("mockup container accordion",100,220,"Accordion","1VZdb4IwFP01fZwprbo96zaflizZw54buEBjoaStCvv1u0BFnLKYbS5IQtJ77kdvzz00EL7MypURRfqiI1CEPxG+NFq7dpWVS1CKMCojwh8JYxRfwp4HvEHjpYUwkLtLElibsBVqAy3SAtZVygPWGb2Gdxm5FIGA8IVNRaR3aFA0ImFTiLwhlExyXIe4PRgEUpepQ1ZRl8zKpD7uJNPhelNMQp07IXMwdmIMhNj1wrzJD/AVY6nUUittmmZ43Dx1taarnmfePOjxJwLjoBxkpYE8JSvQGThTYcjOn7KOoC1zNAWZpD5tTycVtgWSLvdAMi48z+c55yecr4zeFAgFYyMf3d4M7r19jvImzjcdfBlarnM4mZcHDVis3j/dRcNjPxzevMUMKOHkFo7q/2ag08GBju5rutZA+8kjn6rf4lVL3JnR6rjMPkPHsQV3ooKusYuEMRsUBr8tYXTX7nfCwDhKH8Lz13PnuUl1zNgV1DEfVMf0ttQxxmujOkr4J5nc/cUtgubh/68N7/8efgI="),
-this.addEntry("mockup container accordion",function(){var b=new mxCell("",new mxGeometry(0,0,100,220),e+"containers.rrect;rSize=0;fillColor=#ffffff;strokeColor=#666666;");b.vertex=!0;var a=new mxCell("Group 1",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);a=new mxCell("Group 2",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,26);a.vertex=!0;b.insert(a);a=new mxCell("Group 3",new mxGeometry(0,0,100,26),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;fontStyle=1;fillColor=#008cff;strokeColor=#008cff;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,52);a.vertex=!0;b.insert(a);a=new mxCell("Group 4",new mxGeometry(0,1,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,-26);a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Accordion")}),this.addEntry("mockup container browser window",function(){var b=new mxCell("",new mxGeometry(0,0,550,380),e+"containers.browserWindow;rSize=0;fillColor=#ffffff;strokeColor=#666666;mainText=,;recursiveResize=0;");b.vertex=!0;var a=new mxCell("Page 1",
-new mxGeometry(60,12,110,26),e+"containers.anchor;fontSize=17;fontColor=#666666;align=left;");a.vertex=!0;b.insert(a);a=new mxCell("https://www.draw.io",new mxGeometry(130,60,250,26),e+"containers.anchor;rSize=0;fontSize=17;fontColor=#666666;align=left;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Browser Window")}),this.createVertexTemplateEntry(a+"containers.userMale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Male",null,null,this.getTagsForStencil("mxgraph.mockup.containers",
-"userMale","mockup container ").join(" ")),this.createVertexTemplateEntry(a+"containers.userFemale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Female",null,null,this.getTagsForStencil("mxgraph.mockup.containers","userFemale","mockup container ").join(" ")),this.addEntry("mockup container group",function(){var b=new mxCell("",new mxGeometry(0,0,150,200),"shape=mxgraph.mockup.containers.marginRect;rectMarginTop=10;strokeColor=#666666;fillColor=#ffffff;strokeWidth=1;dashed=0;rounded=1;arcSize=5;recursiveResize=0;");
-b.vertex=!0;var a=new mxCell("Group",new mxGeometry(5,0,90,30),"shape=rect;strokeColor=none;fillColor=#008cff;strokeWidth=1;dashed=0;rounded=1;arcSize=20;fontColor=#ffffff;fontSize=17;spacing=2;spacingTop=-2;align=left;autosize=1;spacingLeft=4;resizeWidth=0;resizeHeight=0;perimeter=none;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],150,200,"Group")}),this.createVertexTemplateEntry(e+"containers.window;align=left;verticalAlign=top;spacingLeft=8;strokeColor2=#008cff;strokeColor3=#c4c4c4;fontColor=#666666;"+
-b+"mainText=;fontSize=17;labelBackgroundColor=none;",550,380,"Window Title","Window",null,null,this.getTagsForStencil("mxgraph.mockup.containers","window","mockup container ").join(" ")),this.addEntry("mockup container horizontal tab bar",function(){var b=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginTop=32;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");b.vertex=!0;var a=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(10,0);a.vertex=!0;b.insert(a);a=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(75,0);a.vertex=!0;b.insert(a);a=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(140,0);a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,0,400,7),e+"containers.topButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;gradientColor=none;resizeWidth=1;movable=0;deletable=1;");a.vertex=!0;a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,25);b.insert(a);return c.createVertexTemplateFromCells([b],400,200,"Horizontal Tab Bar")}),this.addEntry("mockup container vertical tab bar",
-function(){var b=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginLeft=67;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");b.vertex=!0;var a=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,10);a.vertex=!0;b.insert(a);a=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");
-a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,40);a.vertex=!0;b.insert(a);a=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,70);a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,0,7,200),e+"containers.leftButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;resizeHeight=1;movable=0;deletable=0;");a.geometry.relative=
-!0;a.geometry.offset=new mxPoint(60,0);a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],400,200,"Vertical Tab Bar")}),this.addDataEntry("mockup container dialog box",250,140,"Dialog Box","7ZZNj5swEIZ/jY+LwA7Z7bFL2j20VStlpZ5dGMBag5FxEtJf3wE7CeGjok0rraoSRbLHnvF4ntcGwqKiedK8yj+pBCRh7wiLtFLGtoomAikJ9UVC2IZQ6uOf0Pczo0E36ldcQ2mWOFDrsOdyB9ayVQWgJYGU76QhdE0oC3zCHhPBpcp6BgON8ax/bY7S+ddGqxf4KhKToyHAeXXOE3XATheF1zkkrsOlyEpsx5gtaDTkppAXr6oNWTRZWx2vUPHLrvJiVRouStC1pzXEuMlHvRXfwUW0q0dKKt2lw9bdgyMpOs7ZXYDgHvt70EbEXL51uRlVofWQCwPbisftvAMm1HoKKXsR0+5pc8BposyeW8cNo2hxRcbI0MyC6kyO0hMgBaOPOOXgKtnCCi1MPweR5Se3lTPy2hqys++FOzYc+mkZsJEMNo62/ywMon1dlIfM5tjOq+GUk4TUXJB97HqbhwHcUpXQZgA1rtnf8yKu9Pe4MmfTILkRe7iKfwvr1Yj1mK6jgo6iqmGqkr7/EHdq76rCv8kzm3HherwXVYxNV+za4eiuNy+0/X49J8pJf7Wcbv0vSmBa58XvaHi1/F0wOH0qTWswIx7nbSxCFI4QRbyM8e3weo/hz67YkXjiVftbcK06Ad1yzpqTTgbkgpFs3kzJJvwzslkNZMPYX5DNeiSbzx/+S+YGydz/a5LB7uXb0k7vf3r+AA=="),
+this.addEntry("mockup container accordion",function(){var a=new mxCell("",new mxGeometry(0,0,100,220),e+"containers.rrect;rSize=0;fillColor=#ffffff;strokeColor=#666666;");a.vertex=!0;var b=new mxCell("Group 1",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.vertex=!0;a.insert(b);b=new mxCell("Group 2",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,26);b.vertex=!0;a.insert(b);b=new mxCell("Group 3",new mxGeometry(0,0,100,26),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;fontStyle=1;fillColor=#008cff;strokeColor=#008cff;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,52);b.vertex=!0;a.insert(b);b=new mxCell("Group 4",new mxGeometry(0,1,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,-26);b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Accordion")}),this.addEntry("mockup container browser window",function(){var a=new mxCell("",new mxGeometry(0,0,550,380),e+"containers.browserWindow;rSize=0;fillColor=#ffffff;strokeColor=#666666;mainText=,;recursiveResize=0;");a.vertex=!0;var b=new mxCell("Page 1",
+new mxGeometry(60,12,110,26),e+"containers.anchor;fontSize=17;fontColor=#666666;align=left;");b.vertex=!0;a.insert(b);b=new mxCell("https://www.draw.io",new mxGeometry(130,60,250,26),e+"containers.anchor;rSize=0;fontSize=17;fontColor=#666666;align=left;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Browser Window")}),this.createVertexTemplateEntry(a+"containers.userMale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Male",null,null,this.getTagsForStencil("mxgraph.mockup.containers",
+"userMale","mockup container ").join(" ")),this.createVertexTemplateEntry(a+"containers.userFemale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Female",null,null,this.getTagsForStencil("mxgraph.mockup.containers","userFemale","mockup container ").join(" ")),this.addEntry("mockup container group",function(){var a=new mxCell("",new mxGeometry(0,0,150,200),"shape=mxgraph.mockup.containers.marginRect;rectMarginTop=10;strokeColor=#666666;fillColor=#ffffff;strokeWidth=1;dashed=0;rounded=1;arcSize=5;recursiveResize=0;");
+a.vertex=!0;var b=new mxCell("Group",new mxGeometry(5,0,90,30),"shape=rect;strokeColor=none;fillColor=#008cff;strokeWidth=1;dashed=0;rounded=1;arcSize=20;fontColor=#ffffff;fontSize=17;spacing=2;spacingTop=-2;align=left;autosize=1;spacingLeft=4;resizeWidth=0;resizeHeight=0;perimeter=none;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],150,200,"Group")}),this.createVertexTemplateEntry(e+"containers.window;align=left;verticalAlign=top;spacingLeft=8;strokeColor2=#008cff;strokeColor3=#c4c4c4;fontColor=#666666;"+
+b+"mainText=;fontSize=17;labelBackgroundColor=none;",550,380,"Window Title","Window",null,null,this.getTagsForStencil("mxgraph.mockup.containers","window","mockup container ").join(" ")),this.addEntry("mockup container horizontal tab bar",function(){var a=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginTop=32;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");a.vertex=!0;var b=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(10,0);b.vertex=!0;a.insert(b);b=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(75,0);b.vertex=!0;a.insert(b);b=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(140,0);b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,400,7),e+"containers.topButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;gradientColor=none;resizeWidth=1;movable=0;deletable=1;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,25);a.insert(b);return c.createVertexTemplateFromCells([a],400,200,"Horizontal Tab Bar")}),this.addEntry("mockup container vertical tab bar",
+function(){var a=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginLeft=67;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");a.vertex=!0;var b=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,10);b.vertex=!0;a.insert(b);b=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");
+b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,40);b.vertex=!0;a.insert(b);b=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,70);b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,7,200),e+"containers.leftButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;resizeHeight=1;movable=0;deletable=0;");b.geometry.relative=
+!0;b.geometry.offset=new mxPoint(60,0);b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],400,200,"Vertical Tab Bar")}),this.addDataEntry("mockup container dialog box",250,140,"Dialog Box","7ZZNj5swEIZ/jY+LwA7Z7bFL2j20VStlpZ5dGMBag5FxEtJf3wE7CeGjok0rraoSRbLHnvF4ntcGwqKiedK8yj+pBCRh7wiLtFLGtoomAikJ9UVC2IZQ6uOf0Pczo0E36ldcQ2mWOFDrsOdyB9ayVQWgJYGU76QhdE0oC3zCHhPBpcp6BgON8ax/bY7S+ddGqxf4KhKToyHAeXXOE3XATheF1zkkrsOlyEpsx5gtaDTkppAXr6oNWTRZWx2vUPHLrvJiVRouStC1pzXEuMlHvRXfwUW0q0dKKt2lw9bdgyMpOs7ZXYDgHvt70EbEXL51uRlVofWQCwPbisftvAMm1HoKKXsR0+5pc8BposyeW8cNo2hxRcbI0MyC6kyO0hMgBaOPOOXgKtnCCi1MPweR5Se3lTPy2hqys++FOzYc+mkZsJEMNo62/ywMon1dlIfM5tjOq+GUk4TUXJB97HqbhwHcUpXQZgA1rtnf8yKu9Pe4MmfTILkRe7iKfwvr1Yj1mK6jgo6iqmGqkr7/EHdq76rCv8kzm3HherwXVYxNV+za4eiuNy+0/X49J8pJf7Wcbv0vSmBa58XvaHi1/F0wOH0qTWswIx7nbSxCFI4QRbyM8e3weo/hz67YkXjiVftbcK06Ad1yzpqTTgbkgpFs3kzJJvwzslkNZMPYX5DNeiSbzx/+S+YGydz/a5LB7uXb0k7vf3r+AA=="),
this.addDataEntry("mockup container dialog box",250,160,"Dialog Box","zZZRb5swEMc/jR+LwC5pX9dk68NWtVIq7dmDA6wajGwnIf30O8AECFClyx5KFMn3x3c+3+9sQdg6rx41L7MnFYMk7Dtha62UbUd5tQYpCfVFTNiGUOrjn9AfC2+D5q1fcg2FvcSBtg57LnfQKluVAyoxJHwnLaErQlngE/aQgzE8hYFiobJeG8DYo3QBjNXqDX6L2GYoBDjPZDxWBzRqp5ibDGJncCnSAscRpgsahczmsvcq65B5ldbl8XIVve1KL1KF5aIAbTytIcJdPuiteAcXsV19raTSTTps1Tz4JkHHJd0FCO7Q3oO2IuLym8vNqhLVQyYsbEse1fMOmFDtKaQcREyap84Bp4kifa0dN4yi4qqMkaFaJNVIDtMjIAarjzjl4CpZ0wpbmn4GIs06t5UTuWmF9OTbg8eBYz/fB2zSB08dbv9VWGT7tTCfQ1uCu9wOXU4SEtsz+9VYm/sP6GowuPBw4xfRpf9GlzlNg+RW7GEU/xritxPiU8QODTqK0sBcOX3/Puqrwv/IE6BB9QpVwBj6RRVj8xUbOxzdLeeFrT2s50w56WfL6dZ/UQLTOi1+Q8PR8jfB2RlUSWLATnictnERonCC6PnnFz6HH12yk8aJbuvfTON85qK95uBVZ41zHAUYtFEw20fh/+mj7u7u+oix6/sIzf4Dop0+/L74Cw==")];
-this.addPalette("mockupContainers","Mockup Containers",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))};Sidebar.prototype.addMockupFormsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",
+this.addPalette("mockupContainers","Mockup Containers",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupFormsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",
d=mxConstants.STYLE_STROKECOLOR+"=#999999;",b=mxConstants.STYLE_FILLCOLOR+"=#ffffff;",c=this,h=[this.createVertexTemplateEntry(e+"forms.rrect;rSize=0;fillColor=#eeeeee;strokeColor=#999999;gradientColor=#cccccc;align=left;spacingLeft=4;fontSize=17;fontColor=#666666;labelPosition=right;",15,15,"Option 1","Checkbox",null,null,this.getTagsForStencil("mxgraph.mockup.forms","checkbox","mockup form ").join(" ")),this.addDataEntry("mockup form checkbox checkboxes",150,120,"Checkboxes","7VZNb8IwDP01uValKV9XYOOyadN22DmkbhuRNlUSoOzXL00yvtZOSGgMabOEFD/32Yn9GorwtKjnklT5o0iAI3yH8FQKod2qqKfAOYpCliA8Q1EUmh+K7juiPRsNKyKh1OcQIkdYE74ChzhA6S33gNJSLOGNJTo3QA/hicpJIjbGCY2TEJVD4h3CWVaaNTXlQRog1wXfs6omZVFnzXGDQtDlqgpSIQsVSAnUbHgiX9k7+GSu8FRwIe1O8NiaiaSM8wM8tdawga6kYmt4AbXP448IUkPd2SYL+R7NQRSg5dY8svHHbp7ou1aGObAs/6T5/oZEOSDbcfddNwvf+PYh4C9DeKo0E6XBerczjpOmg7Vvx2QSJ8yUPohRawdb45A2hVRFKCuzB+vN4qacKLWv3ht6/yDRwJrBOVkAfxaK2Y7hmXTDOW/qUfvUPWHkCFvnDYO+84800SKJ/uWKiLsVcUMv6F9XBL6mJPrdksC/IwmaA10uRH2iCtncvWTBO1RCrLWpJLbWrpLdcC9VSRiOqP2vuJpKBtdUyaBbJfH/xXErF8f4ByVh3P3no40dfV1+AA=="),
this.createVertexTemplateEntry("shape=ellipse;fillColor=#eeeeee;strokeColor=#999999;gradientColor=#cccccc;html=1;align=left;spacingLeft=4;fontSize=17;fontColor=#666666;labelPosition=right;shadow=0;",15,15,"Setting 1","Radiobutton",null,null,this.getTagsForStencil("mxgraph.mockup.forms","radiobutton radio button","mockup form ").join(" ")),this.addDataEntry("mockup form radiobutton radio button group",150,120,"Radiobutton Group","7ZbJboMwEIafhmtEcMhyTdrm0kpVc+jZhQlYMRjZztan72A7C4Eg1LQ5ZSQkzwwztv/PLB6ZZbu5pEX6JmLgHnn2yEwKoe0o282Acy/wWeyRJy8IfLy84OVKtm+yfkEl5LpLQWALNpSvwUZsQOk9dwGlpVjBJ4t1ioG+R6YqpbHYouOjE1OVQuwcylmS4zjC6UFiINUZP1UVZctsl5Tb7WUiWq2L3lLITPWkhAgXPJUL9g2umZ14JriQZiVkYgwzS8b5WXxprKyGaC0V28AHqFMft0WQGnZXZTIhp9EcRAZa7vGWrdt2eUdopfRTYEl6KHP6+lTZQHKsPamOAyd8MwRSg7AArVmeYLBf5+F0xB6sUHAh2oU0YKxVTKQRM9ThLBcZq+I7oOWwLEGpgka4wlfjPQ3KmUWu3UL6I+ef9RwawzinX8DfhWKaibKhtGp2wxQ0Y3IFY1uwt96oF1q/ArGBYXg7wkELwoZH6oGwG0JyT4ZhC0NyG0NqrInhwFgzw6Pef8jQ98eReVfejeHwngyHHb5nNXAXsI5IqrBykUOVRSepwlapSPW413Sa1GWa3K7SqOWkDx5vq9+e9Mk/nnR0T3+FJlf5afwB"),
this.createVertexTemplateEntry(a+"forms.colorPicker;chosenColor=#aaddff;fillColor=#ffffff;",40,40,"","Color Picker",null,null,this.getTagsForStencil("mxgraph.mockup.forms","colorPicker","mockup form ").join(" ")),this.createVertexTemplateEntry(e+"forms.comboBox;"+d+mxConstants.STYLE_FILLCOLOR+"=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666;fontSize=17;spacingLeft=3;",150,30,"Option 1","Combo Box",null,null,this.getTagsForStencil("mxgraph.mockup.forms","comboBox","mockup form ").join(" ")),
-this.createVertexTemplateEntry(e+"forms.spinner;"+d+"spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#aaddff;fontSize=17;fontColor=#666666;mainText=;html=1;overflow=fill;",150,60,'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;"><tr><td style="width:85%">100</td><td style="width:15%"></td></tr></table>',"Spinner",null,null,this.getTagsForStencil("mxgraph.mockup.forms","spinner","mockup form ").join(" ")),this.addEntry("mockup form menu bar",function(){var b=new mxCell("",
-new mxGeometry(0,0,498,30),e+"forms.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("File",new mxGeometry(0,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Edit",new mxGeometry(83,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Options",
-new mxGeometry(166,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Tools",new mxGeometry(249,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Window",new mxGeometry(332,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("Help",new mxGeometry(415,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Menu Bar")}),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;",150,30,"","Horizontal Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms",
+this.createVertexTemplateEntry(e+"forms.spinner;"+d+"spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#aaddff;fontSize=17;fontColor=#666666;mainText=;html=1;overflow=fill;",150,60,'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;"><tr><td style="width:85%">100</td><td style="width:15%"></td></tr></table>',"Spinner",null,null,this.getTagsForStencil("mxgraph.mockup.forms","spinner","mockup form ").join(" ")),this.addEntry("mockup form menu bar",function(){var a=new mxCell("",
+new mxGeometry(0,0,498,30),e+"forms.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("File",new mxGeometry(0,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Edit",new mxGeometry(83,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Options",
+new mxGeometry(166,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Tools",new mxGeometry(249,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Window",new mxGeometry(332,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("Help",new mxGeometry(415,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Menu Bar")}),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;",150,30,"","Horizontal Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms",
"horSlider","mockup form horizontal").join(" ")),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;direction=north;",30,150,"","Vertical Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms","horSlider","mockup form vertical").join(" ")),this.addDataEntry("mockup form list box",150,200,"List Box","7ZZdS8MwFIZ/TW9HlmzO3W7qEBQEBa9De9oG06YkUTd/vadJ3FprZX7MOVigkPMmJx/vEw6N2LxYLjSv8muVgIzYecTmWinre8VyDlJGlIgkYmcRpQS/iF70jA7dKKm4htJuk0B9whOXj+AVLxi7kkEwVqsHuBeJzVEYRmxmcp6oZwwIBgk3OSQh4FJkJfZj3B40Crkt5Carqpcslll93UGh4ofHapAqXZiB1hDjgWf6VrxAWMxvPFdSaXcSNnUNR1IhZUNPXUM9XAa0hWWvIU4KbixAFWD1Cqc8hwvWM8beNJKDyPKQRkkQufFCts7d+IudYPHHdrOO3XfCotGH4LkqbUMn5DR2ntd6WGA4+YSNBoOzmlfaihb9Hi0WNA2SW/EErfV/QnDUIXhpoUBluB+IvIzz2usuhzavE9caO0lIa/im4rEosysXnY3/HBT9KqiwxY0SuDMlqzbvtwyVpgZsB+z6YFuxHvex3lORPLL2WHbB+qSPNfs/xfnXsL+r0UkC4Gp0u/qXqoRDfSOTXbyRSd8bGR3rwR5ZT3+BNYabn24/vflP/go="),
this.createVertexTemplateEntry(e+"forms.pwField;"+d+"mainText=;align=left;fillColor=#ffffff;fontColor=#666666;fontSize=17;spacingLeft=3;",150,30,"********","Password Field",null,null,this.getTagsForStencil("mxgraph.mockup.forms","pwField","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"forms.splitter;fillColor=#ffffff;"+d,350,10,"","Horizontal Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"forms.splitter;fillColor=#ffffff;"+
-d+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",10,350,"","Vertical Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.addEntry("mockup form wedge bar",function(){var b=new mxCell("Tab 1",new mxGeometry(10,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("Tab 2",new mxGeometry(85,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#ffffff;align=left;spacingLeft=5;strokeColor=#008cff;fillColor=#008cff;");
-a.vertex=!0;var d=new mxCell("Tab 3",new mxGeometry(160,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");d.vertex=!0;return c.createVertexTemplateFromCells([b,a,d],230,30,"Wedge Bar")}),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_1;",136,31,"","Formatting Toolbar 1",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_1","mockup form ").join(" ")),this.createVertexTemplateEntry(a+
+d+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",10,350,"","Vertical Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.addEntry("mockup form wedge bar",function(){var a=new mxCell("Tab 1",new mxGeometry(10,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("Tab 2",new mxGeometry(85,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#ffffff;align=left;spacingLeft=5;strokeColor=#008cff;fillColor=#008cff;");
+b.vertex=!0;var d=new mxCell("Tab 3",new mxGeometry(160,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");d.vertex=!0;return c.createVertexTemplateFromCells([a,b,d],230,30,"Wedge Bar")}),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_1;",136,31,"","Formatting Toolbar 1",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_1","mockup form ").join(" ")),this.createVertexTemplateEntry(a+
"menus_and_buttons.font_style_selector_2;",235,31,"","Formatting Toolbar 2",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_2","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_3;",176,38,"","Formatting Toolbar 3",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_3","mockup form ").join(" ")),this.createVertexTemplateEntry(e+"forms.searchBox;"+d+"mainText=;fillColor=#ffffff;strokeColor2=#008cff;fontColor=#666666;fontSize=17;align=left;spacingLeft=3;",
150,30,"Search","Search Box",null,null,this.getTagsForStencil("mxgraph.mockup.forms","searchBox","mockup form ").join(" ")),this.addDataEntry("mockup form sign in",200,300,"Sign In","7Vhtb9owEP41+TIJ5DgkLR8HG6jShpBQtc8uubysTowct8B+/RzHQILDFmm4TScsRYrPOft8z3N3sR1vmu3mnGyS7ywE6nhfHW/KGRPVW7abAqUORmnoeF8cjJF8HDy7MOqqUbQhHHLRRQFXCq+EvkAlqQSF2FMtKARnz/AjDUUiBa7jTYqEhGwrO0h2QlIkEOoOoWmcy/e1XB64FCQioyetTTlltovL7Q4ztn5+2QwjxrNiyDmspcETvkp/gZ6sWnjKKOPKEm+smhyJUkpr8kg1KdebAS5gd9EhSqS9MQeWgeB7+clWb7B0CqqchhJI40SreQchKSpBfNQ9+Ve+aBe3u9sz3L0qHYbRQ/4+fif5OindOIlYLrTvXaz7NRcHqtVWohApvKCQSg0jN2Sd5vE3Na6M64QK/isqbhsqmt6IAyUifYXG/G1I6SWWLJUrY3QwSE+zb3YPE7AoKkAYQB/t7IT9qEOoaahomkNbAIQhgCJ6kxu4CbiJybUQuG9BwLWCgGcDAd9A4LGQ0YLRgmRS8PkWgv0JwZENAgQGAX6yJA8ZfIii140OTfB9q/nAb6ODb4MOgQ063Bl0WJKi2DIe3pJBr5LB2LeA/r2B/ifdbtmg59nAdW0QYmwQYvUwX5Q/54t+MMI3GJEz9aN4RobjeejsnBQET0+VvJZcgkNfb+5fGbFvKNT40fbz6F0nXeAmPQZHKl6VHwcS1ggyYzxmpSGnwjHrd+Eo04fiwB8TBTojxejqieMiTdrTiJWyMnCtHPRc1+CJyYkenvQuQ/J2577B2Aoi5jXXArZSUJ3/+hyv3Qo7+j/j884KGVou4ao6/7i81fkPVeevUeZl93TdXn1ev43/DQ=="),
this.addDataEntry("mockup form calendar date",160,175,"Calendar","7Zxdc6IwFIZ/DbdOPkDktu62V529cGd6zUoUp2CcSLe6v37Dh7bm0K2dLjk2kRlnIBCF9wnkvMmRgE/L3Z1KN/m9zEQR8O8Bnyopq3at3E1FUQSMrLKAfwsYI/oTsNs39tJmL9mkSqyrcyqwtsLvtHgSbUlbsK32RVewrZR8FA+rrMp1AQ34zTZPM/msN4jeyNJtLrJuIy1Wy7Ven+ufF0oX5FVZvNTa1F9Z7pb15Y5KOX982owWUpXbkVJirk/4Rs1Wf+qDorpC88NTWUjVnAlPmkXvWayK4lX5oll0eXcxQlVi96YgTVGnxp2QpajUXh/y3F1gfcS4FY3kYrXMD9XiqC1Mt23B8lj3RV+90kncLzcHcv+YV/KXlooRRmiII366nue1ljcLua769D5LV9ava1eBd5Lu281Ju/VadNIjetd6P6V52NPEx0V1vCzsph7+u6mfIiFkMm+ael3efQE9HDfrroT+H2STd4ixaBhgUR+w5RXYu8Aoi5GQjQGye+nus4yePsv6dB7oWRYDnX8+uaszR9N5AnR+EO7qHKHpnMD2nLurc4ym8+GJ9UroW+Wu0Ame0BQIPUvdFZridYUUWteZw30hxesMKXStFEdoMxInH4nEB4wAQ4swoJ29kCEbNBgcDwa0qtxzGBEeDGhCkcbTLgZGjAcDOtXIcxgJHgxoZ8eewzADV5s0oOmNfaeB14Uz6IwnvtM4hTG2CAO658RzGBwPBjTYh5bhLY0Ij0aPCffdhcd4NKALP4xHeUsjwaMBbTj13YebAa5NHNCIY2W2XA4OxH4cWnHquxc3bo6JRRrQi1PfzbiZG2aRBvTi1HczHqHR4NCLU9/NeIxHA5px6rsbT/BoQDfOfHfjZoxrEwe049dJcbx+nPfMivvux42bgxKLOKAh935inCPigIbc+9nYGBEHNOTez8cmiDigI79OyGJ2HtCTX6dkEXuPELpy72dlzdvDYjZuCG05990ImneHTRzQl3PfjWCEiMOxXHXjn+5ZJsT5/3T/WARsk5JjSewDUjIDY5uUHMtuH5ASiJdtYnIs731ITJiBgmMZ8UNiMihZTAcO4WDAlx6aGZCSeS/ZpORYCv2AlMxY3CKlCA4cfOlxHIuxuE1KjuXcW4zFbVKCwwxfOxnfZjBuk5Nrafo2o3GbnHpGIC7ZNS0WRC+Q0/HVh6enyiC544vIBggqhpuN0JsvL8Ns9p28K/Mv"),
this.addDataEntry("mockup form calendar date",400,300,"Email","7VhLU9swEP41vmacOLyOJQEu9FLa6VnI61igF3qQ0F/fXcmGdJzMtAOmh8QzcbyrfX6fV05cVAu1uXHMtl9NDbKoropq4YwJ+UptFiBlMStFXVTLYjYr8VPMrvesTtNqaZkDHf7GYZYdnpmMkDXXzqis9OFFdkofnHmEn6IOLSqmRXXpW1abNQolCjXzLdSdwKRYabzmWAI4VLRByTcvSyHVZkUtT5Thj9FOGuOUnzDNW+O2IjixagN5WcaFXn3L4nKGqsbosDCSzLG+6jQdqO/aARdgsxeSpOrwuAGjILgXNFl37eHqSUatbKHLSV7nWcd8llevnm/44kUH8W64qwHcD6bVxbx8yHjw/4W9c8AJ6kZIuYVrkw7UuzvxC7ok+7Dvk0totli7TdKyIk3qZMv1Ih3vpG3zJ2VbLFZj0Tgf0HgX7x8IwYMcnJce7gEDYxFwMiDgxgEE7PU4Pu8bn/1cjjZNpwMyv5uDHqSz4VY2FvZnA+wbhzgeH0gfPlE7SB1tos4HrC4WBz1R0/Lznk0XA/CPE/QhE7SLxNFGaFoOaLw89CGaf95zaTo9TtFIU7SDxfGmaPh+4dY4UGRifaTvOnWNxIpAyTBFMcO4JTfaI/QQIq2yWljhBU+/8EuQorPyyDDFIKWIXhkSAyibYgrNRS3qqCl0pJNk95ifrEOfmyTFVppRGimeIpvg1Q9aBy1USk4mIgvPqGQqZ3+KwuOXNkhgJCPYgOMisCCMppRSMsVNnzcbYxt9NSmdsMmRTiz1rbAL0yOA5QSqZ5lTsRioXuFiqrsHT1A2B9ZBC7oGl7BMymcjo8WCIJWecCvBexI53tJvFCRQIp6auBKMzDSVn281VERHZVxtONgAMTOWcDWcM+DJg0crahayd0LAOiNqulEzW5mJVBiP0rKMIQVpGiSX5Bo8uGynjMwFswy9SBD7Vx6jmhzkpkDbgeBMfulCBGNRu25FgDsMQ5nXWPQH7fpnw6fuvNy1X/T/yv9hwyjodWP/rjOt/fEq9Dc=")];
-this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=
+this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=
mxConstants.STYLE_FILLCOLOR+"=#ffffff;",b=mxConstants.STYLE_STROKECOLOR+"=none;",c=this,h=[this.createVertexTemplateEntry(a+"graphics.barChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,"","Bar Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","barChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.columnChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,
"","Column Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","columnChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.lineChart;"+d+b+"strokeColor2=#666666;strokeColor3=#008cff;strokeColor4=#dddddd;",400,200,"","Line Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","lineChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.pieChart;"+mxConstants.STYLE_STROKECOLOR+"=#008cff;parts=10,20,35;partColors=#e0e0e0,#d0d0d0,#c0c0c0,#b0b0b0,#a0a0a0;strokeWidth=2;",
200,200,"","Pie Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","pieChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.simpleIcon;strokeColor=#999999;fillColor=#ffffff;",50,50,"","Icon Placeholder",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","simpleIcon","mockup graphics icon placeholder").join(" ")),this.addDataEntry("mockup graphics icon grid placeholder",200,200,"Icon Grid","7ZdRa8MgEMc/ja8licu6Pm7pVgYb7G3PNrFRqjWobdNvv4vadYUVRpv5ZCDg/e9OzvuRCyJcyX6hScfeVUMFws8IV1op61eyr6gQqMh4g/AcFUUGLypeLnhz5806ounG/iWh8Ak7IrbUK14w9iCCsKPa8pqIN7Kk4kMZbrnagGuprFUS4SfDSKP2oGRgNMQw2gSDCN4OoTVUQzUIzEo44jyH5XHbxxBjVTfsZbVa00/eWBbiYPduqET27dCliVT1ettNnMFrMzFcdoK+1kNNIb1SQmlXPJ65BzwrLsQPfeUe0MP5oRjaX+yhk0IDF1RJavUBQvahTPCWvs0Zo7xl9lwjxtvtd+YJCCwCk9/54MTnej4hYVr6jAi47hKum3HlRxAReJWJ1/W8DtE/r/uEa7RpGJ/eNNEbbzjGx/eQ8N08K2P+22aJ19jDMia+PEv8Rh+X/wgQzNO13fnObvVf"),
this.createVertexTemplateEntry(a+"graphics.bubbleChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,"","Bubble Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","bubbleChart","mockup graphics bubble chart").join(" ")),this.addDataEntry("mockup graphics gauge",100,100,"Gauge","zZXdT8IwEMD/mr6S0jqVRxnKiya8GJ/LemwN3bp0BcZ/760tXwKRGEGbLblv7n49MsLTsh1bURdvRoIm/Jnw1BrjglS2KWhNGFWS8BFhjOJL2MsZb997aS0sVO6SBBYSlkIvIFiCoXFrHQ1LsE5lQr+KKeiJaZRTpkLX1DhnSsKHTSGkWaGFoiJFU4CMitAq70Iz7AYsGgpX4oijPoqbsk8xxpm6q+WsmcOHkq6IcVi97jop27yj1CtNNl/UPa+orOnlYpGjfzhTWqdGG+u75jN/thX3PAN/0OMzcSA0s6SLxG5CYBMip1MpsQZLUZYSYCMPBlnma/sKnkvISLuHDysAqfd/ktLHkBBp4+jQnr0xb4rXNQZTgrNrDFlFKF0EDbdKC1B54b4YRWiG5dvc3QKgEHfg9D7wo31IJ+8kwcYTkoyOduPkdf1gGb67ZFFlRQdzODOV2wN778+lYNlpsDEBJ/QZ66hGmnvYkxPU2S9AvzuCTv+e9KaIhpm7Mnh6AP4huRn45Aj89k/0H9DbMO012fNbsUd191XzvoOP3ic="),
-this.createVertexTemplateEntry(a+"graphics.plotChart;"+d+mxConstants.STYLE_STROKECOLOR+"=none;strokeColor2=#aaaaaa;strokeColor3=#666666;fillColor2=#99aaff,#0022ff,#008cff;",400,200,"","Plot Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","plotChart","mockup graphics plot chart").join(" ")),this.addEntry("mockup graphics gantt chart",function(){var b=new mxCell("",new mxGeometry(0,0,600,300),e+"graphics.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("#",
-new mxGeometry(0,0,20,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task",new mxGeometry(20,0,40,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Start",new mxGeometry(60,0,130,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=
-!0;b.insert(a);a=new mxCell("Effort",new mxGeometry(190,0,50,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014",new mxGeometry(240,0,210,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("27//10//2014",new mxGeometry(450,0,150,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("M",new mxGeometry(240,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(270,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("W",new mxGeometry(300,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(330,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("F",new mxGeometry(360,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("S",new mxGeometry(390,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("S",new mxGeometry(420,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("M",new mxGeometry(450,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(480,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("W",new mxGeometry(510,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(540,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("F",new mxGeometry(570,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,40,240,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(240,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(300,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(360,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(420,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(480,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(540,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("1",new mxGeometry(0,40,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 1",new mxGeometry(20,40,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",
-new mxGeometry(60,40,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,40,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("2",new mxGeometry(0,60,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 2",new mxGeometry(20,60,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,60,130,20),e+"graphics.anchor;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,60,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("3",new mxGeometry(0,80,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 3",new mxGeometry(20,80,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,80,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",
-new mxGeometry(190,80,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("4",new mxGeometry(0,100,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 4",new mxGeometry(20,100,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,100,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,100,50,20),e+"graphics.anchor;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(250,45,130,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(250,65,40,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(280,85,100,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(340,105,70,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");
-a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Gantt Chart")}),this.createVertexTemplateEntry(a+"misc.map;",250,250,"","Map",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","map","mockup graphics ").join(" "))];this.addPalette("mockupGraphics","Mockup Graphics",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupMarkupPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
+this.createVertexTemplateEntry(a+"graphics.plotChart;"+d+mxConstants.STYLE_STROKECOLOR+"=none;strokeColor2=#aaaaaa;strokeColor3=#666666;fillColor2=#99aaff,#0022ff,#008cff;",400,200,"","Plot Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","plotChart","mockup graphics plot chart").join(" ")),this.addEntry("mockup graphics gantt chart",function(){var a=new mxCell("",new mxGeometry(0,0,600,300),e+"graphics.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("#",
+new mxGeometry(0,0,20,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task",new mxGeometry(20,0,40,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Start",new mxGeometry(60,0,130,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=
+!0;a.insert(b);b=new mxCell("Effort",new mxGeometry(190,0,50,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014",new mxGeometry(240,0,210,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("27//10//2014",new mxGeometry(450,0,150,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("M",new mxGeometry(240,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(270,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("W",new mxGeometry(300,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(330,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("F",new mxGeometry(360,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("S",new mxGeometry(390,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("S",new mxGeometry(420,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("M",new mxGeometry(450,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(480,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("W",new mxGeometry(510,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(540,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("F",new mxGeometry(570,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,40,240,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(240,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(300,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(360,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(420,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(480,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(540,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("1",new mxGeometry(0,40,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 1",new mxGeometry(20,40,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",
+new mxGeometry(60,40,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,40,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("2",new mxGeometry(0,60,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 2",new mxGeometry(20,60,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,60,130,20),e+"graphics.anchor;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,60,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("3",new mxGeometry(0,80,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 3",new mxGeometry(20,80,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,80,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",
+new mxGeometry(190,80,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("4",new mxGeometry(0,100,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 4",new mxGeometry(20,100,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,100,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,100,50,20),e+"graphics.anchor;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(250,45,130,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(250,65,40,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(280,85,100,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(340,105,70,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");
+b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Gantt Chart")}),this.createVertexTemplateEntry(a+"misc.map;",250,250,"","Map",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","map","mockup graphics ").join(" "))];this.addPalette("mockupGraphics","Mockup Graphics",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupMarkupPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKECOLOR+"=#999999;",d=mxConstants.STYLE_STROKECOLOR+"=none;";this.addPaletteFunctions("mockupMarkup","Mockup Markup",!1,[this.createVertexTemplateEntry(a+"markup.curlyBrace;"+e,100,20,"","Horizontal Curly Brace",null,null,this.getTagsForStencil("mxgraph.mockup.markup","curlyBrace","horizontal").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+
"=right;"+mxConstants.STYLE_ALIGN+"=left;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.markup.curlyBrace;html=1;shadow=0;dashed=0;"+e+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",20,100,"","Vertical Curly Brace",null,null,this.getTagsForStencil("mxgraph.mockup.markup","curlyBrace","vertical").join(" ")),this.createVertexTemplateEntry(a+"markup.line;"+e,100,20,"","Horizontal Line",null,null,this.getTagsForStencil("mxgraph.mockup.markup","line","horizontal").join(" ")),
this.createVertexTemplateEntry(a+"markup.line;"+e+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",20,100,"","Vertical Line",null,null,this.getTagsForStencil("mxgraph.mockup.markup","line","vertical").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"=mxgraph.mockup.markup.scratchOut;shadow=0;dashed=0;html=1;"+e+"strokeWidth=4;",200,100,"","Scratch Out",null,null,this.getTagsForStencil("mxgraph.mockup.markup","scratchOut","scratch out").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+
@@ -6457,10 +6527,10 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav
StorageFile.prototype.saveFile=function(a,b,d,c){if(this.isEditable()){var e=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=d&&d()}))}catch(f){null!=c&&c(f)}});this.isRenamable()&&"."==a.charAt(0)&&null!=c?c({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(b){this.isRenamable()&&this.getTitle()!=a&&null!=b?this.ui.confirm(mxResources.get("replaceIt",
[a]),e,c):e()}))}else null!=d&&d()};StorageFile.prototype.rename=function(a,b,d){var c=this.getTitle();c!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(e){var f=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(c,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(c,b)}),d)});null!=e?this.ui.confirm(mxResources.get("replaceIt",[a]),f,d):f()})):b()};
StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,b,d){StorageFile.call(this,a,b,d)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,b,d){this.saveFile(a,!1,b,d)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};
-StorageLibrary.prototype.isRenamable=function(a,b,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,d){StorageFile.call(this,a,b,d);a=d;b=a.lastIndexOf("/");0<=b&&(a=a.substring(b+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,b,d){return!1};UrlLibrary.prototype.saveAs=function(a,b,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,d){function c(c,e,f,t,u,q){function A(){mxEvent.addListener(p,"click",null!=q?q:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,g.checked);b()})):(a.setMode(f,g.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var p=document.createElement("a");p.style.overflow="hidden";p.style.display=
+StorageLibrary.prototype.isRenamable=function(a,b,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,d){StorageFile.call(this,a,b,d);a=d;b=a.lastIndexOf("/");0<=b&&(a=a.substring(b+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,b,d){return!1};UrlLibrary.prototype.saveAs=function(a,b,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,d){function c(c,e,f,t,u,q){function z(){mxEvent.addListener(p,"click",null!=q?q:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,g.checked);b()})):(a.setMode(f,g.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var p=document.createElement("a");p.style.overflow="hidden";p.style.display=
mxClient.IS_QUIRKS?"inline":"inline-block";p.className="geBaseButton";p.style.boxSizing="border-box";p.style.fontSize="11px";p.style.position="relative";p.style.margin="4px";p.style.padding="8px 10px 12px 10px";p.style.width="88px";p.style.height="100px";p.style.whiteSpace="nowrap";p.setAttribute("title",e);mxClient.IS_QUIRKS&&(p.style.cssFloat="left",p.style.zoom="1");var h=document.createElement("div");h.style.textOverflow="ellipsis";h.style.overflow="hidden";if(null!=c){var l=document.createElement("img");
l.setAttribute("src",c);l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.width="60px";l.style.height="60px";l.style.paddingBottom="6px";p.appendChild(l)}else h.style.paddingTop="5px",h.style.whiteSpace="normal",mxClient.IS_IOS?(p.style.padding="0px 10px 20px 10px",p.style.top="6px"):mxClient.IS_FF&&(h.style.paddingTop="0px",h.style.marginTop="-2px");p.appendChild(h);mxUtils.write(h,e);if(null!=u)for(c=0;c<u.length;c++)mxUtils.br(h),mxUtils.write(h,u[c]);if(null!=t&&null==a[t]){l.style.visibility=
-"hidden";mxUtils.setOpacity(h,10);var y=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});y.spin(p);var z=window.setTimeout(function(){null==a[t]&&(y.stop(),p.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(z),mxUtils.setOpacity(h,100),l.style.visibility="",y.stop(),A(),"drive"==t&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else A();
+"hidden";mxUtils.setOpacity(h,10);var x=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});x.spin(p);var y=window.setTimeout(function(){null==a[t]&&(x.stop(),p.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(y),mxUtils.setOpacity(h,100),l.style.visibility="",x.stop(),z(),"drive"==t&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else z();
m.appendChild(p);++k>=d&&(mxUtils.br(m),k=0)}d=null!=d?d:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var f=a.addLanguageMenu(e,!0);null!=f&&(f.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){f=document.createElement("a");f.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage");f.setAttribute("title",mxResources.get("help"));f.setAttribute("target",
"_blank");f.style.position="absolute";f.style.textDecoration="none";f.style.cursor="pointer";f.style.fontSize="12px";f.style.bottom="28px";f.style.left="26px";f.style.color="gray";var h=document.createElement("img");h.setAttribute("border","0");h.setAttribute("valign","bottom");h.setAttribute("src",Editor.helpImage);h.style.marginRight="2px";f.appendChild(h);mxUtils.write(f,mxResources.get("help"));e.appendChild(f)}var l=document.createElement("div");l.style.position="absolute";l.style.cursor="pointer";
l.style.fontSize="12px";l.style.bottom="28px";l.style.color="gray";mxUtils.write(l,mxResources.get("decideLater"));a.isOfflineApp()?l.style.right="20px":(mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0)"),l.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)l.style.marginLeft=-Math.round(l.clientWidth/2)+"px"};e.appendChild(l);mxEvent.addListener(l,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,
@@ -6495,15 +6565,15 @@ mxClient.IS_CHROMEAPP)){if(51200>b.length){var k=mxUtils.button("",function(){tr
" max)");k.style.verticalAlign="bottom";k.style.paddingTop="4px";k.style.minWidth="46px";k.className="geBtn";h.appendChild(k)}7168>b.length&&(k=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(l.value);a.openLink(b)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}),g=document.createElement("img"),g.setAttribute("src",Editor.tweetImage),g.setAttribute("width",
"18"),g.setAttribute("height","18"),g.setAttribute("border","0"),g.style.marginBottom="5px",k.appendChild(g),k.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),k.style.verticalAlign="bottom",k.style.paddingTop="4px",k.style.minWidth="46px",k.className="geBtn",h.appendChild(k))}g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});h.appendChild(g);k=mxUtils.button(mxResources.get("copy"),function(){l.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>b.length?mxClient.IS_SF||null!=document.documentMode?g.className="geBtn gePrimaryBtn":(h.appendChild(k),k.className="geBtn gePrimaryBtn",g.className="geBtn"):(h.appendChild(m),g.className="geBtn",m.className="geBtn gePrimaryBtn");c.appendChild(h);this.container=c};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(a,b){function d(){var a=null!=w.getTitle()?w.getTitle():this.defaultFilename;if(x.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<C.length&&(b+="&s="+C);""!=u.value&&"0"!=u.value&&(b+="&border="+u.value);""!=n.value&&(b+="&height="+n.value);b+="&pan="+(p.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(A.checked?"1":"0");b+="&resize="+
-(t.checked?"1":"0");b+="&x0="+Number(k.value);b+="&y0="+m;e.mathEnabled&&(b+="&math=1");z.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));g.value=b}else w.constructor==DriveFile||w.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=w.getHash().substring(1),b=w.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
+var GoogleSitesDialog=function(a,b){function d(){var a=null!=v.getTitle()?v.getTitle():this.defaultFilename;if(F.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<C.length&&(b+="&s="+C);""!=u.value&&"0"!=u.value&&(b+="&border="+u.value);""!=n.value&&(b+="&height="+n.value);b+="&pan="+(p.checked?"1":"0");b+="&zoom="+(w.checked?"1":"0");b+="&fit="+(z.checked?"1":"0");b+="&resize="+
+(t.checked?"1":"0");b+="&x0="+Number(k.value);b+="&y0="+m;e.mathEnabled&&(b+="&math=1");y.checked?b+="&edit=_blank":x.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));g.value=b}else v.constructor==DriveFile||v.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=v.getHash().substring(1),b=v.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
encodeURIComponent(a)),""!=n.value&&(a=parseInt(n.value)+parseInt(k.value),b+="&height="+a),g.value=b):g.value=""}var c=document.createElement("div"),e=a.editor.graph,f=e.getGraphBounds(),h=e.view.scale,l=Math.floor(f.x/h-e.view.translate.x),m=Math.floor(f.y/h-e.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var g=document.createElement("input");g.setAttribute("type","text");g.style.marginBottom="8px";g.style.marginTop="2px";g.style.width="410px";c.appendChild(g);
mxUtils.br(c);this.init=function(){g.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?g.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,mxResources.get("top")+":");var k=document.createElement("input");k.setAttribute("type","text");k.setAttribute("size","4");k.style.marginRight="16px";k.style.marginLeft="4px";k.value=l;c.appendChild(k);mxUtils.write(c,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type",
"text");n.setAttribute("size","4");n.style.marginLeft="4px";n.value=Math.ceil(f.height/h);c.appendChild(n);mxUtils.br(c);f=document.createElement("hr");f.setAttribute("size","1");f.style.marginBottom="16px";f.style.marginTop="16px";c.appendChild(f);mxUtils.write(c,mxResources.get("publicDiagramUrl")+":");mxUtils.br(c);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=b||"";
-c.appendChild(q);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 p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="16px";c.appendChild(p);mxUtils.write(c,mxResources.get("pan")+" ");var v=document.createElement("input");
-v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";c.appendChild(v);mxUtils.write(c,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);c.appendChild(y);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 t=document.createElement("input");t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="16px";c.appendChild(t);mxUtils.write(c,mxResources.get("resize")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";c.appendChild(A);mxUtils.write(c,mxResources.get("fit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft=
-"8px";c.appendChild(x);mxUtils.write(c,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),w=a.getCurrentFile();mxEvent.addListener(p,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(n,"change",d);mxEvent.addListener(k,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(q,"change",d);d();
+c.appendChild(q);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 p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="16px";c.appendChild(p);mxUtils.write(c,mxResources.get("pan")+" ");var w=document.createElement("input");
+w.setAttribute("type","checkbox");w.setAttribute("checked","checked");w.defaultChecked=!0;w.style.marginLeft="8px";c.appendChild(w);mxUtils.write(c,mxResources.get("zoom")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft="8px";x.setAttribute("title",window.location.href);c.appendChild(x);mxUtils.write(c,mxResources.get("edit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";c.appendChild(y);mxUtils.write(c,
+mxResources.get("asNew")+" ");mxUtils.br(c);var t=document.createElement("input");t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="16px";c.appendChild(t);mxUtils.write(c,mxResources.get("resize")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";c.appendChild(z);mxUtils.write(c,mxResources.get("fit")+" ");var F=document.createElement("input");F.setAttribute("type","checkbox");F.style.marginLeft=
+"8px";c.appendChild(F);mxUtils.write(c,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),v=a.getCurrentFile();mxEvent.addListener(p,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(F,"change",d);mxEvent.addListener(n,"change",d);mxEvent.addListener(k,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(q,"change",d);d();
mxEvent.addListener(g,"click",function(){g.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?g.select():document.execCommand("selectAll",!1,null)});f=document.createElement("div");f.style.paddingTop="12px";f.style.textAlign="right";h=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});h.className="geBtn gePrimaryBtn";f.appendChild(h);c.appendChild(f);this.container=c},CreateGraphDialog=function(a,b,d){var c=document.createElement("div");c.style.textAlign=
"right";this.init=function(){var b=document.createElement("div");b.style.position="relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);c.appendChild(b);var f=new Graph(b);f.setCellsCloneable(!0);f.setPanning(!0);f.setAllowDanglingEdges(!1);f.connectionHandler.select=!1;f.view.setTranslate(20,20);f.border=20;f.panningHandler.useLeftButtonForPanning=!0;var h="curved=1;";f.cellRenderer.installCellOverlayListeners=
function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))})};f.getAllConnectionConstraints=function(){return null};f.connectionHandler.marker.highlight.keepOnTop=
@@ -6534,45 +6604,45 @@ m.vertex=!0;t=sb.cloneCell(m,0<l?"PK":"");t.connectable=!1;t.style="shape=partia
d=g.view,t=g.getGraphBounds(),g.setSelectionCells(g.importCells(u,Math.ceil(Math.max(0,t.x/d.scale-d.translate.x)+4*g.gridSize),Math.ceil(Math.max(0,(t.y+t.height)/d.scale-d.translate.y)+4*g.gridSize))),g.scrollCellToVisible(g.getSelectionCell()))}else if("list"==c){if(0<d.length){g=a.editor.graph;f=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");
f.vertex=!0;t=g.getPreferredSizeForCell(f);null!=t&&f.geometry.width<t.width+10&&(f.geometry.width=t.width+10);m=[f];if(1<d.length)for(q=1;q<d.length;q++)"--"==d[q]?(t=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),t.vertex=!0,f.geometry.height+=t.geometry.height,f.insert(t),m.push(t)):0<d[q].length&&";"!=d[q].charAt(0)&&(h=new mxCell(d[q],
new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),h.vertex=!0,t=g.getPreferredSizeForCell(h),null!=t&&h.geometry.width<t.width&&(h.geometry.width=t.width),f.geometry.width=Math.max(f.geometry.width,h.geometry.width),f.geometry.height+=h.geometry.height,f.insert(h),m.push(h));g.getModel().beginUpdate();try{f=g.importCells([f],e.x,e.y)[0],g.fireEvent(new mxEventObject("cellsInserted",
-"cells",[f].concat(f.children)))}finally{g.getModel().endUpdate()}g.setSelectionCell(f);g.scrollCellToVisible(g.getSelectionCell())}}else{for(var m=function(a){var b=D[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,D[a]=b,u.push(b));return b},D={},u=[],q=0;q<d.length;q++)if(";"!=d[q].charAt(0)){var G=d[q].split("->");2<=G.length&&(h=m(G[0]),l=m(G[G.length-1]),G=new mxCell(2<G.length?G[1]:"",new mxGeometry),G.edge=!0,h.insertEdge(G,!0),l.insertEdge(G,!1),
-u.push(G))}if(0<u.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);g=new Graph(d);g.getModel().beginUpdate();try{u=g.importCells(u);for(q=0;q<u.length;q++)g.getModel().isVertex(u[q])&&(t=g.getPreferredSizeForCell(u[q]),u[q].geometry.width=Math.max(u[q].geometry.width,t.width),u[q].geometry.height=Math.max(u[q].geometry.height,t.height));f=new mxFastOrganicLayout(g);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(g.getDefaultParent())}finally{g.getModel().endUpdate()}g.clearCellOverlays();
+"cells",[f].concat(f.children)))}finally{g.getModel().endUpdate()}g.setSelectionCell(f);g.scrollCellToVisible(g.getSelectionCell())}}else{for(var m=function(a){var b=E[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,E[a]=b,u.push(b));return b},E={},u=[],q=0;q<d.length;q++)if(";"!=d[q].charAt(0)){var H=d[q].split("->");2<=H.length&&(h=m(H[0]),l=m(H[H.length-1]),H=new mxCell(2<H.length?H[1]:"",new mxGeometry),H.edge=!0,h.insertEdge(H,!0),l.insertEdge(H,!1),
+u.push(H))}if(0<u.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);g=new Graph(d);g.getModel().beginUpdate();try{u=g.importCells(u);for(q=0;q<u.length;q++)g.getModel().isVertex(u[q])&&(t=g.getPreferredSizeForCell(u[q]),u[q].geometry.width=Math.max(u[q].geometry.width,t.width),u[q].geometry.height=Math.max(u[q].geometry.height,t.height));f=new mxFastOrganicLayout(g);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(g.getDefaultParent())}finally{g.getModel().endUpdate()}g.clearCellOverlays();
m=[];a.editor.graph.getModel().beginUpdate();try{m=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),e.x,e.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(m[0]);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());g.destroy();d.parentNode.removeChild(d)}}}function c(){return"list"==l.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":
"table"==l.value?"CREATE TABLE Persons\n(\nPersonID int NOT NULL PRIMARY KEY,\nLastName varchar(255),\nFirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);":"plantUmlPng"==l.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":"plantUmlSvg"==l.value||"plantUmlTxt"==l.value?
"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var e=a.editor.graph.getFreeInsertPoint(),f=document.createElement("div");f.style.textAlign="right";var h=document.createElement("textarea");h.style.resize="none";h.style.width="100%";h.style.height="354px";h.style.marginBottom="16px";
var l=document.createElement("select"),m=document.createElement("option");m.setAttribute("value","list");m.setAttribute("selected","selected");mxUtils.write(m,mxResources.get("list"));l.appendChild(m);m=document.createElement("option");m.setAttribute("value","table");mxUtils.write(m,mxResources.get("table"));l.appendChild(m);m=document.createElement("option");m.setAttribute("value","diagram");mxUtils.write(m,mxResources.get("diagram"));l.appendChild(m);m=document.createElement("option");m.setAttribute("value",
"plantUmlSvg");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");var g=document.createElement("option");g.setAttribute("value","plantUmlPng");mxUtils.write(g,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var k=document.createElement("option");k.setAttribute("value","plantUmlTxt");mxUtils.write(k,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&(l.appendChild(m),l.appendChild(g),
l.appendChild(k));var n=c();h.value=n;f.appendChild(h);this.init=function(){h.focus()};Graph.fileSupport&&(h.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),h.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){h.value=a.target.result};b.readAsText(a)}},!1));f.appendChild(l);mxEvent.addListener(l,"change",function(){var a=c();if(0==h.value.length||
-h.value==n)n=a,h.value=n});m=mxUtils.button(mxResources.get("close"),function(){h.value==n?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});m.className="geBtn";a.editor.cancelFirst&&f.appendChild(m);g=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();d(h.value,l.value)});f.appendChild(g);g.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(m);this.container=f},NewDialog=function(a,b,d,c,e,f,h,l,m,g,k,n,q,u,p){function v(){for(var a=
-!0;E<N.length&&(a||0!=mxUtils.mod(E,30));)a=N[E++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick),a=!1}function y(){if(M)a.hideDialog(),u(M,R,H.value);else if(c)d||a.hideDialog(),c(T,H.value);else{var b=H.value;null!=b&&0<b.length&&a.pickFolder(a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_TRELLO||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null,function(c){a.createFile(b,T,null!=S&&0<S.length?S:null,null,function(){a.hideDialog()},
-null,c)})}}function z(a,b,c,d,g){null!=P&&(P.style.backgroundColor="transparent",P.style.border="1px solid transparent");D.removeAttribute("disabled");T=b;S=c;P=a;M=d;R=g;P.style.backgroundColor=l;P.style.border=m}function t(a,b,c,d,g,k,e,t){var n=document.createElement("div");n.className="geTemplate";n.style.height=Y+"px";n.style.width=U+"px";null!=d&&0<d.length&&n.setAttribute("title",d);if(null!=k)n.style.backgroundImage="url("+k+")",n.style.backgroundSize="contain",n.style.backgroundPosition=
-"center center",n.style.backgroundRepeat="no-repeat",mxEvent.addListener(n,"click",function(b){z(n,null,null,a,e)}),mxEvent.addListener(n,"dblclick",function(a){y()});else if(null!=a&&0<a.length){a.substring(0,a.length-4);n.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";n.style.backgroundPosition="center center";n.style.backgroundRepeat="no-repeat";var f=!1;mxEvent.addListener(n,"click",function(c){D.setAttribute("disabled","disabled");n.style.backgroundColor="transparent";
-n.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(z(n,a.getText(),b),f&&y())}))});mxEvent.addListener(n,"dblclick",function(a){f=!0})}else n.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",g&&z(n),null!=t?mxEvent.addListener(n,"click",t):(mxEvent.addListener(n,"click",function(a){z(n)}),mxEvent.addListener(n,"dblclick",function(a){y()}));
-I.appendChild(n)}function A(){mxEvent.addListener(I,"scroll",function(a){I.scrollTop+I.clientHeight>=I.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in V){var c=document.createElement("div"),d=mxResources.get(b),k=V[b];null==d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18<d.length&&(d=d.substring(0,18)+"&hellip;");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";c.setAttribute("title",d+" ("+
-k.length+")");mxUtils.write(c,c.getAttribute("title"));null!=g&&(c.style.padding=g);J.appendChild(c);null==a&&(a=c,a.style.backgroundColor=h);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d,a.style.backgroundColor=h,I.scrollTop=0,I.innerHTML="",E=0,N=V[b],B=null,v())})})(b,c)}v()}d=null!=d?d:!0;e=null!=e?e:!1;h=null!=h?h:"#ebf2f9";l=null!=l?l:"#e6eff8";m=null!=m?m:"1px solid #ccd9ea";k=null!=k?k:TEMPLATE_PATH+"/index.xml";var x=document.createElement("div");
-x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";d&&x.appendChild(C);var w=document.createElement("img");w.setAttribute("border","0");w.setAttribute("align","absmiddle");w.style.width="40px";w.style.height="40px";w.style.marginRight="10px";w.style.paddingBottom="4px";w.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":
-a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!b&&d&&C.appendChild(w);d&&mxUtils.write(C,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");w=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?w=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?w=a.dropbox.extension:
-a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?w=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?w=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(w=a.trello.extension);var H=document.createElement("input");H.setAttribute("value",a.defaultFilename+w);H.style.marginRight="20px";H.style.marginLeft="10px";H.style.width=b?"220px":"430px";this.init=function(){d&&(H.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?H.select():document.execCommand("selectAll",
-!1,null))};d&&C.appendChild(H);var C=!1,E=0,D=mxUtils.button(mxResources.get("create"),function(){y()});D.className="geBtn gePrimaryBtn";if(n||q){var G=[],B=null,L=function(a){D.setAttribute("disabled","disabled");for(var b=0;b<G.length;b++)G[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,w=document.createElement("div");w.style.whiteSpace="nowrap";w.style.height="30px";x.appendChild(w);var F=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){J.style.display="";I.style.left=
-"160px";L(0);I.scrollTop=0;I.innerHTML="";E=0;B!=N&&(N=B,v(),B=null)});G.push(F);w.appendChild(F);var K=function(a){J.style.display="none";I.style.left="30px";L(a?-1:1);null==B&&(B=N);I.scrollTop=0;I.innerHTML="";var b=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});b.spin(I);E=0;var c=function(a,c){b.stop();N=a;c?I.innerHTML=c:0==a.length?I.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(I.innerHTML=
-"",v())};a?q(O.value,c):n(c)};n&&(F=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){K()}),w.appendChild(F),G.push(F));if(q){F=document.createElement("span");F.style.marginLeft="10px";F.innerHTML=mxResources.get("search")+":";w.appendChild(F);var O=document.createElement("input");O.style.marginRight="10px";O.style.marginLeft="10px";O.style.width="220px";mxEvent.addListener(O,"keypress",function(a){13==a.keyCode&&K(!0)});w.appendChild(O);F=mxUtils.button(mxResources.get("search"),
-function(){K(!0)});F.className="geBtn";w.appendChild(F)}L(0)}var S=null,T=null,P=null,M=null,R=null,I=document.createElement("div");I.style.border="1px solid #d3d3d3";I.style.position="absolute";I.style.left="160px";I.style.right="34px";C=(d?72:40)+(C?30:0);I.style.top=C+"px";I.style.bottom="68px";I.style.margin="6px 0 0 -1px";I.style.padding="6px";I.style.overflow="auto";var J=document.createElement("div");J.style.cssText="position:absolute;left:30px;width:128px;top:"+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";
-var Y=140,U=140,V={},X=1;V.basic=[{title:"blankDiagram",select:!0}];var N=V.basic;if(!b){x.appendChild(J);x.appendChild(I);var Q=!1;mxUtils.get(k,function(a){if(!Q){Q=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=V[b];null==c&&(X++,c=[],V[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url")})}}a=
-a.nextSibling}A()}})}mxEvent.addListener(H,"keypress",function(a){13==a.keyCode&&y()});k=document.createElement("div");k.style.marginTop=b?"4px":"16px";k.style.textAlign="right";k.style.position="absolute";k.style.left="40px";k.style.bottom="24px";k.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=f&&f();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||e&&null==f||k.appendChild(C);b||a.isOffline()||!d||null!=c||e||(w=mxUtils.button(mxResources.get("help"),
-function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),w.className="geBtn",k.appendChild(w));b||"1"==urlParams.embed||e||(b=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(H.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},
-mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",k.appendChild(b));Graph.fileSupport&&p&&(p=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(c){a.openFiles(b.files,!0)});b.click()}),p.className="geBtn",k.appendChild(p));k.appendChild(D);a.editor.cancelFirst||null!=c||e&&null==f||k.appendChild(C);x.appendChild(k);
-this.container=x},CreateDialog=function(a,b,d,c,e,f,h,l,m,g,k,n,q,u,p){function v(c,d,g,k){function e(){mxEvent.addListener(t,"click",function(){var c=g;if(h){var d=A.value,k=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>k){var c=null!=c?c:w.value,t="";c==App.MODE_GOOGLE?t=a.drive.extension:c==App.MODE_GITHUB?t=a.gitHub.extension:c==App.MODE_TRELLO?t=a.trello.extension:c==App.MODE_DROPBOX?t=a.dropbox.extension:c==App.MODE_ONEDRIVE?t=a.oneDrive.extension:c==App.MODE_DEVICE&&(t=".xml");0<=k&&(d=d.substring(0,
-k));A.value=d+t}}y(g)})}var t=document.createElement("a");t.style.overflow="hidden";var f=document.createElement("img");f.src=c;f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.width="60px";f.style.height="60px";f.style.paddingBottom="6px";t.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";t.className="geBaseButton";t.style.position="relative";t.style.margin="4px";t.style.padding="8px 8px 10px 8px";t.style.whiteSpace="nowrap";t.appendChild(f);mxClient.IS_QUIRKS&&(t.style.cssFloat=
-"left",t.style.zoom="1");t.style.color="gray";t.style.fontSize="11px";var u=document.createElement("div");t.appendChild(u);mxUtils.write(u,d);if(null!=k&&null==a[k]){f.style.visibility="hidden";mxUtils.setOpacity(u,10);var q=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});q.spin(t);var p=window.setTimeout(function(){null==a[k]&&(q.stop(),t.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=a[k]&&(window.clearTimeout(p),mxUtils.setOpacity(u,100),f.style.visibility="",q.stop(),e())}))}else e();x.appendChild(t);++C==n&&(mxUtils.br(x),C=0)}function y(b){var c=A.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),d(c,b)}h=null!=h?h:!0;l=null!=l?l:!0;n=null!=n?n:4;var z=document.createElement("div");null==c&&a.addLanguageMenu(z);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop="0px";t.style.marginBottom="24px";z.appendChild(t);
-mxUtils.write(z,mxResources.get("filename")+":");var A=document.createElement("input");A.setAttribute("value",b);A.style.width="280px";A.style.marginLeft="10px";A.style.marginBottom="20px";this.init=function(){A.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?A.select():document.execCommand("selectAll",!1,null)};z.appendChild(A);null!=q&&null!=u&&"image/"==u.substring(0,6)&&(A.style.width="160px",e=null,"image/svg+xml"==u&&mxClient.IS_SVG?(e=document.createElement("div"),
-e.innerHTML=mxUtils.trim(q),q=e.getElementsByTagName("svg")[0],u=parseInt(q.getAttribute("width")),p=parseInt(q.getAttribute("height")),q.setAttribute("viewBox","0 0 "+u+" "+p),q.setAttribute("width","120px"),q.setAttribute("height","80px")):(e=document.createElement("img"),e.setAttribute("src","data:"+u+(p?";base64,":";utf8,")+q)),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"),
-z.appendChild(e),m&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){y("_blank")})));mxUtils.br(z);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";z.appendChild(x);var w=document.createElement("select");w.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(e,mxResources.get("googleDrive")),w.appendChild(e),
-v(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(e,mxResources.get("oneDrive")),w.appendChild(e),a.mode==App.MODE_ONEDRIVE&&e.setAttribute("selected","selected"),v(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(e=document.createElement("option"),
-e.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(e,mxResources.get("dropbox")),w.appendChild(e),a.mode==App.MODE_DROPBOX&&e.setAttribute("selected","selected"),v(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GITHUB),mxUtils.write(e,mxResources.get("github")),w.appendChild(e),v(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&&
-(e=document.createElement("option"),e.setAttribute("value",App.MODE_TRELLO),mxUtils.write(e,mxResources.get("trello")),w.appendChild(e),v(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)e=document.createElement("option"),e.setAttribute("value",App.MODE_DEVICE),mxUtils.write(e,mxResources.get("device")),w.appendChild(e),a.mode!=App.MODE_DEVICE&&l||e.setAttribute("selected",
-"selected"),k&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),w.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");l.style.marginTop="26px";l.style.textAlign="right";
-null!=g&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),e.className="geBtn",l.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);null==c&&(q=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),q.className="geBtn",l.appendChild(q));m&&(m=mxUtils.button(mxResources.get("openInNewWindow"),function(){y("_blank")}),
-m.className="geBtn",l.appendChild(m));mxClient.IS_IOS||(f=mxUtils.button(f||mxResources.get("create"),function(){y(k?"download":App.MODE_DEVICE)}),f.className="geBtn gePrimaryBtn",l.appendChild(f));a.editor.cancelFirst||l.appendChild(e);mxEvent.addListener(A,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});z.appendChild(l);this.container=z},PopupDialog=function(a,b,d,c,e){e=null!=e?e:!0;var f=document.createElement("div");
+h.value==n)n=a,h.value=n});m=mxUtils.button(mxResources.get("close"),function(){h.value==n?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});m.className="geBtn";a.editor.cancelFirst&&f.appendChild(m);g=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();d(h.value,l.value)});f.appendChild(g);g.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(m);this.container=f},NewDialog=function(a,b,d,c,e,f,h,l,m,g,k,n,q,u,p){function w(){for(var a=
+!0;D<R.length&&(a||0!=mxUtils.mod(D,30));)a=R[D++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick),a=!1}function x(){if(M)a.hideDialog(),u(M,W,G.value);else if(c)d||a.hideDialog(),c(Y,G.value);else{var b=G.value;null!=b&&0<b.length&&a.pickFolder(a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_TRELLO||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null,function(c){a.createFile(b,Y,null!=S&&0<S.length?S:null,null,function(){a.hideDialog()},
+null,c)})}}function y(a,b,c,d,g){null!=N&&(N.style.backgroundColor="transparent",N.style.border="1px solid transparent");E.removeAttribute("disabled");Y=b;S=c;N=a;M=d;W=g;N.style.backgroundColor=l;N.style.border=m}function t(a,b,c,d,g,k,e,t){var n=document.createElement("div");n.className="geTemplate";n.style.height=Z+"px";n.style.width=J+"px";null!=d&&0<d.length&&n.setAttribute("title",d);if(null!=k)n.style.backgroundImage="url("+k+")",n.style.backgroundSize="contain",n.style.backgroundPosition=
+"center center",n.style.backgroundRepeat="no-repeat",mxEvent.addListener(n,"click",function(b){y(n,null,null,a,e)}),mxEvent.addListener(n,"dblclick",function(a){x()});else if(null!=a&&0<a.length){a.substring(0,a.length-4);n.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";n.style.backgroundPosition="center center";n.style.backgroundRepeat="no-repeat";var f=!1;mxEvent.addListener(n,"click",function(c){E.setAttribute("disabled","disabled");n.style.backgroundColor="transparent";
+n.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(y(n,a.getText(),b),f&&x())}))});mxEvent.addListener(n,"dblclick",function(a){f=!0})}else n.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",g&&y(n),null!=t?mxEvent.addListener(n,"click",t):(mxEvent.addListener(n,"click",function(a){y(n)}),mxEvent.addListener(n,"dblclick",function(a){x()}));
+I.appendChild(n)}function z(){mxEvent.addListener(I,"scroll",function(a){I.scrollTop+I.clientHeight>=I.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,b;for(b in V){var c=document.createElement("div"),d=mxResources.get(b),k=V[b];null==d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18<d.length&&(d=d.substring(0,18)+"&hellip;");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";c.setAttribute("title",d+" ("+
+k.length+")");mxUtils.write(c,c.getAttribute("title"));null!=g&&(c.style.padding=g);Q.appendChild(c);null==a&&(a=c,a.style.backgroundColor=h);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d,a.style.backgroundColor=h,I.scrollTop=0,I.innerHTML="",D=0,R=V[b],A=null,w())})})(b,c)}w()}d=null!=d?d:!0;e=null!=e?e:!1;h=null!=h?h:"#ebf2f9";l=null!=l?l:"#e6eff8";m=null!=m?m:"1px solid #ccd9ea";k=null!=k?k:TEMPLATE_PATH+"/index.xml";var F=document.createElement("div");
+F.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";d&&F.appendChild(C);var v=document.createElement("img");v.setAttribute("border","0");v.setAttribute("align","absmiddle");v.style.width="40px";v.style.height="40px";v.style.marginRight="10px";v.style.paddingBottom="4px";v.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":
+a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!b&&d&&C.appendChild(v);d&&mxUtils.write(C,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");v=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?v=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?v=a.dropbox.extension:
+a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?v=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?v=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(v=a.trello.extension);var G=document.createElement("input");G.setAttribute("value",a.defaultFilename+v);G.style.marginRight="20px";G.style.marginLeft="10px";G.style.width=b?"220px":"430px";this.init=function(){d&&(G.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?G.select():document.execCommand("selectAll",
+!1,null))};d&&C.appendChild(G);var C=!1,D=0,E=mxUtils.button(mxResources.get("create"),function(){E.setAttribute("disabled","disabled");x();E.removeAttribute("disabled")});E.className="geBtn gePrimaryBtn";if(n||q){var H=[],A=null,K=function(a){E.setAttribute("disabled","disabled");for(var b=0;b<H.length;b++)H[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,v=document.createElement("div");v.style.whiteSpace="nowrap";v.style.height="30px";F.appendChild(v);var B=mxUtils.button(mxResources.get("Templates",
+null,"Templates"),function(){Q.style.display="";I.style.left="160px";K(0);I.scrollTop=0;I.innerHTML="";D=0;A!=R&&(R=A,w(),A=null)});H.push(B);v.appendChild(B);var L=function(a){Q.style.display="none";I.style.left="30px";K(a?-1:1);null==A&&(A=R);I.scrollTop=0;I.innerHTML="";var b=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});b.spin(I);D=0;var c=function(a,c){b.stop();R=a;c?I.innerHTML=c:0==a.length?I.innerHTML=
+mxResources.get("noDiagrams",null,"No Diagrams Found"):(I.innerHTML="",w())};a?q(O.value,c):n(c)};n&&(B=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){L()}),v.appendChild(B),H.push(B));if(q){B=document.createElement("span");B.style.marginLeft="10px";B.innerHTML=mxResources.get("search")+":";v.appendChild(B);var O=document.createElement("input");O.style.marginRight="10px";O.style.marginLeft="10px";O.style.width="220px";mxEvent.addListener(O,"keypress",function(a){13==a.keyCode&&
+L(!0)});v.appendChild(O);B=mxUtils.button(mxResources.get("search"),function(){L(!0)});B.className="geBtn";v.appendChild(B)}K(0)}var S=null,Y=null,N=null,M=null,W=null,I=document.createElement("div");I.style.border="1px solid #d3d3d3";I.style.position="absolute";I.style.left="160px";I.style.right="34px";C=(d?72:40)+(C?30:0);I.style.top=C+"px";I.style.bottom="68px";I.style.margin="6px 0 0 -1px";I.style.padding="6px";I.style.overflow="auto";var Q=document.createElement("div");Q.style.cssText="position:absolute;left:30px;width:128px;top:"+
+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Z=140,J=140,V={},T=1;V.basic=[{title:"blankDiagram",select:!0}];var R=V.basic;if(!b){F.appendChild(Q);F.appendChild(I);var U=!1;mxUtils.get(k,function(a){if(!U){U=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=V[b];null==c&&(T++,c=[],V[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),
+title:a.getAttribute("title"),tooltip:a.getAttribute("url")})}}a=a.nextSibling}z()}})}mxEvent.addListener(G,"keypress",function(a){13==a.keyCode&&x()});k=document.createElement("div");k.style.marginTop=b?"4px":"16px";k.style.textAlign="right";k.style.position="absolute";k.style.left="40px";k.style.bottom="24px";k.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=f&&f();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||e&&null==f||k.appendChild(C);b||a.isOffline()||
+!d||null!=c||e||(v=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),v.className="geBtn",k.appendChild(v));b||"1"==urlParams.embed||e||(b=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(G.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?
+window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",k.appendChild(b));Graph.fileSupport&&p&&(p=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(c){a.openFiles(b.files,!0)});b.click()}),p.className="geBtn",k.appendChild(p));k.appendChild(E);a.editor.cancelFirst||null!=
+c||e&&null==f||k.appendChild(C);F.appendChild(k);this.container=F},CreateDialog=function(a,b,d,c,e,f,h,l,m,g,k,n,q,u,p){function w(c,d,g,k){function e(){mxEvent.addListener(t,"click",function(){var c=g;if(h){var d=z.value,k=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>k){var c=null!=c?c:v.value,t="";c==App.MODE_GOOGLE?t=a.drive.extension:c==App.MODE_GITHUB?t=a.gitHub.extension:c==App.MODE_TRELLO?t=a.trello.extension:c==App.MODE_DROPBOX?t=a.dropbox.extension:c==App.MODE_ONEDRIVE?t=a.oneDrive.extension:
+c==App.MODE_DEVICE&&(t=".xml");0<=k&&(d=d.substring(0,k));z.value=d+t}}x(g)})}var t=document.createElement("a");t.style.overflow="hidden";var f=document.createElement("img");f.src=c;f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.width="60px";f.style.height="60px";f.style.paddingBottom="6px";t.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";t.className="geBaseButton";t.style.position="relative";t.style.margin="4px";t.style.padding="8px 8px 10px 8px";t.style.whiteSpace=
+"nowrap";t.appendChild(f);mxClient.IS_QUIRKS&&(t.style.cssFloat="left",t.style.zoom="1");t.style.color="gray";t.style.fontSize="11px";var u=document.createElement("div");t.appendChild(u);mxUtils.write(u,d);if(null!=k&&null==a[k]){f.style.visibility="hidden";mxUtils.setOpacity(u,10);var q=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});q.spin(t);var p=window.setTimeout(function(){null==a[k]&&(q.stop(),t.style.display=
+"none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[k]&&(window.clearTimeout(p),mxUtils.setOpacity(u,100),f.style.visibility="",q.stop(),e())}))}else e();F.appendChild(t);++C==n&&(mxUtils.br(F),C=0)}function x(b){var c=z.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),d(c,b)}h=null!=h?h:!0;l=null!=l?l:!0;n=null!=n?n:4;var y=document.createElement("div");null==c&&a.addLanguageMenu(y);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop=
+"0px";t.style.marginBottom="24px";y.appendChild(t);mxUtils.write(y,mxResources.get("filename")+":");var z=document.createElement("input");z.setAttribute("value",b);z.style.width="280px";z.style.marginLeft="10px";z.style.marginBottom="20px";this.init=function(){z.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?z.select():document.execCommand("selectAll",!1,null)};y.appendChild(z);null!=q&&null!=u&&"image/"==u.substring(0,6)&&(z.style.width="160px",e=null,"image/svg+xml"==
+u&&mxClient.IS_SVG?(e=document.createElement("div"),e.innerHTML=mxUtils.trim(q),q=e.getElementsByTagName("svg")[0],u=parseInt(q.getAttribute("width")),p=parseInt(q.getAttribute("height")),q.setAttribute("viewBox","0 0 "+u+" "+p),q.setAttribute("width","120px"),q.setAttribute("height","80px")):(e=document.createElement("img"),e.setAttribute("src","data:"+u+(p?";base64,":";utf8,")+q)),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",
+mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"),y.appendChild(e),m&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){x("_blank")})));mxUtils.br(y);var F=document.createElement("div");F.style.textAlign="center";var C=0;F.style.marginTop="6px";y.appendChild(F);var v=document.createElement("select");v.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GOOGLE),
+mxUtils.write(e,mxResources.get("googleDrive")),v.appendChild(e),w(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(e,mxResources.get("oneDrive")),v.appendChild(e),a.mode==App.MODE_ONEDRIVE&&e.setAttribute("selected","selected"),w(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),
+"function"===typeof window.DropboxClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(e,mxResources.get("dropbox")),v.appendChild(e),a.mode==App.MODE_DROPBOX&&e.setAttribute("selected","selected"),w(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GITHUB),mxUtils.write(e,mxResources.get("github")),v.appendChild(e),w(IMAGE_PATH+"/github-logo.svg",
+mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_TRELLO),mxUtils.write(e,mxResources.get("trello")),v.appendChild(e),w(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)e=document.createElement("option"),e.setAttribute("value",App.MODE_DEVICE),mxUtils.write(e,mxResources.get("device")),
+v.appendChild(e),a.mode!=App.MODE_DEVICE&&l||e.setAttribute("selected","selected"),k&&w(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),v.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected","selected"),w(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");
+l.style.marginTop="26px";l.style.textAlign="right";null!=g&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),e.className="geBtn",l.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);null==c&&(q=mxUtils.button(mxResources.get("decideLater"),function(){x(null)}),q.className="geBtn",l.appendChild(q));m&&(m=mxUtils.button(mxResources.get("openInNewWindow"),
+function(){x("_blank")}),m.className="geBtn",l.appendChild(m));mxClient.IS_IOS||(f=mxUtils.button(f||mxResources.get("create"),function(){x(k?"download":App.MODE_DEVICE)}),f.className="geBtn gePrimaryBtn",l.appendChild(f));a.editor.cancelFirst||l.appendChild(e);mxEvent.addListener(z,"keypress",function(b){13==b.keyCode?x(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});y.appendChild(l);this.container=y},PopupDialog=function(a,b,d,c,e){e=null!=e?e:!0;var f=document.createElement("div");
f.style.textAlign="left";mxUtils.write(f,mxResources.get("fileOpenLocation"));mxUtils.br(f);mxUtils.br(f);var h=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=c&&c()});h.className="geBtn";h.style.marginBottom="8px";h.style.width="280px";f.appendChild(h);mxUtils.br(f);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=d&&d();a.openLink(b)});l.className="geBtn gePrimaryBtn";l.style.width=h.style.width;f.appendChild(l);mxUtils.br(f);
mxUtils.br(f);mxUtils.write(f,mxResources.get("allowPopups"));this.container=f},ImageDialog=function(a,b,d,c,e,f){f=null!=f?f:!0;var h=a.editor.graph,l=document.createElement("div");mxUtils.write(l,b);b=document.createElement("div");b.className="geTitle";b.style.backgroundColor="transparent";b.style.borderColor="transparent";b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.cursor="default";mxClient.IS_VML||(b.style.paddingRight="20px");var m=document.createElement("input");m.setAttribute("value",
d);m.setAttribute("type","text");m.setAttribute("spellcheck","false");m.setAttribute("autocorrect","off");m.setAttribute("autocomplete","off");m.setAttribute("autocapitalize","off");m.style.marginTop="6px";m.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";m.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";m.style.backgroundRepeat="no-repeat";m.style.backgroundPosition="100% 50%";m.style.paddingRight="14px";d=document.createElement("div");d.setAttribute("title",
@@ -6587,20 +6657,20 @@ typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(q=m
(q=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),
q.className="geBtn",d.appendChild(q)));mxEvent.addListener(m,"keypress",function(a){13==a.keyCode&&k(m.value)});q=mxUtils.button(mxResources.get("apply"),function(){k(m.value)});q.className="geBtn gePrimaryBtn";d.appendChild(q);a.editor.cancelFirst||d.appendChild(b);Graph.fileSupport&&(d.style.marginTop="120px",l.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",l.style.backgroundPosition="center 65%",l.style.backgroundRepeat="no-repeat",b=document.createElement("div"),b.style.position=
"absolute",b.style.width="420px",b.style.top="58%",b.style.textAlign="center",b.style.fontSize="18px",b.style.color="#a0c3ff",mxUtils.write(b,mxResources.get("dragImagesHere")),l.appendChild(b));l.appendChild(d);this.container=l},LinkDialog=function(a,b,d,c,e){function f(a,b,c){c=mxUtils.button("",c);c.className="geBtn";c.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";b.style.width="26px";b.setAttribute("src",a);c.style.minWidth="42px";c.style.verticalAlign="middle";
-c.appendChild(b);y.appendChild(c)}var h=document.createElement("div");mxUtils.write(h,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var m=document.createElement("input");m.setAttribute("placeholder",mxResources.get("dragUrlsHere"));m.setAttribute("type","text");
+c.appendChild(b);x.appendChild(c)}var h=document.createElement("div");mxUtils.write(h,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var m=document.createElement("input");m.setAttribute("placeholder",mxResources.get("dragUrlsHere"));m.setAttribute("type","text");
m.style.marginTop="6px";m.style.width="400px";m.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";m.style.backgroundRepeat="no-repeat";m.style.backgroundPosition="100% 50%";m.style.paddingRight="14px";var g=document.createElement("div");g.setAttribute("title",mxResources.get("reset"));g.style.position="relative";g.style.left="-16px";g.style.width="12px";g.style.height="14px";g.style.cursor="pointer";g.style.display=mxClient.IS_VML?"inline":"inline-block";g.style.top=(mxClient.IS_VML?
0:3)+"px";g.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(g,"click",function(){m.value="";m.focus()});var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","current-linkdialog");var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","url");n.setAttribute("type","radio");n.setAttribute("name",
"current-linkdialog");var q=document.createElement("select");q.style.width="380px";if(e&&null!=a.pages){null!=b&&a.editor.graph.isPageLink(b)?(n.setAttribute("checked","checked"),n.defaultChecked=!0):(m.setAttribute("value",b),k.setAttribute("checked","checked"),k.defaultChecked=!0);m.style.width="380px";l.appendChild(k);l.appendChild(m);l.appendChild(g);mxUtils.br(l);l.appendChild(n);e=!1;for(g=0;g<a.pages.length;g++){var u=document.createElement("option");mxUtils.write(u,a.pages[g].getName()||mxResources.get("pageWithNumber",
[g+1]));u.setAttribute("value","data:page/id,"+a.pages[g].getId());b==u.getAttribute("value")&&(u.setAttribute("selected","selected"),e=!0);q.appendChild(u)}if(!e&&n.checked){var p=document.createElement("option");mxUtils.write(p,mxResources.get("pageNotFound"));p.setAttribute("disabled","disabled");p.setAttribute("selected","selected");p.setAttribute("value","pageNotFound");q.appendChild(p);mxEvent.addListener(q,"change",function(){null==p.parentNode||p.selected||p.parentNode.removeChild(p)})}l.appendChild(q)}else m.setAttribute("value",
-b),l.appendChild(m),l.appendChild(g);h.appendChild(l);var v=mxUtils.button(d,function(){a.hideDialog();c(n.checked?"pageNotFound"!==q.value?q.value:b:m.value,LinkDialog.selectedDocs)});v.style.verticalAlign="middle";v.className="geBtn gePrimaryBtn";this.init=function(){n.checked?q.focus():(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(q,"focus",function(){k.removeAttribute("checked");
+b),l.appendChild(m),l.appendChild(g);h.appendChild(l);var w=mxUtils.button(d,function(){a.hideDialog();c(n.checked?"pageNotFound"!==q.value?q.value:b:m.value,LinkDialog.selectedDocs)});w.style.verticalAlign="middle";w.className="geBtn gePrimaryBtn";this.init=function(){n.checked?q.focus():(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(q,"focus",function(){k.removeAttribute("checked");
n.setAttribute("checked","checked");n.checked=!0});mxEvent.addListener(m,"focus",function(){n.removeAttribute("checked");k.setAttribute("checked","checked");k.checked=!0});if(Graph.fileSupport){var b=h.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();
-d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(m.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),k.setAttribute("checked","checked"),k.checked=!0,v.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");y.style.marginTop="20px";y.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
-d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&y.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(b=DriveClient.prototype.oldAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?
+d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(m.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),k.setAttribute("checked","checked"),k.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var x=document.createElement("div");x.style.marginTop="20px";x.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&x.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(b=DriveClient.prototype.oldAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?
(b=DriveClient.prototype.newAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/vnd.google-apps.folder"==a.docs[0].mimeType&&(b="https://drive.google.com/#folders/"+a.docs[0].id);m.value=b;m.focus()}else LinkDialog.selectedDocs=null;m.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&f(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,
function(){a.spinner.stop();if(null==a.linkPicker){var b=gapi.auth.getToken().access_token,c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),d=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(c).addView(d).addView(g).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);
"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&f(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){m.value=a[0].link;m.focus()}})});null!=
a.oneDrive&&f(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){m.value=b.value[0].webUrl;m.focus()})});null!=a.gitHub&&f(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],c=a[1],d=a[2];a=a.slice(3,a.length).join("/");m.value="https://github.com/"+b+"/"+c+"/blob/"+d+"/"+a;m.focus()}})});mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),
-c(n.checked?q.value:m.value,LinkDialog.selectedDocs))});y.appendChild(v);a.editor.cancelFirst||y.appendChild(d);h.appendChild(y);this.container=h},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
+c(n.checked?q.value:m.value,LinkDialog.selectedDocs))});x.appendChild(w);a.editor.cancelFirst||x.appendChild(d);h.appendChild(x);this.container=h},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
(d.setAttribute("width","176"),d.setAttribute("height","219"),d.style.width="170px",d.style.height="219px",d.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));b.appendChild(d);mxUtils.br(b);d=document.createElement("small");d.innerHTML="v "+EditorUi.VERSION;d.style.color="#505050";b.appendChild(d);mxUtils.br(b);mxUtils.br(b);d=document.createElement("small");d.style.color="#505050";d.innerHTML='&copy; 2005-2018 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.';
b.appendChild(d);mxEvent.addListener(b,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=b},FeedbackDialog=function(a){var b=document.createElement("div"),d=document.createElement("div");mxUtils.write(d,mxResources.get("sendYourFeedbackToDrawIo"));d.style.fontSize="18px";d.style.marginBottom="18px";b.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");b.appendChild(d);var c=document.createElement("input");
c.setAttribute("type","text");c.style.marginTop="6px";c.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(h.checked?"\nDiagram:\n"+a.getFileData():"")+"\nBrowser:\n"+navigator.userAgent;b.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(c.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+
@@ -6610,36 +6680,36 @@ mxEvent.addListener(c,"change",function(){0<c.value.length&&0<f.test(c.value)?e.
b.appendChild(m);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(d.appendChild(l),d.appendChild(e)):(d.appendChild(e),d.appendChild(l));b.appendChild(d);this.container=b};FeedbackDialog.maxAttachmentSize=1E6;
var RevisionDialog=function(a,b,d){var c=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));c.appendChild(e);var f=document.createElement("div");f.style.position="absolute";f.style.overflow="auto";f.style.width="170px";f.style.height="378px";c.appendChild(f);var h=document.createElement("div");h.style.position="absolute";h.style.border="1px solid lightGray";h.style.left="199px";h.style.width="470px";h.style.height=
"376px";h.style.overflow="hidden";mxEvent.disableContextMenu(h);c.appendChild(h);var l=new Graph(h);l.setEnabled(!1);l.setPanning(!0);l.panningHandler.ignoreCell=!0;l.panningHandler.useLeftButtonForPanning=!0;l.minFitScale=null;l.maxFitScale=null;l.centerZoom=!0;var m=0,g=null,k=0,n=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=g&&null!=g[k]?g[k].getAttribute("name"):"pagenumber"==a?k+1:n.apply(this,arguments)};l.getLinkForCell=function(){return null};Editor.MathJaxRender&&
-l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var q=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),u=a.getCurrentFile(),p=null,v=null,y=null,z=null,t=mxUtils.button("",function(){null!=y&&l.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn"));
-t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");mxUtils.setOpacity(t,20);var A=mxUtils.button("",function(){null!=y&&l.zoomOut()});A.className="geSprite geSprite-zoomout";A.setAttribute("title",mxResources.get("zoomOut"));A.style.outline="none";A.style.border="none";A.style.margin="2px";A.setAttribute("disabled","disabled");mxUtils.setOpacity(A,20);var x=mxUtils.button("",function(){null!=y&&(l.maxFitScale=8,l.fit(8),l.center())});x.className=
-"geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=y&&(l.zoomActual(),l.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var w=
-document.createElement("div");w.style.position="absolute";w.style.textAlign="right";w.style.color="gray";w.style.marginTop="10px";w.style.backgroundColor="transparent";w.style.top="440px";w.style.right="32px";w.style.maxWidth="380px";w.style.cursor="default";var H=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(y.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
-(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+c)).simulate(document,"_blank"))}});H.className="geBtn";H.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=z&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(z):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();
-a.replaceFileData(z);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});E.className="geBtn";E.setAttribute("disabled","disabled");var D=document.createElement("select");D.setAttribute("disabled","disabled");D.style.maxWidth="80px";D.style.position="relative";D.style.top="-2px";D.style.verticalAlign="bottom";D.style.marginRight="6px";D.style.display="none";var G=null;mxEvent.addListener(D,"change",function(a){null!=
-G&&(G(a),mxEvent.consume(a))});var B=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),window.openWindow(a.getUrl()))});B.className="geBtn";B.setAttribute("disabled","disabled");null!=d&&(B.style.display="none");var L=mxUtils.button(mxResources.get("show"),function(){null!=v&&a.openLink(v.getUrl())});L.className="geBtn gePrimaryBtn";L.setAttribute("disabled",
-"disabled");null!=d&&(L.style.display="none",E.className="geBtn gePrimaryBtn");e=document.createElement("div");e.style.position="absolute";e.style.top="482px";e.style.width="640px";e.style.textAlign="right";var F=document.createElement("div");F.className="geToolbarContainer";F.style.backgroundColor="transparent";F.style.padding="2px";F.style.border="none";F.style.left="199px";F.style.top="442px";var K=null;if(null!=b&&0<b.length){h.style.cursor="move";var O=document.createElement("table");O.style.border=
-"1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var S=document.createElement("tbody"),T=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(m=mxUtils.indexOf(a.pages,a.currentPage));for(var P=b.length-1;0<=P;P--){var M=function(c){var d=new Date(c.modifiedDate),e=null;if(0<=d.getTime()){var n=function(b){q.stop();var c=mxUtils.parseXml(b),n=a.editor.extractGraphModel(c.documentElement,!0);if(null!=n){var f=function(b){null!=b&&(b=
-p(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},p=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";h.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};D.style.display="none";D.innerHTML="";y=c;z=b;g=parseSelectFunction=null;k=0;if("mxfile"==n.nodeName){c=n.getElementsByTagName("diagram");g=[];for(b=0;b<c.length;b++)g.push(c[b]);
-k=Math.min(m,g.length-1);0<g.length&&f(g[k]);if(1<g.length)for(D.removeAttribute("disabled"),D.style.display="",b=0;b<g.length;b++)c=document.createElement("option"),mxUtils.write(c,g[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==k&&c.setAttribute("selected","selected"),D.appendChild(c);G=function(){k=m=parseInt(D.value);f(g[m])}}else p(n);w.innerHTML="";mxUtils.write(w,d.toLocaleDateString()+" "+d.toLocaleTimeString());w.setAttribute("title",e.getAttribute("title"));
-t.removeAttribute("disabled");A.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),H.removeAttribute("disabled"),L.removeAttribute("disabled"),B.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(A,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else D.style.display="none",D.innerHTML="",w.innerHTML="",mxUtils.write(w,mxResources.get("errorLoadingFile"))},
-e=document.createElement("tr");e.style.borderBottom="1px solid lightGray";e.style.fontSize="12px";e.style.cursor="pointer";var f=document.createElement("td");f.style.padding="6px";f.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(f,mxResources.get("current")):d.toDateString()===T?mxUtils.write(f,d.toLocaleTimeString()):mxUtils.write(f,d.toLocaleDateString()+" "+d.toLocaleTimeString());e.appendChild(f);e.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+
-(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(e,"click",function(a){v!=c&&(q.stop(),null!=p&&(p.style.backgroundColor=""),v=c,p=e,p.style.backgroundColor="#ebf2f9",z=y=null,w.removeAttribute("title"),w.innerHTML=mxResources.get("loading")+"...",h.style.backgroundColor="#ffffff",l.getModel().clear(),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),C.setAttribute("disabled",
-"disabled"),x.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(A,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),q.spin(h),c.getXml(function(a){v==c&&n(a)},function(a){q.stop();D.style.display="none";D.innerHTML="";w.innerHTML="";mxUtils.write(w,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(e,"dblclick",function(a){L.click();
-window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);S.appendChild(e)}return e}(b[P]);null!=M&&P==b.length-1&&(K=M)}O.appendChild(S);f.appendChild(O)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(h.style.display="none",F.style.display="none",mxUtils.write(f,mxResources.get("notAvailable"))):(h.style.display="none",F.style.display="none",mxUtils.write(f,
-mxResources.get("noRevisions")));this.init=function(){null!=K&&K.click()};f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn";F.appendChild(D);F.appendChild(t);F.appendChild(A);F.appendChild(C);F.appendChild(x);a.editor.cancelFirst?(e.appendChild(f),e.appendChild(H),e.appendChild(B),e.appendChild(E),e.appendChild(L)):(e.appendChild(H),e.appendChild(B),e.appendChild(E),e.appendChild(L),e.appendChild(f));c.appendChild(e);c.appendChild(F);c.appendChild(w);this.container=
+l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var q=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),u=a.getCurrentFile(),p=null,w=null,x=null,y=null,t=mxUtils.button("",function(){null!=x&&l.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn"));
+t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");mxUtils.setOpacity(t,20);var z=mxUtils.button("",function(){null!=x&&l.zoomOut()});z.className="geSprite geSprite-zoomout";z.setAttribute("title",mxResources.get("zoomOut"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var F=mxUtils.button("",function(){null!=x&&(l.maxFitScale=8,l.fit(8),l.center())});F.className=
+"geSprite geSprite-fit";F.setAttribute("title",mxResources.get("fit"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var C=mxUtils.button("",function(){null!=x&&(l.zoomActual(),l.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var v=
+document.createElement("div");v.style.position="absolute";v.style.textAlign="right";v.style.color="gray";v.style.marginTop="10px";v.style.backgroundColor="transparent";v.style.top="440px";v.style.right="32px";v.style.maxWidth="380px";v.style.cursor="default";var G=mxUtils.button(mxResources.get("download"),function(){if(null!=x){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(x.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
+(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+c)).simulate(document,"_blank"))}});G.className="geBtn";G.setAttribute("disabled","disabled");var D=mxUtils.button(mxResources.get("restore"),function(){null!=x&&null!=y&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(y):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();
+a.replaceFileData(y);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});D.className="geBtn";D.setAttribute("disabled","disabled");var E=document.createElement("select");E.setAttribute("disabled","disabled");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";E.style.display="none";var H=null;mxEvent.addListener(E,"change",function(a){null!=
+H&&(H(a),mxEvent.consume(a))});var A=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=x&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(x.documentElement)),window.openWindow(a.getUrl()))});A.className="geBtn";A.setAttribute("disabled","disabled");null!=d&&(A.style.display="none");var K=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});K.className="geBtn gePrimaryBtn";K.setAttribute("disabled",
+"disabled");null!=d&&(K.style.display="none",D.className="geBtn gePrimaryBtn");e=document.createElement("div");e.style.position="absolute";e.style.top="482px";e.style.width="640px";e.style.textAlign="right";var B=document.createElement("div");B.className="geToolbarContainer";B.style.backgroundColor="transparent";B.style.padding="2px";B.style.border="none";B.style.left="199px";B.style.top="442px";var L=null;if(null!=b&&0<b.length){h.style.cursor="move";var O=document.createElement("table");O.style.border=
+"1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var S=document.createElement("tbody"),Y=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(m=mxUtils.indexOf(a.pages,a.currentPage));for(var N=b.length-1;0<=N;N--){var M=function(c){var d=new Date(c.modifiedDate),e=null;if(0<=d.getTime()){var n=function(b){q.stop();var c=mxUtils.parseXml(b),n=a.editor.extractGraphModel(c.documentElement,!0);if(null!=n){var f=function(b){null!=b&&(b=
+p(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},p=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";h.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};E.style.display="none";E.innerHTML="";x=c;y=b;g=parseSelectFunction=null;k=0;if("mxfile"==n.nodeName){c=n.getElementsByTagName("diagram");g=[];for(b=0;b<c.length;b++)g.push(c[b]);
+k=Math.min(m,g.length-1);0<g.length&&f(g[k]);if(1<g.length)for(E.removeAttribute("disabled"),E.style.display="",b=0;b<g.length;b++)c=document.createElement("option"),mxUtils.write(c,g[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==k&&c.setAttribute("selected","selected"),E.appendChild(c);H=function(){k=m=parseInt(E.value);f(g[m])}}else p(n);v.innerHTML="";mxUtils.write(v,d.toLocaleDateString()+" "+d.toLocaleTimeString());v.setAttribute("title",e.getAttribute("title"));
+t.removeAttribute("disabled");z.removeAttribute("disabled");F.removeAttribute("disabled");C.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&D.removeAttribute("disabled"),G.removeAttribute("disabled"),K.removeAttribute("disabled"),A.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(z,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(C,60)}else E.style.display="none",E.innerHTML="",v.innerHTML="",mxUtils.write(v,mxResources.get("errorLoadingFile"))},
+e=document.createElement("tr");e.style.borderBottom="1px solid lightGray";e.style.fontSize="12px";e.style.cursor="pointer";var f=document.createElement("td");f.style.padding="6px";f.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(f,mxResources.get("current")):d.toDateString()===Y?mxUtils.write(f,d.toLocaleTimeString()):mxUtils.write(f,d.toLocaleDateString()+" "+d.toLocaleTimeString());e.appendChild(f);e.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+
+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(e,"click",function(a){w!=c&&(q.stop(),null!=p&&(p.style.backgroundColor=""),w=c,p=e,p.style.backgroundColor="#ebf2f9",y=x=null,v.removeAttribute("title"),v.innerHTML=mxResources.get("loading")+"...",h.style.backgroundColor="#ffffff",l.getModel().clear(),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),z.setAttribute("disabled","disabled"),C.setAttribute("disabled",
+"disabled"),F.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(z,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(C,20),q.spin(h),c.getXml(function(a){w==c&&n(a)},function(a){q.stop();E.style.display="none";E.innerHTML="";v.innerHTML="";mxUtils.write(v,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(e,"dblclick",function(a){K.click();
+window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);S.appendChild(e)}return e}(b[N]);null!=M&&N==b.length-1&&(L=M)}O.appendChild(S);f.appendChild(O)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(h.style.display="none",B.style.display="none",mxUtils.write(f,mxResources.get("notAvailable"))):(h.style.display="none",B.style.display="none",mxUtils.write(f,
+mxResources.get("noRevisions")));this.init=function(){null!=L&&L.click()};f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn";B.appendChild(E);B.appendChild(t);B.appendChild(z);B.appendChild(C);B.appendChild(F);a.editor.cancelFirst?(e.appendChild(f),e.appendChild(G),e.appendChild(A),e.appendChild(D),e.appendChild(K)):(e.appendChild(G),e.appendChild(A),e.appendChild(D),e.appendChild(K),e.appendChild(f));c.appendChild(e);c.appendChild(B);c.appendChild(v);this.container=
c},DraftDialog=function(a,b,d,c,e,f,h,l){var m=document.createElement("div"),g=document.createElement("div");g.style.marginTop="0px";g.style.whiteSpace="nowrap";g.style.overflow="auto";mxUtils.write(g,b);m.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.marginTop="10px";k.style.width="640px";k.style.top="46px";k.style.bottom="74px";k.style.overflow="hidden";mxEvent.disableContextMenu(k);m.appendChild(k);var n=new Graph(k);
-n.setEnabled(!1);n.setPanning(!0);n.panningHandler.ignoreCell=!0;n.panningHandler.useLeftButtonForPanning=!0;n.minFitScale=null;n.maxFitScale=null;n.centerZoom=!0;b=mxUtils.parseXml(d);var q=a.editor.extractGraphModel(b.documentElement,!0),u=0,p=null,v=n.getGlobalVariable;n.getGlobalVariable=function(a){return"page"==a&&null!=p&&null!=p[u]?p[u].getAttribute("name"):"pagenumber"==a?u+1:v.apply(this,arguments)};n.getLinkForCell=function(){return null};b=mxUtils.button("",function(){n.zoomIn()});b.className=
+n.setEnabled(!1);n.setPanning(!0);n.panningHandler.ignoreCell=!0;n.panningHandler.useLeftButtonForPanning=!0;n.minFitScale=null;n.maxFitScale=null;n.centerZoom=!0;b=mxUtils.parseXml(d);var q=a.editor.extractGraphModel(b.documentElement,!0),u=0,p=null,w=n.getGlobalVariable;n.getGlobalVariable=function(a){return"page"==a&&null!=p&&null!=p[u]?p[u].getAttribute("name"):"pagenumber"==a?u+1:w.apply(this,arguments)};n.getLinkForCell=function(){return null};b=mxUtils.button("",function(){n.zoomIn()});b.className=
"geSprite geSprite-zoomin";b.setAttribute("title",mxResources.get("zoomIn"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);d=mxUtils.button("",function(){n.zoomOut()});d.className="geSprite geSprite-zoomout";d.setAttribute("title",mxResources.get("zoomOut"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);g=mxUtils.button("",function(){n.maxFitScale=8;n.fit(8);n.center()});g.className="geSprite geSprite-fit";g.setAttribute("title",
-mxResources.get("fit"));g.style.outline="none";g.style.border="none";g.style.margin="2px";mxUtils.setOpacity(g,60);var y=mxUtils.button("",function(){n.zoomActual();n.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);e=mxUtils.button(h||mxResources.get("discard"),e);e.className="geBtn";var z=document.createElement("select");z.style.maxWidth="80px";z.style.position=
-"relative";z.style.top="-2px";z.style.verticalAlign="bottom";z.style.marginRight="6px";z.style.display="none";c=mxUtils.button(f||mxResources.get("edit"),c);c.className="geBtn gePrimaryBtn";f=document.createElement("div");f.style.position="absolute";f.style.bottom="30px";f.style.width="640px";f.style.textAlign="right";h=document.createElement("div");h.className="geToolbarContainer";h.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";
-this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";k.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(z,"change",function(a){u=parseInt(z.value);c(p[u]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram");
-p=[];for(var g=0;g<d.length;g++)p.push(d[g]);0<p.length&&c(p[u]);if(1<p.length)for(z.style.display="",g=0;g<p.length;g++)d=document.createElement("option"),mxUtils.write(d,p[g].getAttribute("name")||mxResources.get("pageWithNumber",[g+1])),d.setAttribute("value",g),g==u&&d.setAttribute("selected","selected"),z.appendChild(d)}else b(q)};h.appendChild(z);h.appendChild(b);h.appendChild(d);h.appendChild(y);h.appendChild(g);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className=
+mxResources.get("fit"));g.style.outline="none";g.style.border="none";g.style.margin="2px";mxUtils.setOpacity(g,60);var x=mxUtils.button("",function(){n.zoomActual();n.center()});x.className="geSprite geSprite-actualsize";x.setAttribute("title",mxResources.get("actualSize"));x.style.outline="none";x.style.border="none";x.style.margin="2px";mxUtils.setOpacity(x,60);e=mxUtils.button(h||mxResources.get("discard"),e);e.className="geBtn";var y=document.createElement("select");y.style.maxWidth="80px";y.style.position=
+"relative";y.style.top="-2px";y.style.verticalAlign="bottom";y.style.marginRight="6px";y.style.display="none";c=mxUtils.button(f||mxResources.get("edit"),c);c.className="geBtn gePrimaryBtn";f=document.createElement("div");f.style.position="absolute";f.style.bottom="30px";f.style.width="640px";f.style.textAlign="right";h=document.createElement("div");h.className="geToolbarContainer";h.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";
+this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";k.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(y,"change",function(a){u=parseInt(y.value);c(p[u]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram");
+p=[];for(var g=0;g<d.length;g++)p.push(d[g]);0<p.length&&c(p[u]);if(1<p.length)for(y.style.display="",g=0;g<p.length;g++)d=document.createElement("option"),mxUtils.write(d,p[g].getAttribute("name")||mxResources.get("pageWithNumber",[g+1])),d.setAttribute("value",g),g==u&&d.setAttribute("selected","selected"),y.appendChild(d)}else b(q)};h.appendChild(y);h.appendChild(b);h.appendChild(d);h.appendChild(x);h.appendChild(g);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className=
"geBtn";l=null!=l?mxUtils.button(mxResources.get("ignore"),l):null;null!=l&&(l.className="geBtn");a.editor.cancelFirst?(f.appendChild(b),null!=l&&f.appendChild(l),f.appendChild(e),f.appendChild(c)):(f.appendChild(c),f.appendChild(e),null!=l&&f.appendChild(l),f.appendChild(b));m.appendChild(f);m.appendChild(h);this.container=m},FindWindow=function(a,b,d,c,e){function f(a,b,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var d=0;d<b.length;d++)if("label"!=b[d].nodeName){var g=
mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&g.substring(0,c.length)===c||null!=a&&a.test(g))return!0}}return!1}function h(){var a=m.model.getDescendants(m.model.getRoot()),b=q.value.toLowerCase(),c=u.checked?new RegExp(b):null,d=null;g!=b&&(g=b,k=null);var e=null==k;if(0<b.length)for(var n=0;n<a.length;n++){var h=m.view.getState(a[n]);if(null!=h&&null!=h.cell.value&&(e||null==d)&&(m.model.isVertex(h.cell)||m.model.isEdge(h.cell))&&(m.isHtmlLabel(h.cell)?
(p.innerHTML=m.getLabel(h.cell),label=mxUtils.extractTextWithWhitespace([p])):label=m.getLabel(h.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===b||f(c,h.cell,b))||null!=c&&(c.test(label)||f(c,h.cell,b))))if(e){d=h;break}else null==d&&(d=h);e=e||h==k}null!=d?(k=d,m.scrollCellToVisible(k.cell),m.isEnabled()?m.setSelectionCell(k.cell):m.highlightCell(k.cell)):m.isEnabled()&&m.clearSelection();return 0==b.length||null!=d}
var l=a.actions.get("find"),m=a.editor.graph,g=null,k=null,n=document.createElement("div");n.style.userSelect="none";n.style.overflow="hidden";n.style.padding="10px";n.style.height="100%";var q=document.createElement("input");q.setAttribute("placeholder",mxResources.get("find"));q.setAttribute("type","text");q.style.marginTop="4px";q.style.marginBottom="6px";q.style.width="200px";q.style.fontSize="12px";q.style.borderRadius="4px";q.style.padding="6px";n.appendChild(q);mxUtils.br(n);var u=document.createElement("input");
-u.setAttribute("type","checkbox");u.style.marginRight="4px";n.appendChild(u);mxUtils.write(n,mxResources.get("regularExpression"));var p=document.createElement("div");mxUtils.br(n);var v=mxUtils.button(mxResources.get("reset"),function(){q.value="";q.style.backgroundColor="";g=k=null;q.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";n.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{q.style.backgroundColor=
-h()?"":"#ffcfcf"}catch(y){a.handleError(y)}});v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";n.appendChild(v);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(g!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=h()?"":"#ffcfcf"}catch(z){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(n,"keydown",function(b){70==b.keyCode&&
+u.setAttribute("type","checkbox");u.style.marginRight="4px";n.appendChild(u);mxUtils.write(n,mxResources.get("regularExpression"));var p=document.createElement("div");mxUtils.br(n);var w=mxUtils.button(mxResources.get("reset"),function(){q.value="";q.style.backgroundColor="";g=k=null;q.focus()});w.setAttribute("title",mxResources.get("reset"));w.style.marginTop="6px";w.style.marginRight="4px";w.className="geBtn";n.appendChild(w);w=mxUtils.button(mxResources.get("find"),function(){try{q.style.backgroundColor=
+h()?"":"#ffcfcf"}catch(x){a.handleError(x)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";n.appendChild(w);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(g!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=h()?"":"#ffcfcf"}catch(y){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(n,"keydown",function(b){70==b.keyCode&&
a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(l.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),n,b,d,c,e,!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.isVisible()?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):m.container.focus()}))},
TagsWindow=function(a,b,d,c,e){function f(a){a=null!=a?a:l.model.getDescendants(l.model.getRoot());for(var b=k.value.split(" "),c=[],d=0;d<a.length;d++)if(l.model.isVertex(a[d])||l.model.isEdge(a[d])){var g=null!=a[d].value&&"object"==typeof a[d].value?mxUtils.trim(a[d].value.getAttribute(m)||""):"",e=!0;if(0<g.length)for(var g=g.toLowerCase().split(" "),n=0;n<b.length&&e;n++)var f=mxUtils.trim(b[n]).toLowerCase(),e=e&&(0==f.length||0<=mxUtils.indexOf(g,f));else e=0==mxUtils.trim(k.value).length;
e&&c.push(a[d])}return c}function h(a,b){l.model.beginUpdate();try{for(var c=0;c<a.length;c++)l.model.setVisible(a[c],b)}finally{l.model.endUpdate()}}var l=a.editor.graph,m="tags",g=document.createElement("div");g.style.userSelect="none";g.style.overflow="hidden";g.style.padding="10px";g.style.height="100%";var k=document.createElement("input");k.setAttribute("placeholder",mxResources.get("allTags"));k.setAttribute("type","text");k.style.marginTop="4px";k.style.width="260px";k.style.fontSize="12px";
@@ -6656,9 +6726,9 @@ b.style.position="absolute";b.style.top="0px";b.style.left="0px";b.style.lineHei
b.imageCallback?b.imageCallback(f):null!=b.image?f.innerHTML='<img border="0" src="'+b.image+'"/>':(f.innerHTML="<br>",mxUtils.write(f,mxResources.get("noPreview"))),null!=h&&(h.style.backgroundColor=""),h=c,h.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(c,"click",n);mxEvent.addListener(c,"dblclick",function(a){k.checked=!k.checked;mxEvent.consume(a)});l.push(function(){return k.checked?b.id:null});0==g&&0==d&&n()})(b.entries[d])})(d[g]);
c.style.padding="30px";c.appendChild(b);c.appendChild(e);c.appendChild(f);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=b.style.width,d.style.paddingTop="12px");var k=document.createElement("input");k.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)b=
document.createElement("span"),b.style.paddingRight="20px",b.appendChild(k),mxUtils.write(b," "+mxResources.get("rememberThisSetting")),k.checked=!0,k.defaultChecked=!0,mxEvent.addListener(b,"click",function(a){mxEvent.getSource(a)!=k&&(k.checked=!k.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.top="-6px"),d.appendChild(b);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var n=mxUtils.button(mxResources.get("apply"),
-function(){a.hideDialog();for(var b=[],c=0;c<l.length;c++){var d=l[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),k.checked,!0)});n.className="geBtn gePrimaryBtn"}else{var q=document.createElement("table"),u=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";var p=document.createElement("tr");q.style.width="100%";b=document.createElement("td");var n=document.createElement("td"),v=document.createElement("td"),y=mxUtils.bind(this,function(b,
-c,d){var g=document.createElement("input");g.type="checkbox";q.appendChild(g);g.checked=a.sidebar.isEntryVisible(d);var k=document.createElement("span");mxUtils.write(k,c);c=document.createElement("div");c.style.display="block";c.appendChild(g);c.appendChild(k);mxEvent.addListener(k,"click",function(a){g.checked=!g.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return g.checked?d:null}});p.appendChild(b);p.appendChild(n);p.appendChild(v);u.appendChild(p);q.appendChild(u);for(var l=
-[],z=0,g=0;g<d.length;g++)for(u=0;u<d[g].entries.length;u++)z++;for(var t=[b,n,v],A=0,g=0;g<d.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];l.push(y(t[Math.floor(A/(z/3))],c.title,c.id));A++}})(d[g]);c.appendChild(q);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";k=document.createElement("input");isLocalStorage&&(k.setAttribute("type","checkbox"),k.checked=!0,k.defaultChecked=!0,d.appendChild(k),b=document.createElement("span"),
+function(){a.hideDialog();for(var b=[],c=0;c<l.length;c++){var d=l[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),k.checked,!0)});n.className="geBtn gePrimaryBtn"}else{var q=document.createElement("table"),u=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";var p=document.createElement("tr");q.style.width="100%";b=document.createElement("td");var n=document.createElement("td"),w=document.createElement("td"),x=mxUtils.bind(this,function(b,
+c,d){var g=document.createElement("input");g.type="checkbox";q.appendChild(g);g.checked=a.sidebar.isEntryVisible(d);var k=document.createElement("span");mxUtils.write(k,c);c=document.createElement("div");c.style.display="block";c.appendChild(g);c.appendChild(k);mxEvent.addListener(k,"click",function(a){g.checked=!g.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return g.checked?d:null}});p.appendChild(b);p.appendChild(n);p.appendChild(w);u.appendChild(p);q.appendChild(u);for(var l=
+[],y=0,g=0;g<d.length;g++)for(u=0;u<d[g].entries.length;u++)y++;for(var t=[b,n,w],z=0,g=0;g<d.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];l.push(x(t[Math.floor(z/(y/3))],c.title,c.id));z++}})(d[g]);c.appendChild(q);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";k=document.createElement("input");isLocalStorage&&(k.setAttribute("type","checkbox"),k.checked=!0,k.defaultChecked=!0,d.appendChild(k),b=document.createElement("span"),
mxUtils.write(b," "+mxResources.get("rememberThisSetting")),d.appendChild(b),mxEvent.addListener(b,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)}));c.appendChild(d);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<l.length;c++){var d=l[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",k.checked);a.hideDialog()});n.className=
"geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(b),d.appendChild(n)):(d.appendChild(n),d.appendChild(b));c.appendChild(d);this.container=c},PluginsDialog=function(a){function b(){if(0==e.length)c.innerHTML=mxResources.get("noPlugins");else{c.innerHTML="";for(var d=0;d<e.length;d++){var g=document.createElement("span");g.style.whiteSpace="nowrap";var f=document.createElement("span");f.className="geSprite geSprite-delete";
f.style.position="relative";f.style.cursor="pointer";f.style.top="5px";f.style.marginRight="4px";f.style.display="inline-block";g.appendChild(f);mxUtils.write(g,e[d]);c.appendChild(g);mxUtils.br(c);mxEvent.addListener(f,"click",function(c){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+e[c]+'"?',function(){e.splice(c,1);b()})}}(d))}}}var d=document.createElement("div"),c=document.createElement("div");c.style.height="120px";c.style.overflow="auto";var e=mxSettings.getPlugins().slice();
@@ -6668,41 +6738,41 @@ m.className="geBtn";a.isOffline()&&!mxClient.IS_CHROMEAPP&&(m.style.display="non
h=document.createElement("tr"),l=document.createElement("td");l.style.whiteSpace="nowrap";l.setAttribute("colspan","2");mxUtils.write(l,mxResources.get("loading")+"...");h.appendChild(l);f.appendChild(h);var h=document.createElement("tr"),m=document.createElement("td"),g=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("left")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value="0";this.init=function(){k.focus();
k.select()};g.appendChild(k);h.appendChild(m);h.appendChild(g);f.appendChild(h);h=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("top")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value="0";g.appendChild(n);h.appendChild(m);h.appendChild(g);f.appendChild(h);h=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("right")+
":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";g.appendChild(q);h.appendChild(m);h.appendChild(g);f.appendChild(h);h=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("bottom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value="0";g.appendChild(u);h.appendChild(m);h.appendChild(g);f.appendChild(h);h=document.createElement("tr");
-m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("circle")+":");h.appendChild(m);var p=document.createElement("input");p.setAttribute("type","checkbox");g.appendChild(p);h.appendChild(g);f.appendChild(h);e.appendChild(f);c.appendChild(e);var e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),v=new Image,y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),c=b.getContext("2d"),g=v.width,
-e=v.height,f=parseInt(k.value),h=parseInt(n.value),g=Math.max(1,g-f-parseInt(q.value)),e=Math.max(1,e-h-parseInt(u.value));b.width=g;b.height=e;p.checked&&(c.fillStyle="#000000",c.arc(g/2,e/2,Math.min(g/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(v,f,h,g,e,0,0,g,e);d(b.toDataURL())});y.setAttribute("disabled","disabled");v.onload=function(){y.removeAttribute("disabled");l.innerHTML="";mxUtils.write(l,mxResources.get("width")+": "+v.width+" "+mxResources.get("height")+
-": "+v.height)};v.src=b;mxEvent.addListener(c,"keypress",function(a){13==a.keyCode&&y.click()});b=document.createElement("div");b.style.marginTop="20px";b.style.textAlign="right";a.editor.cancelFirst?(b.appendChild(e),b.appendChild(y)):(b.appendChild(y),b.appendChild(e));c.appendChild(b);this.container=c},EditGeometryDialog=function(a,b){var d=a.editor.graph,c=1==b.length?d.getCellGeometry(b[0]):null,e=document.createElement("div"),f=document.createElement("table"),h=document.createElement("tbody"),
+m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("circle")+":");h.appendChild(m);var p=document.createElement("input");p.setAttribute("type","checkbox");g.appendChild(p);h.appendChild(g);f.appendChild(h);e.appendChild(f);c.appendChild(e);var e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,x=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),c=b.getContext("2d"),g=w.width,
+e=w.height,f=parseInt(k.value),h=parseInt(n.value),g=Math.max(1,g-f-parseInt(q.value)),e=Math.max(1,e-h-parseInt(u.value));b.width=g;b.height=e;p.checked&&(c.fillStyle="#000000",c.arc(g/2,e/2,Math.min(g/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(w,f,h,g,e,0,0,g,e);d(b.toDataURL())});x.setAttribute("disabled","disabled");w.onload=function(){x.removeAttribute("disabled");l.innerHTML="";mxUtils.write(l,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+
+": "+w.height)};w.src=b;mxEvent.addListener(c,"keypress",function(a){13==a.keyCode&&x.click()});b=document.createElement("div");b.style.marginTop="20px";b.style.textAlign="right";a.editor.cancelFirst?(b.appendChild(e),b.appendChild(x)):(b.appendChild(x),b.appendChild(e));c.appendChild(b);this.container=c},EditGeometryDialog=function(a,b){var d=a.editor.graph,c=1==b.length?d.getCellGeometry(b[0]):null,e=document.createElement("div"),f=document.createElement("table"),h=document.createElement("tbody"),
l=document.createElement("tr"),m=document.createElement("td"),g=document.createElement("td");f.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("left")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value=null!=c?c.x:"";this.init=function(){k.focus();k.select()};g.appendChild(k);l.appendChild(m);l.appendChild(g);h.appendChild(l);l=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("top")+
":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=c?c.y:"";g.appendChild(n);l.appendChild(m);l.appendChild(g);h.appendChild(l);l=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("width")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=c?c.width:"";g.appendChild(q);l.appendChild(m);l.appendChild(g);h.appendChild(l);
l=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("height")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=c?c.height:"";g.appendChild(u);l.appendChild(m);l.appendChild(g);h.appendChild(l);l=document.createElement("tr");m=document.createElement("td");g=document.createElement("td");mxUtils.write(m,mxResources.get("rotation")+":");var p=document.createElement("input");
-p.setAttribute("type","text");p.style.width="100px";p.value=1==b.length?mxUtils.getValue(d.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";g.appendChild(p);l.appendChild(m);l.appendChild(g);h.appendChild(l);f.appendChild(h);e.appendChild(f);var c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var c=0;c<b.length;c++){var g=d.getCellGeometry(b[c]);null!=g&&(g=g.clone(),d.isCellMovable(b[c])&&
-(0<mxUtils.trim(k.value).length&&(g.x=Number(k.value)),0<mxUtils.trim(n.value).length&&(g.y=Number(n.value))),d.isCellResizable(b[c])&&(0<mxUtils.trim(q.value).length&&(g.width=Number(q.value)),0<mxUtils.trim(u.value).length&&(g.height=Number(u.value))),d.getModel().setGeometry(b[c],g));0<mxUtils.trim(p.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(p.value),[b[c]])}}finally{d.getModel().endUpdate()}});mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&v.click()});f=document.createElement("div");
-f.style.marginTop="20px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(c),f.appendChild(v)):(f.appendChild(v),f.appendChild(c));e.appendChild(f);this.container=e},LibraryDialog=function(a,b,d,c,e,f){function h(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var c=u.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,g,e,n,f,q,m){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&
-null!=f||null==v[b]){var z=function(){E.innerHTML="";E.style.cursor="pointer";E.style.whiteSpace="nowrap";E.style.textOverflow="ellipsis";mxUtils.write(E,null!=G.title&&0<G.title.length?G.title:mxResources.get("untitled"));E.style.color=null==G.title||0==G.title.length?"#d0d0d0":""};u.style.backgroundImage="";p.style.display="none";var B=e,C=n;if(e>a.maxImageSize||n>a.maxImageSize){var w=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=w;n*=w}B>C?(C=Math.round(100*
-C/B),B=100):(B=Math.round(100*B/C),C=100);var F=document.createElement("div");F.setAttribute("draggable","true");F.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";F.style.position="relative";F.style.cursor="move";mxUtils.setPrefixedStyle(F.style,"transition","transform .1s ease-in-out");if(null!=b){var L=document.createElement("img");L.setAttribute("src",A.convert(b));L.style.width=B+"px";L.style.height=C+"px";L.style.margin="10px";L.style.paddingBottom=Math.floor((100-C)/2)+"px";L.style.paddingLeft=
-Math.floor((100-B)/2)+"px";F.appendChild(L)}else if(null!=f){var K=a.stringToCells(a.editor.graph.decompress(f.xml));0<K.length&&(a.sidebar.createThumb(K,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",F.firstChild.style.cursor="")}var H=document.createElement("img");H.setAttribute("src",Editor.closeImage);H.setAttribute("border","0");H.setAttribute("title",mxResources.get("delete"));H.setAttribute("align","top");H.style.paddingTop="4px";H.style.marginLeft=
-"-22px";H.style.cursor="pointer";mxEvent.addListener(H,"dragstart",function(a){mxEvent.consume(a)});null==b&&null!=f&&(H.style.position="relative");(function(a,b,c){mxEvent.addListener(H,"click",function(d){v[b]=null;for(var g=0;g<k.length;g++)if(null!=k[g].data&&k[g].data==b||null!=k[g].xml&&null!=c&&k[g].xml==c.xml){k.splice(g,1);break}F.parentNode.removeChild(a);0==k.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",p.style.display="");mxEvent.consume(d)});mxEvent.addListener(H,
-"dblclick",function(a){mxEvent.consume(a)})})(F,b,f);F.appendChild(H);F.style.marginBottom="30px";var E=document.createElement("div");E.style.position="absolute";E.style.boxSizing="border-box";E.style.bottom="-18px";E.style.left="10px";E.style.right="10px";E.style.backgroundColor="#ffffff";E.style.overflow="hidden";E.style.textAlign="center";var G=null;null!=b?(G={data:b,w:e,h:n,title:m},null!=q&&(G.aspect=q),v[b]=L,k.push(G)):null!=f&&(f.aspect="fixed",k.push(f),G=f);mxEvent.addListener(E,"keydown",
-function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});z();F.appendChild(E);mxEvent.addListener(E,"mousedown",function(a){"true"!=E.getAttribute("contentEditable")&&mxEvent.consume(a)});K=function(b){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,G.title||"",mxResources.get("ok"),function(a){null!=a&&(G.title=a,z())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();
-mxEvent.consume(b)}else if("true"!=E.getAttribute("contentEditable")){null!=t&&(t(),t=null);if(null==G.title||0==G.title.length)E.innerHTML="";E.style.textOverflow="";E.style.whiteSpace="";E.style.cursor="text";E.style.color="";E.setAttribute("contentEditable","true");E.focus();document.execCommand("selectAll",!1,null);t=function(){E.removeAttribute("contentEditable");E.style.cursor="pointer";G.title=E.innerHTML;z()};mxEvent.consume(b)}};mxEvent.addListener(E,"click",K);mxEvent.addListener(F,"dblclick",
-K);u.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=f&&(H.style.visibility="hidden",E.style.visibility="hidden");mxClient.IS_FF&&null!=f.xml&&a.dataTransfer.setData("Text",f.xml);y=h(a);mxClient.IS_GC&&(F.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(F.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(F,30);H.style.visibility="";E.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==H.style.visibility&&(H.style.visibility=
-"",E.style.visibility="");y=null;mxUtils.setOpacity(F,100);mxUtils.setPrefixedStyle(F.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),B=mxUtils.parseXml(b),"mxlibrary"==B.documentElement.nodeName){C=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=C&&0<C.length)for(var D=0;D<C.length;D++)null!=C[D].xml?l(null,null,0,0,0,0,C[D]):l(C[D].data,null,0,0,C[D].w,C[D].h,null,"fixed",C[D].title);e=!0}else if("mxfile"==
-B.documentElement.nodeName){for(var O=B.documentElement.getElementsByTagName("diagram"),D=0;D<O.length;D++){var C=mxUtils.getTextContent(O[D]),K=a.stringToCells(a.editor.graph.decompress(C)),Q=a.editor.graph.getBoundingBoxFromGeometry(K);l(null,null,0,0,0,0,{xml:C,w:Q.width,h:Q.height})}e=!0}}catch(Z){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Z){}return null}function m(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}
-function g(b){b.stopPropagation();b.preventDefault();x=!1;z=h(b);if(null!=y)null!=z&&z<u.children.length?(k.splice(z>y?z-1:z,0,k.splice(y,1)[0]),u.insertBefore(u.children[y],u.children[z])):(k.push(k.splice(y,1)[0]),u.appendChild(u.children[y]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||
+p.setAttribute("type","text");p.style.width="100px";p.value=1==b.length?mxUtils.getValue(d.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";g.appendChild(p);l.appendChild(m);l.appendChild(g);h.appendChild(l);f.appendChild(h);e.appendChild(f);var c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var c=0;c<b.length;c++){var g=d.getCellGeometry(b[c]);null!=g&&(g=g.clone(),d.isCellMovable(b[c])&&
+(0<mxUtils.trim(k.value).length&&(g.x=Number(k.value)),0<mxUtils.trim(n.value).length&&(g.y=Number(n.value))),d.isCellResizable(b[c])&&(0<mxUtils.trim(q.value).length&&(g.width=Number(q.value)),0<mxUtils.trim(u.value).length&&(g.height=Number(u.value))),d.getModel().setGeometry(b[c],g));0<mxUtils.trim(p.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(p.value),[b[c]])}}finally{d.getModel().endUpdate()}});mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&w.click()});f=document.createElement("div");
+f.style.marginTop="20px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(c),f.appendChild(w)):(f.appendChild(w),f.appendChild(c));e.appendChild(f);this.container=e},LibraryDialog=function(a,b,d,c,e,f){function h(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var c=u.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,g,e,n,f,q,m){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&
+null!=f||null==w[b]){var y=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=H.title&&0<H.title.length?H.title:mxResources.get("untitled"));D.style.color=null==H.title||0==H.title.length?"#d0d0d0":""};u.style.backgroundImage="";p.style.display="none";var A=e,C=n;if(e>a.maxImageSize||n>a.maxImageSize){var v=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=v;n*=v}A>C?(C=Math.round(100*
+C/A),A=100):(A=Math.round(100*A/C),C=100);var B=document.createElement("div");B.setAttribute("draggable","true");B.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";B.style.position="relative";B.style.cursor="move";mxUtils.setPrefixedStyle(B.style,"transition","transform .1s ease-in-out");if(null!=b){var K=document.createElement("img");K.setAttribute("src",z.convert(b));K.style.width=A+"px";K.style.height=C+"px";K.style.margin="10px";K.style.paddingBottom=Math.floor((100-C)/2)+"px";K.style.paddingLeft=
+Math.floor((100-A)/2)+"px";B.appendChild(K)}else if(null!=f){var G=a.stringToCells(a.editor.graph.decompress(f.xml));0<G.length&&(a.sidebar.createThumb(G,100,100,B,null,!0,!1),B.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",B.firstChild.style.cursor="")}var L=document.createElement("img");L.setAttribute("src",Editor.closeImage);L.setAttribute("border","0");L.setAttribute("title",mxResources.get("delete"));L.setAttribute("align","top");L.style.paddingTop="4px";L.style.marginLeft=
+"-22px";L.style.cursor="pointer";mxEvent.addListener(L,"dragstart",function(a){mxEvent.consume(a)});null==b&&null!=f&&(L.style.position="relative");(function(a,b,c){mxEvent.addListener(L,"click",function(d){w[b]=null;for(var g=0;g<k.length;g++)if(null!=k[g].data&&k[g].data==b||null!=k[g].xml&&null!=c&&k[g].xml==c.xml){k.splice(g,1);break}B.parentNode.removeChild(a);0==k.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",p.style.display="");mxEvent.consume(d)});mxEvent.addListener(L,
+"dblclick",function(a){mxEvent.consume(a)})})(B,b,f);B.appendChild(L);B.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="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var H=null;null!=b?(H={data:b,w:e,h:n,title:m},null!=q&&(H.aspect=q),w[b]=K,k.push(H)):null!=f&&(f.aspect="fixed",k.push(f),H=f);mxEvent.addListener(D,"keydown",
+function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});y();B.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});G=function(b){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,H.title||"",mxResources.get("ok"),function(a){null!=a&&(H.title=a,y())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();
+mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=t&&(t(),t=null);if(null==H.title||0==H.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable","true");D.focus();document.execCommand("selectAll",!1,null);t=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";H.title=D.innerHTML;y()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(B,"dblclick",
+G);u.appendChild(B);mxEvent.addListener(B,"dragstart",function(a){null==b&&null!=f&&(L.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=f.xml&&a.dataTransfer.setData("Text",f.xml);x=h(a);mxClient.IS_GC&&(B.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(B.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(B,30);L.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(B,"dragend",function(a){"hidden"==L.style.visibility&&(L.style.visibility=
+"",D.style.visibility="");x=null;mxUtils.setOpacity(B,100);mxUtils.setPrefixedStyle(B.style,"transform",null)})}else F||(F=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),A=mxUtils.parseXml(b),"mxlibrary"==A.documentElement.nodeName){C=JSON.parse(mxUtils.getTextContent(A.documentElement));if(null!=C&&0<C.length)for(var E=0;E<C.length;E++)null!=C[E].xml?l(null,null,0,0,0,0,C[E]):l(C[E].data,null,0,0,C[E].w,C[E].h,null,"fixed",C[E].title);e=!0}else if("mxfile"==
+A.documentElement.nodeName){for(var O=A.documentElement.getElementsByTagName("diagram"),E=0;E<O.length;E++){var C=mxUtils.getTextContent(O[E]),G=a.stringToCells(a.editor.graph.decompress(C)),U=a.editor.graph.getBoundingBoxFromGeometry(G);l(null,null,0,0,0,0,{xml:C,w:U.width,h:U.height})}e=!0}}catch(X){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(X){}return null}function m(a){a.dataTransfer.dropEffect=null!=x?"move":"copy";a.stopPropagation();a.preventDefault()}
+function g(b){b.stopPropagation();b.preventDefault();F=!1;y=h(b);if(null!=x)null!=y&&y<u.children.length?(k.splice(y>x?y-1:y,0,k.splice(x,1)[0]),u.insertBefore(u.children[x],u.children[y])):(k.push(k.splice(x,1)[0]),u.appendChild(u.children[x]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||
/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){l(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var k=[];d=document.createElement("div");d.style.height="100%";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.height="40px";d.appendChild(n);mxUtils.write(n,mxResources.get("filename")+":");null==b&&(b=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",
b);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==e||e.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==e||e.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};n.appendChild(q);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==k.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var p=document.createElement("div");p.style.position="absolute";p.style.width="640px";p.style.top="260px";p.style.textAlign="center";p.style.fontSize="22px";p.style.color="#a0c3ff";mxUtils.write(p,mxResources.get("dragImagesHere"));d.appendChild(p);var v={},y=null,z=null,t=null;
-b=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=t&&(t(),t=null,mxEvent.consume(a))};mxEvent.addListener(u,"mousedown",b);mxEvent.addListener(u,"pointerdown",b);mxEvent.addListener(u,"touchstart",b);var A=new mxUrlConverter,x=!1;if(null!=c)for(b=0;b<c.length;b++)n=c[b],l(n.data,null,0,0,n.w,n.h,n,n.aspect,n.title);mxEvent.addListener(u,"dragleave",function(a){p.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==u||b==p){a.stopPropagation();a.preventDefault();
+u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==k.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var p=document.createElement("div");p.style.position="absolute";p.style.width="640px";p.style.top="260px";p.style.textAlign="center";p.style.fontSize="22px";p.style.color="#a0c3ff";mxUtils.write(p,mxResources.get("dragImagesHere"));d.appendChild(p);var w={},x=null,y=null,t=null;
+b=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=t&&(t(),t=null,mxEvent.consume(a))};mxEvent.addListener(u,"mousedown",b);mxEvent.addListener(u,"pointerdown",b);mxEvent.addListener(u,"touchstart",b);var z=new mxUrlConverter,F=!1;if(null!=c)for(b=0;b<c.length;b++)n=c[b],l(n.data,null,0,0,n.w,n.h,n,n.aspect,n.title);mxEvent.addListener(u,"dragleave",function(a){p.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==u||b==p){a.stopPropagation();a.preventDefault();
break}b=b.parentNode}});var C=function(b){return function(c,d,g,k,e,n,t,f,h){null!=h&&(/(\.vsdx)($|\?)/i.test(h.name)||/(\.vssx)($|\?)/i.test(h.name))?a.importVisio(h,mxUtils.bind(this,function(c){a.spinner.stop();l(c,d,g,k,e,n,t,"fixed",mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," "))})):null!=h&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,h.name)?a.parseFile(h,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=
c.status&&(l(c.responseText,d,g,k,e,n,t,"fixed",mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(l(c,d,g,k,e,n,t,"fixed",mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",m);mxEvent.addListener(u,"drop",g);mxEvent.addListener(p,"dragover",m);mxEvent.addListener(p,"drop",g);d.appendChild(u);c=document.createElement("div");c.style.textAlign="right";
c.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);n=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(k),c=q.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,
-"_blank")});n.setAttribute("id","btnDownload");n.className="geBtn";c.appendChild(n);var w=document.createElement("input");w.setAttribute("multiple","multiple");w.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(w,"change",function(b){x=!1;a.importFiles(w.files,0,0,a.maxImageSize,function(a,c,d,g,k,e,n,t,f){C(b)(a,c,d,g,k,e,n,t,f);w.value=""});u.scrollTop=u.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);w.click()}),n.setAttribute("id",
-"btnAddImage"),n.className="geBtn",c.appendChild(n));n=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=t&&(t(),t=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}l(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";c.appendChild(n);this.saveBtnClickHandler=function(b,c,d,g){a.saveLibrary(b,
+"_blank")});n.setAttribute("id","btnDownload");n.className="geBtn";c.appendChild(n);var v=document.createElement("input");v.setAttribute("multiple","multiple");v.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(v,"change",function(b){F=!1;a.importFiles(v.files,0,0,a.maxImageSize,function(a,c,d,g,k,e,n,t,f){C(b)(a,c,d,g,k,e,n,t,f);v.value=""});u.scrollTop=u.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);v.click()}),n.setAttribute("id",
+"btnAddImage"),n.className="geBtn",c.appendChild(n));n=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=t&&(t(),t=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){F=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}l(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";c.appendChild(n);this.saveBtnClickHandler=function(b,c,d,g){a.saveLibrary(b,
c,d,g)};n=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=t&&(t(),t=null);this.saveBtnClickHandler(q.value,k,e,f)}));n.setAttribute("id","btnSave");n.className="geBtn gePrimaryBtn";c.appendChild(n);a.editor.cancelFirst||c.appendChild(b);d.appendChild(c);this.container=d},EditShapeDialog=function(a,b,d,c,e){c=null!=c?c:300;e=null!=e?e:120;var f,h,l=document.createElement("table"),m=document.createElement("tbody");l.style.cellPadding="4px";f=document.createElement("tr");h=
document.createElement("td");h.setAttribute("colspan","2");h.style.fontSize="10pt";mxUtils.write(h,d);f.appendChild(h);m.appendChild(f);f=document.createElement("tr");h=document.createElement("td");var g=document.createElement("textarea");g.style.outline="none";g.style.resize="none";g.style.width=c-200+"px";g.style.height=e+"px";this.textarea=g;this.init=function(){g.focus();g.scrollTop=0};h.appendChild(g);f.appendChild(h);h=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=e+4+"px";d.style.overflow="hidden";d.style.marginBottom="16px";mxEvent.disableContextMenu(d);h.appendChild(d);var k=new Graph(d);k.setEnabled(!1);var n=a.editor.graph.cloneCells([b])[0];k.addCells([n]);d=k.view.getState(n);var q="";null!=d.shape&&null!=d.shape.stencil&&(q=mxUtils.getPrettyXml(d.shape.stencil.desc));mxUtils.write(g,q||"");d=k.getGraphBounds();e=Math.min(160/d.width,(e-40)/d.height);k.view.scaleAndTranslate(e,
20/e-d.x,20/e-d.y);f.appendChild(h);m.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.setAttribute("colspan","2");h.style.paddingTop="2px";h.style.whiteSpace="nowrap";h.setAttribute("align","right");e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&h.appendChild(e);a.isOffline()||(d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),
d.className="geBtn",h.appendChild(d));var u=function(b,c,d){var k=g.value,e=mxUtils.parseXml(k),k=mxUtils.getPrettyXml(e.documentElement),e=e.documentElement.getElementsByTagName("parsererror");if(null!=e&&0<e.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),e=!b.model.contains(c),!d||e||k!=q){k=a.editor.graph.compress(k);b.getModel().beginUpdate();try{if(e){var n=a.editor.graph.getInsertPoint();c.geometry.x=n.x;
-c.geometry.y=n.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+k+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}e&&b.setSelectionCell(c)}};d=mxUtils.button(mxResources.get("preview"),function(){u(k,n,!1)});d.className="geBtn";h.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,b,!0)});d.className="geBtn gePrimaryBtn";h.appendChild(d);a.editor.cancelFirst||h.appendChild(e);f.appendChild(h);m.appendChild(f);l.appendChild(m);this.container=
+c.geometry.y=n.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+k+")",[c])}catch(F){throw F;}finally{b.getModel().endUpdate()}e&&b.setSelectionCell(c)}};d=mxUtils.button(mxResources.get("preview"),function(){u(k,n,!1)});d.className="geBtn";h.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,b,!0)});d.className="geBtn gePrimaryBtn";h.appendChild(d);a.editor.cancelFirst||h.appendChild(e);f.appendChild(h);m.appendChild(f);l.appendChild(m);this.container=
l},CustomDialog=function(a,b,d,c,e,f,h,l){var m=document.createElement("div");m.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="right";null!=h&&b.appendChild(h);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=c&&c()});h.className="geBtn";l&&(h.style.display="none");a.editor.cancelFirst&&b.appendChild(h);a.isOffline()||null==f||(l=mxUtils.button(mxResources.get("help"),function(){a.openLink(f)}),l.className="geBtn",b.appendChild(l));
e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d()});b.appendChild(e);e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(h);m.appendChild(b);this.cancelBtn=h;this.okButton=e;this.container=m};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
@@ -6710,7 +6780,7 @@ IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,R
IMAGE_PATH+"/spin.gif";Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=":
IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
IMAGE_PATH+"/img-lo-res.png";Editor.cameraLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/BJREFUWAnFl0uIjWEYx885buPSuGwmSYwtwsY1ikKSNYNclmQnadgrZSPlsnBLSlaGBdNYKY0Vdi4L4zYzIqxGxmXG//d+7//0+uY7nWMiT/2/53mf+3v7vnNKpf9M5UbrDw8Pj4m+wzmeT1FBUS6Xf+YNox6reMONukijMXUTM3NmI75PyXcJPwRWg5kS7xysDLNmfEUxpx2rceNE50IlYjyRklcLf0prY+x4BTqfmx3ZUHQaO9ISGngYq38V/1EH+ECPa+QaK1u1kVBQirDMChiS3CTeIkwWvghtwhKBpZ8g1CO2B99FynVU/KowSRgQ3mlrBsVZ1awmQlS0SGbfXglfBPbdRGMm5O8RXg2P835pDCvzWjghTHETcLpZLHwS8kTCtBEK1SN83Egam8YxyVZqc+Do5qkwS+gT9grNwkUBG6cbsG/gs3BTuC/0ChCxq4QtwgzBMdwUZBPyN4Ftfi4sYPZHktbOSRlIuutRP5jYj0ueZp88xyYcS/zZoiLyQT1IA/cTj7eSlwnrhI+JnkQbCwo2Sx/2M7VJt17wdhVtgxvrpoFnAuSAbJQ97biZAlKxBfD9wgOhV+BgIR/AZtJ4kwD5PGSj7OmmekjWEy0oAQHAS3+KpBpzXqYK3UItopHpSRMno2N+cm7gDYnfRCcr3QBqriMHLJDkeyhFfiG5aVbK+8rhtP9M6QcIEJHX5Fp9NMAyQlYiu+OOJNlODCIXyka/P23bncTdiC7OydC1+v1Bsb+5r84DK8S3Rdmf5cRUFW3bXtWUSt1Rdk6G4SyJV2o1YId+vNUxr+x5yCJiapFtcxQzLjrxboGcMxvFJwEOKnLwjIbkx/sdSmeSaUY++SwTAxV+4DJT7RVwkbk46gNCsifIItuy0e9PF33Cb4homhN5YRyzL5q5V2VNkv98kqgoGTo3YF9CnMM5Y5rItFfvBSi9JulVXOgI+VwIntkt+SaZ6weQfcovJf7zpTfl86P/wAF7Fz18NeKwmvAWCaX0Z/uMHQr42ZxvR/Rxcw5xM+9J/CJq8w2gduDhmDgso/QrBH47dEXQ1IqczyHpIOfIRtnTtV7SwO1oKXKkU3fbToFGSDHtMWcaH1WBuVYnDbRFi99iqSMySdzxXckrazUh23KBVYGIcfNBkTxca0e4ATJ0KukGYVBgr/MnlhPOtQq/ksUfCbzh+EFCjtnCUoHfjhA/OsiTv2HcEvJMELp0VakZDliTmriTdPivxU4VmEhtPrGV+KJhO7ZKt0doFZh1fgZSBWIW2AGEHwg3BUWOnKtH+suqdw07tYMfglCrWPD5mw9qVYuniaXkT0OtWaSuo5LJTY1RBf+roF9X5+y/5qU+DAAAAABJRU5ErkJggg==";
-Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node width. Possible value are px or auto. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value are px or auto. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=
a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=
a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(b=document.createElement("style"),b.setAttribute("type",
@@ -6719,13 +6789,13 @@ null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.len
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 g=new mxCodec(d.ownerDocument);g.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);
mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);
null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return c};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),
-null!=b&&0<b.length)){var c=mxUtils.parseXml(b).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(A){}return!1};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var g=0;g<c.length;g++)if("mxgraph"==c[g].getAttribute("class")){d.push(c[g]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
+null!=b&&0<b.length)){var c=mxUtils.parseXml(b).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(z){}return!1};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var g=0;g<c.length;g++)if("mxgraph"==c[g].getAttribute("class")){d.push(c[g]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),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)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};
null==a||b||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(c=this.graph.decompress(mxUtils.getTextContent(d)),null!=c&&0<c.length&&(a=mxUtils.parseXml(c).documentElement)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};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?!0:this.originalNoForeignObject;d.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var c=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){c.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,
-b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");if(null!=d&&0<d.length){var g=document.createElement("script");g.type="text/javascript";g.src=a;d[0].parentNode.appendChild(g)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+b){this.graph.mathEnabled&&"hidden"!=this.graph.container.style.visibility&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");if(null!=d&&0<d.length){var g=document.createElement("script");g.type="text/javascript";g.src=a;d[0].parentNode.appendChild(g)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,c,d,g){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==d?b.push(d.replace(/\\"/g,'"')):void 0!==g&&b.push(g);return""});/,\s*$/.test(a)&&b.push("");return b};if(window.ColorDialog){var e=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}if(null!=window.StyleFormatPanel){var h=Format.prototype.init;Format.prototype.init=function(){h.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
l.apply(this,arguments):this.clear()};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);if(mxClient.IS_SVG){var b=this.editorUi,c=b.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var d=new ChangePageSetup(b);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;c.model.execute(d)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",
@@ -6760,26 +6830,26 @@ mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegist
[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.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.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(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var p=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,g,k,e,n,f,h){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return p.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){p.value=Math.max(1,
-Math.min(n,Math.max(parseInt(p.value),parseInt(u.value))));u.value=Math.max(1,Math.min(n,Math.min(parseInt(p.value),parseInt(u.value))))}function d(b){function c(b,c,g){var k=b.getGraphBounds(),e=0,n=0,f=Z.get(),t=1/b.pageScale,h=z.checked;if(h)var t=parseInt(N.value),q=parseInt(Q.value),t=Math.min(f.height*q/(k.height/b.view.scale),f.width*t/(k.width/b.view.scale));else t=parseInt(y.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,y.value="100 %");f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*
+Math.min(n,Math.max(parseInt(p.value),parseInt(u.value))));u.value=Math.max(1,Math.min(n,Math.min(parseInt(p.value),parseInt(u.value))))}function d(b){function c(b,c,g){var k=b.getGraphBounds(),e=0,n=0,f=X.get(),t=1/b.pageScale,h=y.checked;if(h)var t=parseInt(R.value),q=parseInt(U.value),t=Math.min(f.height*q/(k.height/b.view.scale),f.width*t/(k.width/b.view.scale));else t=parseInt(x.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,x.value="100 %");f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*
d);f.height=Math.ceil(f.height*d);t*=d;!h&&b.pageVisible?(k=b.getPageLayout(),e-=k.x*f.width,n-=k.y*f.height):h=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,f,0,e,n,h);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var u=c.writeHead;c.writeHead=function(b){u.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var l=c.renderPage;c.renderPage=
-function(a,b,c,d,g,k){var e=l.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}c.open(null,null,g,!0)}else{f=b.background;if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";c.backgroundColor=f;c.autoOrigin=h;c.appendGraph(b,t,e,n,g,!0)}return c}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,W.value="100 %");var d=.75*d,k=u.value,e=p.value,n=!q.checked,t=null;n&&(n=k==f&&e==f);if(!n&&null!=a.pages&&a.pages.length){var h=0,n=a.pages.length-1;q.checked||
-(h=parseInt(k)-1,n=parseInt(e)-1);for(var l=h;l<=n;l++){var m=a.pages[l],k=m==a.currentPage?g:null;if(null==k){var k=a.createTemporaryGraph(g.getStylesheet()),e=!0,h=!1,A=null,v=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(e=m.viewState.pageVisible,h=m.viewState.mathEnabled,A=m.viewState.background,v=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),A=m.mapping.diagramMap.get("background"),
-v=m.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);k.background=A;k.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;k.pageVisible=e;k.mathEnabled=h;var B=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?l+1:B.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(m);k.model.setRoot(m.root)}t=c(k,t,l!=n);k!=g&&k.container.parentNode.removeChild(k.container)}}else t=c(g);t.mathEnabled&&
+function(a,b,c,d,g,k){var e=l.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}c.open(null,null,g,!0)}else{f=b.background;if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";c.backgroundColor=f;c.autoOrigin=h;c.appendGraph(b,t,e,n,g,!0)}return c}var d=parseInt(P.value)/100;isNaN(d)&&(d=1,P.value="100 %");var d=.75*d,k=u.value,e=p.value,n=!q.checked,t=null;n&&(n=k==f&&e==f);if(!n&&null!=a.pages&&a.pages.length){var h=0,n=a.pages.length-1;q.checked||
+(h=parseInt(k)-1,n=parseInt(e)-1);for(var l=h;l<=n;l++){var m=a.pages[l],k=m==a.currentPage?g:null;if(null==k){var k=a.createTemporaryGraph(g.getStylesheet()),e=!0,h=!1,z=null,w=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(e=m.viewState.pageVisible,h=m.viewState.mathEnabled,z=m.viewState.background,w=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),z=m.mapping.diagramMap.get("background"),
+w=m.mapping.diagramMap.get("backgroundImage"),w=null!=w&&0<w.length?JSON.parse(w):null);k.background=z;k.backgroundImage=null!=w?new mxImage(w.src,w.width,w.height):null;k.pageVisible=e;k.mathEnabled=h;var A=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?l+1:A.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(m);k.model.setRoot(m.root)}t=c(k,t,l!=n);k!=g&&k.container.parentNode.removeChild(k.container)}}else t=c(g);t.mathEnabled&&
(n=t.wnd.document,n.writeln('<script type="text/x-mathjax-config">'),n.writeln("MathJax.Hub.Config({"),n.writeln('messageStyle: "none",'),n.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),n.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),n.writeln("TeX: {"),n.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),n.writeln("},"),n.writeln("tex2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("},"),
n.writeln("asciimath2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("}"),n.writeln("});"),b&&(n.writeln("MathJax.Hub.Queue(function () {"),n.writeln("window.print();"),n.writeln("});")),n.writeln("\x3c/script>"),n.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var g=a.editor.graph,k=document.createElement("div"),e=document.createElement("h3");
e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,b||mxResources.get("print"));k.appendChild(e);var n=1,f=1,h=document.createElement("div");h.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");h.appendChild(q);e=document.createElement("span");
mxUtils.write(e,mxResources.get("printAllPages"));h.appendChild(e);mxUtils.br(h);var l=q.cloneNode(!0);q.setAttribute("checked","checked");l.setAttribute("value","range");h.appendChild(l);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");h.appendChild(e);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";h.appendChild(u);e=document.createElement("span");
mxUtils.write(e,mxResources.get("to"));h.appendChild(e);var p=u.cloneNode(!0);h.appendChild(p);mxEvent.addListener(u,"focus",function(){l.checked=!0});mxEvent.addListener(p,"focus",function(){l.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(p,"change",c);if(null!=a.pages&&(n=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){f=e+1;u.value=f;p.value=f;break}u.setAttribute("max",n);p.setAttribute("max",n);1<n&&k.appendChild(h);var m=document.createElement("div");
-m.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");m.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));m.appendChild(e);var y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";m.appendChild(y);mxEvent.addListener(y,"focus",function(){v.checked=!0});
-k.appendChild(m);var h=h.cloneNode(!1),z=v.cloneNode(!0);z.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(z);h.appendChild(e);m=document.createElement("table");m.style.display="inline-block";var P=document.createElement("tbody"),M=document.createElement("tr"),R=M.cloneNode(!0),I=document.createElement("td"),J=I.cloneNode(!0),Y=I.cloneNode(!0),U=I.cloneNode(!0),
-V=I.cloneNode(!0),X=I.cloneNode(!0);I.style.textAlign="right";U.style.textAlign="right";mxUtils.write(I,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";J.appendChild(N);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Y.appendChild(e);mxUtils.write(U,mxResources.get("fitToBy"));var Q=N.cloneNode(!0);V.appendChild(Q);
-mxEvent.addListener(N,"focus",function(){z.checked=!0});mxEvent.addListener(Q,"focus",function(){z.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));X.appendChild(e);M.appendChild(I);M.appendChild(J);M.appendChild(Y);R.appendChild(U);R.appendChild(V);R.appendChild(X);P.appendChild(M);P.appendChild(R);m.appendChild(P);h.appendChild(m);k.appendChild(h);h=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
-"12px";mxUtils.write(e,mxResources.get("paperSize"));h.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Z=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);h.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));h.appendChild(e);var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";h.appendChild(W);
+m.style.marginBottom="10px";var w=document.createElement("input");w.style.marginRight="8px";w.setAttribute("value","adjust");w.setAttribute("type","radio");w.setAttribute("name","printZoom");m.appendChild(w);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));m.appendChild(e);var x=document.createElement("input");x.style.cssText="margin:0 8px 0 8px;";x.setAttribute("value","100 %");x.style.width="50px";m.appendChild(x);mxEvent.addListener(x,"focus",function(){w.checked=!0});
+k.appendChild(m);var h=h.cloneNode(!1),y=w.cloneNode(!0);y.setAttribute("value","fit");w.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(y);h.appendChild(e);m=document.createElement("table");m.style.display="inline-block";var N=document.createElement("tbody"),M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0),
+V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U);
+mxEvent.addListener(R,"focus",function(){y.checked=!0});mxEvent.addListener(U,"focus",function(){y.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);m.appendChild(N);h.appendChild(m);k.appendChild(h);h=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
+"12px";mxUtils.write(e,mxResources.get("paperSize"));h.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);h.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));h.appendChild(e);var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";h.appendChild(P);
k.appendChild(h);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&e.appendChild(h);a.isOffline()||(m=mxUtils.button(mxResources.get("help"),function(){g.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),m.className="geBtn",e.appendChild(m));PrintDialog.previewEnabled&&(m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
-d(!1)}),m.className="geBtn",e.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";e.appendChild(m);a.editor.cancelFirst||e.appendChild(h);k.appendChild(e);this.container=k};var v=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
-this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),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)):(v.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!=
+d(!1)}),m.className="geBtn",e.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";e.appendChild(m);a.editor.cancelFirst||e.appendChild(h);k.appendChild(e);this.container=k};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
+this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),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)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=
this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,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(a)})();(function(){EditorUi.VERSION="8.4.7";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,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(a)})();(function(){EditorUi.VERSION="8.4.8";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";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.sidebarFooterHeight=36;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.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(u){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
@@ -6790,7 +6860,7 @@ length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiT
"10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=k+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,k)}));this.stop();return a}),e=!0);return e};var k=d.stop;d.stop=function(){k.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=d(a,4);return a.charCodeAt(3)+
(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var k=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=g(a);var e=d(a,4);if(null!=b&&b(k-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("&lt;mxfile ");if(0<=d){var g=b.lastIndexOf("&lt;/mxfile&gt;");g>d&&(c=b.substring(d,g+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),f=this.editor.extractGraphModel(e.documentElement,null!=this.pages),c=null!=f?mxUtils.getXml(f):""}catch(v){}return c};EditorUi.prototype.validateFileData=
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("&lt;mxfile ");if(0<=d){var g=b.lastIndexOf("&lt;/mxfile&gt;");g>d&&(c=b.substring(d,g+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),f=this.editor.extractGraphModel(e.documentElement,null!=this.pages),c=null!=f?mxUtils.getXml(f):""}catch(w){}return c};EditorUi.prototype.validateFileData=
function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");
if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var g=d.length-1;0<=g;g--){var e=this.updatePageRoot(new DiagramPage(d[g]));null==e.getName()&&e.setName(mxResources.get("pageWithNumber",[g+1]));b.model.execute(new ChangePage(this,e,0==g?e:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(g=0;g<c.length;g++)b.model.execute(new ChangePage(this,c[g],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,f,h,l,m,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;m=null!=m?m:!0;var g,k=null;null==c||
@@ -6808,8 +6878,8 @@ e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128
b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=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)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,c,d,e,f){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();
var g=this.getBaseFilename(),k=g+"."+a;if("xml"==a){var n='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(k,a,n,"text/xml")}else if("html"==a)n=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(k,a,n,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?k=g+".png":"jpeg"==a&&(k=g+".jpg"),this.saveRequest(k,a,mxUtils.bind(this,
-function(b,c){try{var g=this.editor.graph.pageVisible;null!=f&&(this.editor.graph.pageVisible=f);var e=this.createDownloadRequest(b,a,d,c);this.editor.graph.pageVisible=g;return e}catch(G){this.handleError(G)}}));else{var t=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(t)}))});if("svg"==a){var l=this.editor.graph.background;
-l==mxConstants.NONE&&(l=null);var q=this.editor.graph.getSvg(l,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();h('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else k=g+".svg",t=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),d)}}catch(w){this.handleError(w)}};
+function(b,c){try{var g=this.editor.graph.pageVisible;null!=f&&(this.editor.graph.pageVisible=f);var e=this.createDownloadRequest(b,a,d,c);this.editor.graph.pageVisible=g;return e}catch(H){this.handleError(H)}}));else{var t=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(t)}))});if("svg"==a){var l=this.editor.graph.background;
+l==mxConstants.NONE&&(l=null);var q=this.editor.graph.getSvg(l,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();h('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else k=g+".svg",t=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),d)}}catch(v){this.handleError(v)}};
EditorUi.prototype.createDownloadRequest=function(a,b,c,d){var g=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var e="";if(g.width*g.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};g="0";if("xmlpng"==b&&(g="1",b="png",null!=this.pages&&null!=this.currentPage))for(var k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){e="&from="+k;break}return new mxXmlRequest(EXPORT_URL,"format="+b+e+"&base64="+d+"&embedXml="+
g+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();
this.editor.graph.model.clear();this.editor.undoManager.clear();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.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();
@@ -6826,19 +6896,19 @@ function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElemen
b)for(var k=0;k<b.length;k++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));
return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[k]);c=null!=c&&0<c.length?c:a.getTitle();var f=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var n=f.parentNode.previousSibling;c=n.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&n.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top=
"5px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");n.style.position="relative";var h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("close"));h.setAttribute("align","top");h.setAttribute("border","0");h.className="geButton";h.style.marginRight="1px";h.style.marginTop="-1px";t.appendChild(h);var l=null;mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=
-mxUtils.bind(this,function(){this.closeLibrary(a)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var m=this.editor.graph,w=null,H=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=w&&null!=w.parentNode&&w.parentNode.removeChild(w),w=h.cloneNode(!1),
-w.setAttribute("src",Editor.spinImage),w.setAttribute("title",mxResources.get("saving")),w.style.cursor="default",w.style.marginRight="2px",w.style.marginTop="-2px",t.insertBefore(w,t.firstChild),n.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=w&&null!=w.parentNode&&(w.parentNode.removeChild(w),n.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=h.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",
-mxResources.get("save")),t.insertBefore(l,t.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==l||a.isModified()||(n.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l),l=null)});mxEvent.consume(c)})),n.style.paddingRight=18*t.childNodes.length+"px")}),D=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var k=
-0;k<a.length;k++){var n=m.getCellGeometry(a[k]);null!=n&&n.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);E(d);null!=g&&null!=g.parentNode&&0<b.length&&(g.parentNode.removeChild(g),g=null)}),G=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),
-m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;c.y-=m.view.translate.y;D(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility=
+mxUtils.bind(this,function(){this.closeLibrary(a)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var m=this.editor.graph,v=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),D=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v),v=h.cloneNode(!1),
+v.setAttribute("src",Editor.spinImage),v.setAttribute("title",mxResources.get("saving")),v.style.cursor="default",v.style.marginRight="2px",v.style.marginTop="-2px",t.insertBefore(v,t.firstChild),n.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=v&&null!=v.parentNode&&(v.parentNode.removeChild(v),n.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=h.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",
+mxResources.get("save")),t.insertBefore(l,t.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==l||a.isModified()||(n.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l),l=null)});mxEvent.consume(c)})),n.style.paddingRight=18*t.childNodes.length+"px")}),E=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var k=
+0;k<a.length;k++){var n=m.getCellGeometry(a[k]);null!=n&&n.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);D(d);null!=g&&null!=g.parentNode&&0<b.length&&(g.parentNode.removeChild(g),g=null)}),H=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),
+m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;c.y-=m.view.translate.y;E(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility=
"hidden",null!=g?g.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)",f.style.cursor="copy",m.panningManager.stop(),m.autoScroll=!1,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!1),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler&&(f.style.border="3px solid transparent",null!=g&&(g.style.border="3px dotted lightGray"),
-f.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,G(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility=
+f.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,H(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility=
"visible"),null!=g&&(g.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){null!=g?g.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.border="3px solid transparent";f.style.cursor="";null!=g&&(g.style.border=
-"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,k,n,t,h,l,m,q){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,t,h),c)],c[0].vertex=!0,D(c,new mxRectangle(0,0,t,h),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&
-0<b.length&&(g.parentNode.removeChild(g),g=null);else{var p=!1,u=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var k=mxUtils.parseXml(c);if("mxlibrary"==k.documentElement.nodeName)try{var n=JSON.parse(mxUtils.getTextContent(k.documentElement));e(n,f);b=b.concat(n);E(a);this.spinner.stop();p=!0}catch(W){}else if("mxfile"==k.documentElement.nodeName)try{for(var t=k.documentElement.getElementsByTagName("diagram"),k=0;k<t.length;k++){var n=mxUtils.getTextContent(t[k]),h=this.stringToCells(this.editor.graph.decompress(n)),
-l=this.editor.graph.getBoundingBoxFromGeometry(h);D(h,new mxRectangle(0,0,l.width,l.height),a)}p=!0}catch(W){null!=window.console&&console.log("error in drop handler:",W)}}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<b.length&&(g.parentNode.removeChild(g),g=null)});null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?this.importVisio(q,function(a){u(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
+"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,k,n,t,h,l,m,q){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,t,h),c)],c[0].vertex=!0,E(c,new mxRectangle(0,0,t,h),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&
+0<b.length&&(g.parentNode.removeChild(g),g=null);else{var p=!1,u=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var k=mxUtils.parseXml(c);if("mxlibrary"==k.documentElement.nodeName)try{var n=JSON.parse(mxUtils.getTextContent(k.documentElement));e(n,f);b=b.concat(n);D(a);this.spinner.stop();p=!0}catch(P){}else if("mxfile"==k.documentElement.nodeName)try{for(var t=k.documentElement.getElementsByTagName("diagram"),k=0;k<t.length;k++){var n=mxUtils.getTextContent(t[k]),h=this.stringToCells(this.editor.graph.decompress(n)),
+l=this.editor.graph.getBoundingBoxFromGeometry(h);E(h,new mxRectangle(0,0,l.width,l.height),a)}p=!0}catch(P){null!=window.console&&console.log("error in drop handler:",P)}}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<b.length&&(g.parentNode.removeChild(g),g=null)});null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?this.importVisio(q,function(a){u(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
this.isRemoteFileFormat(c,l)&&null!=q?this.parseFile(q,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?u(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){null!=g?g.style.border="3px dotted lightGray":(f.style.border="3px solid transparent",
-f.style.cursor="");a.stopPropagation();a.preventDefault()}));h=h.cloneNode(!1);h.setAttribute("src",IMAGE_PATH+"/edit.gif");h.setAttribute("title",mxResources.get("edit"));t.insertBefore(h,t.firstChild);mxEvent.addListener(h,"click",H);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&H(a)});c=h.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",G);this.isOffline()||".scratchpad"!=
+f.style.cursor="");a.stopPropagation();a.preventDefault()}));h=h.cloneNode(!1);h.setAttribute("src",IMAGE_PATH+"/edit.gif");h.setAttribute("title",mxResources.get("edit"));t.insertBefore(h,t.firstChild);mxEvent.addListener(h,"click",G);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&G(a)});c=h.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",H);this.isOffline()||".scratchpad"!=
a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:gray;text-decoration:none;",c.className="geButton",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}n.appendChild(t);n.style.paddingRight=18*t.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position=
"relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),
@@ -6856,9 +6926,9 @@ function(a,b,c,d,e,f,h){a=new ErrorDialog(this,a,b,c,d,e,f,h);this.showDialog(a.
d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,e=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(e,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",
!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var g=document.createElement("a"),k=!mxClient.IS_SF&&"undefined"!==typeof g.download;if(k||this.isOffline()){g.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));k?g.download=b:g.setAttribute("target","_blank");
-document.body.appendChild(g);try{window.setTimeout(function(){URL.revokeObjectURL(g.href)},0),g.click(),g.parentNode.removeChild(g)}catch(y){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=f?"&base64="+f:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
+document.body.appendChild(g);try{window.setTimeout(function(){URL.revokeObjectURL(g.href)},0),g.click(),g.parentNode.removeChild(g)}catch(x){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=f?"&base64="+f:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),g=Array(e),k=0;k<e;++k){for(var f=1024*k,h=Math.min(f+1024,d),t=Array(h-f),l=0;f<h;++l,++f)t[l]=c[f].charCodeAt(0);g[k]=new Uint8Array(t)}return new Blob(g,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,f,h){f=null!=f?f:!1;h=null!=h?h:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(f);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null==c||"image/"!=c.substring(0,
-6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write(mxUtils.htmlEntities(a,!1)),g.document.close())}else this.openInNewWindow(a,c,d);else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(g){try{this.exportFile(a,b,c,d,e,g)}catch(x){this.handleError(x)}}))}catch(A){this.handleError(A)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
+6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write(mxUtils.htmlEntities(a,!1)),g.document.close())}else this.openInNewWindow(a,c,d);else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(g){try{this.exportFile(a,b,c,d,e,g)}catch(F){this.handleError(F)}}))}catch(z){this.handleError(z)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
mxResources.get("download"),!1,f,h,null,null,4<e?3:4,a,c,d);this.showDialog(b.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
@@ -6879,29 +6949,29 @@ e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow
null,k=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(g||"none",function(a){g=a;c()});mxEvent.consume(a)}));c();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";a.appendChild(k);mxUtils.br(a);return{getColor:function(){return g},getTarget:function(){return d.value},focus:function(){d.focus()}}};
EditorUi.prototype.createLink=function(a,b,c,d,e,f,h,l){var g=this.getCurrentFile(),k=[];d&&(k.push("lightbox=1"),"auto"!=a&&k.push("target="+a),null!=b&&b!=mxConstants.NONE&&k.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&k.push("edit="+encodeURIComponent(e)),f&&k.push("layers=1"),this.editor.graph.foldingEnabled&&k.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&k.push("page="+a);
break}a=!0;null!=h?c="#U"+encodeURIComponent(h):(g=this.getCurrentFile(),l||null==g||g.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+g.getHash(),a=!1));a&&null!=g&&null!=g.getTitle()&&g.getTitle()!=this.defaultFilename&&k.push("title="+encodeURIComponent(g.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
-"https://www.draw.io/":"https://"+window.location.host+"/")+(0<k.length?"?"+k.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,f,h,l,m,t,A){this.getBasenames();var g={};""!=e&&e!=mxConstants.NONE&&(g.highlight=e);"auto"!==d&&(g.target=d);m||(g.lightbox=!1);g.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(g.zoom=c/100);c=[];h&&(c.push("pages"),g.resize=!0,null!=this.pages&&null!=this.currentPage&&(g.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
-g.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),g.toolbar=c.join(" "));null!=t&&0<t.length&&(g.edit=t);null!=a?g.url=a:g.xml=this.getFileData(!0,null,null,null,null,!h);b='<div class="mxgraph" style="'+(f?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(g))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";A(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+"https://www.draw.io/":"https://"+window.location.host+"/")+(0<k.length?"?"+k.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,f,h,l,m,t,z){this.getBasenames();var g={};""!=e&&e!=mxConstants.NONE&&(g.highlight=e);"auto"!==d&&(g.target=d);m||(g.lightbox=!1);g.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(g.zoom=c/100);c=[];h&&(c.push("pages"),g.resize=!0,null!=this.pages&&null!=this.currentPage&&(g.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
+g.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),g.toolbar=c.join(" "));null!=t&&0<t.length&&(g.edit=t);null!=a?g.url=a:g.xml=this.getFileData(!0,null,null,null,null,!h);b='<div class="mxgraph" style="'+(f?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(g))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.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";e.appendChild(g);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";
var f=document.createElement("input");f.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";f.setAttribute("value","url");f.setAttribute("type","radio");f.setAttribute("name","type-embedhtmldialog");g=f.cloneNode(!0);g.setAttribute("value","copy");k.appendChild(g);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(f);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));
k.appendChild(n);var h=this.getCurrentFile();null==c&&null!=h&&h.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href","javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(h.getId())})));g.setAttribute("checked","checked");null==c&&f.setAttribute("disabled","disabled");e.appendChild(k);var l=
-this.addLinkSection(e),m=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");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="100%";e.appendChild(q);var w=this.addCheckbox(e,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,H=H=this.addCheckbox(e,mxResources.get("allPages"),k,!k),E=this.addCheckbox(e,mxResources.get("layers"),!0),
-D=this.addCheckbox(e,mxResources.get("lightbox"),!0),G=this.addEditButton(e,D),B=G.getEditInput();B.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");B.checked&&D.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(f.checked?c:null,m.checked,q.value,l.getTarget(),l.getColor(),w.checked,H.checked,
-E.checked,D.checked,G.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,f){var g=document.createElement("div");g.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var n=this.getCurrentFile(),k="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
+this.addLinkSection(e),m=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");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="100%";e.appendChild(q);var v=this.addCheckbox(e,mxResources.get("fit"),!0),k=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(e,mxResources.get("allPages"),k,!k),D=this.addCheckbox(e,mxResources.get("layers"),!0),
+E=this.addCheckbox(e,mxResources.get("lightbox"),!0),H=this.addEditButton(e,E),A=H.getEditInput();A.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?A.removeAttribute("disabled"):A.setAttribute("disabled","disabled");A.checked&&E.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(f.checked?c:null,m.checked,q.value,l.getTarget(),l.getColor(),v.checked,G.checked,
+D.checked,E.checked,H.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,f){var g=document.createElement("div");g.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var n=this.getCurrentFile(),k="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
n&&n.constructor==window.DriveFile&&!b){a=80;var k="https://desk.draw.io/support/solutions/articles/16000039384",h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));h.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(n.getId())}));
l.style.marginTop="12px";l.className="geBtn";h.appendChild(l);g.appendChild(h);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.setAttribute("href","javascript:void(0);");mxUtils.write(l,mxResources.get("check"));h.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,
null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,q=null;if(null!=c||null!=d)a+=30,mxUtils.write(g,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",g.appendChild(m),mxUtils.write(g,mxResources.get("height")+
-":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",g.appendChild(q),mxUtils.br(g);var p=this.addLinkSection(g,f);c=null!=this.pages&&1<this.pages.length;var u=null;if(null==n||n.constructor!=window.DriveFile||b)u=this.addCheckbox(g,mxResources.get("allPages"),c,!c);var E=this.addCheckbox(g,mxResources.get("lightbox"),!0),D=this.addEditButton(g,E),G=D.getEditInput(),B=this.addCheckbox(g,mxResources.get("layers"),
-!0);B.style.marginLeft=G.style.marginLeft;B.style.marginBottom="16px";B.style.marginTop="8px";mxEvent.addListener(E,"change",function(){E.checked?(B.removeAttribute("disabled"),G.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&E.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,g,mxUtils.bind(this,function(){e(p.getTarget(),p.getColor(),null==u?
-!0:u.checked,E.checked,D.getLink(),B.checked,null!=m?m.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,
+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",g.appendChild(q),mxUtils.br(g);var p=this.addLinkSection(g,f);c=null!=this.pages&&1<this.pages.length;var u=null;if(null==n||n.constructor!=window.DriveFile||b)u=this.addCheckbox(g,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(g,mxResources.get("lightbox"),!0),E=this.addEditButton(g,D),H=E.getEditInput(),A=this.addCheckbox(g,mxResources.get("layers"),
+!0);A.style.marginLeft=H.style.marginLeft;A.style.marginBottom="16px";A.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(A.removeAttribute("disabled"),H.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&D.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,g,mxUtils.bind(this,function(){e(p.getTarget(),p.getColor(),null==u?
+!0:u.checked,D.checked,E.getLink(),A.checked,null!=m?m.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var e=document.createElement("div");e.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:4px";e.appendChild(g);var k=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),f=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0);null!=f&&(f.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!k.checked,null!=f?f.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:146,!0,!0)};EditorUi.prototype.showExportDialog=
function(a,b,c,d,e,f,h,l){h=null!=h?h:!0;var g=document.createElement("div");g.style.whiteSpace="nowrap";var k=this.editor.graph,n="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";g.appendChild(m);mxUtils.write(g,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%";g.appendChild(q);mxUtils.write(g,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";g.appendChild(p);mxUtils.br(g);var u=this.addCheckbox(g,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background,null,null,"jpeg"!=l),v=this.addCheckbox(g,mxResources.get("selectionOnly"),
-!1,k.isSelectionEmpty()),y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.style.marginLeft="24px";y.setAttribute("disabled","disabled");y.setAttribute("type","checkbox");f&&(g.appendChild(y),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),n+=26,mxEvent.addListener(v,"change",function(){v.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}));k.isSelectionEmpty()||(y.setAttribute("checked","checked"),y.defaultChecked=!0);var G=this.addCheckbox(g,
-mxResources.get("shadow"),k.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(g.appendChild(B),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),n+=26);var L=this.addCheckbox(g,mxResources.get("includeCopyOfMyDiagram"),h,null,null,"jpeg"!=l),F=null!=this.pages&&1<this.pages.length,K=this.addCheckbox(g,F?mxResources.get("allPages"):
-"",F,!F,null,"jpeg"!=l);K.style.marginLeft="24px";K.style.marginBottom="16px";F||(K.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&F?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")});h&&F||K.setAttribute("disabled","disabled");a=new CustomDialog(this,g,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=q.value;e(q.value,u.checked,!v.checked,G.checked,L.checked,B.checked,p.value,y.checked,!K.checked)}),null,c,d);this.showDialog(a.container,
+"12px";q.value=this.lastExportZoom||"100%";g.appendChild(q);mxUtils.write(g,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";g.appendChild(p);mxUtils.br(g);var u=this.addCheckbox(g,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background,null,null,"jpeg"!=l),w=this.addCheckbox(g,mxResources.get("selectionOnly"),
+!1,k.isSelectionEmpty()),x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.style.marginLeft="24px";x.setAttribute("disabled","disabled");x.setAttribute("type","checkbox");f&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),n+=26,mxEvent.addListener(w,"change",function(){w.checked?x.removeAttribute("disabled"):x.setAttribute("disabled","disabled")}));k.isSelectionEmpty()||(x.setAttribute("checked","checked"),x.defaultChecked=!0);var H=this.addCheckbox(g,
+mxResources.get("shadow"),k.shadowVisible),A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||A.setAttribute("disabled","disabled");b&&(g.appendChild(A),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),n+=26);var K=this.addCheckbox(g,mxResources.get("includeCopyOfMyDiagram"),h,null,null,"jpeg"!=l),B=null!=this.pages&&1<this.pages.length,L=this.addCheckbox(g,B?mxResources.get("allPages"):
+"",B,!B,null,"jpeg"!=l);L.style.marginLeft="24px";L.style.marginBottom="16px";B||(L.style.visibility="hidden");mxEvent.addListener(K,"change",function(){K.checked&&B?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled")});h&&B||L.setAttribute("disabled","disabled");a=new CustomDialog(this,g,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=q.value;e(q.value,u.checked,!w.checked,H.checked,K.checked,A.checked,p.value,x.checked,!L.checked)}),null,c,d);this.showDialog(a.container,
340,n,!0,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var g=document.createElement("div");g.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var f=document.createElement("h3");mxUtils.write(f,b);f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";g.appendChild(f)}var n=this.addCheckbox(g,mxResources.get("fit"),
-!0),h=this.addCheckbox(g,mxResources.get("shadow"),k.shadowVisible&&d,!d),l=this.addCheckbox(g,c),m=this.addCheckbox(g,mxResources.get("lightbox"),!0),q=this.addEditButton(g,m),u=q.getEditInput(),H=1<k.model.getChildCount(k.model.getRoot()),E=this.addCheckbox(g,mxResources.get("layers"),H,!H);E.style.marginLeft=u.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(m,"change",function(){m.checked?(H&&E.removeAttribute("disabled"),u.removeAttribute("disabled")):
-(E.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&m.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,g,mxUtils.bind(this,function(){a(n.checked,h.checked,l.checked,m.checked,q.getLink(),E.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,e,f,h,l){function g(b){var g=" ",n="";d&&(g=" 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('https://www.draw.io/?client=1&lightbox=1"+
+!0),h=this.addCheckbox(g,mxResources.get("shadow"),k.shadowVisible&&d,!d),l=this.addCheckbox(g,c),m=this.addCheckbox(g,mxResources.get("lightbox"),!0),q=this.addEditButton(g,m),u=q.getEditInput(),G=1<k.model.getChildCount(k.model.getRoot()),D=this.addCheckbox(g,mxResources.get("layers"),G,!G);D.style.marginLeft=u.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(m,"change",function(){m.checked?(G&&D.removeAttribute("disabled"),u.removeAttribute("disabled")):
+(D.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&m.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,g,mxUtils.bind(this,function(){a(n.checked,h.checked,l.checked,m.checked,q.getLink(),D.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,e,f,h,l){function g(b){var g=" ",n="";d&&(g=" 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('https://www.draw.io/?client=1&lightbox=1"+
(e?"&edit=_blank":"")+(f?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");a&&(n+="max-width:100%;");var t="";c&&(t=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');h('<img src="'+b+'"'+t+(""!=n?' style="'+n+'"':"")+g+"/>")}var k=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");g(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var n="";c&&(n="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+n+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?g("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
EditorUi.prototype.createEmbedSvg=function(a,b,c,d,e,f,h){var g=this.editor.graph.getSvg(),k=g.getElementsByTagName("a");if(null!=k)for(var n=0;n<k.length;n++){var l=k[n].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==k[n].getAttribute("target")&&k[n].removeAttribute("target")}d&&g.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(g);if(c){var m=" ",q="";d&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
@@ -6912,46 +6982,46 @@ d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){retur
e=null;if(null!=c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),e=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),g=d.getGlobalVariable,f=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:g.apply(this,arguments)};document.body.appendChild(d.container);
d.model.setRoot(f.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==e&&(e=this.getFileData(!0));var g=c.toDataURL("image/png"),g=this.writeGraphModelToPng(g,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(g.substring(g.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(t){null!=b&&b(t)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)};EditorUi.prototype.getEmbeddedSvg=
function(a,b,c,d,e,f,h){h=b.background;h==mxConstants.NONE&&(h=null);b=b.getSvg(h,null,null,null,null,f);null!=a&&b.setAttribute("content",a);null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))}));else return(d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f,h,l,m){m=null!=m?m:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,l):null,m)}catch(x){"Invalid image"==x.message?this.downloadFile(m):this.handleError(x)}}),null,
-this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,f,h)}catch(A){this.spinner.stop(),this.handleError(A)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},c=this.editor.fontCss.split("url("),d=0,e={},g=mxUtils.bind(this,function(){if(0==d){for(var g=[c[0]],f=1;f<c.length;f++){var k=
+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f,h,l,m){m=null!=m?m:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,l):null,m)}catch(F){"Invalid image"==F.message?this.downloadFile(m):this.handleError(F)}}),null,
+this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,f,h)}catch(z){this.spinner.stop(),this.handleError(z)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},c=this.editor.fontCss.split("url("),d=0,e={},g=mxUtils.bind(this,function(){if(0==d){for(var g=[c[0]],f=1;f<c.length;f++){var k=
c[f].indexOf(")");g.push('url("');g.push(e[b(c[f].substring(0,k))]);g.push('"'+c[f].substring(k))}this.editor.resolvedFontCss=g.join("");a()}});if(0<c.length)for(var f=1;f<c.length;f++){var h=c[f].indexOf(")"),l=null,t=c[f].indexOf("format(",h);0<t&&(l=b(c[f].substring(t+7,c[f].indexOf(")",t))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;d++;var b="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))b=
"application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c=a;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){e[a]=b;d--;g()}),mxUtils.bind(this,
-function(a){d--;g()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[f].substring(0,h)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,h,l,m,t,A,x,C,w){f=null!=f?f:!0;x=null!=x?x:this.editor.graph;C=null!=C?C:0;var g=m?null:x.background;g==mxConstants.NONE&&(g=null);null==g&&(g=d);null==g&&0==m&&(g=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(g,null,null,w,null,null!=h?h:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,
+function(a){d--;g()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[f].substring(0,h)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,h,l,m,t,z,F,C,v){f=null!=f?f:!0;F=null!=F?F:this.editor.graph;C=null!=C?C:0;var g=m?null:F.background;g==mxConstants.NONE&&(g=null);null==g&&(g=d);null==g&&0==m&&(g=this.editor.graph.defaultPageBackgroundColor);this.convertImages(F.getSvg(g,null,null,v,null,null!=h?h:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,
function(){try{var k=document.createElement("canvas"),h=parseInt(c.getAttribute("width")),n=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=f?Math.min(1,Math.min(3*b/(4*n),b/h)):b/h);h=Math.ceil(l*h)+2*C;n=Math.ceil(l*n)+2*C;k.setAttribute("width",h);k.setAttribute("height",n);var t=k.getContext("2d");null!=g&&(t.beginPath(),t.rect(0,0,h,n),t.fillStyle=g,t.fill());t.scale(l,l);t.drawImage(d,C/l,C/l);a(k)}catch(O){null!=e&&e(O)}});d.onerror=function(a){null!=e&&e(a)};try{t&&this.editor.graph.addSvgShadow(c);
-var k=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(x,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(k)}catch(B){null!=e&&e(B)}}),c,A)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
+var k=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(F,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(k)}catch(A){null!=e&&e(A)}}),c,z)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
c=this;a.convert=function(d){if(null!=d){var e="http://"==d.substring(0,7)||"https://"==d.substring(0,8);e&&!navigator.onLine?d=c.svgBrokenImage.src:!e||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"!=d.substring(0,19)&&(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,g=c||{};c=mxUtils.bind(this,
function(c,f){for(var k=a.getElementsByTagName(c),h=0;h<k.length;h++)mxUtils.bind(this,function(c){var k=d.convert(c.getAttribute(f));if(null!=k&&"data:"!=k.substring(0,5)){var h=g[k];null==h?(e++,this.convertImageToDataUri(k,function(d){null!=d&&(g[k]=d,c.setAttribute(f,d));e--;0==e&&b(a)})):c.setAttribute(f,h)}else null!=k&&c.setAttribute(f,k)})(k[h])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,f){try{var g=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||
/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var k=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);d=d.join("")}f=null!=f?f:"data:image/png;base64,";d=f+this.base64Encode(d)}b(d)}}else null!=
-c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},g,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:k})})});k()}catch(z){null!=c&&c(z)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
+c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},g,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:k})})});k()}catch(y){null!=c&&c(y)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");
-a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(v){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var g=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),h=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=h&&"mxfile"==h.nodeName&&null!=this.pages){var n=h.getElementsByTagName("diagram");if(1==n.length)h=
+a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(w){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var g=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),h=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=h&&"mxfile"==h.nodeName&&null!=this.pages){var n=h.getElementsByTagName("diagram");if(1==n.length)h=
mxUtils.parseXml(f.decompress(mxUtils.getTextContent(n[0]))).documentElement;else if(1<n.length){f.model.beginUpdate();try{for(a=0;a<n.length;a++){var l=this.updatePageRoot(new DiagramPage(n[a])),m=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[m+1]));f.model.execute(new ChangePage(this,l,l,m))}}finally{f.model.endUpdate()}}}null!=h&&"mxGraphModel"===h.nodeName&&(g=f.importGraphModel(h,b,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),
C;}return g};EditorUi.prototype.importVisio=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)try{this.doImportVisio(a,b,c)}catch(u){c(u)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==
-typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(k){this.handleError(k)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.importLucidChart=function(a,b,c,d,e){var g=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.pasteLucidChart)try{this.insertLucidChart(a,b,c,d,e)}catch(v){this.handleError(v)}finally{null!=e&&e()}});this.pasteLucidChart||this.loadingExtensions||
+typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(k){this.handleError(k)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.importLucidChart=function(a,b,c,d,e){var g=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.pasteLucidChart)try{this.insertLucidChart(a,b,c,d,e)}catch(w){this.handleError(w)}finally{null!=e&&e()}});this.pasteLucidChart||this.loadingExtensions||
this.isOffline()?window.setTimeout(g,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",g):mxscript("js/extensions.min.js",g))};EditorUi.prototype.insertLucidChart=function(a,b,c,d,e){e=JSON.parse(a);a=[];if(null!=e.state){e=JSON.parse(e.state);for(var g in e.Pages)a.push(e.Pages[g]);a.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0})}else a.push(e);if(0<a.length){this.editor.graph.getModel().beginUpdate();
try{if(this.pasteLucidChart(a[0],b,c,d),null!=this.pages){var f=this.currentPage;for(b=1;b<a.length;b++)this.insertPage(),this.pasteLucidChart(a[b]);this.selectPage(f)}}finally{this.editor.graph.getModel().endUpdate()}}};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f,h){f=null!=f?f:!0;h=null!=h?h:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,
function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var k=this.extractGraphModelFromPng(a),n=this.importXml(k,b,c,f,!0);if(0<n.length)return n}if("data:image/svg+xml;"==a.substring(0,19))try{if(k=null,"data:image/svg+xml;base64,"==a.substring(0,
-26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),n=this.importXml(k,b,c,f,!0),0<n.length)return n}catch(A){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),n=this.importXml(k,b,c,f,!0),0<n.length)return n}catch(z){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
this.convertDataUri(a)+";"))}),h,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),
null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html=1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26))this.importLucidChart(a,b,c,f);else{g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),
null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html=1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(e.value)&&g.setLinkForCell(e,e.value),e.geometry.width+=g.gridSize,e.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[e]}}return[]};
EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,h,l,
-m,t,A){t=null!=t?t:!0;var g=!1,k=null,n=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,h)):b=this.importXml(a,c,d,t);null!=l&&l(b)});"image"==b.substring(0,5)?(m=!1,"image/png"==b.substring(0,9)&&(b=A?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(k=this.importXml(b,c,d,t),m=!0)),m||(k=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&k.isGridEnabled()&&(c=k.snap(c),
+m,t,z){t=null!=t?t:!0;var g=!1,k=null,n=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,h)):b=this.importXml(a,c,d,t);null!=l&&l(b)});"image"==b.substring(0,5)?(m=!1,"image/png"==b.substring(0,9)&&(b=z?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(k=this.importXml(b,c,d,t),m=!0)),m||(k=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&k.isGridEnabled()&&(c=k.snap(c),
d=k.snap(d)),k=[k.insertVertex(null,null,"",c,d,e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,d,t);null!=l&&l(a)})):null!=m&&null!=h&&(/(\.vsdx)($|\?)/i.test(h)||/(\.vssx)($|\?)/i.test(h))?(g=!0,this.importVisio(m,n)):!this.isOffline()&&(new XMLHttpRequest).upload&&
this.isRemoteFileFormat(a,h)?(g=!0,this.parseFile(null!=m?m:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?n(a.responseText):null!=l&&l(null))}),h)):/(\.vsd)($|\?)/i.test(h)||(k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,t));g||null==l||l(k);return k};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,g,f;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="==";break}g=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);b+="=";break}f=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(f&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,h,l,m,t,A,x){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var g=null!=b&&null!=c,k=!0,n=!1;if(!mxClient.IS_CHROMEAPP&&
-null!=a)for(var q=A||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,6)&&a[p].size>q){n=!0;break}var u=mxUtils.bind(this,function(){var n=this.editor.graph,m=n.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,k,h,n){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,c,d,e,f,k,h,n,g,x)});f=null!=f?f:mxUtils.bind(this,function(a){n.setSelectionCells(a)});if(this.spinner.spin(document.body,
-mxResources.get("loading")))for(var q=a.length,p=q,u=[],v=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--p){this.spinner.stop();if(null!=l)l(u);else{var c=[];n.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(c=c.concat(e))}}finally{n.getModel().endUpdate()}}f(c)}}),C=0;C<q;C++)mxUtils.bind(this,function(g){var f=a[g],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==h||h(f))if("image/"==f.type.substring(0,6))if("image/svg"==f.type.substring(0,9)){var l=
-a.target.result,q=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(q+1)))),u=mxUtils.parseXml(p),p=u.getElementsByTagName("svg");if(0<p.length){var p=p[0],B=x?null:p.getAttribute("content");null!=B&&"<"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null==B||"<mxfile "!==B.substring(0,8)&&"<mxGraphModel "!==B.substring(0,14)?v(g,mxUtils.bind(this,function(){try{if(l.substring(0,q+1),null!=u){var a=
-u.getElementsByTagName("svg");if(0<a.length){var h=a[0],t=parseFloat(h.getAttribute("width")),p=parseFloat(h.getAttribute("height")),A=h.getAttribute("viewBox");if(null==A||0==A.length)h.setAttribute("viewBox","0 0 "+t+" "+p);else if(isNaN(t)||isNaN(p)){var B=A.split(" ");3<B.length&&(t=parseFloat(B[2]),p=parseFloat(B[3]))}l=this.createSvgDataUri(mxUtils.getXml(h));var x=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,p)),F=e(l,f.type,b+g*m,c+g*m,Math.max(1,Math.round(t*x)),Math.max(1,Math.round(p*
-x)),f.name,k);if(isNaN(t)||isNaN(p)){var v=new Image;v.onload=mxUtils.bind(this,function(){t=Math.max(1,v.width);p=Math.max(1,v.height);F[0].geometry.width=t;F[0].geometry.height=p;h.setAttribute("viewBox","0 0 "+t+" "+p);l=this.createSvgDataUri(mxUtils.getXml(h));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));n.setCellStyles("image",l,[F[0]])});v.src=this.createSvgDataUri(mxUtils.getXml(h))}return F}}}catch(aa){}return null})):v(g,mxUtils.bind(this,function(){return e(B,
-"text/xml",b+g*m,c+g*m,0,0,f.name)}))}}else{p=!1;if("image/png"==f.type){var F=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=F&&0<F.length){var C=new Image;C.src=a.target.result;v(g,mxUtils.bind(this,function(){return e(F,"text/xml",b+g*m,c+g*m,C.width,C.height,f.name)}));p=!0}}p||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
-mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(h){this.resizeImage(h,a.target.result,mxUtils.bind(this,function(h,n,l){v(g,mxUtils.bind(this,function(){if(null!=h&&h.length<t){var q=k&&this.isResampleImage(a.target.result,A)?Math.min(1,Math.min(d/n,d/l)):1;return e(h,f.type,b+g*m,c+g*m,Math.round(n*q),Math.round(l*q),f.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),k,d,A)}),mxUtils.bind(this,
-function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result,f.type,b+g*m,c+g*m,240,160,f.name,function(a){v(g,function(){return a})})});/(\.vsdx)($|\?)/i.test(f.name)||/(\.vssx)($|\?)/i.test(f.name)?e(null,f.type,b+g*m,c+g*m,240,160,f.name,function(a){v(g,function(){return a})},f):"image"==f.type.substring(0,5)?l.readAsDataURL(f):l.readAsText(f)})(C)});n?this.confirmImageResize(function(a){k=a;u()},m):u()};EditorUi.prototype.confirmImageResize=function(a,
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(f&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,h,l,m,t,z,F){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var g=null!=b&&null!=c,k=!0,n=!1;if(!mxClient.IS_CHROMEAPP&&
+null!=a)for(var q=z||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,6)&&a[p].size>q){n=!0;break}var u=mxUtils.bind(this,function(){var n=this.editor.graph,m=n.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,k,h,n){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,c,d,e,f,k,h,n,g,F)});f=null!=f?f:mxUtils.bind(this,function(a){n.setSelectionCells(a)});if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var q=a.length,p=q,u=[],v=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--p){this.spinner.stop();if(null!=l)l(u);else{var c=[];n.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(c=c.concat(e))}}finally{n.getModel().endUpdate()}}f(c)}}),w=0;w<q;w++)mxUtils.bind(this,function(g){var f=a[g],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==h||h(f))if("image/"==f.type.substring(0,6))if("image/svg"==f.type.substring(0,9)){var l=
+a.target.result,q=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(q+1)))),u=mxUtils.parseXml(p),p=u.getElementsByTagName("svg");if(0<p.length){var p=p[0],A=F?null:p.getAttribute("content");null!=A&&"<"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null==A||"<mxfile "!==A.substring(0,8)&&"<mxGraphModel "!==A.substring(0,14)?v(g,mxUtils.bind(this,function(){try{if(l.substring(0,q+1),null!=u){var a=
+u.getElementsByTagName("svg");if(0<a.length){var h=a[0],t=parseFloat(h.getAttribute("width")),p=parseFloat(h.getAttribute("height")),z=h.getAttribute("viewBox");if(null==z||0==z.length)h.setAttribute("viewBox","0 0 "+t+" "+p);else if(isNaN(t)||isNaN(p)){var A=z.split(" ");3<A.length&&(t=parseFloat(A[2]),p=parseFloat(A[3]))}l=this.createSvgDataUri(mxUtils.getXml(h));var v=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,p)),B=e(l,f.type,b+g*m,c+g*m,Math.max(1,Math.round(t*v)),Math.max(1,Math.round(p*
+v)),f.name,k);if(isNaN(t)||isNaN(p)){var w=new Image;w.onload=mxUtils.bind(this,function(){t=Math.max(1,w.width);p=Math.max(1,w.height);B[0].geometry.width=t;B[0].geometry.height=p;h.setAttribute("viewBox","0 0 "+t+" "+p);l=this.createSvgDataUri(mxUtils.getXml(h));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));n.setCellStyles("image",l,[B[0]])});w.src=this.createSvgDataUri(mxUtils.getXml(h))}return B}}}catch(ba){}return null})):v(g,mxUtils.bind(this,function(){return e(A,
+"text/xml",b+g*m,c+g*m,0,0,f.name)}))}}else{p=!1;if("image/png"==f.type){var B=F?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var w=new Image;w.src=a.target.result;v(g,mxUtils.bind(this,function(){return e(B,"text/xml",b+g*m,c+g*m,w.width,w.height,f.name)}));p=!0}}p||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
+mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(h){this.resizeImage(h,a.target.result,mxUtils.bind(this,function(h,n,l){v(g,mxUtils.bind(this,function(){if(null!=h&&h.length<t){var q=k&&this.isResampleImage(a.target.result,z)?Math.min(1,Math.min(d/n,d/l)):1;return e(h,f.type,b+g*m,c+g*m,Math.round(n*q),Math.round(l*q),f.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),k,d,z)}),mxUtils.bind(this,
+function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result,f.type,b+g*m,c+g*m,240,160,f.name,function(a){v(g,function(){return a})})});/(\.vsdx)($|\?)/i.test(f.name)||/(\.vssx)($|\?)/i.test(f.name)?e(null,f.type,b+g*m,c+g*m,240,160,f.name,function(a){v(g,function(){return a})},f):"image"==f.type.substring(0,5)?l.readAsDataURL(f):l.readAsText(f)})(w)});n?this.confirmImageResize(function(a){k=a;u()},m):u()};EditorUi.prototype.confirmImageResize=function(a,
b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>
-b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var h=Math.max(g/e,k/e);if(1<h){var l=Math.round(g/h),n=Math.round(k/h),m=document.createElement("canvas");m.width=l;m.height=n;m.getContext("2d").drawImage(a,0,0,l,n);var q=m.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=l;p.height=n;var u=p.toDataURL();q!==u&&(b=q,g=l,k=n)}}}catch(E){}c(b,g,k)};
+b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var h=Math.max(g/e,k/e);if(1<h){var l=Math.round(g/h),n=Math.round(k/h),m=document.createElement("canvas");m.width=l;m.height=n;m.getContext("2d").drawImage(a,0,0,l,n);var q=m.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=l;p.height=n;var u=p.toDataURL();q!==u&&(b=q,g=l,k=n)}}}catch(D){}c(b,g,k)};
EditorUi.prototype.crcTable=[];for(var d=0;256>d;d++)for(var c=d,e=0;8>e;e++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[d]=c;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function g(a,b){var c=h;h+=b;return a.substring(c,h)}function f(a){a=g(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>
24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var h=0;if(g(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(a,4),"IHDR"!=g(a,4))null!=e&&e();else{g(a,17);e=a.substring(0,h);do{var l=f(a);if("IDAT"==g(a,4)){e=a.substring(0,h-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);e+=k(c.length)+b+c+k(d^4294967295);
e+=a.substring(h-8,a.length);break}e+=a.substring(h-8,h-4+l);g(a,l);g(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
@@ -6960,21 +7030,21 @@ a.indexOf(",");0<c&&(a=b.getPageById(a.substring(c+1)))&&b.selectPage(a)}"undefi
urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return d.apply(this,arguments)};var e=c.addClickHandler;c.addClickHandler=function(b,d,g){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null==d||!c.isPageLink(d)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(d),mxEvent.consume(b));null!=f&&f(b,d)};e.call(this,b,d,g)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,
null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:h.apply(this,arguments)};var l=c.createLinkForHint;c.createLinkForHint=function(d,e){var g=
c.isPageLink(d);if(g){var f=d.indexOf(",");0<f&&(f=b.getPageById(d.substring(f+1)),e=null!=f?f.getName():mxResources.get("pageNotFound"))}f=l.call(this,d,e);g&&mxEvent.addListener(f,"click",function(b){a(d);mxEvent.consume(b)});return f};var m=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var g=d.getAttribute("href");if(null==g||!c.isPageLink(g)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))m.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))a(g),c.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var z=this.actions.get("print");z.setEnabled(!mxClient.IS_IOS||!navigator.standalone);z.visible=z.isEnabled();if(!this.editor.chromeless||this.editor.editable){var t=function(){window.setTimeout(function(){A.innerHTML="&nbsp;";A.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,
+mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var y=this.actions.get("print");y.setEnabled(!mxClient.IS_IOS||!navigator.standalone);y.visible=y.isEnabled();if(!this.editor.chromeless||this.editor.editable){var t=function(){window.setTimeout(function(){z.innerHTML="&nbsp;";z.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||c.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===
-c.types[e].substring(0,5)){d=!0;break}if(!d){var g=c.items;for(index in g){var f=g[index];if("file"===f.kind){if(b.isEditing())this.importFiles([f.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,g,f){b.insertImage(a,g,f)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(P){}}),!1);var A=document.createElement("div");
-A.style.position="absolute";A.style.whiteSpace="nowrap";A.style.overflow="hidden";A.style.display="block";A.contentEditable=!0;mxUtils.setOpacity(A,0);A.style.width="1px";A.style.height="1px";A.innerHTML="&nbsp;";var x=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
-null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||x||(A.style.left=c.container.scrollLeft+10+"px",A.style.top=c.container.scrollTop+10+"px",c.container.appendChild(A),x=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){A.focus();document.execCommand("selectAll",!1,null)},0):(A.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
-a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!x||224!=b&&17!=b&&91!=b||(x=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),A.parentNode.removeChild(A))}),0)}));mxEvent.addListener(A,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(A),t())}));mxEvent.addListener(A,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(A,!0),t())}));mxEvent.addListener(A,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-(A.innerHTML="&nbsp;",A.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,A);A.innerHTML="&nbsp;"}),0))}),!0);var C=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==A?!0:C.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+c.types[e].substring(0,5)){d=!0;break}if(!d){var g=c.items;for(index in g){var f=g[index];if("file"===f.kind){if(b.isEditing())this.importFiles([f.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,g,f){b.insertImage(a,g,f)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(N){}}),!1);var z=document.createElement("div");
+z.style.position="absolute";z.style.whiteSpace="nowrap";z.style.overflow="hidden";z.style.display="block";z.contentEditable=!0;mxUtils.setOpacity(z,0);z.style.width="1px";z.style.height="1px";z.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(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
+null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||F||(z.style.left=c.container.scrollLeft+10+"px",z.style.top=c.container.scrollTop+10+"px",c.container.appendChild(z),F=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){z.focus();document.execCommand("selectAll",!1,null)},0):(z.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
+a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!F||224!=b&&17!=b&&91!=b||(F=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),z.parentNode.removeChild(z))}),0)}));mxEvent.addListener(z,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(z),t())}));mxEvent.addListener(z,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(z,!0),t())}));mxEvent.addListener(z,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
+(z.innerHTML="&nbsp;",z.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,z);z.innerHTML="&nbsp;"}),0))}),!0);var C=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==z?!0:C.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
0,0,this.maxImageSize,function(a,c,d,e,g,f){b.insertImage(a,g,f)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==
-typeof mxRuler){z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="250px";z.style.width="2000px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);var w=document.createElement("div");w.style.position="absolute";w.style.top="125px";w.style.left="220px";w.style.width="30px";w.style.height="1000px";w.style.background="whiteSmoke";document.body.appendChild(w);var H=document.createElement("div");H.style.position="absolute";H.style.top=
-"95px";H.style.left="220px";H.style.width="30px";H.style.height="30px";H.style.background="whiteSmoke";document.body.appendChild(H);this.vRuler=new mxRuler(this.editor.graph,w,!0);this.hRuler=new mxRuler(this.editor.graph,z,!1)}if("1"==urlParams.test){z=document.getElementById("geFooter");null!=z&&(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)})),z.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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 E=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:E.apply(this,arguments)}}z=document.getElementById("geInfo");null!=z&&z.parentNode.removeChild(z);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var D=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=D&&(D.parentNode.removeChild(D),
-D=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==D&&(!mxClient.IS_IE||10<document.documentMode)&&(D=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=D&&(D.parentNode.removeChild(D),D=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
+typeof mxRuler){y=document.createElement("div");y.style.position="absolute";y.style.top="95px";y.style.left="250px";y.style.width="2000px";y.style.height="30px";y.style.background="whiteSmoke";document.body.appendChild(y);var v=document.createElement("div");v.style.position="absolute";v.style.top="125px";v.style.left="220px";v.style.width="30px";v.style.height="1000px";v.style.background="whiteSmoke";document.body.appendChild(v);var G=document.createElement("div");G.style.position="absolute";G.style.top=
+"95px";G.style.left="220px";G.style.width="30px";G.style.height="30px";G.style.background="whiteSmoke";document.body.appendChild(G);this.vRuler=new mxRuler(this.editor.graph,v,!0);this.hRuler=new mxRuler(this.editor.graph,y,!1)}if("1"==urlParams.test){y=document.getElementById("geFooter");null!=y&&(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)})),y.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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 D=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:D.apply(this,arguments)}}y=document.getElementById("geInfo");null!=y&&y.parentNode.removeChild(y);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),
+E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=c.view.translate,e=c.view.scale,g=b.x/e-d.x,f=b.y/e-d.y;mxEvent.isAltDown(a)&&(f=g=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,g,f,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,b=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=b)c.setSelectionCells(this.importXml(b,g,f,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/html")){var h=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=h;var l=null,d=b.getElementsByTagName("img");null!=d&&1==d.length?(h=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)||(l=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(h=b[0].getAttribute("href")));var t=!0,m=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(h,g,f,!0,l,null,t))});l&&h.length>this.resampleThreshold?this.confirmImageResize(function(a){t=
a;m()},mxEvent.isControlDown(a)):m()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var b=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,b)),d/Math.max(1,a));c.setSelectionCell(c.insertVertex(null,null,"",g,f,b*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){c.setSelectionCells(this.insertTextAt(k,
@@ -6984,8 +7054,8 @@ this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyCo
mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(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.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,
!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.importLucidChart(d,0,0),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||
-8==document.documentMode?mxUtils.getTextContent(b):b.textContent),g=!1;try{var f=e.lastIndexOf("%3E");0<=f&&f<e.length-3&&(e=e.substring(0,f+3))}catch(z){}try{var c=b.getElementsByTagName("span"),h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(g=!0,e=h)}catch(z){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(g||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,
-c,c)):(g=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,g.x+c,g.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(z){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",
+8==document.documentMode?mxUtils.getTextContent(b):b.textContent),g=!1;try{var f=e.lastIndexOf("%3E");0<=f&&f<e.length-3&&(e=e.substring(0,f+3))}catch(y){}try{var c=b.getElementsByTagName("span"),h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(g=!0,e=h)}catch(y){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(g||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,
+c,c)):(g=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,g.x+c,g.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(y){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",
function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||
"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,
"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?
@@ -6993,7 +7063,7 @@ function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.
EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var g=document.documentElement;d=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.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=b+"px";g.style.left=c+"px";g.style.width=
Math.max(0,d-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=
function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d=c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml");var g=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&
-"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();g(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,
+"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(z){this.handleError(z,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();g(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,
function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?g(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if('{"state":"{\\"Properties\\":'==d.substring(0,26))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.openLocalFile(this.emptyDiagramXml,e,b),this.importLucidChart(d,0,0,null,mxUtils.bind(this,function(){this.editor.undoManager.clear();this.spinner.stop()}));
else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,c.target.result,a.name))}catch(t){this.handleError(t,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(d=this.extractGraphModelFromPng(d)),this.spinner.stop(),this.openLocalFile(d,e,b)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();
this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?c.readAsDataURL(a):c.readAsText(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,c){var d=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(a);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,
@@ -7004,36 +7074,37 @@ a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebar
function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&
this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,
page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function h(a){if(null!=
-a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(K){}return a}if(f.source==(window.opener||window.parent)){var k=f.data;if("json"==urlParams.proto){try{k=JSON.parse(k)}catch(F){k=null}if(null==k)return;if("dialog"==k.action){this.showError(null!=
+a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(L){}return a}if(f.source==(window.opener||window.parent)){var k=f.data;if("json"==urlParams.proto){try{k=JSON.parse(k)}catch(B){k=null}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("prompt"==k.action){this.spinner.stop();var l=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);
this.showDialog(l.container,300,80,!0,!1);l.init();return}if("draft"==k.action){l=null;l="data:image/png;base64,"==k.xml.substring(0,22)?this.extractGraphModelFromPng(k.xml):h(k.xml);this.spinner.stop();l=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),l,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.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();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(F){g.postMessage(JSON.stringify({event:"draft",error:F.toString(),message:k}),"*")}return}if("template"==
+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();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(B){g.postMessage(JSON.stringify({event:"draft",error:B.toString(),message:k}),"*")}return}if("template"==
k.action){this.spinner.stop();var l=1==k.enableRecent,m=1==k.enableSearch,l=new NewDialog(this,!1,null!=k.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,l?mxUtils.bind(this,function(a){this.recentReadyCallback=a;g.postMessage(JSON.stringify({event:"recentDocs"}),
"*")}):null,m?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;g.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){g.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("searchDocsList"==k.action)this.searchReadyCallback(k.list,k.errorMsg);else if("recentDocsList"==k.action)this.recentReadyCallback(k.list,
k.errorMsg);else{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 n=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,n):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==
-k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var p=this.editor.graph,u=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(q);g.postMessage(JSON.stringify(b),"*")}),v=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
-"xmlpng"==k.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));p!=this.editor.graph&&p.container.parentNode.removeChild(p.container);u(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var p=this.createTemporaryGraph(p.getStylesheet()),y=p.getGlobalVariable,B=this.pages[0];p.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:y.apply(this,arguments)};document.body.appendChild(p.container);
-p.model.setRoot(B.root)}this.exportToCanvas(mxUtils.bind(this,function(a){v(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){v(null)}),null,null,null,null,null,null,p)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?u("data:image/png;base64,"+a.getText()):v(null)}),mxUtils.bind(this,function(){v(null)}))}}else{null!=
+k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var p=this.editor.graph,u=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(q);g.postMessage(JSON.stringify(b),"*")}),w=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
+"xmlpng"==k.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));p!=this.editor.graph&&p.container.parentNode.removeChild(p.container);u(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var p=this.createTemporaryGraph(p.getStylesheet()),x=p.getGlobalVariable,A=this.pages[0];p.getGlobalVariable=function(a){return"page"==a?A.getName():"pagenumber"==a?1:x.apply(this,arguments)};document.body.appendChild(p.container);
+p.model.setRoot(A.root)}this.exportToCanvas(mxUtils.bind(this,function(a){w(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){w(null)}),null,null,null,null,null,null,p)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?u("data:image/png;base64,"+a.getText()):w(null)}),mxUtils.bind(this,function(){w(null)}))}}else{null!=
k.xml&&0<k.xml.length&&this.setFileData(k.xml);n=this.createLoadMessage("export");if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),n.xml=mxUtils.getXml(l),n.data=this.getFileData(null,null,!0,null,null,null,l),n.format=k.format;else if("html"==k.format)q=this.editor.getGraphXml(),n.data=this.getHtml(q,this.editor.graph),n.xml=mxUtils.getXml(q),n.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;
l==mxConstants.NONE&&(l=null);n.xml=this.getFileData(!0);n.format="svg";if(k.embedImages||null==k.embedImages){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),"xmlsvg"==k.format?this.getEmbeddedSvg(n.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();n.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(n),"*")})):this.convertImages(this.editor.graph.getSvg(l),
mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();n.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(n),"*")}));return}l="xmlsvg"==k.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(l));n.data=this.createSvgDataUri(l)}g.postMessage(JSON.stringify(n),"*")}return}if("load"==k.action)d=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.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,k.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.xml&&"data:image/png;base64,"==k.xml.substring(0,22)?this.extractGraphModelFromPng(k.xml):k.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}}k=h(k);c=!0;try{a(k,f)}catch(F){this.handleError(F)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var L=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
-1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=L();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=L();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
+this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.xml&&"data:image/png;base64,"==k.xml.substring(0,22)?this.extractGraphModelFromPng(k.xml):k.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}}k=h(k);c=!0;try{a(k,f)}catch(B){this.handleError(B)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var K=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
+1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=K();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=K();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):
urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize=
"12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=
-function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),c=[];if(0<b.length){var d={},e=null,f=null,g="auto",h="auto",l=40,m=40,A=0,x=this.editor.graph;x.getGraphBounds();
-for(var C=function(){x.setSelectionCells(N);x.scrollCellToVisible(x.getSelectionCell())},w=x.getFreeInsertPoint(),H=w.x,E=w.y,w=E,D=null,G="auto",B=[],L=null,F=null,K=0;K<b.length&&"#"==b[K].charAt(0);){a=b[K];for(K++;K<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[K].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[K].substring(1)),K++;if("#"!=a.charAt(1)){var O=a.indexOf(":");if(0<O){var S=mxUtils.trim(a.substring(1,O)),T=mxUtils.trim(a.substring(O+1));"label"==S?D=x.sanitizeHtml(T):"style"==
-S?e=T:"identity"==S&&0<T.length&&"-"!=T?f=T:"width"==S?g=T:"height"==S?h=T:"ignore"==S?F=T.split(","):"connect"==S?B.push(JSON.parse(T)):"link"==S?L=T:"padding"==S?A=parseFloat(T):"edgespacing"==S?l=parseFloat(T):"nodespacing"==S?m=parseFloat(T):"layout"==S&&(G=T)}}}var P=this.editor.csvToArray(b[K]);a=null;if(null!=f)for(var M=0;M<P.length;M++)if(f==P[M]){a=M;break}null==D&&(D="%"+P[0]+"%");if(null!=B)for(var R=0;R<B.length;R++)null==d[B[R].to]&&(d[B[R].to]={});x.model.beginUpdate();try{for(M=K+
-1;M<b.length;M++){var I=this.editor.csvToArray(b[M]);if(I.length==P.length){var J=null,Y=null!=a?I[a]:null;null!=Y&&(J=x.model.getCell(Y));null==J&&(J=new mxCell(D,new mxGeometry(H,w,0,0),e||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=Y);for(var U=0;U<I.length;U++)x.setAttributeForCell(J,P[U],I[U]);x.setAttributeForCell(J,"placeholders","1");J.style=x.replacePlaceholders(J,J.style);for(R=0;R<B.length;R++)d[B[R].to][J.getAttribute(B[R].to)]=J;null!=L&&"link"!=L&&(x.setLinkForCell(J,J.getAttribute(L)),
-x.setAttributeForCell(J,L,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var V=this.editor.graph.getPreferredSizeForCell(J);J.geometry.width="auto"==g?V.width+A:parseFloat(g);J.geometry.height="auto"==h?V.height+A:parseFloat(h);w+=J.geometry.height+m;c.push(x.addCell(J))}}for(var X=c.slice(),N=c.slice(),R=0;R<B.length;R++)for(var Q=B[R],M=0;M<c.length;M++){var J=c[M],Z=J.getAttribute(Q.from);if(null!=Z){x.setAttributeForCell(J,Q.from,null);for(var W=Z.split(","),U=0;U<W.length;U++){var ba=
-d[Q.to][W[U]];null!=ba&&(D=Q.label,null!=Q.fromlabel&&(D=(J.getAttribute(Q.fromlabel)||"")+(D||"")),null!=Q.tolabel&&(D=(D||"")+(ba.getAttribute(Q.tolabel)||"")),N.push(x.insertEdge(null,null,D||"",Q.invert?ba:J,Q.invert?J:ba,Q.style||x.createCurrentEdgeStyle())),mxUtils.remove(Q.invert?J:ba,X))}}}if(null!=F)for(M=0;M<c.length;M++)for(J=c[M],U=0;U<F.length;U++)x.setAttributeForCell(J,mxUtils.trim(F[U]),null);var ca=new mxParallelEdgeLayout(x);ca.spacing=l;var ga=function(){ca.execute(x.getDefaultParent());
-for(var a=0;a<c.length;a++){var b=x.getCellGeometry(c[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==g&&(b.width=Math.round(x.snap(b.width)));"auto"==h&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==G){var da=new mxCircleLayout(x);da.resetEdges=!1;var ha=da.isVertexIgnored;da.isVertexIgnored=function(a){return ha.apply(this,arguments)||0>mxUtils.indexOf(c,a)};this.executeLayout(function(){da.execute(x.getDefaultParent());ga()},!0,C);C=null}else if("horizontaltree"==G||
-"verticaltree"==G||"auto"==G&&N.length==2*c.length-1&&1==X.length){x.view.validate();var ea=new mxCompactTreeLayout(x,"horizontaltree"==G);ea.levelDistance=m;ea.edgeRouting=!1;ea.resetEdges=!1;this.executeLayout(function(){ea.execute(x.getDefaultParent(),0<X.length?X[0]:null)},!0,C);C=null}else if("horizontalflow"==G||"verticalflow"==G||"auto"==G&&1==X.length){x.view.validate();var fa=new mxHierarchicalLayout(x,"horizontalflow"==G?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);fa.intraCellSpacing=
-m;fa.disableEdgeStyle=!1;this.executeLayout(function(){fa.execute(x.getDefaultParent(),N);x.moveCells(N,H,E)},!0,C);C=null}else if("organic"==G||"auto"==G&&N.length>c.length){x.view.validate();var aa=new mxFastOrganicLayout(x);aa.forceConstant=3*m;aa.resetEdges=!1;var ia=aa.isVertexIgnored;aa.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(c,a)};ca=new mxParallelEdgeLayout(x);ca.spacing=l;this.executeLayout(function(){aa.execute(x.getDefaultParent());ga()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=
-C&&C()}}catch(ja){this.handleError(ja)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),c=[];if(0<b.length){var d={},e=null,f=null,g="auto",h="auto",l=null,m=null,z=40,F=40,C=0,v=this.editor.graph;
+v.getGraphBounds();for(var G=function(){v.setSelectionCells(X);v.scrollCellToVisible(v.getSelectionCell())},D=v.getFreeInsertPoint(),E=D.x,H=D.y,D=H,A=null,K="auto",B=[],L=null,O=null,S=0;S<b.length&&"#"==b[S].charAt(0);){a=b[S];for(S++;S<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[S].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[S].substring(1)),S++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var N=mxUtils.trim(a.substring(1,Y)),M=mxUtils.trim(a.substring(Y+1));"label"==N?A=v.sanitizeHtml(M):
+"style"==N?e=M:"identity"==N&&0<M.length&&"-"!=M?f=M:"width"==N?g=M:"height"==N?h=M:"left"==N&&0<M.length?l=M:"top"==N&&0<M.length?m=M:"ignore"==N?O=M.split(","):"connect"==N?B.push(JSON.parse(M)):"link"==N?L=M:"padding"==N?C=parseFloat(M):"edgespacing"==N?z=parseFloat(M):"nodespacing"==N?F=parseFloat(M):"layout"==N&&(K=M)}}}var W=this.editor.csvToArray(b[S]);a=null;if(null!=f)for(var I=0;I<W.length;I++)if(f==W[I]){a=I;break}null==A&&(A="%"+W[0]+"%");if(null!=B)for(var Q=0;Q<B.length;Q++)null==d[B[Q].to]&&
+(d[B[Q].to]={});v.model.beginUpdate();try{for(I=S+1;I<b.length;I++){var Z=this.editor.csvToArray(b[I]);if(Z.length==W.length){var J=null,V=null!=a?Z[a]:null;null!=V&&(J=v.model.getCell(V));null==J&&(J=new mxCell(A,new mxGeometry(E,D,0,0),e||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=V);for(var T=0;T<Z.length;T++)v.setAttributeForCell(J,W[T],Z[T]);v.setAttributeForCell(J,"placeholders","1");J.style=v.replacePlaceholders(J,J.style);for(Q=0;Q<B.length;Q++)d[B[Q].to][J.getAttribute(B[Q].to)]=J;null!=
+L&&"link"!=L&&(v.setLinkForCell(J,J.getAttribute(L)),v.setAttributeForCell(J,L,null));v.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var R=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=l&&null!=J.getAttribute(l)&&(J.geometry.x=E+parseFloat(J.getAttribute(l))),null!=m&&null!=J.getAttribute(m)&&(J.geometry.y=H+parseFloat(J.getAttribute(m))),"@"==g.charAt(0)&&null!=J.getAttribute(g.substring(1))?J.geometry.width=parseFloat(J.getAttribute(g.substring(1))):J.geometry.width=
+"auto"==g?R.width+C:parseFloat(g),"@"==h.charAt(0)&&null!=J.getAttribute(h.substring(1))?J.geometry.height=parseFloat(J.getAttribute(h.substring(1))):J.geometry.height="auto"==h?R.height+C:parseFloat(h),D+=J.geometry.height+F);c.push(v.addCell(J))}}for(var U=c.slice(),X=c.slice(),Q=0;Q<B.length;Q++)for(var P=B[Q],I=0;I<c.length;I++){var J=c[I],ga=J.getAttribute(P.from);if(null!=ga){v.setAttributeForCell(J,P.from,null);for(var ha=ga.split(","),T=0;T<ha.length;T++){var aa=d[P.to][ha[T]];null!=aa&&(A=
+P.label,null!=P.fromlabel&&(A=(J.getAttribute(P.fromlabel)||"")+(A||"")),null!=P.tolabel&&(A=(A||"")+(aa.getAttribute(P.tolabel)||"")),X.push(v.insertEdge(null,null,A||"",P.invert?aa:J,P.invert?J:aa,P.style||v.createCurrentEdgeStyle())),mxUtils.remove(P.invert?J:aa,U))}}}if(null!=O)for(I=0;I<c.length;I++)for(J=c[I],T=0;T<O.length;T++)v.setAttributeForCell(J,mxUtils.trim(O[T]),null);var da=new mxParallelEdgeLayout(v);da.spacing=z;var ia=function(){da.execute(v.getDefaultParent());for(var a=0;a<c.length;a++){var b=
+v.getCellGeometry(c[a]);b.x=Math.round(v.snap(b.x));b.y=Math.round(v.snap(b.y));"auto"==g&&(b.width=Math.round(v.snap(b.width)));"auto"==h&&(b.height=Math.round(v.snap(b.height)))}};if("circle"==K){var ea=new mxCircleLayout(v);ea.resetEdges=!1;var ja=ea.isVertexIgnored;ea.isVertexIgnored=function(a){return ja.apply(this,arguments)||0>mxUtils.indexOf(c,a)};this.executeLayout(function(){ea.execute(v.getDefaultParent());ia()},!0,G);G=null}else if("horizontaltree"==K||"verticaltree"==K||"auto"==K&&X.length==
+2*c.length-1&&1==U.length){v.view.validate();var ba=new mxCompactTreeLayout(v,"horizontaltree"==K);ba.levelDistance=F;ba.edgeRouting=!1;ba.resetEdges=!1;this.executeLayout(function(){ba.execute(v.getDefaultParent(),0<U.length?U[0]:null)},!0,G);G=null}else if("horizontalflow"==K||"verticalflow"==K||"auto"==K&&1==U.length){v.view.validate();var fa=new mxHierarchicalLayout(v,"horizontalflow"==K?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);fa.intraCellSpacing=F;fa.disableEdgeStyle=!1;this.executeLayout(function(){fa.execute(v.getDefaultParent(),
+X);v.moveCells(X,E,H)},!0,G);G=null}else if("organic"==K||"auto"==K&&X.length>c.length){v.view.validate();var ca=new mxFastOrganicLayout(v);ca.forceConstant=3*F;ca.resetEdges=!1;var ka=ca.isVertexIgnored;ca.isVertexIgnored=function(a){return ka.apply(this,arguments)||0>mxUtils.indexOf(c,a)};da=new mxParallelEdgeLayout(v);da.spacing=z;this.executeLayout(function(){ca.execute(v.getDefaultParent());ia()},!0,G);G=null}this.hideDialog()}finally{v.model.endUpdate()}null!=G&&G()}}catch(la){this.handleError(la)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var h=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=h.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/
@@ -7326,7 +7397,7 @@ GitHubClient.prototype.getFile=function(a,b,d,c,e){c=null!=c?c:!1;var f=a.split(
"/repos/"+h+"/"+l+"/contents/"+a+"?ref="+m,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.createGitHubFile(h,l,m,JSON.parse(a.getText()),c))}catch(k){d(k)}}),d))};
GitHubClient.prototype.createGitHubFile=function(a,b,d,c,e){a={org:a,repo:b,ref:d,name:c.name,path:c.path,sha:c.sha,html_url:c.html_url,download_url:c.download_url};b=c.content;"base64"===c.encoding&&(/\.jpe?g$/i.test(c.name)?b="data:image/jpeg;base64,"+b:/\.gif$/i.test(c.name)?b="data:image/gif;base64,"+b:/\.png$/i.test(c.name)?(c=this.ui.extractGraphModelFromPng(b),b=null!=c&&0<c.length?c:"data:image/png;base64,"+b):b=Base64.decode(b));return e?new GitHubLibrary(this.ui,b,a):new GitHubFile(this.ui,
b,a)};GitHubClient.prototype.insertLibrary=function(a,b,d,c,e){this.insertFile(a,b,d,c,!0,e,!1)};
-GitHubClient.prototype.insertFile=function(a,b,d,c,e,f,h){e=null!=e?e:!1;f=f.split("/");var l=f[0],m=f[1],g=f[2],k=f.slice(3,f.length).join("/");0<k.length&&(k+="/");k+=a;this.checkExists(l+"/"+m+"/"+g+"/"+k,!0,mxUtils.bind(this,function(f,q){f?e?(h||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,m,g,k,a,b,q,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());d(this.createGitHubFile(l,m,g,b.content,e))}catch(y){c(y)}}),c)}),c)):d(new GitHubFile(this.ui,
+GitHubClient.prototype.insertFile=function(a,b,d,c,e,f,h){e=null!=e?e:!1;f=f.split("/");var l=f[0],m=f[1],g=f[2],k=f.slice(3,f.length).join("/");0<k.length&&(k+="/");k+=a;this.checkExists(l+"/"+m+"/"+g+"/"+k,!0,mxUtils.bind(this,function(f,q){f?e?(h||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,m,g,k,a,b,q,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());d(this.createGitHubFile(l,m,g,b.content,e))}catch(x){c(x)}}),c)}),c)):d(new GitHubFile(this.ui,
b,{org:l,repo:m,ref:g,name:a,path:k,sha:q,isNew:!0})):c()}))};GitHubClient.prototype.showCommitDialog=function(a,b,d,c){var e=this.ui.spinner.pause();a=new FilenameDialog(this.ui,mxResources.get(b?"addedFile":"updateFile",[a]),mxResources.get("ok"),mxUtils.bind(this,function(a){e();d(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){c()}));this.ui.showDialog(a.container,300,80,!0,!1);a.init()};
GitHubClient.prototype.writeFile=function(a,b,d,c,e,f,h,l,m){f.length>=this.maxFileSize?m({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(f.length)+" / 1 MB)"}):(d={path:c,branch:decodeURIComponent(d),message:e,content:f},null!=h&&(d.sha=h),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+b+"/contents/"+c,JSON.stringify(d),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){l(a)}),m))};
GitHubClient.prototype.checkExists=function(a,b,d){this.getFile(a,mxUtils.bind(this,function(c){if(b&&null!=c.meta){var e=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){e();d(!0,c.meta.sha)},function(){e();d(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)})}),mxUtils.bind(this,function(a){d(!0)}),null,!0)};
@@ -7335,16 +7406,16 @@ mxResources.get("cancel"),mxUtils.bind(this,function(){d()}),null,mxResources.ge
Base64.encode(a.getData()))}),mxUtils.bind(this,function(){d()}))};GitHubClient.prototype.pickLibrary=function(a){this.pickFile(a)};GitHubClient.prototype.pickFolder=function(a){this.showGitHubDialog(!1,a)};GitHubClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("H"+encodeURIComponent(a))});this.showGitHubDialog(!0,a)};
GitHubClient.prototype.showGitHubDialog=function(a,b){var d=null,c=null,e=null,f=null,h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.overflow="hidden";h.style.height="224px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";h.appendChild(l);var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.overflow="auto";m.style.height="194px";
h.appendChild(m);var g=new CustomDialog(this.ui,h,mxUtils.bind(this,function(){b(d+"/"+c+"/"+encodeURIComponent(e)+"/"+f)}));this.ui.showDialog(g.container,340,270,!0,!0);a&&g.okButton.parentNode.removeChild(g.okButton);var k=mxUtils.bind(this,function(a,b){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");mxUtils.write(c,a);mxEvent.addListener(c,"click",b);return c}),n=mxUtils.bind(this,function(a){var b=document.createElement("div");b.style.marginBottom="8px";b.appendChild(k(d+
-"/"+c,mxUtils.bind(this,function(){f=null;z()})));a||(mxUtils.write(b," / "),b.appendChild(k(decodeURIComponent(e),mxUtils.bind(this,function(){f=null;y()}))));if(null!=f&&0<f.length){var g=f.split("/");for(a=0;a<g.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(k(g[a],mxUtils.bind(this,function(){f=g.slice(0,a+1).join("/");u()})))})(a)}m.appendChild(b)}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?
-(f=e=c=d=null,z()):this.ui.hideDialog()}))}),u=mxUtils.bind(this,function(){var h=new mxXmlRequest(this.baseUrl+"/repos/"+d+"/"+c+"/contents/"+f+"?ref="+encodeURIComponent(e),null,"GET");g.okButton.removeAttribute("disabled");m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));this.executeRequest(h,mxUtils.bind(this,function(g){n();this.ui.spinner.stop();var h=JSON.parse(g.getText());m.appendChild(k("../ [Up]",mxUtils.bind(this,function(){if(""==f)f=null,z();else{var a=f.split("/");
-f=a.slice(0,a.length-1).join("/");u()}})));mxUtils.br(m);null==h||0==h.length?mxUtils.write(m,mxResources.get("noFiles")):(g=mxUtils.bind(this,function(g){for(var l=0;l<h.length;l++)mxUtils.bind(this,function(h){g==("dir"==h.type)&&(m.appendChild(k(h.name+("dir"==h.type?"/":""),mxUtils.bind(this,function(){"dir"==h.type?(f=h.path,u()):a&&"file"==h.type&&(this.ui.hideDialog(),b(d+"/"+c+"/"+encodeURIComponent(e)+"/"+h.path))}))),mxUtils.br(m))})(h[l])}),g(!0),a&&g(!1))}),q)}),p=null,v=null,y=mxUtils.bind(this,
+"/"+c,mxUtils.bind(this,function(){f=null;y()})));a||(mxUtils.write(b," / "),b.appendChild(k(decodeURIComponent(e),mxUtils.bind(this,function(){f=null;x()}))));if(null!=f&&0<f.length){var g=f.split("/");for(a=0;a<g.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(k(g[a],mxUtils.bind(this,function(){f=g.slice(0,a+1).join("/");u()})))})(a)}m.appendChild(b)}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?
+(f=e=c=d=null,y()):this.ui.hideDialog()}))}),u=mxUtils.bind(this,function(){var h=new mxXmlRequest(this.baseUrl+"/repos/"+d+"/"+c+"/contents/"+f+"?ref="+encodeURIComponent(e),null,"GET");g.okButton.removeAttribute("disabled");m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));this.executeRequest(h,mxUtils.bind(this,function(g){n();this.ui.spinner.stop();var h=JSON.parse(g.getText());m.appendChild(k("../ [Up]",mxUtils.bind(this,function(){if(""==f)f=null,y();else{var a=f.split("/");
+f=a.slice(0,a.length-1).join("/");u()}})));mxUtils.br(m);null==h||0==h.length?mxUtils.write(m,mxResources.get("noFiles")):(g=mxUtils.bind(this,function(g){for(var l=0;l<h.length;l++)mxUtils.bind(this,function(h){g==("dir"==h.type)&&(m.appendChild(k(h.name+("dir"==h.type?"/":""),mxUtils.bind(this,function(){"dir"==h.type?(f=h.path,u()):a&&"file"==h.type&&(this.ui.hideDialog(),b(d+"/"+c+"/"+encodeURIComponent(e)+"/"+h.path))}))),mxUtils.br(m))})(h[l])}),g(!0),a&&g(!1))}),q)}),p=null,w=null,x=mxUtils.bind(this,
function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/repos/"+d+"/"+c+"/branches?per_page=100&page="+a,null,"GET");g.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p);p=document.createElement("a");p.style.display="block";p.setAttribute("href","javascript:void(0);");mxUtils.write(p,mxResources.get("more")+"...");var h=mxUtils.bind(this,function(){mxEvent.removeListener(m,
-"scroll",v);y(a+1)});mxEvent.addListener(p,"click",h);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(n(!0),m.appendChild(k("../ [Up]",mxUtils.bind(this,function(){f=null;z()}))),mxUtils.br(m));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a){m.appendChild(k(a.name,mxUtils.bind(this,function(){e=a.name;f="";u()})));mxUtils.br(m)})(b[c]);100==b.length&&(m.appendChild(p),
-v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&h()},mxEvent.addListener(m,"scroll",v))}}),q)}),z=mxUtils.bind(this,function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");g.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p);p=document.createElement("a");p.style.display="block";p.setAttribute("href","javascript:void(0);");
-mxUtils.write(p,mxResources.get("more")+"...");var h=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",v);z(a+1)});mxEvent.addListener(p,"click",h);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{1==a&&(m.appendChild(k(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,
-function(a){if(null!=a){var b=a.split("/");if(1<b.length){a=b[0];var g=b[1];3>b.length?(d=a,c=g,f=e=null,y()):this.ui.spinner.spin(m,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+g+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();d=a.meta.org;c=a.meta.repo;e=decodeURIComponent(a.meta.ref);f="";u()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),
-this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(m),mxUtils.br(m));for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){m.appendChild(k(a.full_name,mxUtils.bind(this,function(){d=a.owner.login;c=a.name;e=a.default_branch;f="";u()})));mxUtils.br(m)})(b[g])}100==b.length&&(m.appendChild(p),v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&h()},mxEvent.addListener(m,"scroll",
-v))}),q)});z()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,d){DrawioFile.call(this,a,b);this.meta=d;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};
+"scroll",w);x(a+1)});mxEvent.addListener(p,"click",h);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(n(!0),m.appendChild(k("../ [Up]",mxUtils.bind(this,function(){f=null;y()}))),mxUtils.br(m));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a){m.appendChild(k(a.name,mxUtils.bind(this,function(){e=a.name;f="";u()})));mxUtils.br(m)})(b[c]);100==b.length&&(m.appendChild(p),
+w=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&h()},mxEvent.addListener(m,"scroll",w))}}),q)}),y=mxUtils.bind(this,function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");g.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p);p=document.createElement("a");p.style.display="block";p.setAttribute("href","javascript:void(0);");
+mxUtils.write(p,mxResources.get("more")+"...");var h=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",w);y(a+1)});mxEvent.addListener(p,"click",h);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{1==a&&(m.appendChild(k(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,
+function(a){if(null!=a){var b=a.split("/");if(1<b.length){a=b[0];var g=b[1];3>b.length?(d=a,c=g,f=e=null,x()):this.ui.spinner.spin(m,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+g+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();d=a.meta.org;c=a.meta.repo;e=decodeURIComponent(a.meta.ref);f="";u()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),
+this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(m),mxUtils.br(m));for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){m.appendChild(k(a.full_name,mxUtils.bind(this,function(){d=a.owner.login;c=a.name;e=a.default_branch;f="";u()})));mxUtils.br(m)})(b[g])}100==b.length&&(m.appendChild(p),w=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&h()},mxEvent.addListener(m,"scroll",
+w))}),q)});y()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,d){DrawioFile.call(this,a,b);this.meta=d;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};
TrelloFile.prototype.save=function(a,b,d){this.doSave(this.getTitle(),b,d)};TrelloFile.prototype.saveAs=function(a,b,d){this.doSave(a,b,d)};TrelloFile.prototype.doSave=function(a,b,d){var c=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=c;this.saveFile(a,!1,b,d)};
TrelloFile.prototype.saveFile=function(a,b,d,c){if(this.isEditable())if(this.savingFile)null!=c&&(this.saveNeededCounter++,c({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,f=this.isModified(),h=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return f}});h();this.ui.trello.saveFile(this,mxUtils.bind(this,function(f){this.savingFile=!1;this.isModified=e;this.meta=f;this.contentChanged();null!=d&&d();0<this.saveNeededCounter&&
(this.saveNeededCounter--,this.saveFile(a,b,d,c))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(f||this.isModified());if(null!=c){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){h();b()}}c(a)}}))}else this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(e){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(e){this.savingFile=!1;null!=d&&d();this.ui.fileLoaded(e);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,
@@ -7379,16 +7450,16 @@ ChatWindow.prototype.collaboratorListener=function(a){if(!a.collaborator.isMe){i
this.chatArea.innerHTML+a+"<br>";this.chatArea.scrollTop=this.chatArea.scrollHeight}};ChatWindow.prototype.configCollabInfo=function(){for(var a=this.doc.getCollaborators(),b=0;b<a.length;b++){var d=a[b];d.isMe&&(this.collabColor=d.color,this.displayName=d.displayName)}};ChatWindow.prototype.destroy=function(){this.window.destroy()};ChatWindow.prototype.htmlEscape=function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")};App=function(a,b,d){EditorUi.call(this,a,b,null!=d?d:"1"==urlParams.lightbox);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(a,b,d){var c=null;try{c=window.open(a)}catch(l){}null==c||void 0===c?this.showDialog((new PopupDialog(this,a,b,d)).container,320,140,!0,!0):null!=b&&b()});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.isOffline()||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");
this.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!=App.DrawPlugins){for(a=0;a<App.DrawPlugins.length;a++)try{App.DrawPlugins[a](this)}catch(c){null!=window.console&&console.log("Plugin Error:",c,App.DrawPlugins[a])}window.Draw.loadPlugin=mxUtils.bind(this,function(a){a(this)})}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_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="https://unpkg.com/dropbox@2.5.13/dist/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";
-App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.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"};
+App.MODE_GITHUB="github";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";
+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",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.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"};
App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage.getItem(".mode"));if(null==a&&"undefined"!=typeof Storage){for(var b=document.cookie.split(";"),d=0;d<b.length;d++){var c=mxUtils.trim(b[d]);if("MODE="==c.substring(0,5)){a=c.substring(5);break}}null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie="MODE=; expires="+b.toUTCString(),localStorage.setItem(".mode",a))}return a};
(function(){mxClient.IS_CHROMEAPP||("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("1"!=urlParams.embed&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&
"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):"0"!=urlParams.chrome||null!=window.location.hash&&"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"===window.location.hash.substring(0,45)||(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,
2)?(mxscript(App.DROPBOX_URL),mxscript(App.DROPINS_URL,null,"dropboxjs",App.DROPBOX_APPKEY)):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript(App.ONEDRIVE_URL):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=
null),"function"===typeof window.TrelloClient&&("0"!=urlParams.tr&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_TRELLO||null!=window.location.hash&&"#T"==window.location.hash.substring(0,2)?(mxscript(App.TRELLO_JQUERY_URL),mxscript(App.TRELLO_URL)):"0"==urlParams.chrome&&(window.TrelloClient=null):window.TrelloClient=null)),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")))})();
App.main=function(a,b){var d=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,e,f){try{if(a!=d&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){d=a;var g=new Image,h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";g.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+h+"&v="+encodeURIComponent(EditorUi.VERSION)+
-"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=e?":colno:"+encodeURIComponent(e):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(v){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var c=document.createElement("iframe");c.setAttribute("width","0");c.setAttribute("height",
+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=e?":colno:"+encodeURIComponent(e):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(w){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var c=document.createElement("iframe");c.setAttribute("width","0");c.setAttribute("height",
"0");c.setAttribute("src","offline.html");document.body.appendChild(c)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var c=mxSettings.getPlugins(),e=urlParams.p;App.initPluginCallback();if(null!=e){var f="";"1"==urlParams.drawdev&&(f=document.location.protocol+"//drawhost.jgraph.com/");for(var h=e.split(";"),e=0;e<h.length;e++){var l=App.pluginRegistry[h[e]];null!=l?mxscript(f+l):null!=window.console&&console.log("Unknown plugin:",h[e])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,
null,null,null,mxClient.IS_SVG);if(null!=c&&0<c.length&&"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;h=!0;for(e=0;e<c.length&&h;e++)"/"!=c[e].charAt(0)&&c[e].substring(0,f.length)!=f&&(h=!1);if(h||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",[c.join("\n")]).replace(/\\n/g,
"\n")))for(e=0;e<c.length;e++)try{mxscript(c[e])}catch(m){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient=null)}"0"!=urlParams.math&&Editor.initMath();
@@ -7428,8 +7499,8 @@ App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.lightbox){var
App.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,d=0;d<a.length;d++)b=b>>>8^this.crcTable[(b^a.charCodeAt(d))&255];return(b^-1)>>>0};
App.prototype.getThumbnail=function(a,b){var d=!1;try{null==this.thumbImageCache&&(this.thumbImageCache={});var c=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),e=c.getGlobalVariable,f=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(f.root)}if(mxClient.IS_CHROMEAPP||!c.mathEnabled&&this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this,
function(a){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);b(a)}),a,this.thumbImageCache,"#ffffff",function(){b()},null,null,null,null,null,null,c),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var h=document.createElement("canvas"),l=c.getGraphBounds(),m=a/l.width,m=Math.min(1,Math.min(3*a/(4*l.height),m)),g=Math.floor(l.x),k=Math.floor(l.y);h.setAttribute("width",Math.ceil(m*(l.width+4)));h.setAttribute("height",Math.ceil(m*(l.height+4)));var n=h.getContext("2d");
-n.scale(m,m);n.translate(-g,-k);var q=c.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";n.save();n.fillStyle=q;n.fillRect(g,k,Math.ceil(l.width+4),Math.ceil(l.height+4));n.restore();var u=new mxJsCanvas(h),p=new mxAsyncCanvas(this.thumbImageCache);u.images=this.thumbImageCache.images;var v=new mxImageExport;v.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};v.drawText=function(a,
-b){};v.drawState(c.getView().getState(c.model.root),p);p.finish(mxUtils.bind(this,function(){v.drawState(c.getView().getState(c.model.root),u);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);b(h)}));d=!0}}catch(y){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}return d};
+n.scale(m,m);n.translate(-g,-k);var q=c.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";n.save();n.fillStyle=q;n.fillRect(g,k,Math.ceil(l.width+4),Math.ceil(l.height+4));n.restore();var u=new mxJsCanvas(h),p=new mxAsyncCanvas(this.thumbImageCache);u.images=this.thumbImageCache.images;var w=new mxImageExport;w.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};w.drawText=function(a,
+b){};w.drawState(c.getView().getState(c.model.root),p);p.finish(mxUtils.bind(this,function(){w.drawState(c.getView().getState(c.model.root),u);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);b(h)}));d=!0}}catch(x){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}return d};
App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(b,d){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(d)if(isLocalStorage)localStorage.setItem(".mode",b);else if("undefined"!=typeof Storage){var c=new Date;c.setYear(c.getFullYear()+1);document.cookie="MODE="+b+"; expires="+c.toUTCString()}null!=this.appIcon&&(c=this.getCurrentFile(),b=null!=c?c.getMode():null,b==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",
[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):b==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):b==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="default"))}})();
@@ -7496,8 +7567,8 @@ App.prototype.getLibraryStorageHint=function(a){var b=a.getTitle();a.constructor
mxResources.get("browser")+")":a.constructor==LocalLibrary&&(b+=" ("+mxResources.get("device")+")");return b};
App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=mxUtils.bind(this,function(b,c){var d=0,f=[],h=mxUtils.bind(this,function(){if(0==d){if(null!=b)for(var a=b.length-1;0<=a;a--)null!=f[a]&&this.loadLibrary(f[a]);null!=c&&c()}});if(null!=b)for(var l=0;l<b.length;l++){var m=encodeURIComponent(decodeURIComponent(b[l]));mxUtils.bind(this,
function(b,c){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){d++;var e=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];f[c]=a;d--;h()}),g=mxUtils.bind(this,function(){a(b);d--;h()});this.pendingLibraries[b]=!0;var k=b.substring(0,1);if("L"==k)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var a=decodeURIComponent(b.substring(1));this.getLocalData(a,mxUtils.bind(this,function(b){".scratchpad"==a&&null==
-b&&(b=this.emptyLibraryXml);null!=b?e(new StorageLibrary(this,b,a)):g()}))}catch(z){g()}}),0);else if("U"==k){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){k=l;this.isCorsEnabledForUrl(k)||(k="t="+(new Date).getTime(),k=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+k);try{mxUtils.get(k,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),l))}catch(z){g()}else g()}),function(){g()})}catch(y){g()}}}else{var m=null;"G"==k?null!=
-this.drive&&null!=this.drive.user&&(m=this.drive):"H"==k?null!=this.gitHub&&null!=this.gitHub.getUser()&&(m=this.gitHub):"T"==k?null!=this.trello&&this.trello.isAuthorized()&&(m=this.trello):"D"==k?null!=this.dropbox&&null!=this.dropbox.getUser()&&(m=this.dropbox):"W"==k&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(m=this.oneDrive);null!=m?m.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(z){g()}}),function(a){g()}):(delete this.pendingLibraries[b],
+b&&(b=this.emptyLibraryXml);null!=b?e(new StorageLibrary(this,b,a)):g()}))}catch(y){g()}}),0);else if("U"==k){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){k=l;this.isCorsEnabledForUrl(k)||(k="t="+(new Date).getTime(),k=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+k);try{mxUtils.get(k,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),l))}catch(y){g()}else g()}),function(){g()})}catch(x){g()}}}else{var m=null;"G"==k?null!=
+this.drive&&null!=this.drive.user&&(m=this.drive):"H"==k?null!=this.gitHub&&null!=this.gitHub.getUser()&&(m=this.gitHub):"T"==k?null!=this.trello&&this.trello.isAuthorized()&&(m=this.trello):"D"==k?null!=this.dropbox&&null!=this.dropbox.getUser()&&(m=this.dropbox):"W"==k&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(m=this.oneDrive);null!=m?m.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(y){g()}}),function(a){g()}):(delete this.pendingLibraries[b],
g())}}})(m,l)}h()});b(mxSettings.getCustomLibraries(),function(){b((urlParams.clibs||"").split(";"))})}};
App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?null==this.shareButton&&(this.shareButton=document.createElement("div"),this.shareButton.className="geBtn gePrimaryBtn",this.shareButton.style.display="inline-block",this.shareButton.style.padding="0 10px 0 10px",this.shareButton.style.marginTop="-4px",this.shareButton.style.height="28px",this.shareButton.style.lineHeight="28px",this.shareButton.style.minWidth=
"0px",this.shareButton.style.cssFloat="right",a=document.createElement("img"),a.setAttribute("src",this.shareImage),a.setAttribute("align","absmiddle"),a.style.marginRight="4px",a.style.marginTop="-3px",this.shareButton.appendChild(a),mxUtils.write(this.shareButton,mxResources.get("share")),mxEvent.addListener(this.shareButton,"click",mxUtils.bind(this,function(){this.actions.get("share").funct()})),this.buttonContainer.appendChild(this.shareButton)):null!=this.shareButton&&(this.shareButton.parentNode.removeChild(this.shareButton),
@@ -7560,7 +7631,7 @@ a.getBaseFilename(),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content
mxEvent.addListener(e,"change",function(){e.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!e.checked,null,!f.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}}));a.actions.addAction("open...",function(){a.pickFile()});a.actions.addAction("close",function(){a.fileLoaded(null)});a.actions.addAction("editShape...",mxUtils.bind(this,function(){d.getSelectionCells();
if(1==d.getSelectionCount()){var b=d.getSelectionCell(),c=d.view.getState(b);null!=c&&null!=c.shape&&null!=c.shape.stencil&&(b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400),a.showDialog(b.container,640,480,!0,!1),b.init())}}));a.actions.addAction("revisionHistory...",function(){var b=a.getCurrentFile();if(null==b||b.constructor!=DriveFile&&b.constructor!=DropboxFile||null==a.drive&&b.constructor==DriveFile||null==a.dropbox&&b.constructor==DropboxFile)a.showError(mxResources.get("error"),
mxResources.get("notAvailable"),mxResources.get("ok"));else if(a.spinner.spin(document.body,mxResources.get("loading")))if(b.constructor==DropboxFile){var c=a.dropbox.client.filesListRevisions({path:b.stat.path_lower,limit:100});c.then(mxUtils.bind(this,function(c){a.spinner.stop();try{for(var d=[],e=c.entries.length-1;0<=e;e--)(function(c){d.push({modifiedDate:c.client_modified,fileSize:c.size,getXml:function(d,e){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,e)},getUrl:function(){return a.getUrl(window.location.pathname+
-"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(E){a.handleError(E)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop();for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-
+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(D){a.handleError(D)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop();for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-
1]===d?b.desc.headRevisionId:d.id}),function(b){a.drive.getXmlFile(b,null,function(a){e(a.getData())},function(a){f(a)})},function(a){f(a)})};d.getUrl=function(){return a.getUrl(window.location.pathname+"?rev="+d.id+"&chrome=0&edit=_blank")+window.location.hash}})(c.items[d]);d=new RevisionDialog(a,c.items);a.showDialog(d.container,640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+
"+S");a.actions.addAction("upload...",function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b)))});if("undefined"!==typeof MathJax){var k=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=
!a.isMathEnabled();d.model.execute(b)});k.setToggleAction(!0);k.setSelectedCallback(function(){return a.isMathEnabled()});k.isEnabled=f}isLocalStorage&&(k=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),k.setToggleAction(!0),k.setSelectedCallback(function(){return mxSettings.getShowStartScreen()}));var n=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});n.setToggleAction(!0);n.setSelectedCallback(function(){return n.isEnabled()&&
@@ -7616,11 +7687,11 @@ return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}})).isEna
App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&b.save(!1,mxUtils.bind(this,function(){b.saveAs(c,mxUtils.bind(this,function(b){a.spinner.stop();var c=a.getUrl();window.openWindow(c+"#G"+b.id,null,mxUtils.bind(this,function(){window.location.hash="G"+b.id}))}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):this.editorUi.createFile(c,this.editorUi.getFileData(!0),null,d))}),mxUtils.bind(this,
function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,
function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("offline",new Action(mxResources.get("offline")+"...",function(){a.openLink("https://www.draw.io/app")}));a.actions.put("download",new Action(mxResources.get("download")+"...",function(){a.openLink("https://download.draw.io")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=
-this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var v="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle - fromText".split(" "),
-y=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},z=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted",
-"cells",[a]))}finally{d.getModel().endUpdate()}d.container.focus();d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(z("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-z("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=f;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=f;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
-"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<v.length;c++)"-"==v[c]?a.addSeparator(b):y(a,b,mxResources.get(v[c])+"...",v[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);
+this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var w="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle - fromText".split(" "),
+x=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},y=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted",
+"cells",[a]))}finally{d.getModel().endUpdate()}d.container.focus();d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
+y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=f;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=f;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
+"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<w.length;c++)"-"==w[c]?a.addSeparator(b):x(a,b,mxResources.get(w[c])+"...",w[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);
b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},c):h&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+
"...",null,function(){a.pickFile(App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},c):g&&b.addItem(mxResources.get("trello")+
" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&
@@ -7631,7 +7702,7 @@ c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(m
null,function(){a.pickLibrary(App.MODE_GOOGLE)},c):h&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?
b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},c):g&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+
"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=
-c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(E){a.handleError(E,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
+c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(D){a.handleError(D,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c);
mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d,
"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&isLocalStorage&&this.addMenuItems(b,["showStartScreen"],c);a.isOfflineApp()||"1"==urlParams.embed||this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);b.addSeparator(c);a.isOffline()||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["download"],
@@ -7649,8 +7720,8 @@ mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){th
EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var c=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var d=!1,c=null,e=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=c&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
-a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?d||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){d=!0}))):"undefined"===typeof Editor.MathJaxClear||
-this.editor.graph.mathEnabled||(d=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,d=0;d<c.length;d++)if(c[d]instanceof SelectPage||c[d]instanceof RenamePage||c[d]instanceof MovePage||c[d]instanceof mxRootChange){e();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?d||null==this.editor||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){d=!0}))):"undefined"===
+typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||(d=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,d=0;d<c.length;d++)if(c[d]instanceof SelectPage||c[d]instanceof RenamePage||c[d]instanceof MovePage||c[d]instanceof mxRootChange){e();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),d=a.getAttribute("pageScale"),c=a.getAttribute("pageWidth"),e=a.getAttribute("pageHeight"),f=a.getAttribute("background"),h=a.getAttribute("backgroundImage"),h=null!=h&&0<h.length?JSON.parse(h):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=f&&0<f.length?f:this.defaultGraphBackground,backgroundImage:null!=h?new mxImage(h.src,h.width,h.height):null,pageScale:null!=d?d:mxGraph.prototype.pageScale,pageFormat:null!=c&&null!=e?new mxRectangle(0,0,parseFloat(c),parseFloat(e)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
@@ -7689,38 +7760,38 @@ mxResources.get("copyOf",[a.getName()]))}),c)})};(function(){var a=EditorUi.prot
(function(){var a=new mxObjectCodec(new ChangePage,["ui","relatedPage","index","neverShown"]);a.afterEncode=function(a,d,c){c.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(c.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,c));return c};a.beforeDecode=function(a,d,c){c.ui=a.ui;c.relatedPage=c.ui.getPageById(d.getAttribute("relatedPage"));if(null==c.relatedPage){var b=document.createElement("diagram");b.setAttribute("id",d.getAttribute("relatedPage"));
b.setAttribute("name",d.getAttribute("name"));c.relatedPage=new DiagramPage(b);d=d.cloneNode(!0);b=d.firstChild;if(null!=b)for(c.relatedPage.root=a.decodeCell(b,!1),c=b.nextSibling,b.parentNode.removeChild(b),b=c;null!=b;){c=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var f=b.getAttribute("id");null==a.lookup(f)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=c}}return d};a.afterDecode=function(a,d,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png",b=Graph.prototype.foldCells;
Graph.prototype.foldCells=function(a,c,d,l,m){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var e=d.slice(),f=[],h=0;h<d.length;h++){var q=this.view.getState(d[h]),u=null!=q?q.style:this.getCellStyle(d[h]);"1"==mxUtils.getValue(u,"treeFolding","0")&&(this.traverse(d[h],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=d[h]&&f.push(a);return a==d[h]||!this.model.isCollapsed(a)})),this.model.setCollapsed(d[h],
-a))}for(h=0;h<f.length;h++)this.model.setVisible(f[h],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.chromeless&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return v.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=v.getParent(a),b=p.view.getState(a),p.view.getState(a),b="tree"==(null!=b?b.style:p.getCellStyle(a)).containerType);
-return b}function d(a){var b=!1;null!=a&&(a=v.getParent(a),b=p.view.getState(a),p.view.getState(a),b=null!=(null!=b?b.style:p.getCellStyle(a)).childLayout);return b}function l(a){a=p.view.getState(a);if(null!=a){var b=p.getIncomingEdges(a.cell);if(0<b.length&&(b=p.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<
+a))}for(h=0;h<f.length;h++)this.model.setVisible(f[h],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.chromeless&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return w.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=w.getParent(a),b=p.view.getState(a),p.view.getState(a),b="tree"==(null!=b?b.style:p.getCellStyle(a)).containerType);
+return b}function d(a){var b=!1;null!=a&&(a=w.getParent(a),b=p.view.getState(a),p.view.getState(a),b=null!=(null!=b?b.style:p.getCellStyle(a)).childLayout);return b}function l(a){a=p.view.getState(a);if(null!=a){var b=p.getIncomingEdges(a.cell);if(0<b.length&&(b=p.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<
a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function m(a,b){b=null!=b?b:!0;p.model.beginUpdate();try{var c=p.model.getParent(a),d=p.getIncomingEdges(a),e=p.cloneCells([d[0],a]);p.model.setTerminal(e[0],p.model.getTerminal(d[0],!0),!0);var f=l(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+
10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);p.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=p.view.getState(a),k=p.view.scale;if(null!=h){var m=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var n=p.getOutgoingEdges(p.model.getTerminal(d[0],
-!0));if(null!=n){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var u=p.model.getTerminal(n[t],!1);if(f==l(u)){var B=p.view.getState(u);u!=a&&null!=B&&(q&&b!=B.getCenterX()<h.getCenterX()||!q&&b!=B.getCenterY()<h.getCenterY())&&mxUtils.intersects(m,B)&&(d=10+Math.max(d,(Math.min(m.x+m.width,B.x+B.width)-Math.max(m.x,B.x))/k),g=10+Math.max(g,(Math.min(m.y+m.height,B.y+B.height)-Math.max(m.y,B.y))/k))}}q?g=0:d=0;for(t=0;t<n.length;t++)if(u=p.model.getTerminal(n[t],
-!1),f==l(u)&&(B=p.view.getState(u),u!=a&&null!=B&&(q&&b!=B.getCenterX()<h.getCenterX()||!q&&b!=B.getCenterY()<h.getCenterY()))){var v=[];p.traverse(B.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});p.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return p.addCells(e,c)}finally{p.model.endUpdate()}}function g(a){p.model.beginUpdate();try{var b=l(a),c=p.getIncomingEdges(a),d=p.cloneCells([c[0],a]);p.model.setTerminal(c[0],d[1],!1);p.model.setTerminal(d[0],d[1],!0);p.model.setTerminal(d[0],a,!1);
+!0));if(null!=n){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var u=p.model.getTerminal(n[t],!1);if(f==l(u)){var A=p.view.getState(u);u!=a&&null!=A&&(q&&b!=A.getCenterX()<h.getCenterX()||!q&&b!=A.getCenterY()<h.getCenterY())&&mxUtils.intersects(m,A)&&(d=10+Math.max(d,(Math.min(m.x+m.width,A.x+A.width)-Math.max(m.x,A.x))/k),g=10+Math.max(g,(Math.min(m.y+m.height,A.y+A.height)-Math.max(m.y,A.y))/k))}}q?g=0:d=0;for(t=0;t<n.length;t++)if(u=p.model.getTerminal(n[t],
+!1),f==l(u)&&(A=p.view.getState(u),u!=a&&null!=A&&(q&&b!=A.getCenterX()<h.getCenterX()||!q&&b!=A.getCenterY()<h.getCenterY()))){var v=[];p.traverse(A.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});p.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return p.addCells(e,c)}finally{p.model.endUpdate()}}function g(a){p.model.beginUpdate();try{var b=l(a),c=p.getIncomingEdges(a),d=p.cloneCells([c[0],a]);p.model.setTerminal(c[0],d[1],!1);p.model.setTerminal(d[0],d[1],!0);p.model.setTerminal(d[0],a,!1);
var e=p.model.getParent(a),f=e.geometry,g=[];p.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);p.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);p.moveCells(g,h,k);return p.addCells(d,e)}finally{p.model.endUpdate()}}function k(a){p.model.beginUpdate();try{var b=
p.model.getParent(a),c=p.getIncomingEdges(a),d=p.cloneCells([c[0],a]);p.model.setTerminal(d[0],a,!0);var c=p.getOutgoingEdges(a),e=b.geometry,f=[];p.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=p.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var k=p.view.getBounds(f),m=l(a),n=p.view.translate,q=p.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/q-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-
e.y+40):m==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/q-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=m==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/q-n.y+-e.y+10);return p.addCells(d,b)}finally{p.model.endUpdate()}}function n(a,
b,c){a=p.getOutgoingEdges(a);c=p.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=p.view.getState(p.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function q(a,b){var c=l(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||
-c==mxConstants.DIRECTION_WEST)==d&&c!=b?u.actions.get("selectParent").funct():c==b?(d=p.getOutgoingEdges(a),null!=d&&0<d.length&&p.setSelectionCell(p.model.getTerminal(d[0],!1))):(c=p.getIncomingEdges(a),null!=c&&0<c.length&&(d=n(p.model.getTerminal(c[0],!0),d,a),c=p.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&p.setSelectionCell(d[c].cell)))))}var u=this,p=u.editor.graph,v=p.getModel();mxResources.parse("selectChildren=Select Children");
-mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=u.menus.createPopupMenu;u.menus.createPopupMenu=function(a,c,d){y.apply(this,arguments);if(1==p.getSelectionCount()){c=p.getSelectionCell();var e=p.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(p.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(p.getSelectionCell())&&
+c==mxConstants.DIRECTION_WEST)==d&&c!=b?u.actions.get("selectParent").funct():c==b?(d=p.getOutgoingEdges(a),null!=d&&0<d.length&&p.setSelectionCell(p.model.getTerminal(d[0],!1))):(c=p.getIncomingEdges(a),null!=c&&0<c.length&&(d=n(p.model.getTerminal(c[0],!0),d,a),c=p.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&p.setSelectionCell(d[c].cell)))))}var u=this,p=u.editor.graph,w=p.getModel();mxResources.parse("selectChildren=Select Children");
+mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var x=u.menus.createPopupMenu;u.menus.createPopupMenu=function(a,c,d){x.apply(this,arguments);if(1==p.getSelectionCount()){c=p.getSelectionCell();var e=p.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(p.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(p.getSelectionCell())&&
(a.addSeparator(),0<p.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};u.actions.addAction("selectChildren",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),a=p.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(p.model.getTerminal(a[c],!1));p.setSelectionCells(b)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),
a=p.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=p.getOutgoingEdges(p.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(p.model.getTerminal(a[c],!1));p.setSelectionCells(b)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),a=p.getIncomingEdges(a);null!=a&&0<a.length&&p.setSelectionCell(p.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");u.actions.addAction("selectDescendants",
-function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),b=[];p.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});p.setSelectionCells(b)}},null,null,"Alt+Shift+T");var z=p.removeCells;p.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];v.isEdge(g)&&c(g)&&(e.push(g),g=v.getTerminal(g,!1));b(g)?(p.traverse(g,!0,
-function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=p.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return z.apply(this,arguments)};u.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var t=p.duplicateCells;p.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=p.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=p.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
-a)}this.model.beginUpdate();try{var h=t.call(this,a,c);if(h.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=p.getIncomingEdges(h[e]),g=p.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,p.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var A=p.moveCells;p.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,m=this.view.getState(f),n=null!=m?m.style:this.getCellStyle(f);
-if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||p.model.isEdge(a[q])&&null==p.model.getTerminal(a[q],!0)){f=p.model.getParent(a[q]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var t=p.getIncomingEdges(a[0]);if(0<t.length){var u=p.view.getState(p.model.getTerminal(t[0],!0));if(null!=u){var v=p.view.getState(l);null!=v&&(c=(v.getCenterX()-u.getCenterX())/p.view.scale,d=(v.getCenterY()-u.getCenterY())/p.view.scale)}}}}k=A.apply(this,arguments);
+function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),b=[];p.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});p.setSelectionCells(b)}},null,null,"Alt+Shift+T");var y=p.removeCells;p.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&c(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(p.traverse(g,!0,
+function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=p.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return y.apply(this,arguments)};u.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var t=p.duplicateCells;p.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=p.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=p.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
+a)}this.model.beginUpdate();try{var h=t.call(this,a,c);if(h.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=p.getIncomingEdges(h[e]),g=p.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,p.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var z=p.moveCells;p.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,m=this.view.getState(f),n=null!=m?m.style:this.getCellStyle(f);
+if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||p.model.isEdge(a[q])&&null==p.model.getTerminal(a[q],!0)){f=p.model.getParent(a[q]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var t=p.getIncomingEdges(a[0]);if(0<t.length){var u=p.view.getState(p.model.getTerminal(t[0],!0));if(null!=u){var v=p.view.getState(l);null!=v&&(c=(v.getCenterX()-u.getCenterX())/p.view.scale,d=(v.getCenterY()-u.getCenterY())/p.view.scale)}}}}k=z.apply(this,arguments);
if(null!=k&&null!=a&&k.length==a.length)for(q=0;q<k.length;q++)if(this.model.isEdge(k[q]))b(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[q],!0))&&this.model.setTerminal(k[q],l,!0);else if(b(a[q])&&(t=p.getIncomingEdges(a[q]),0<t.length))if(!e)b(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],l,!0);else if(0==p.getIncomingEdges(k[q]).length){m=l;if(null==m||m==p.model.getParent(a[q]))m=p.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,
-p.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k};if(null!=u.sidebar){var x=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=function(a,c,d,e){var f=p.model,g=null;f.beginUpdate();try{if(g=x.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=p.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:u.actions.get("selectChildren"),
-84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},w=u.onKeyDown;u.onKeyDown=function(a){try{if(p.isEnabled()&&!p.isEditing()&&b(p.getSelectionCell())&&1==p.getSelectionCount()){var c=null;0<p.getIncomingEdges(p.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?g(p.getSelectionCell()):k(p.getSelectionCell()):13==a.which&&(c=m(p.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&p.model.isEdge(c[0])?p.setSelectionCell(p.model.getTerminal(c[0],
+p.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=function(a,c,d,e){var f=p.model,g=null;f.beginUpdate();try{if(g=F.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=p.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:u.actions.get("selectChildren"),
+84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},v=u.onKeyDown;u.onKeyDown=function(a){try{if(p.isEnabled()&&!p.isEditing()&&b(p.getSelectionCell())&&1==p.getSelectionCount()){var c=null;0<p.getIncomingEdges(p.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?g(p.getSelectionCell()):k(p.getSelectionCell()):13==a.which&&(c=m(p.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&p.model.isEdge(c[0])?p.setSelectionCell(p.model.getTerminal(c[0],
!1)):p.setSelectionCell(c[c.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(p.view.getState(p.getSelectionCell())),p.startEditingAtCell(p.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var d=C[a.keyCode];null!=d&&(d.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(q(p.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(q(p.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(q(p.getSelectionCell(),
-mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(q(p.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(K){console.log("error",K)}mxEvent.isConsumed(a)||w.apply(this,arguments)};var H=p.connectVertex;p.connectVertex=function(a,c,d,e,f,h){var n=p.getIncomingEdges(a);return b(a)&&0<n.length?(d=l(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?k(a):e==f?g(a):m(a,c!=mxConstants.DIRECTION_NORTH&&
-c!=mxConstants.DIRECTION_WEST)):H.call(this,a,c,d,e,f,h)};p.getSubtree=function(a){var c=[a];b(a)&&!d(a)&&p.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
+mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(q(p.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(L){console.log("error",L)}mxEvent.isConsumed(a)||v.apply(this,arguments)};var G=p.connectVertex;p.connectVertex=function(a,c,d,e,f,h){var n=p.getIncomingEdges(a);return b(a)&&0<n.length?(d=l(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?k(a):e==f?g(a):m(a,c!=mxConstants.DIRECTION_NORTH&&
+c!=mxConstants.DIRECTION_WEST)):G.call(this,a,c,d,e,f,h)};p.getSubtree=function(a){var c=[a];b(a)&&!d(a)&&p.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);
-this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var D=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){D.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 G=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
+this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var E=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){E.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=
+this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");
b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");
e.vertex=!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");f.geometry.relative=!0;f.edge=!0;b.insertEdge(f,!0);e.insertEdge(f,!1);var q=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");q.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);q.insertEdge(u,!1);var p=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");p.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-v.geometry.relative=!0;v.edge=!0;b.insertEdge(v,!0);p.insertEdge(v,!1);a.insert(d);a.insert(f);a.insert(u);a.insert(v);a.insert(b);a.insert(c);a.insert(e);a.insert(q);a.insert(p);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
+u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);q.insertEdge(u,!1);var p=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");p.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+w.geometry.relative=!0;w.edge=!0;b.insertEdge(w,!0);p.insertEdge(w,!1);a.insert(d);a.insert(f);a.insert(u);a.insert(w);a.insert(b);a.insert(c);a.insert(e);a.insert(q);a.insert(p);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,
0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization",
diff --git a/src/main/webapp/js/atlas-viewer.min.js b/src/main/webapp/js/atlas-viewer.min.js
index 45dcd879..cf8613b5 100644
--- a/src/main/webapp/js/atlas-viewer.min.js
+++ b/src/main/webapp/js/atlas-viewer.min.js
@@ -399,8 +399,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -413,7 +413,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -510,9 +510,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -523,7 +523,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -1013,10 +1013,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -1058,9 +1058,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1209,11 +1209,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
-(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1414,10 +1414,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
-mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
-g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
-this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
+mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
+Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
+g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
+c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
@@ -1983,11 +1983,11 @@ a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.backg
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(c,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],t=0;t<e.length;t++)(k.isVertex(e[t])||k.isEdge(e[t]))&&null!=a.view.getState(e[t])&&
q.push(e[t]);a.setSelectionCells(q)};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,c,k,m,l,q){var t=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(t=80);e+=t;c+=t;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),n=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);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=g+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var h=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=h.x+"px";this.bg.style.top=h.y+"px";p+=h.x;n+=h.y;k&&document.body.appendChild(this.bg);var w=a.createDiv("geDialog");k=this.getPosition(p,n,
-e,c);p=k.x;n=k.y;w.style.width=e+"px";w.style.height=c+"px";w.style.left=p+"px";w.style.top=n+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose",m.style.top=n+14+"px",m.style.left=p+e+38-t+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",
-mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));n=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c=
-Math.min(f,g-64);var h=this.getPosition(p,n,e,c);p=h.x;n=h.y;w.style.left=p+"px";w.style.top=n+"px";w.style.width=e+"px";w.style.height=c+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=n+14+"px",this.dialogImg.style.left=p+e+38-t+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=l;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
+function Dialog(a,b,e,c,k,l,n,q){var t=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(t=80);e+=t;c+=t;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),m=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);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=g+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var h=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=h.x+"px";this.bg.style.top=h.y+"px";p+=h.x;m+=h.y;k&&document.body.appendChild(this.bg);var w=a.createDiv("geDialog");k=this.getPosition(p,m,
+e,c);p=k.x;m=k.y;w.style.width=e+"px";w.style.height=c+"px";w.style.left=p+"px";w.style.top=m+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=m+14+"px",l.style.left=p+e+38-t+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",
+mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));m=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c=
+Math.min(f,g-64);var h=this.getPosition(p,m,e,c);p=h.x;m=h.y;w.style.left=p+"px";w.style.top=m+"px";w.style.width=e+"px";w.style.height=c+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=m+14+"px",this.dialogImg.style.left=p+e+38-t+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=n;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
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";
@@ -1998,30 +1998,30 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),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 PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,p=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,n=1/e.pageScale;if(c){var r=q.checked?1:parseInt(f.value);isNaN(r)||(n=mxUtils.getScaleForPageCount(r,e,p))}e.getGraphBounds();var k=r=0,p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*b);p.height=Math.ceil(p.height*b);n*=b;!c&&e.pageVisible?(b=e.getPageLayout(),r-=b.x*p.width,k-=b.y*p.height):
-c=!0;c=PrintDialog.createPrintPreview(e,n,p,0,r,k,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var l=document.createElement("tbody");c=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage"));
-k.appendChild(t);mxEvent.addListener(t,"click",function(a){q.checked=!q.checked;d.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){d.checked=!q.checked});c.appendChild(k);l.appendChild(c);c=c.cloneNode(!1);var d=document.createElement("input");d.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(d);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");k.appendChild(t);mxEvent.addListener(t,
-"click",function(a){d.checked=!d.checked;q.checked=!d.checked;mxEvent.consume(a)});c.appendChild(k);var f=document.createElement("input");f.setAttribute("value","1");f.setAttribute("type","number");f.setAttribute("min","1");f.setAttribute("size","4");f.setAttribute("disabled","disabled");f.style.width="50px";k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(f);mxUtils.write(k," "+mxResources.get("pages")+" (max)");c.appendChild(k);l.appendChild(c);mxEvent.addListener(d,"change",
-function(){d.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!d.checked});c=c.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");c.appendChild(k);k=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";k.appendChild(g);c.appendChild(k);l.appendChild(c);c=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
+PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,p=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,m=1/e.pageScale;if(c){var r=q.checked?1:parseInt(f.value);isNaN(r)||(m=mxUtils.getScaleForPageCount(r,e,p))}e.getGraphBounds();var k=r=0,p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*b);p.height=Math.ceil(p.height*b);m*=b;!c&&e.pageVisible?(b=e.getPageLayout(),r-=b.x*p.width,k-=b.y*p.height):
+c=!0;c=PrintDialog.createPrintPreview(e,m,p,0,r,k,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var n=document.createElement("tbody");c=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage"));
+k.appendChild(t);mxEvent.addListener(t,"click",function(a){q.checked=!q.checked;d.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){d.checked=!q.checked});c.appendChild(k);n.appendChild(c);c=c.cloneNode(!1);var d=document.createElement("input");d.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(d);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");k.appendChild(t);mxEvent.addListener(t,
+"click",function(a){d.checked=!d.checked;q.checked=!d.checked;mxEvent.consume(a)});c.appendChild(k);var f=document.createElement("input");f.setAttribute("value","1");f.setAttribute("type","number");f.setAttribute("min","1");f.setAttribute("size","4");f.setAttribute("disabled","disabled");f.style.width="50px";k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(f);mxUtils.write(k," "+mxResources.get("pages")+" (max)");c.appendChild(k);n.appendChild(c);mxEvent.addListener(d,"change",
+function(){d.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!d.checked});c=c.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");c.appendChild(k);k=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";k.appendChild(g);c.appendChild(k);n.appendChild(c);c=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
k.style.paddingTop="20px";k.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&k.appendChild(t);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";k.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";k.appendChild(p);a.editor.cancelFirst||
-k.appendChild(t);c.appendChild(k);l.appendChild(c);m.appendChild(l);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}};
-PrintDialog.createPrintPreview=function(a,b,e,c,k,m,l){b=new mxPrintPreview(a,b,e,c,k,m);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=l;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.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};
+k.appendChild(t);c.appendChild(k);n.appendChild(c);l.appendChild(n);this.container=l};PrintDialog.printPreview=function(a){if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}};
+PrintDialog.createPrintPreview=function(a,b,e,c,k,l,n){b=new mxPrintPreview(a,b,e,c,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=n;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.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==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==n?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxResources.get("change")+"..."):(p.setAttribute("title",n.src),p.style.fontSize="11px",p.innerHTML=n.src.substring(0,42)+"...")}var c=a.editor.graph,k,m,l=document.createElement("table");l.style.width=
-"100%";l.style.height="100%";var q=document.createElement("tbody");k=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");k.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var t=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",c.pageFormat);k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");
-mxUtils.write(m,mxResources.get("background")+":");k.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var d=document.createElement("button");d.style.width="18px";d.style.height="18px";d.style.marginRight="20px";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";var f=c.background;b();mxEvent.addListener(d,"click",function(d){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(d)});
-m.appendChild(d);mxUtils.write(m,mxResources.get("gridSize")+":");var g=document.createElement("input");g.setAttribute("type","number");g.setAttribute("min","0");g.style.width="40px";g.style.marginLeft="6px";g.value=c.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?c.getGridSize():a)});k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+
-":");k.appendChild(m);m=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var n=c.backgroundImage;mxEvent.addListener(p,"click",function(d){a.showBackgroundImageDialog(function(a){n=a;e()});mxEvent.consume(d)});e();m.appendChild(p);k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var h=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&m.appendChild(h);var w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.gridSize!==g.value&&c.setGridSize(parseInt(g.value));var d=new ChangePageSetup(a,f,n,t.get());d.ignoreColor=c.background==f;d.ignoreImage=(null!=c.backgroundImage?c.backgroundImage.src:null)===(null!=n?n.src:null);c.pageFormat.width==d.previousFormat.width&&c.pageFormat.height==d.previousFormat.height&&
-d.ignoreColor&&d.ignoreImage||c.model.execute(d)});w.className="geBtn gePrimaryBtn";m.appendChild(w);a.editor.cancelFirst||m.appendChild(h);k.appendChild(m);q.appendChild(k);l.appendChild(q);this.container=l};
+var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==m?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxResources.get("change")+"..."):(p.setAttribute("title",m.src),p.style.fontSize="11px",p.innerHTML=m.src.substring(0,42)+"...")}var c=a.editor.graph,k,l,n=document.createElement("table");n.style.width=
+"100%";n.style.height="100%";var q=document.createElement("tbody");k=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");k.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var t=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",c.pageFormat);k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");
+mxUtils.write(l,mxResources.get("background")+":");k.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var d=document.createElement("button");d.style.width="18px";d.style.height="18px";d.style.marginRight="20px";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";var f=c.background;b();mxEvent.addListener(d,"click",function(d){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(d)});
+l.appendChild(d);mxUtils.write(l,mxResources.get("gridSize")+":");var g=document.createElement("input");g.setAttribute("type","number");g.setAttribute("min","0");g.style.width="40px";g.style.marginLeft="6px";g.value=c.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?c.getGridSize():a)});k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");mxUtils.write(l,mxResources.get("image")+
+":");k.appendChild(l);l=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var m=c.backgroundImage;mxEvent.addListener(p,"click",function(d){a.showBackgroundImageDialog(function(a){m=a;e()});mxEvent.consume(d)});e();l.appendChild(p);k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align","right");var h=
+mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&l.appendChild(h);var w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.gridSize!==g.value&&c.setGridSize(parseInt(g.value));var d=new ChangePageSetup(a,f,m,t.get());d.ignoreColor=c.background==f;d.ignoreImage=(null!=c.backgroundImage?c.backgroundImage.src:null)===(null!=m?m.src:null);c.pageFormat.width==d.previousFormat.width&&c.pageFormat.height==d.previousFormat.height&&
+d.ignoreColor&&d.ignoreImage||c.model.execute(d)});w.className="geBtn gePrimaryBtn";l.appendChild(w);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);n.appendChild(q);this.container=n};
PageSetupDialog.addPageFormatPanel=function(a,b,e,c){function k(a,d,c){if(c||g!=document.activeElement&&p!=document.activeElement){a=!1;for(d=0;d<h.length;d++)c=h[d],r?"custom"==c.key&&(q.value=c.key,r=!1):null!=c.format&&("a4"==c.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==c.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==c.format.width&&
-e.height==c.format.height?(q.value=c.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,a=!0):e.width==c.format.height&&e.height==c.format.width&&(q.value=c.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,l.setAttribute("checked","checked"),l.defaultChecked=!0,a=l.checked=!0));a?(t.style.display="",f.style.display="none"):(g.value=e.width/100,p.value=e.height/100,m.setAttribute("checked","checked"),
-q.value="custom",t.style.display="none",f.style.display="")}}b="format-"+b;var m=document.createElement("input");m.setAttribute("name",b);m.setAttribute("type","radio");m.setAttribute("value","portrait");var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var t=document.createElement("div");t.style.marginLeft="4px";t.style.width="210px";
-t.style.height="24px";m.style.marginRight="6px";t.appendChild(m);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));t.appendChild(b);l.style.marginLeft="10px";l.style.marginRight="6px";t.appendChild(l);var d=document.createElement("span");d.style.width="100px";mxUtils.write(d,mxResources.get("landscape"));t.appendChild(d);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input");
-g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";f.appendChild(p);mxUtils.write(f," in");t.style.display="none";f.style.display="none";for(var n={},h=PageSetupDialog.getFormats(),w=0;w<h.length;w++){var u=h[w];n[u.key]=u;var x=document.createElement("option");x.setAttribute("value",u.key);mxUtils.write(x,u.title);q.appendChild(x)}var r=!1;k();a.appendChild(q);mxUtils.br(a);
-a.appendChild(t);a.appendChild(f);var z=e,v=function(a,d){var b=n[q.value];null!=b.format?(g.value=b.format.width/100,p.value=b.format.height/100,f.style.display="none",t.style.display=""):(t.style.display="none",f.style.display="");isNaN(parseFloat(g.value))&&(g.value=e.width/100);isNaN(parseFloat(p.value))&&(p.value=e.height/100);b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&l.checked&&(b=new mxRectangle(0,0,b.height,b.width));
-d&&r||b.width==z.width&&b.height==z.height||(z=b,null!=c&&c(z))};mxEvent.addListener(b,"click",function(a){m.checked=!0;v(a);mxEvent.consume(a)});mxEvent.addListener(d,"click",function(a){l.checked=!0;v(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",v);mxEvent.addListener(g,"click",v);mxEvent.addListener(p,"blur",v);mxEvent.addListener(p,"click",v);mxEvent.addListener(l,"change",v);mxEvent.addListener(m,"change",v);mxEvent.addListener(q,"change",function(a){r="custom"==q.value;v(a,!0)});v();
-return{set:function(a){e=a;k(null,null,!0)},get:function(){return z},widthInput:g,heightInput:p}};
+e.height==c.format.height?(q.value=c.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,a=!0):e.width==c.format.height&&e.height==c.format.width&&(q.value=c.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,n.setAttribute("checked","checked"),n.defaultChecked=!0,a=n.checked=!0));a?(t.style.display="",f.style.display="none"):(g.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
+q.value="custom",t.style.display="none",f.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var t=document.createElement("div");t.style.marginLeft="4px";t.style.width="210px";
+t.style.height="24px";l.style.marginRight="6px";t.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));t.appendChild(b);n.style.marginLeft="10px";n.style.marginRight="6px";t.appendChild(n);var d=document.createElement("span");d.style.width="100px";mxUtils.write(d,mxResources.get("landscape"));t.appendChild(d);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input");
+g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";f.appendChild(p);mxUtils.write(f," in");t.style.display="none";f.style.display="none";for(var m={},h=PageSetupDialog.getFormats(),w=0;w<h.length;w++){var u=h[w];m[u.key]=u;var v=document.createElement("option");v.setAttribute("value",u.key);mxUtils.write(v,u.title);q.appendChild(v)}var r=!1;k();a.appendChild(q);mxUtils.br(a);
+a.appendChild(t);a.appendChild(f);var A=e,C=function(a,d){var b=m[q.value];null!=b.format?(g.value=b.format.width/100,p.value=b.format.height/100,f.style.display="none",t.style.display=""):(t.style.display="none",f.style.display="");isNaN(parseFloat(g.value))&&(g.value=e.width/100);isNaN(parseFloat(p.value))&&(p.value=e.height/100);b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&n.checked&&(b=new mxRectangle(0,0,b.height,b.width));
+d&&r||b.width==A.width&&b.height==A.height||(A=b,null!=c&&c(A))};mxEvent.addListener(b,"click",function(a){l.checked=!0;C(a);mxEvent.consume(a)});mxEvent.addListener(d,"click",function(a){n.checked=!0;C(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",C);mxEvent.addListener(g,"click",C);mxEvent.addListener(p,"blur",C);mxEvent.addListener(p,"click",C);mxEvent.addListener(n,"change",C);mxEvent.addListener(l,"change",C);mxEvent.addListener(q,"change",function(a){r="custom"==q.value;C(a,!0)});C();
+return{set:function(a){e=a;k(null,null,!0)},get:function(){return A},widthInput:g,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 (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{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:"custom",title:mxResources.get("custom"),format:null}]};
(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var c=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var d=a.container.firstChild;null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.nextSibling;null!=d&&(this.backgroundPageShape=this.createBackgroundPageShape(c),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
@@ -2031,33 +2031,33 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
b="url("+this.gridImage+")";var e=d=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),d=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-d,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}d=a.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor=
c,a.container.className="geDiagramContainer geDiagramBackdrop",d.style.backgroundImage="none",d.style.backgroundColor=""):(a.container.className="geDiagramContainer",d.style.backgroundPosition=g,d.style.backgroundColor=c,d.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var d=this.gridSteps*c,b=[],g=1;g<this.gridSteps;g++){var e=g*c;b.push("M 0 "+e+" L "+d+" "+e+" M "+e+" 0 L "+e+" "+d)}return'<svg width="'+
d+'" height="'+d+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+d+'" height="'+d+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+d+" 0 L 0 0 0 "+d+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=
-this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+c,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";d.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,c,d){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,n=b*this.pageScale,h=this.view.getBackgroundPageBounds();c=h.width;d=h.height;var k=
-new mxRectangle(b*g.x,b*g.y,e.width*n,e.height*n),u=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(d/k.height)-1:0,x=a?Math.ceil(c/k.width)-1:0,r=h.x+c,q=h.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var d=a==this.horizontalPageBreaks?u:x,c=0;c<=d;c++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
+this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+c,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";d.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,c,d){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,m=b*this.pageScale,h=this.view.getBackgroundPageBounds();c=h.width;d=h.height;var k=
+new mxRectangle(b*g.x,b*g.y,e.width*m,e.height*m),u=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(d/k.height)-1:0,v=a?Math.ceil(c/k.width)-1:0,r=h.x+c,q=h.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var d=a==this.horizontalPageBreaks?u:v,c=0;c<=d;c++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
new mxPoint(Math.round(r),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(q))];null!=a[c]?(a[c].points=b,a[c].redraw()):(b=new mxPolyline(b,this.pageBreakColor),b.dialect=this.dialect,b.isDashed=this.pageBreakDashed,b.pointerEvents=!1,b.init(this.view.backgroundPane),b.redraw(),a[c]=b)}for(c=d;c<a.length;c++)a[c].destroy();a.splice(d,a.length-d)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,d){for(var f=0;f<c.length;f++)if(this.graph.getModel().isVertex(c[f])){var g=this.graph.getCellGeometry(c[f]);if(null!=g&&g.relative)return!1}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(c,d){return this.isConnecting()?
-!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,d=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,c)/e),n=Math.floor(Math.min(0,
-d)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+n*b),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,d+a.height/this.scale)/b)-n)*b)};var c=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){c.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,d,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var c=this.graph.getModel(),d=c.getParent(this.graph.getSelectionCell()),b=m.apply(this,arguments),g=c.getParent(b);
-if(null==d||d!=b&&d!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&c.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,c){var d=l.apply(this,arguments);if(!d)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){d=!0;break}g=b.getParent(g)}return d};mxGraphHandler.prototype.selectDelayed=
+!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,d=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,c)/e),m=Math.floor(Math.min(0,
+d)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+m*b),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,d+a.height/this.scale)/b)-m)*b)};var c=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){c.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,d,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var c=this.graph.getModel(),d=c.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=c.getParent(b);
+if(null==d||d!=b&&d!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&c.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var n=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,c){var d=n.apply(this,arguments);if(!d)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){d=!0;break}g=b.getParent(g)}return d};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var c=a.getCell();null==c&&(c=this.cell);var d=this.graph.view.getState(c);if(null==d||!a.isSource(d.control))for(var d=this.graph.getModel(),b=d.getParent(c);!this.graph.isCellSelected(b)&&d.isVertex(b);)c=b,b=d.getParent(c);this.graph.selectCellForEvent(c,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var c=this.graph.getModel(),d=c.getParent(a);c.isVertex(d)&&!this.graph.isContainer(d);)this.graph.isCellSelected(d)&&
(a=d),d=c.getParent(d);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var c=this.editor.graph;c.lightbox=e;mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,c.isEnabled=function(){return!1},c.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||c.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown=
k,this.toolbarContainer.onselectstart=k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){var d=mxEvent.getSource(a);
if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):c.panningHandler.usePopupTrigger=!1;c.init(this.diagramContainer);mxClient.IS_SVG&&null!=c.view.getDrawPane()&&(b=c.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,l=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,d){return m||l.apply(this,arguments)};this.keydownHandler=
-mxUtils.bind(this,function(a){32==a.which?(m=!0,this.hoverIcons.reset(),c.container.style.cursor="move",c.isEditing()||mxEvent.getSource(a)!=c.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){c.container.style.cursor="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=c.panningHandler.isForcePanningEvent;c.panningHandler.isForcePanningEvent=
-function(a){return q.apply(this,arguments)||m||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var t=c.cellEditor.isStopEditingEvent;c.cellEditor.isStopEditingEvent=function(a){return t.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 d=!1,f=null,g=null,p=null,n=mxUtils.bind(this,function(){if(null!=this.toolbar&&d!=c.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var h=0;h<p.length;h++)this.toolbar.container.appendChild(p[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
-g}d=c.cellEditor.isContentEditing();f=a;g=e;p=b}}),h=this,w=c.cellEditor.startEditing;c.cellEditor.startEditing=function(){w.apply(this,arguments);n();if(c.cellEditor.isContentEditing()){var a=!1,d=function(){a||(a=!0,window.setTimeout(function(){for(var d=c.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;if(null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=h.toolbar)){var b=d.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b=
-b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(d.fontSize))}a=!1},0))};mxEvent.addListener(c.cellEditor.textarea,"input",d);mxEvent.addListener(c.cellEditor.textarea,"touchend",d);mxEvent.addListener(c.cellEditor.textarea,"mouseup",d);mxEvent.addListener(c.cellEditor.textarea,"keyup",d);d()}};var u=c.cellEditor.stopEditing;c.cellEditor.stopEditing=function(a,d){u.apply(this,arguments);n()};c.container.setAttribute("tabindex","0");c.container.style.cursor="default";
-if(window.self===window.top&&null!=c.container.parentNode)try{c.container.focus()}catch(G){}var x=c.fireMouseEvent;c.fireMouseEvent=function(a,d,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();x.apply(this,arguments)};c.popupMenuHandler.autoExpand=!0;null!=this.menus&&(c.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,d,c){this.menus.createPopupMenu(a,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){c.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var r="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var d=c.view.getState(a);if(null!=d){a=a.clone();a.style="";a=c.getCellStyle(a);var b=[],f=[],g;for(g in d.style)a[g]!=d.style[g]&&(b.push(d.style[g]),f.push(g));g=c.getModel().getStyle(d.cell);for(var e=null!=g?g.split(";"):[],p=0;p<e.length;p++){var h=e[p],
-n=h.indexOf("=");0<=n&&(g=h.substring(0,n),h=h.substring(n+1),null!=a[g]&&"none"==h&&(b.push(h),f.push(g)))}c.getModel().isEdge(d.cell)?c.currentEdgeStyle={}:c.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}};this.clearDefaultStyle=function(){c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var v=
-["fontFamily","fontSize","fontColor"],A="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),F=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],v,["align"],["html"]];for(a=0;a<F.length;a++)for(b=0;b<F[a].length;b++)r.push(F[a][b]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(r,z[a])&&r.push(z[a]);var B=function(a,d){var b=c.getModel();b.beginUpdate();
-try{if(d)for(var f=b.isEdge(h),g=f?c.currentEdgeStyle:c.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var p=g[f[e]];null!=p&&c.setCellStyles(f[e],p,a)}else for(p=0;p<a.length;p++){for(var h=a[p],n=b.getStyle(h),u=null!=n?n.split(";"):[],J=r.slice(),e=0;e<u.length;e++){var x=u[e],k=x.indexOf("=");if(0<=k){var w=x.substring(0,k),q=mxUtils.indexOf(J,w);0<=q&&J.splice(q,1);for(var A=0;A<F.length;A++){var m=F[A];if(0<=mxUtils.indexOf(m,w))for(var l=0;l<m.length;l++){var v=
-mxUtils.indexOf(J,m[l]);0<=v&&J.splice(v,1)}}}}for(var g=(f=b.isEdge(h))?c.currentEdgeStyle:c.currentVertexStyle,t=b.getStyle(h),e=0;e<J.length;e++){var w=J[e],G=g[w];null==G||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(z,w))||(t=mxUtils.setStyle(t,w,G))}b.setStyle(h,t)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT,function(a,d){var b=
-[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=c.getModel().isVertex(b[e])||f,!(g=c.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=d.getProperty("keys"),p=d.getProperty("values"),e=0;e<b.length;e++){var h=0<=mxUtils.indexOf(v,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(z,
-b[e]))g||0<=mxUtils.indexOf(A,b[e])?null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(r,b[e])&&(null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(r,b[e])){if(f||h)null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e];if(g||h||0<=mxUtils.indexOf(A,b[e]))null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(c.currentVertexStyle.fontFamily||
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,n=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,d){return l||n.apply(this,arguments)};this.keydownHandler=
+mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),c.container.style.cursor="move",c.isEditing()||mxEvent.getSource(a)!=c.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){c.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=c.panningHandler.isForcePanningEvent;c.panningHandler.isForcePanningEvent=
+function(a){return q.apply(this,arguments)||l||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var t=c.cellEditor.isStopEditingEvent;c.cellEditor.isStopEditingEvent=function(a){return t.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 d=!1,f=null,g=null,p=null,m=mxUtils.bind(this,function(){if(null!=this.toolbar&&d!=c.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var h=0;h<p.length;h++)this.toolbar.container.appendChild(p[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
+g}d=c.cellEditor.isContentEditing();f=a;g=e;p=b}}),h=this,w=c.cellEditor.startEditing;c.cellEditor.startEditing=function(){w.apply(this,arguments);m();if(c.cellEditor.isContentEditing()){var a=!1,d=function(){a||(a=!0,window.setTimeout(function(){for(var d=c.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;if(null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=h.toolbar)){var b=d.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b=
+b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(d.fontSize))}a=!1},0))};mxEvent.addListener(c.cellEditor.textarea,"input",d);mxEvent.addListener(c.cellEditor.textarea,"touchend",d);mxEvent.addListener(c.cellEditor.textarea,"mouseup",d);mxEvent.addListener(c.cellEditor.textarea,"keyup",d);d()}};var u=c.cellEditor.stopEditing;c.cellEditor.stopEditing=function(a,d){u.apply(this,arguments);m()};c.container.setAttribute("tabindex","0");c.container.style.cursor="default";
+if(window.self===window.top&&null!=c.container.parentNode)try{c.container.focus()}catch(F){}var v=c.fireMouseEvent;c.fireMouseEvent=function(a,d,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};c.popupMenuHandler.autoExpand=!0;null!=this.menus&&(c.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,d,c){this.menus.createPopupMenu(a,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){c.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
+this.getKeyHandler=function(){return keyHandler};var r="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),A="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var d=c.view.getState(a);if(null!=d){a=a.clone();a.style="";a=c.getCellStyle(a);var b=[],f=[],g;for(g in d.style)a[g]!=d.style[g]&&(b.push(d.style[g]),f.push(g));g=c.getModel().getStyle(d.cell);for(var e=null!=g?g.split(";"):[],p=0;p<e.length;p++){var h=e[p],
+m=h.indexOf("=");0<=m&&(g=h.substring(0,m),h=h.substring(m+1),null!=a[g]&&"none"==h&&(b.push(h),f.push(g)))}c.getModel().isEdge(d.cell)?c.currentEdgeStyle={}:c.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}};this.clearDefaultStyle=function(){c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var C=
+["fontFamily","fontSize","fontColor"],y="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),z=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],C,["align"],["html"]];for(a=0;a<z.length;a++)for(b=0;b<z[a].length;b++)r.push(z[a][b]);for(a=0;a<A.length;a++)0>mxUtils.indexOf(r,A[a])&&r.push(A[a]);var B=function(a,d){var b=c.getModel();b.beginUpdate();
+try{if(d)for(var f=b.isEdge(h),g=f?c.currentEdgeStyle:c.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var p=g[f[e]];null!=p&&c.setCellStyles(f[e],p,a)}else for(p=0;p<a.length;p++){for(var h=a[p],m=b.getStyle(h),u=null!=m?m.split(";"):[],G=r.slice(),e=0;e<u.length;e++){var v=u[e],k=v.indexOf("=");if(0<=k){var w=v.substring(0,k),q=mxUtils.indexOf(G,w);0<=q&&G.splice(q,1);for(var y=0;y<z.length;y++){var l=z[y];if(0<=mxUtils.indexOf(l,w))for(var n=0;n<l.length;n++){var C=
+mxUtils.indexOf(G,l[n]);0<=C&&G.splice(C,1)}}}}for(var g=(f=b.isEdge(h))?c.currentEdgeStyle:c.currentVertexStyle,t=b.getStyle(h),e=0;e<G.length;e++){var w=G[e],F=g[w];null==F||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(A,w))||(t=mxUtils.setStyle(t,w,F))}b.setStyle(h,t)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT,function(a,d){var b=
+[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=c.getModel().isVertex(b[e])||f,!(g=c.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=d.getProperty("keys"),p=d.getProperty("values"),e=0;e<b.length;e++){var h=0<=mxUtils.indexOf(C,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(A,
+b[e]))g||0<=mxUtils.indexOf(y,b[e])?null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(r,b[e])&&(null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(r,b[e])){if(f||h)null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e];if(g||h||0<=mxUtils.indexOf(y,b[e]))null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(c.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(c.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==c.currentEdgeStyle.edgeStyle&&"1"==c.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==c.currentEdgeStyle.edgeStyle||"none"==c.currentEdgeStyle.edgeStyle||null==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
c.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==c.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==c.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==c.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==c.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==c.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",c.currentEdgeStyle.shape,c.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(c.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2077,31 +2077,31 @@ a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==c?"geSprite geSprite-"+a+"block":"g
a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(c){c.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var c=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste",
-!1,null):e=c.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
+!1,null):e=c.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
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(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*d.width),this.scale*(this.translate.y+a.y*d.height),this.scale*a.width*d.width,
-this.scale*a.height*d.height)};a.getPreferredPageSize=function(a,d,b){a=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,a.width*d.width,a.height*d.height)};var b=null,e=this;if(this.editor.chromeless){this.chromelessResize=b=mxUtils.bind(this,function(d,b,c,f){if(null!=a.container){c=null!=c?c:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,h=a.view.scale,n=mxRectangle.fromRectangle(g);
-n.x=n.x/h-p.x;n.y=n.y/h-p.y;n.width/=h;n.height/=h;var p=a.container.scrollTop,u=a.container.scrollLeft,r=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)r+=3;var x=a.container.offsetWidth-r,r=a.container.offsetHeight-r;d=d?Math.max(.3,Math.min(b||1,x/n.width)):h;b=(x-d*n.width)/2/d;var k=0==this.lightboxVerticalDivider?0:(r-d*n.height)/this.lightboxVerticalDivider/d;e&&(b=Math.max(b,0),k=Math.max(k,0));if(e||g.width<x||g.height<r)a.view.scaleAndTranslate(d,
-Math.floor(b-n.x),Math.floor(k-n.y)),a.container.scrollTop=p*d/h,a.container.scrollLeft=u*d/h;else if(0!=c||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+c/h),Math.floor(g.y+f/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var c=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",c)});this.editor.addListener("resetGraphView",
+this.scale*a.height*d.height)};a.getPreferredPageSize=function(a,d,b){a=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,a.width*d.width,a.height*d.height)};var b=null,e=this;if(this.editor.chromeless){this.chromelessResize=b=mxUtils.bind(this,function(d,b,c,f){if(null!=a.container){c=null!=c?c:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,h=a.view.scale,m=mxRectangle.fromRectangle(g);
+m.x=m.x/h-p.x;m.y=m.y/h-p.y;m.width/=h;m.height/=h;var p=a.container.scrollTop,u=a.container.scrollLeft,r=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)r+=3;var v=a.container.offsetWidth-r,r=a.container.offsetHeight-r;d=d?Math.max(.3,Math.min(b||1,v/m.width)):h;b=(v-d*m.width)/2/d;var k=0==this.lightboxVerticalDivider?0:(r-d*m.height)/this.lightboxVerticalDivider/d;e&&(b=Math.max(b,0),k=Math.max(k,0));if(e||g.width<v||g.height<r)a.view.scaleAndTranslate(d,
+Math.floor(b-m.x),Math.floor(k-m.y)),a.container.scrollTop=p*d/h,a.container.scrollLeft=u*d/h;else if(0!=c||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+c/h),Math.floor(g.y+f/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var c=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",c)});this.editor.addListener("resetGraphView",
mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace=
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var k=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(a.container);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",k);k();var m=0,k=mxUtils.bind(this,function(a,d,b){m++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight="8px";c.style.cursor="pointer";mxEvent.addListener(c,"click",a);null!=b&&c.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",d);c.appendChild(a);this.chromelessToolbar.appendChild(c);
-return c}),l=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var t=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),
-d=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});l.style.paddingLeft="0px";l.style.paddingRight="4px";t.style.paddingLeft="4px";t.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(t.style.display="",l.style.display="",q.style.display="inline-block"):(t.style.display="none",l.style.display=
+0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,d,b){l++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight="8px";c.style.cursor="pointer";mxEvent.addListener(c,"click",a);null!=b&&c.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",d);c.appendChild(a);this.chromelessToolbar.appendChild(c);
+return c}),n=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var t=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),
+d=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});n.style.paddingLeft="0px";n.style.paddingRight="4px";t.style.paddingLeft="4px";t.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(t.style.display="",n.style.display="",q.style.display="inline-block"):(t.style.display="none",n.style.display=
"none",q.style.display="none");d()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",d);k(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(d){a.lightbox?(1==a.view.scale?
-this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,p=null,n=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=
+this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,p=null,m=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=
null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var w=k(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=w.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(d)}),Editor.layersLargeImage,mxResources.get("layers")),u=a.getModel();u.addListener(mxEvent.CHANGE,function(){w.style.display=1<u.getChildCount(u.root)?
"":"none"})}this.addChromelessToolbarItems(k);null!=this.editor.editButtonLink&&k(mxUtils.bind(this,function(d){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(d)}),Editor.editLargeImage,mxResources.get("edit"));!a.lightbox||"1"!=urlParams.close&&this.container==document.body||k(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,
-mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),n())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});
-mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():h(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var x=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,d){},mouseUp:function(d,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<x&&Math.abs(this.scrollTop-a.container.scrollTop)<x&&Math.abs(this.startX-b.getGraphX())<x&&Math.abs(this.startY-b.getGraphY())<x&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?n():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var r=
-a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*d.width;this.translate.y=a.y-(this.y0||0)*d.height}r.apply(this,arguments)};var z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),b=this.getPagePadding(),c=this.getPageSize(),f=Math.ceil(2*b.x+d.width*
-c.width),g=Math.ceil(2*b.y+d.height*c.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-d.x*c.width;b=b.y-d.y*c.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?z.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=a.view.translate.x,c=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-d)*a.view.scale),a.container.scrollTop+=Math.round((b-c)*a.view.scale),
-this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var v=null;a.lazyZoom=function(d){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);d?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
-(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var d=mxUtils.getOffset(a.container),c=0,f=0;null!=v&&(c=a.container.offsetWidth/2-v.x+d.x,f=a.container.offsetHeight/2-v.y+d.y);d=this.view.scale;
+mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),m())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});
+mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?m():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?m():h(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var v=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,b){this.startX=
+b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,d){},mouseUp:function(d,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&Math.abs(this.startX-b.getGraphX())<v&&Math.abs(this.startY-b.getGraphY())<v&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?m():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var r=
+a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*d.width;this.translate.y=a.y-(this.y0||0)*d.height}r.apply(this,arguments)};var A=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),b=this.getPagePadding(),c=this.getPageSize(),f=Math.ceil(2*b.x+d.width*
+c.width),g=Math.ceil(2*b.y+d.height*c.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-d.x*c.width;b=b.y-d.y*c.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?A.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=a.view.translate.x,c=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-d)*a.view.scale),a.container.scrollTop+=Math.round((b-c)*a.view.scale),
+this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var C=null;a.lazyZoom=function(d){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);d?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
+(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var d=mxUtils.getOffset(a.container),c=0,f=0;null!=C&&(c=a.container.offsetWidth/2-C.x+d.x,f=a.container.offsetHeight/2-C.y+d.y);d=this.view.scale;
this.zoom(this.cumulativeZoomFactor);this.view.scale!=d&&(null!=b&&e.chromelessResize(!1,null,c*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==c&&0==f||(a.container.scrollLeft-=c*(this.cumulativeZoomFactor-1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),20)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(d))for(var c=
-mxEvent.getSource(d);null!=c;){if(c==a.container){v=new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d));a.lazyZoom(b);mxEvent.consume(d);break}c=c.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
+mxEvent.getSource(d);null!=c;){if(c==a.container){C=new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d));a.lazyZoom(b);mxEvent.consume(d);break}c=c.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a};
EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){this.formatWidth=a||0<this.formatWidth?0:240;this.formatContainer.style.display=a||0<this.formatWidth?"":"none";this.refresh();this.format.refresh();this.fireEvent(new mxEventObject("formatWidthChanged"))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
@@ -2124,19 +2124,19 @@ this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.e
EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};
EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
-EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,c=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,c);e.addListener(mxEvent.UNDO,c);e.addListener(mxEvent.REDO,c);e.addListener(mxEvent.CLEAR,c);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);c()};var m=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);c()};c()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,c=!1,k=a.getSelectionCells();if(null!=k)for(var m=0;m<k.length;m++){var l=k[m];a.getModel().isEdge(l)&&(c=!0);a.getModel().isVertex(l)&&(e=!0);if(c&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m=
-0;m<k.length;m++)this.actions.get(k[m]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(c);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);c=e&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,c=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,c);e.addListener(mxEvent.UNDO,c);e.addListener(mxEvent.REDO,c);e.addListener(mxEvent.CLEAR,c);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);c()};var l=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);c()};c()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,c=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var n=k[l];a.getModel().isEdge(n)&&(c=!0);a.getModel().isVertex(n)&&(e=!0);if(c&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(l=
+0;l<k.length;l++)this.actions.get(k[l]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(c);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);c=e&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
c&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||c&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(c&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||
0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==
a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&&e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());
this.actions.get("selectVertices").setEnabled(b);this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()};
EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,c=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,c=b?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var k=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),l=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",l+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",l+=this.toolbarHeight);0<l&&!mxClient.IS_QUIRKS&&(l+=1);var q=0;if(null!=this.sidebarFooterContainer){var t=
-this.footerHeight+k,q=Math.max(0,Math.min(c-l-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=t+"px"}t=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=l+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=l+"px";this.formatContainer.style.width=t+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
-null!=this.hsplit.parentNode?m+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-b=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-t)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
+(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),n=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",n+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",n+=this.toolbarHeight);0<n&&!mxClient.IS_QUIRKS&&(n+=1);var q=0;if(null!=this.sidebarFooterContainer){var t=
+this.footerHeight+k,q=Math.max(0,Math.min(c-n-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=t+"px"}t=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=n+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=n+"px";this.formatContainer.style.width=t+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
+null!=this.hsplit.parentNode?l+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=l+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
+b=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-l-this.splitSize-t)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
this.footerHeight+k+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=k+"px"),this.diagramContainer.style.right=t+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+k+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+k+"px",this.formatContainer.style.bottom=
this.footerHeight+k+"px",this.diagramContainer.style.bottom=this.footerHeight+k+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
@@ -2147,8 +2147,8 @@ 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";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};
EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,c){function k(a){if(null!=l){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));c(Math.max(0,q+(b?g.x-l.x:l.y-g.y)-e));mxEvent.consume(a);q!=f()&&(t=!0,d=null)}}function m(a){k(a);l=q=null}var l=null,q=null,t=!0,d=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){l=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=f();t=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!t){var b=null!=d?d-e:0;d=f();c(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,k,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,m)})};EditorUi.prototype.showDialog=function(a,b,e,c,k,m,l){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,c,k,m,l);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,e,c){function k(a){if(null!=n){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));c(Math.max(0,q+(b?g.x-n.x:n.y-g.y)-e));mxEvent.consume(a);q!=f()&&(t=!0,d=null)}}function l(a){k(a);n=q=null}var n=null,q=null,t=!0,d=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){n=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=f();t=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!t){var b=null!=d?d-e:0;d=f();c(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,k,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,l)})};EditorUi.prototype.showDialog=function(a,b,e,c,k,l,n){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,c,k,l,n);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,c=e.cellEditor.saveSelection(),k=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(c);b(a)},function(){e.cellEditor.restoreSelection(c)});this.showDialog(k.container,230,430,!0,!1);k.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2158,14 +2158,14 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(a,b,e){var c=this.editor.graph;if(c.isEnabled()){c.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(c),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){c.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(c.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,b,e,c){c=this.editor.graph.cellEditor;var k=c.saveSelection(),m=mxUtils.prompt(a,b);c.restoreSelection(k);if(null!=m&&0<m.length){var l=new Image;l.onload=function(){e(m,l.width,l.height)};l.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};l.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.showImageDialog=function(a,b,e,c){c=this.editor.graph.cellEditor;var k=c.saveSelection(),l=mxUtils.prompt(a,b);c.restoreSelection(k);if(null!=l&&0<l.length){var n=new Image;n.onload=function(){e(l,n.width,n.height)};n.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};n.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var b=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=b&&0<b.length){var e=new Image;e.onload=function(){a(new mxImage(b,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=b}else a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};
EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,d,b){l.push(function(){if(!c.isSelectionEmpty()&&c.isEnabled())if(d=null!=d?d:1,b){c.getModel().beginUpdate();try{for(var f=c.getSelectionCells(),g=0;g<f.length;g++)if(c.getModel().isVertex(f[g])&&c.isCellResizable(f[g])){var e=c.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-d):38==a?e.height=Math.max(0,e.height-d):39==a?e.width+=d:40==a&&(e.height+=d),c.getModel().setGeometry(f[g],e))}}finally{c.getModel().endUpdate()}}else f=
+EditorUi.prototype.createKeyHandler=function(a){function b(a,d,b){n.push(function(){if(!c.isSelectionEmpty()&&c.isEnabled())if(d=null!=d?d:1,b){c.getModel().beginUpdate();try{for(var f=c.getSelectionCells(),g=0;g<f.length;g++)if(c.getModel().isVertex(f[g])&&c.isCellResizable(f[g])){var e=c.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-d):38==a?e.height=Math.max(0,e.height-d):39==a?e.width+=d:40==a&&(e.height+=d),c.getModel().setGeometry(f[g],e))}}finally{c.getModel().endUpdate()}}else f=
c.getSelectionCell(),g=c.model.getParent(f),e=null,1==c.getSelectionCount()&&c.model.isVertex(f)&&null!=c.layoutManager&&!c.isCellLocked(f)&&(e=c.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?c.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||c.model.add(g,f,Math.min(c.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-d:38==a?g=-d:39==a?f=d:40==a&&(g=d),c.moveCells(c.getMovableCells(c.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
-l.length){c.getModel().beginUpdate();try{for(var a=0;a<l.length;a++)l[a]();l=[]}finally{c.getModel().endUpdate()}c.scrollCellToVisible(c.getSelectionCell())}},200)}var e=this,c=this.editor.graph,k=new mxKeyHandler(c),m=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&m.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var l=[],q=null,t={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},d=k.getFunction,f={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
+n.length){c.getModel().beginUpdate();try{for(var a=0;a<n.length;a++)n[a]();n=[]}finally{c.getModel().endUpdate()}c.scrollCellToVisible(c.getSelectionCell())}},200)}var e=this,c=this.editor.graph,k=new mxKeyHandler(c),l=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
+!mxClient.IS_SF)&&l.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var n=[],q=null,t={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},d=k.getFunction,f={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(c.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=f[a.keyCode];if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){c.selectParentCell()}:function(){c.selectChildCell()};if(null!=t[a.keyCode]&&!c.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(c.model.isVertex(c.getSelectionCell()))return function(){var d=
c.connectVertex(c.getSelectionCell(),t[a.keyCode],c.defaultEdgeLength,a,!0);null!=d&&0<d.length&&(1==d.length&&c.model.isEdge(d[0])?c.setSelectionCell(c.model.getTerminal(d[0],!1)):c.setSelectionCell(d[d.length-1]),c.scrollCellToVisible(c.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(c.view.getState(c.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?c.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?c.gridSize:null)}}return d.apply(this,
arguments)};k.bindAction=mxUtils.bind(this,function(a,d,b,c){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},d?c?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):c?k.bindShiftKey(a,b):k.bindKey(a,b))});var g=k.escape;k.escape=function(a){g.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){c.exitGroup()});k.bindControlShiftKey(35,function(){c.enterGroup()});k.bindKey(36,function(){c.home()});k.bindKey(35,function(){c.refresh()});k.bindAction(107,
@@ -2179,32 +2179,32 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
(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.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
Graph=function(a,b,e,c,k){mxGraph.call(this,a,b,e,c);this.themes=k||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);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){var d=this.view.getState(a);a=null!=d?d.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,l=null,q=null,t=null,d=!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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var f=c.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(c.getGraphX(),c.getGraphY()),d=this.isCellSelected(f.cell),q=f,l=c,null!=
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,n=null,q=null,t=null,d=!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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var f=c.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(c.getGraphX(),c.getGraphY()),d=this.isCellSelected(f.cell),q=f,n=c,null!=
f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,c.getGraphX(),c.getGraphY())?t=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(t=f.getHandleForEvent(c))))}}}));this.addMouseListener({mouseDown:function(a,d){},mouseMove:mxUtils.bind(this,function(a,b){var c=this.selectionCellsHandler.handlers.map,f;for(f in c)if(null!=c[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&&
-!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=l){if(c=q,Math.abs(m.x-b.getGraphX())>f||Math.abs(m.y-b.getGraphY())>f){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var g=this.selectionCellsHandler.getHandler(c.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(l),h=this.view.getEdgeStyle(c);f=h==mxEdgeStyle.EntityRelation;d||t!=mxEvent.LABEL_HANDLE||(e=t);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
-null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=c.visibleSourceState||e==g.bends.length-1||null!=c.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=c.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=t,null==e&&(e=new mxRectangle(m.x,m.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)?
-e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(c,m.x,m.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),t=m=l=q=null,d=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){g=null;f=c.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
+!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=l&&null!=q&&null!=n){if(c=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var g=this.selectionCellsHandler.getHandler(c.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(n),h=this.view.getEdgeStyle(c);f=h==mxEdgeStyle.EntityRelation;d||t!=mxEvent.LABEL_HANDLE||(e=t);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
+null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=c.visibleSourceState||e==g.bends.length-1||null!=c.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=c.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=t,null==e&&(e=new mxRectangle(l.x,l.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)?
+e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(c,l.x,l.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),t=l=n=q=null,d=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){g=null;f=c.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))g="move";else if(mxUtils.contains(e,f[0].x,f[0].y)||mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y))g="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)h=this.view.getEdgeStyle(c),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(h=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),
-h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&c.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,d){t=m=l=q=null})})}this.cellRenderer.getLabelValue=function(a){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(d=1!=a.style.html?mxUtils.htmlEntities(d,!1):a.view.graph.sanitizeHtml(d));return d};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
+h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&c.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,d){t=l=n=q=null})})}this.cellRenderer.getLabelValue=function(a){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(d=1!=a.style.html?mxUtils.htmlEntities(d,!1):a.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(a,d){return!1};this.alternateEdgeStyle="vertical";null==c&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],b=this.graph.pageFormat,c=this.graph.pageScale,g=b.width*c,b=b.height*c,c=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),p=0;p<h.width;p++)d.push(new mxRectangle(((h.x+p)*g+c.x)*e,(h.y*b+c.y)*e,g*e,b*e));for(p=0;p<h.height;p++)d.push(new mxRectangle((h.x*g+c.x)*e,((h.y+p)*b+c.y)*e,g*e,b*e));a=d.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(a,d){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)};this.graphHandler.getCells=function(a){for(var d=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],c=0;c<d.length;c++){var f=this.graph.view.getState(d[c]),f=null!=f?f.style:this.graph.getCellStyle(d[c]);
"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(d[c]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(d,f)&&b.push(f)):b.push(d[c])}return b};this.connectionHandler.createTargetVertex=function(a,d){var b=this.graph.view.getState(d),b=null!=b?b.style:this.graph.getCellStyle(d);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(d),this.graph.model.isVertex(b)&&(d=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
-this.getRubberband=function(){return g};var p=(new Date).getTime(),n=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),n=0):n=(new Date).getTime()-p};var w=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<n||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
-"outlineConnect","1"))&&w.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(a){return u.apply(this,arguments)||mxEvent.isShiftDown(a)};var x=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return x.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var r=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
-(r=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=r)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=this.click;this.click=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!d||a.isConsumed())return z.apply(this,
-arguments);d=d?a.sourceState.cell:a.getCell();if(null!=d){var b=this.getLinkForCell(d);null!=b&&(this.isPageLink(b)?this.pageLinkClicked(d,b):this.openLink(b))}};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(d?a.sourceState.cell:a.getCell())};var v=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
-this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return v.apply(this,arguments)};this.selectRegion=function(a,d){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,d);return b};this.getAllCells=function(a,d,b,c,f,g){g=null!=g?g:[];if(0<b||0<c){var e=this.getModel(),h=a+b,p=d+c;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),J=0;J<n;J++){var r=e.getChildAt(f,J),
-u=this.view.getState(r);if(null!=u&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(u.style,"locked","0")){var x=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION)||0;0!=x&&(u=mxUtils.getBoundingBox(u,x));(e.isEdge(r)||e.isVertex(r))&&u.x>=a&&u.y+u.height<=p&&u.y>=d&&u.x+u.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var A=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:A.apply(this,
-arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var F=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")){var b=d.getProperty("event").getState();F=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,
-mxUtils.bind(this,function(a,d){if(!mxEvent.isMultiTouchEvent(d)){var b=d.getProperty("event"),c=d.getProperty("cell");null==c?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=F?this.addSelectionCells(F):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);F=null;d.consume()}}));this.connectionHandler.selectCells=function(a,d){this.graph.setSelectionCell(d||a)};this.connectionHandler.constraintHandler.isStateIgnored=
+this.getRubberband=function(){return g};var p=(new Date).getTime(),m=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),m=0):m=(new Date).getTime()-p};var w=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<m||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&w.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(a){return u.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var r=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
+(r=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=r)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var A=this.click;this.click=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!d||a.isConsumed())return A.apply(this,
+arguments);d=d?a.sourceState.cell:a.getCell();if(null!=d){var b=this.getLinkForCell(d);null!=b&&(this.isPageLink(b)?this.pageLinkClicked(d,b):this.openLink(b))}};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(d?a.sourceState.cell:a.getCell())};var C=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
+this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return C.apply(this,arguments)};this.selectRegion=function(a,d){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,d);return b};this.getAllCells=function(a,d,b,c,f,g){g=null!=g?g:[];if(0<b||0<c){var e=this.getModel(),h=a+b,p=d+c;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),G=0;G<m;G++){var r=e.getChildAt(f,G),
+u=this.view.getState(r);if(null!=u&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(u.style,"locked","0")){var v=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION)||0;0!=v&&(u=mxUtils.getBoundingBox(u,v));(e.isEdge(r)||e.isVertex(r))&&u.x>=a&&u.y+u.height<=p&&u.y>=d&&u.x+u.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var y=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:y.apply(this,
+arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var z=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")){var b=d.getProperty("event").getState();z=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,
+mxUtils.bind(this,function(a,d){if(!mxEvent.isMultiTouchEvent(d)){var b=d.getProperty("event"),c=d.getProperty("cell");null==c?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=z?this.addSelectionCells(z):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);z=null;d.consume()}}));this.connectionHandler.selectCells=function(a,d){this.graph.setSelectionCell(d||a)};this.connectionHandler.constraintHandler.isStateIgnored=
function(a,d){return d&&a.view.graph.isCellSelected(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 B=this.updateMouseEvent;this.updateMouseEvent=function(a){a=B.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
null);return a}}};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.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
Graph.createSvgImage=function(a,b,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};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.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);
Graph.prototype.transparentBackground=!0;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=(window!=window.top?document.referrer:document.location.toString()).split("#")[0];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,m=null,l=mxUtils.bind(this,function(a){k=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<b&&Math.abs(m.y-mxEvent.getClientY(a))<b}),t=mxUtils.bind(this,function(d){if(k)for(var b=mxEvent.getSource(d);null!=
-b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,d);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,l,q,t);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,l=null,n=mxUtils.bind(this,function(a){k=!0;l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=l&&Math.abs(l.x-mxEvent.getClientX(a))<b&&Math.abs(l.y-mxEvent.getClientY(a))<b}),t=mxUtils.bind(this,function(d){if(k)for(var b=mxEvent.getSource(d);null!=
+b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,d);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,n,q,t);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isPageLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
Graph.prototype.openLink=function(a,b){var e=window;if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var c=a.split("#")[1];window.location.hash=="#"+c&&(window.location.hash="");window.location.hash=c}else e=window.open(a,b);return e};Graph.prototype.isPageLink=function(a){return!1};
Graph.prototype.pageLinkClicked=function(a,b){this.fireEvent(new mxEventObject("pageLinkClicked","cell",a,"href",b))};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2213,37 +2213,37 @@ Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutMana
"resizeLast","0"),b.spacing=a.stackSpacing||b.spacing,b.border=a.stackBorder||b.border,b.marginLeft=a.marginLeft||0,b.marginRight=a.marginRight||0,b.marginTop=a.marginTop||0,b.marginBottom=a.marginBottom||0,b.fill=!0,b):"treeLayout"==a.childLayout?(b=new mxCompactTreeLayout(this.graph),b.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.groupPadding=mxUtils.getValue(a,"parentPadding",20),b.levelDistance=mxUtils.getValue(a,"treeLevelDistance",
30),b.maintainParentLocation=!0,b.edgeRouting=!1,b.resetEdges=!1,b):"flowLayout"==a.childLayout?(b=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.parentBorder=mxUtils.getValue(a,"parentPadding",20),b.maintainParentLocation=!0,b.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),b.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing",
mxHierarchicalLayout.prototype.interRankCellSpacing),b.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),b.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),b):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
-Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),c=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),m=Math.floor(c/a.height);return new mxRectangle(k,m,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((c+Math.floor(b.height/this.view.scale))/a.height)-m)};
+Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),c=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(c/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((c+Math.floor(b.height/this.view.scale))/a.height)-l)};
Graph.prototype.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.prototype.updatePlaceholders=function(){var a=!1,b;for(b in this.model.cells){var e=this.model.cells[b];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")};
Graph.prototype.isZoomWheelEvent=function(a){return mxEvent.isAltDown(a)||mxEvent.isControlDown(a)&&!mxClient.IS_MAC||null!=this.panningHandler&&this.panningHandler.isActive()};Graph.prototype.isTransparentClickEvent=function(a){return mxEvent.isAltDown(a)};Graph.prototype.isIgnoreTerminalEvent=function(a){return mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)};
Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var b=mxGraph.prototype.getLabel.apply(this,arguments);null!=b&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(b=this.replacePlaceholders(a,b));return b};
Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var c=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,l=function(a,d){a=String(a);for(d=d||2;a.length<d;)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(c.masks[b]||b||c.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",t=a[q+"Date"](),d=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),p=a[q+"Hours"](),n=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),w=e?0:a.getTimezoneOffset(),u={d:t,dd:l(t),ddd:c.i18n.dayNames[d],dddd:c.i18n.dayNames[d+7],m:f+1,mm:l(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+
-12],yy:String(g).slice(2),yyyy:g,h:p%12||12,hh:l(p%12||12),H:p,HH:l(p),M:n,MM:l(n),s:h,ss:l(h),l:l(q,3),L:l(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(m,""),o:(0<w?"-":"+")+l(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:["th","st","nd","rd"][3<t%10?0:(10!=t%100-t%10)*t%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in u?u[a]:a.slice(1,
+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 c=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,n=function(a,d){a=String(a);for(d=d||2;a.length<d;)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(c.masks[b]||b||c.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",t=a[q+"Date"](),d=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),p=a[q+"Hours"](),m=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),w=e?0:a.getTimezoneOffset(),u={d:t,dd:n(t),ddd:c.i18n.dayNames[d],dddd:c.i18n.dayNames[d+7],m:f+1,mm:n(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+
+12],yy:String(g).slice(2),yyyy:g,h:p%12||12,hh:n(p%12||12),H:p,HH:n(p),M:m,MM:n(m),s:h,ss:n(h),l:n(q,3),L:n(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0<w?"-":"+")+n(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:["th","st","nd","rd"][3<t%10?0:(10!=t%100-t%10)*t%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in u?u[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),c=0;c<e;c++)(function(c){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var k=document.createElement("input");k.style.display="inline-block";k.setAttribute("type","checkbox");b.isVisible(c)&&(k.setAttribute("checked","checked"),k.defaultChecked=
!0);e.appendChild(k);var q=c.value||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(k,"click",function(){null!=k.getAttribute("checked")?k.removeAttribute("checked"):k.setAttribute("checked","checked");b.setVisible(c,k.checked)})})(b.getChildAt(b.root,c));return a};
-Graph.prototype.replacePlaceholders=function(a,b){for(var e=[],c=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var m=null;if(match.index>c&&"%"==b.charAt(match.index-1))m=k.substring(1);else{var l=k.substring(1,k.length-1);if(0>l.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(l)?null!=q.getAttribute(l)?q.getAttribute(l):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(l))}e.push(b.substring(c,
-match.index)+(null!=m?m:k));c=match.index+k.length}}e.push(b.substring(c));return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,b,e,c,k,m){m=m?m:!1;var 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(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(l.x+=a.geometry.width/2,l.y-=e):b==mxConstants.DIRECTION_SOUTH?(l.x+=a.geometry.width/2,l.y+=a.geometry.height+e):(l.x=b==mxConstants.DIRECTION_WEST?l.x-e:l.x+(a.geometry.width+e),l.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
-var q=this.view.scale,t=this.view.translate,d=t.x*q,t=t.y*q;this.model.isVertex(e.cell)&&(d=e.x,t=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(l.x+=a.parent.geometry.x,l.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(c)&&!k?null:this.getCellAt(d+l.x*q,t+l.y*q);this.model.isAncestor(m,a)&&(m=null);for(e=m;null!=e;){if(this.isCellLocked(e)){m=null;break}e=this.model.getParent(e)}null!=m&&(e=this.view.getState(a),q=this.view.getState(m),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(m=
-null));if(k=!mxEvent.isShiftDown(c)||k)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;null==m||this.isCellConnectable(m)||(e=this.getModel().getParent(m),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(m=e));if(m==a||this.model.isEdge(m)||!this.isCellConnectable(m))m=null;e=[];this.model.beginUpdate();try{q=m;if(null==q&&k){for(var d=a,f=this.getCellGeometry(a);null!=
-f&&f.relative;)d=this.getModel().getParent(d),f=this.getCellGeometry(d);var g=this.view.getState(d),p=null!=g?g.style:this.getCellStyle(d);if(mxUtils.getValue(p,"part",!1)){var n=this.model.getParent(d);this.model.isVertex(n)&&(d=n)}q=this.duplicateCells([d],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=l.x-f.width/2,f.y=l.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(c)&&k||null==m&&null!=f&&f.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var w=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=h.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==h.parent&&(w=c.parent.getIndex(c),this.model.add(c.parent,h,w))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(w=a.parent.getIndex(a),this.model.add(a.parent,
-q,w));null!=h&&e.push(h);null==m&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(l,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e};
+Graph.prototype.replacePlaceholders=function(a,b){for(var e=[],c=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>c&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var n=k.substring(1,k.length-1);if(0>n.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(n)?null!=q.getAttribute(n)?q.getAttribute(n):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(n))}e.push(b.substring(c,
+match.index)+(null!=l?l:k));c=match.index+k.length}}e.push(b.substring(c));return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
+Graph.prototype.connectVertex=function(a,b,e,c,k,l){l=l?l:!1;var n=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(n.x+=a.geometry.width/2,n.y-=e):b==mxConstants.DIRECTION_SOUTH?(n.x+=a.geometry.width/2,n.y+=a.geometry.height+e):(n.x=b==mxConstants.DIRECTION_WEST?n.x-e:n.x+(a.geometry.width+e),n.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
+var q=this.view.scale,t=this.view.translate,d=t.x*q,t=t.y*q;this.model.isVertex(e.cell)&&(d=e.x,t=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(n.x+=a.parent.geometry.x,n.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(c)&&!k?null:this.getCellAt(d+n.x*q,t+n.y*q);this.model.isAncestor(l,a)&&(l=null);for(e=l;null!=e;){if(this.isCellLocked(e)){l=null;break}e=this.model.getParent(e)}null!=l&&(e=this.view.getState(a),q=this.view.getState(l),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(l=
+null));if(k=!mxEvent.isShiftDown(c)||k)b==mxConstants.DIRECTION_NORTH?n.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?n.y+=a.geometry.height/2:n.x=b==mxConstants.DIRECTION_WEST?n.x-a.geometry.width/2:n.x+a.geometry.width/2;null==l||this.isCellConnectable(l)||(e=this.getModel().getParent(l),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(l=e));if(l==a||this.model.isEdge(l)||!this.isCellConnectable(l))l=null;e=[];this.model.beginUpdate();try{q=l;if(null==q&&k){for(var d=a,f=this.getCellGeometry(a);null!=
+f&&f.relative;)d=this.getModel().getParent(d),f=this.getCellGeometry(d);var g=this.view.getState(d),p=null!=g?g.style:this.getCellStyle(d);if(mxUtils.getValue(p,"part",!1)){var m=this.model.getParent(d);this.model.isVertex(m)&&(d=m)}q=this.duplicateCells([d],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=n.x-f.width/2,f.y=n.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(c)&&k||null==l&&null!=f&&f.constructor==mxStackLayout?
+null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var w=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=h.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==h.parent&&(w=c.parent.getIndex(c),this.model.add(c.parent,h,w))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(w=a.parent.getIndex(a),this.model.add(a.parent,
+q,w));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(n,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,c;for(c in this.model.cells)if(e=this.model.cells[c],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),e=a,c=null;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);return c||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var c=this.layoutManager.getLayout(this.model.getParent(a));null!=c&&c.constructor==mxStackLayout&&(c.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,b,e,c,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var l=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=l&&null!=q){var t=Math.round(q.width-l.width/this.view.scale),d=Math.round(q.height-l.height/this.view.scale);if(0!=d||0!=t){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f);
-null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(l,f,t,d):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,t,d)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,b,e,c){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var m=this.view.getState(k[b]),l=this.getCellGeometry(k[b]);null!=m&&null!=l&&(l=l.clone(),l.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(c*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(k[b],l))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,b,e,c){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var m=this.getCellGeometry(a),l=this.view.getState(a);null!=l&&null!=m&&(m=m.clone(),b.horizontal?m.width+=e+Math.min(0,l.width/this.view.scale-m.width):m.height+=c+Math.min(0,l.height/this.view.scale-m.height),this.model.setGeometry(a,
-m));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
+Graph.prototype.foldCells=function(a,b,e,c,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var n=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=n&&null!=q){var t=Math.round(q.width-n.width/this.view.scale),d=Math.round(q.height-n.height/this.view.scale);if(0!=d||0!=t){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f);
+null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(n,f,t,d):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,t,d)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,c){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var l=this.view.getState(k[b]),n=this.getCellGeometry(k[b]);null!=l&&null!=n&&(n=n.clone(),n.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(c*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],n))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,c){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),n=this.view.getState(a);null!=n&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,n.width/this.view.scale-l.width):l.height+=c+Math.min(0,n.height/this.view.scale-l.height),this.model.setGeometry(a,
+l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,b,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
@@ -2259,7 +2259,7 @@ HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;b
HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE,
this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE,
mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
-!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,c){b=!1;var e=c.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(c.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
+!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,c){b=!1;var e=c.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(c.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
this.update(this.getState(c.getState()),c.getGraphX(),c.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.isActive()&&null!=this.mouseDownPoint&&Math.abs(c.getGraphX()-this.mouseDownPoint.x)<this.graph.tolerance&&Math.abs(c.getGraphY()-this.mouseDownPoint.y)<this.graph.tolerance?b||this.click(this.currentState,this.getDirection(),c):this.isActive()?1==
this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(c.getGraphX(),c.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,c.getGraphX(),c.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();b=!1;this.resetActiveArrow()})})};
HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)};
@@ -2269,14 +2269,14 @@ this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redire
this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)};HoverIcons.prototype.getDirection=function(){var a=mxConstants.DIRECTION_EAST;this.activeArrow==this.arrowUp?a=mxConstants.DIRECTION_NORTH:this.activeArrow==this.arrowDown?a=mxConstants.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(a=mxConstants.DIRECTION_WEST);return a};
HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,a=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=a&&a.setHandlesVisible(!1))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))};
-HoverIcons.prototype.click=function(a,b,e){var c=e.getEvent(),k=e.getGraphX(),m=e.getGraphY(),k=this.getStateAt(a,k,m);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(c)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,c),this.graph.selectCellsForConnectVertex(a,c,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(c)?this.update(this.getState(this.graph.view.getState(a[1]))):
+HoverIcons.prototype.click=function(a,b,e){var c=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(c)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,c),this.graph.selectCellsForConnectVertex(a,c,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(c)?this.update(this.getState(this.graph.view.getState(a[1]))):
this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(k.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&a.add(b.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+
"px";this.arrowUp.style.top=Math.round(a.y-this.triangleUp.height-this.tolerance)+"px";mxUtils.setOpacity(this.arrowUp,this.inactiveOpacity);this.arrowRight.style.left=Math.round(a.x+a.width-this.tolerance)+"px";this.arrowRight.style.top=Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance)+"px";mxUtils.setOpacity(this.arrowRight,this.inactiveOpacity);this.arrowDown.style.left=this.arrowUp.style.left;this.arrowDown.style.top=Math.round(a.y+a.height-this.tolerance)+
"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),c=this.graph.getCellAt(this.currentState.getCenterX(),
-a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==c&&c==a&&(a=c=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,b){var c=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==c||null==k||c.height<6*k.height&&c.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
-m(b,this.arrowRight);m(e,this.arrowLeft);m(c,this.arrowUp);m(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",
+a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==c&&c==a&&(a=c=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var c=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==c||null==k||c.height<6*k.height&&c.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
+l(b,this.arrowRight);l(e,this.arrowLeft);l(c,this.arrowUp);l(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",
mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a};
HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a};
@@ -2285,23 +2285,23 @@ this.setDisplay("");null!=this.currentState&&this.currentState!=a&&c<this.activa
this.reset())}else 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};
(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,d){var c=this.getState(a);null!=c&&this.graph.model.isEdge(c.cell)&&null!=c.style&&1!=c.style[mxConstants.STYLE_CURVED]&&!c.invalid&&this.updateLineJumps(c)&&this.graph.cellRenderer.redraw(c,!1,this.isRendering());c=b.apply(this,arguments);null!=
c&&this.graph.model.isEdge(c.cell)&&1!=c.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(c);return c};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,d){return e.apply(this,arguments)||null!=a.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,a.routedPoints)};var c=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){c.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&
-this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var d=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(d,b,f){var g=new mxPoint(b,f);g.type=d;c.push(g);g=null!=a.routedPoints?a.routedPoints[c.length-1]:null;return null==g||g.type!=d||g.x!=b||g.y!=f},n=.5*this.scale,b=!1,c=[],h=0;h<d.length-1;h++){for(var k=d[h+1],u=d[h],x=[],r=d[h+2];h<
-d.length-2&&mxUtils.ptSegDistSq(u.x,u.y,r.x,r.y,k.x,k.y)<1*this.scale*this.scale;)k=r,h++,r=d[h+2];for(var b=e(0,u.x,u.y)||b,q=0;q<this.validEdges.length;q++){var v=this.validEdges[q],m=v.absolutePoints;if(null!=m&&mxUtils.intersects(a,v)&&"1"!=v.style.noJump)for(v=0;v<m.length-1;v++){for(var l=m[v+1],t=m[v],r=m[v+2];v<m.length-2&&mxUtils.ptSegDistSq(t.x,t.y,r.x,r.y,l.x,l.y)<1*this.scale*this.scale;)l=r,v++,r=m[v+2];r=mxUtils.intersection(u.x,u.y,k.x,k.y,t.x,t.y,l.x,l.y);if(null!=r&&(Math.abs(r.x-
-t.x)>n||Math.abs(r.y-t.y)>n)&&(Math.abs(r.x-l.x)>n||Math.abs(r.y-l.y)>n)){l=r.x-u.x;t=r.y-u.y;r={distSq:l*l+t*t,x:r.x,y:r.y};for(l=0;l<x.length;l++)if(x[l].distSq>r.distSq){x.splice(l,0,r);r=null;break}null==r||0!=x.length&&x[x.length-1].x===r.x&&x[x.length-1].y===r.y||x.push(r)}}}for(v=0;v<x.length;v++)b=e(1,x[v].x,x[v].y)||b}r=d[d.length-1];b=e(0,r.x,r.y)||b}a.routedPoints=c;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,d,b){this.routedPoints=
-null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,q=!0,u=null,x=null;h=[];var r=null;a.begin();for(var m=0;m<this.state.routedPoints.length;m++){var v=
-this.state.routedPoints[m],l=new mxPoint(v.x/this.scale,v.y/this.scale);0==m?l=d[0]:m==this.state.routedPoints.length-1&&(l=d[d.length-1]);var t=!1;if(null!=u&&1==v.type){var B=this.state.routedPoints[m+1],v=B.x/this.scale-l.x,B=B.y/this.scale-l.y,v=v*v+B*B;null==r&&(r=new mxPoint(l.x-u.x,l.y-u.y),x=Math.sqrt(r.x*r.x+r.y*r.y),r.x=r.x*f/x,r.y=r.y*f/x);v>f*f&&0<x&&(v=u.x-l.x,B=u.y-l.y,v=v*v+B*B,v>f*f&&(t=new mxPoint(l.x-r.x,l.y-r.y),v=new mxPoint(l.x+r.x,l.y+r.y),h.push(t),this.addPoints(a,h,b,c,!1,
-null,q),h=0>Math.round(r.x)||0==Math.round(r.x)&&0>=Math.round(r.y)?1:-1,q=!1,"sharp"==e?(a.lineTo(t.x-r.y*h,t.y+r.x*h),a.lineTo(v.x-r.y*h,v.y+r.x*h),a.lineTo(v.x,v.y)):"arc"==e?(h*=1.3,a.curveTo(t.x-r.y*h,t.y+r.x*h,v.x-r.y*h,v.y+r.x*h,v.x,v.y)):(a.moveTo(v.x,v.y),q=!0),h=[v],t=!0))}else r=null;t||(h.push(l),u=l)}this.addPoints(a,h,b,c,!1,null,q);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null==
-a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),x=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,x,k);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
-0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),x=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,x,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(d,a[f]);if(null!=g){var p=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==c||p<c)b=g,c=p}}null!=b&&(e=b)}return e};var l=mxStencil.prototype.evaluateTextAttribute;
-mxStencil.prototype.evaluateTextAttribute=function(a,d,b){var c=l.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(c=b.state.view.graph.replacePlaceholders(b.state.cell,c));return c};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var d=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"stencil("==d.substring(0,8))try{var b=d.substring(8,d.length-1),c=mxUtils.parseXml(a.view.graph.decompress(b));
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var d=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(d,b,f){var g=new mxPoint(b,f);g.type=d;c.push(g);g=null!=a.routedPoints?a.routedPoints[c.length-1]:null;return null==g||g.type!=d||g.x!=b||g.y!=f},m=.5*this.scale,b=!1,c=[],h=0;h<d.length-1;h++){for(var k=d[h+1],u=d[h],v=[],r=d[h+2];h<
+d.length-2&&mxUtils.ptSegDistSq(u.x,u.y,r.x,r.y,k.x,k.y)<1*this.scale*this.scale;)k=r,h++,r=d[h+2];for(var b=e(0,u.x,u.y)||b,q=0;q<this.validEdges.length;q++){var l=this.validEdges[q],n=l.absolutePoints;if(null!=n&&mxUtils.intersects(a,l)&&"1"!=l.style.noJump)for(l=0;l<n.length-1;l++){for(var t=n[l+1],B=n[l],r=n[l+2];l<n.length-2&&mxUtils.ptSegDistSq(B.x,B.y,r.x,r.y,t.x,t.y)<1*this.scale*this.scale;)t=r,l++,r=n[l+2];r=mxUtils.intersection(u.x,u.y,k.x,k.y,B.x,B.y,t.x,t.y);if(null!=r&&(Math.abs(r.x-
+B.x)>m||Math.abs(r.y-B.y)>m)&&(Math.abs(r.x-t.x)>m||Math.abs(r.y-t.y)>m)){t=r.x-u.x;B=r.y-u.y;r={distSq:t*t+B*B,x:r.x,y:r.y};for(t=0;t<v.length;t++)if(v[t].distSq>r.distSq){v.splice(t,0,r);r=null;break}null==r||0!=v.length&&v[v.length-1].x===r.x&&v[v.length-1].y===r.y||v.push(r)}}}for(l=0;l<v.length;l++)b=e(1,v[l].x,v[l].y)||b}r=d[d.length-1];b=e(0,r.x,r.y)||b}a.routedPoints=c;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,d,b){this.routedPoints=
+null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,q=!0,u=null,v=null;h=[];var r=null;a.begin();for(var l=0;l<this.state.routedPoints.length;l++){var n=
+this.state.routedPoints[l],y=new mxPoint(n.x/this.scale,n.y/this.scale);0==l?y=d[0]:l==this.state.routedPoints.length-1&&(y=d[d.length-1]);var t=!1;if(null!=u&&1==n.type){var B=this.state.routedPoints[l+1],n=B.x/this.scale-y.x,B=B.y/this.scale-y.y,n=n*n+B*B;null==r&&(r=new mxPoint(y.x-u.x,y.y-u.y),v=Math.sqrt(r.x*r.x+r.y*r.y),r.x=r.x*f/v,r.y=r.y*f/v);n>f*f&&0<v&&(n=u.x-y.x,B=u.y-y.y,n=n*n+B*B,n>f*f&&(t=new mxPoint(y.x-r.x,y.y-r.y),n=new mxPoint(y.x+r.x,y.y+r.y),h.push(t),this.addPoints(a,h,b,c,!1,
+null,q),h=0>Math.round(r.x)||0==Math.round(r.x)&&0>=Math.round(r.y)?1:-1,q=!1,"sharp"==e?(a.lineTo(t.x-r.y*h,t.y+r.x*h),a.lineTo(n.x-r.y*h,n.y+r.x*h),a.lineTo(n.x,n.y)):"arc"==e?(h*=1.3,a.curveTo(t.x-r.y*h,t.y+r.x*h,n.x-r.y*h,n.y+r.x*h,n.x,n.y)):(a.moveTo(n.x,n.y),q=!0),h=[n],t=!0))}else r=null;t||(h.push(y),u=y)}this.addPoints(a,h,b,c,!1,null,q);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null==
+a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),v=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,v,k);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
+0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),v=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,v,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(d,a[f]);if(null!=g){var p=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==c||p<c)b=g,c=p}}null!=b&&(e=b)}return e};var n=mxStencil.prototype.evaluateTextAttribute;
+mxStencil.prototype.evaluateTextAttribute=function(a,d,b){var c=n.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(c=b.state.view.graph.replacePlaceholders(b.state.cell,c));return c};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var d=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"stencil("==d.substring(0,8))try{var b=d.substring(8,d.length-1),c=mxUtils.parseXml(a.view.graph.decompress(b));
return new mxShape(new mxStencil(c.documentElement))}catch(p){null!=window.console&&console.log("Error in shape: "+p)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
-mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var c=0;c<b.length;c++){var k=b[c];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var m=
-mxUtils.load(k);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(l){null!=window.console&&console.log("error in getStencil:",k,l)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
+mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var c=0;c<b.length;c++){var k=b[c];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var l=
+mxUtils.load(k);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(n){null!=window.console&&console.log("error in getStencil:",k,n)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b};
-mxStencilRegistry.loadStencilSet=function(a,b,e,c){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var m=!1;if(null==k)try{if(c){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(c){null!=c&&null!=c.documentElement&&(mxStencilRegistry.packages[a]=c,m=!0,mxStencilRegistry.parseStencilSet(c.documentElement,b,m))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;m=!0}catch(l){null!=window.console&&console.log("error in loadStencilSet:",a,l)}null!=k&&null!=
-k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,m)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var c=a.firstChild;null!=c;)"shapes"==c.nodeName&&mxStencilRegistry.parseStencilSet(c,b,e),c=c.nextSibling;else{e=null!=e?e:!0;var c=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=c.getAttribute("name"),null!=a)){var k=k.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+m.toLowerCase(),new mxStencil(c));if(null!=b){var l=c.getAttribute("w"),
-q=c.getAttribute("h"),l=null==l?80:parseInt(l,10),q=null==q?80:parseInt(q,10);b(k,m,a,l,q)}}c=c.nextSibling}}};
+mxStencilRegistry.loadStencilSet=function(a,b,e,c){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(c){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(c){null!=c&&null!=c.documentElement&&(mxStencilRegistry.packages[a]=c,l=!0,mxStencilRegistry.parseStencilSet(c.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(n){null!=window.console&&console.log("error in loadStencilSet:",a,n)}null!=k&&null!=
+k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
+mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var c=a.firstChild;null!=c;)"shapes"==c.nodeName&&mxStencilRegistry.parseStencilSet(c,b,e),c=c.nextSibling;else{e=null!=e?e:!0;var c=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=c.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(c));if(null!=b){var n=c.getAttribute("w"),
+q=c.getAttribute("h"),n=null==n?80:parseInt(n,10),q=null==q?80:parseInt(q,10);b(k,l,a,n,q)}}c=c.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#99ccff";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR=
"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=8;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var b=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
b.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));
@@ -2309,14 +2309,14 @@ for(var d in this.graph.currentEdgeStyle)a.style[d]=this.graph.currentEdgeStyle[
a.getCell=mxUtils.bind(this,function(a){var b=d.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+
this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");"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.importGraphModel=function(a,d,b,c){d=null!=d?
-d:0;b=null!=b?b:0;var f=[],g=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,g);a=g.getChildCount(g.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var e={},h=0;h<a;h++){var p=g.getChildAt(g.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))p=this.importCells([p],0,0,this.model.getRoot(),null,e)[0],n=this.model.getChildren(p),this.moveCells(n,d,b),f=f.concat(n);else var n=g.getChildren(p),f=f.concat(this.importCells(n,d,b,this.getDefaultParent(),
-null,e))}if(c){this.isGridEnabled()&&(d=this.snap(d),b=this.snap(b));var r=this.getBoundingBoxFromGeometry(f,!0);null!=r&&this.moveCells(f,d-r.x,b-r.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,d){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var c=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var g=f[b];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0))}}catch(Q){}return c}if(null!=
+d:0;b=null!=b?b:0;var f=[],g=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,g);a=g.getChildCount(g.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var e={},h=0;h<a;h++){var p=g.getChildAt(g.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))p=this.importCells([p],0,0,this.model.getRoot(),null,e)[0],m=this.model.getChildren(p),this.moveCells(m,d,b),f=f.concat(m);else var m=g.getChildren(p),f=f.concat(this.importCells(m,d,b,this.getDefaultParent(),
+null,e))}if(c){this.isGridEnabled()&&(d=this.snap(d),b=this.snap(b));var u=this.getBoundingBoxFromGeometry(f,!0);null!=u&&this.moveCells(f,d-u.x,b-u.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,d){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var c=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var g=f[b];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0))}}catch(D){}return c}if(null!=
a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);null!=d&&(d=mxUtils.getValue(d,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,d,[a]))}};
Graph.prototype.isValidRoot=function(a){for(var d=this.model.getChildCount(a),b=0,c=0;c<d;c++){var f=this.model.getChildAt(a,c);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(d,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(d,"dropTarget",
"1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(a){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(a){var d=this.getModel(),b=[];d.beginUpdate();try{for(var c=0;c<a.length;c++){var f=a[c];if(d.isEdge(f)){var g=d.getTerminal(f,!0),e=d.getTerminal(f,!1);d.setTerminal(f,e,!0);d.setTerminal(f,g,!1);var h=d.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var p=h.getTerminalPoint(!0),n=h.getTerminalPoint(!1);
-h.setTerminalPoint(p,!1);h.setTerminalPoint(n,!0);d.setGeometry(f,h);var r=this.view.getState(f),u=this.view.getState(g),J=this.view.getState(e);if(null!=r){var x=null!=u?this.getConnectionConstraint(r,u,!0):null,k=null!=J?this.getConnectionConstraint(r,J,!1):null;this.setConnectionConstraint(f,g,!0,k);this.setConnectionConstraint(f,e,!1,x)}b.push(f)}}else if(d.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var q=h.width;h.width=h.height;
-h.height=q;d.setGeometry(f,h);var y=this.view.getState(f);if(null!=y){var w=y.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}b.push(f)}}}finally{d.endUpdate()}return b};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var d=this.model.getDescendants(a.cell);
+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(a){var d=this.getModel(),b=[];d.beginUpdate();try{for(var c=0;c<a.length;c++){var f=a[c];if(d.isEdge(f)){var g=d.getTerminal(f,!0),e=d.getTerminal(f,!1);d.setTerminal(f,e,!0);d.setTerminal(f,g,!1);var h=d.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var p=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);
+h.setTerminalPoint(p,!1);h.setTerminalPoint(m,!0);d.setGeometry(f,h);var u=this.view.getState(f),r=this.view.getState(g),G=this.view.getState(e);if(null!=u){var v=null!=r?this.getConnectionConstraint(u,r,!0):null,k=null!=G?this.getConnectionConstraint(u,G,!1):null;this.setConnectionConstraint(f,g,!0,k);this.setConnectionConstraint(f,e,!1,v)}b.push(f)}}else if(d.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var q=h.width;h.width=h.height;
+h.height=q;d.setGeometry(f,h);var w=this.view.getState(f);if(null!=w){var x=w.style[mxConstants.STYLE_DIRECTION]||"east";"east"==x?x="south":"south"==x?x="west":"west"==x?x="north":"north"==x&&(x="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,x,[f])}b.push(f)}}}finally{d.endUpdate()}return b};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var d=this.model.getDescendants(a.cell);
if(0<d.length)for(var b=0;b<d.length;b++)this.isReplacePlaceholders(d[b])&&this.view.invalidate(d[b],!1,!1)}};Graph.prototype.replaceElement=function(a,d){for(var b=a.ownerDocument.createElement(null!=d?d:"span"),c=Array.prototype.slice.call(a.attributes);attr=c.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,d,b){a=null!=a?a:this.getSelectionCells();for(var c=document.createElement("div"),f=
0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var g=this.convertValueToString(a[f]);if(null!=g&&0<g.length){c.innerHTML=g;for(var e=c.getElementsByTagName(null!=b?b:"*"),h=0;h<e.length;h++)d(e[h]);c.innerHTML!=g&&this.cellLabelChanged(a[f],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,d,b){d=this.zapGremlins(d);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var c=a.getAttribute("placeholder"),
f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(c)){this.setAttributeForCell(f,c,d);break}f=this.model.getParent(f)}var g=a.value.cloneNode(!0);g.setAttribute("label",d);d=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(var c=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||
@@ -2335,236 +2335,237 @@ d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(b>g||c>g)&&this.clear()}}e
e.container.scrollLeft)<g&&Math.abs(this.scrollTop-e.container.scrollTop)<g&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=this.currentLink?(f=e.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==d||d(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?e.linkTarget:"_top",e.openLink(this.currentLink,
h),c.consume())):null!=b&&!c.isConsumed()&&Math.abs(this.scrollLeft-e.container.scrollLeft)<g&&Math.abs(this.scrollTop-e.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-c.getGraphY())<g&&b(c.getEvent()));this.clear()},activate:function(a){this.currentLink=e.getAbsoluteUrl(e.getLinkForCell(a.cell));null!=this.currentLink&&(e.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=e.container&&(e.container.style.cursor=
f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};e.click=function(a){};e.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,d){a=null!=a?a:this.getSelectionCells();d=null!=d?d:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),c=this.gridSize,f=[];b.beginUpdate();try{for(var g=this.cloneCells(a,!1),e=0;e<a.length;e++){var h=b.getParent(a[e]),p=this.moveCells([g[e]],c,c,!1)[0];
-f.push(p);if(d)b.add(h,g[e]);else{var n=h.getIndex(a[e]);b.add(h,g[e],n+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,d,b){if(null!=a){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),f=[],g=0;g<c.length;g++)f.push(c[g]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(g=a.length-1;0<=g;g--)if(0==g||a[g]!=f[g-1]){a[g].setAttribute("width",d);a[g].setAttribute("height",b);break}}};
+f.push(p);if(d)b.add(h,g[e]);else{var m=h.getIndex(a[e]);b.add(h,g[e],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,d,b){if(null!=a){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),f=[],g=0;g<c.length;g++)f.push(c[g]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(g=a.length-1;0<=g;g--)if(0==g||a[g]!=f[g-1]){a[g].setAttribute("width",d);a[g].setAttribute("height",b);break}}};
Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink",!1):document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return d||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,d){null==d&&(d=this.getSelectionCells());
-if(null!=d&&1<d.length){for(var b=[],c=null,f=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var e=this.view.getState(d[g]);if(null!=e){var h=a?e.getCenterX():e.getCenterY(),c=null!=c?Math.max(c,h):h,f=null!=f?Math.min(f,h):h;b.push(e)}}if(2<b.length){b.sort(function(d,b){return a?d.x-b.x:d.y-b.y});e=this.view.translate;h=this.view.scale;f=f/h-(a?e.x:e.y);c=c/h-(a?e.x:e.y);this.getModel().beginUpdate();try{for(var p=(c-f)/(b.length-1),c=f,g=1;g<b.length-1;g++){var n=this.view.getState(this.model.getParent(b[g].cell)),
-r=this.getCellGeometry(b[g].cell),c=c+p;null!=r&&null!=n&&(r=r.clone(),a?r.x=Math.round(c-r.width/2)-n.origin.x:r.y=Math.round(c-r.height/2)-n.origin.y,this.getModel().setGeometry(b[g].cell,r))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var d=this.cloneCells(a),b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(c=0;c<d.length;c++){var f=
+if(null!=d&&1<d.length){for(var b=[],c=null,f=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var e=this.view.getState(d[g]);if(null!=e){var h=a?e.getCenterX():e.getCenterY(),c=null!=c?Math.max(c,h):h,f=null!=f?Math.min(f,h):h;b.push(e)}}if(2<b.length){b.sort(function(d,b){return a?d.x-b.x:d.y-b.y});e=this.view.translate;h=this.view.scale;f=f/h-(a?e.x:e.y);c=c/h-(a?e.x:e.y);this.getModel().beginUpdate();try{for(var p=(c-f)/(b.length-1),c=f,g=1;g<b.length-1;g++){var m=this.view.getState(this.model.getParent(b[g].cell)),
+u=this.getCellGeometry(b[g].cell),c=c+p;null!=u&&null!=m&&(u=u.clone(),a?u.x=Math.round(c-u.width/2)-m.origin.x:u.y=Math.round(c-u.height/2)-m.origin.y,this.getModel().setGeometry(b[g].cell,u))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var d=this.cloneCells(a),b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(c=0;c<d.length;c++){var f=
this.view.getState(a[c]);if(null!=f){var g=this.getCellGeometry(d[c]);null==g||!g.relative||this.model.isEdge(a[c])||b.get(this.model.getParent(a[c]))||(g.relative=!1,g.x=f.x/f.view.scale-f.view.translate.x,g.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;g=f.getChildAt(f.getRoot(),0);for(c=0;c<a.length;c++)f.add(g,d[c]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,d){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,d,b,c,f,g,e){d=null!=d?d:1;b=null!=b?b:0;f=null!=f?f:!0;g=null!=g?g:!0;e=null!=e?e:!0;var h=g||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var p=this.view.scale,n=mxUtils.createXmlDocument();c=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"svg"):n.createElement("svg");null!=a&&(null!=c.style?c.style.backgroundColor=a:c.setAttribute("style","background-color:"+
-a));null==n.createElementNS?(c.setAttribute("xmlns",mxConstants.NS_SVG),c.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=d/p;c.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*b)+"px");c.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*b)+"px");c.setAttribute("version","1.1");var r=c;f&&(r=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"g"):n.createElement("g"),r.setAttribute("transform",
-"translate(0.5,0.5)"),c.appendChild(r));n.appendChild(c);n=this.createSvgCanvas(r);n.foOffset=f?-.5:0;n.textOffset=f?-.5:0;n.imageOffset=f?-.5:0;n.translate(Math.floor((b/d-h.x)/p),Math.floor((b/d-h.y)/p));var u=document.createElement("textarea"),x=n.createAlternateContent;n.createAlternateContent=function(a,d,b,c,f,g,e,h,n,p,r,k,q){var w=this.state;if(null!=this.foAltText&&(0==c||0!=w.fontSize&&g.length<5*c/w.fontSize)){var y=this.createElement("text");y.setAttribute("x",Math.round(c/2));y.setAttribute("y",
-Math.round((f+w.fontSize)/2));y.setAttribute("fill",w.fontColor||"black");y.setAttribute("text-anchor","middle");y.setAttribute("font-size",Math.round(w.fontSize)+"px");y.setAttribute("font-family",w.fontFamily);(w.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&y.setAttribute("font-weight","bold");(w.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&y.setAttribute("font-style","italic");(w.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&y.setAttribute("text-decoration",
-"underline");try{return u.innerHTML=g,y.textContent=u.value,y}catch(ga){return x.apply(this,arguments)}}else return x.apply(this,arguments)};b=this.backgroundImage;null!=b&&(f=p/d,d=this.view.translate,f=new mxRectangle(d.x*f,d.y*f,b.width*f,b.height*f),mxUtils.intersects(h,f)&&n.image(d.x,d.y,b.width,b.height,b.src,!0));n.scale(a);n.textEnabled=e;e=this.createSvgImageExport();var k=e.drawCellState;e.drawCellState=function(a,d){(g||a.view.graph.isCellSelected(a.cell))&&k.apply(this,arguments)};e.drawState(this.getView().getState(this.model.root),
-n);return c};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(a=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,d,b){for(;null!=a&&a.nodeName!=d;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=
-function(a){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var b=document.createRange();b.selectNode(a);d.removeAllRanges();d.addRange(b)}}else(d=document.selection)&&"Control"!=d.type&&(a=d.createRange(),a.collapse(!0),b=d.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,d){for(var b=a.tBodies[0],c=0<b.rows.length?b.rows[0].cells.length:1,b=b.insertRow(d),f=0;f<c;f++)mxUtils.br(b.insertCell(-1));return b.cells[0]};
-Graph.prototype.deleteRow=function(a,d){a.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(a,d){var b=a.tHead;if(null!=b)for(var c=0;c<b.rows.length;c++){var f=document.createElement("th");b.rows[c].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(c=0;c<b.rows.length;c++)f=b.rows[c].insertCell(d),mxUtils.br(f);return b.rows[0].cells[0<=d?d:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,d){if(0<=d)for(var b=a.tBodies[0].rows,c=0;c<b.length;c++)b[c].cells.length>d&&
-b[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(a){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var c;c=b.firstChild;)lastNode=a.appendChild(c);d.insertNode(a)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,d){d=null!=d?d:a;var b=document.createElement("a");
-b.setAttribute("href",this.getAbsoluteUrl(a));b.setAttribute("title",a);null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);40<d.length&&(d=d.substring(0,26)+"..."+d.substring(d.length-10));mxUtils.write(b,d);return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,d){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(d){d=a.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var b=this.getCellAt(d.graphX,d.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,d.graphX,d.graphY)||(d.state=this.view.getState(b),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,b=!1,c=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,
-g,e){a==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),d=this.isCellSelected(g.getCell()),b=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||d&&
-this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var d=[],b=0,c=a.rangeCount;b<c;++b)d.push(a.getRangeAt(b));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,b=a.length;d<b;++d)sel.addRange(a[d])}else document.selection&&a.select&&a.select()}catch(S){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));k.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,d){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?m.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var l=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,d){l.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=
-b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),c=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=c&&c.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function d(a,b){b.originalNode=a;a=a.firstChild;for(var c=b.firstChild;null!=a&&null!=c;)d(a,c),a=a.nextSibling,c=c.nextSibling;return b}function b(a,d){if(null!=a)if(d.originalNode!=a)c(a);else for(a=a.firstChild,d=d.firstChild;null!=a;){var f=a.nextSibling;null==d?c(a):(b(a,d),d=d.nextSibling);a=f}}function c(a){for(var d=
-a.firstChild;null!=d;){var b=d.nextSibling;c(d);d=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,c)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),d=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-g?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()};var t=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,d){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var c=null!=a.text?a.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*
-b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",t.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,d){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,d);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=
-function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(a.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var d=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();d.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(J){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,d){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==d&&b==mxConstants.NONE&&c==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var d=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(a){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*d+20,30)};var g=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,d,b,c,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,c=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/c-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/c-b.y);this.hint.innerHTML=d+", "+b;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,d){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(d.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,d){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(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),d=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,a.x=this.sizers[0].bounds.width+d,a.y=this.sizers[0].bounds.height+d):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(d){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(d=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/d)+" x "+this.roundLength(this.bounds.height/d)),d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==d&&(d=this.bounds),this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=d.y+d.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(d,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var c=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(b.x/f-c.x),c=this.roundLength(b.y/f-c.y);this.hint.innerHTML=g+", "+c;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(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+return a};Graph.prototype.getSvg=function(a,d,b,c,f,g,e,h){d=null!=d?d:1;b=null!=b?b:0;f=null!=f?f:!0;g=null!=g?g:!0;e=null!=e?e:!0;c=g||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var p=this.view.scale,m=mxUtils.createXmlDocument(),u=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=u.style?u.style.backgroundColor=a:u.setAttribute("style","background-color:"+
+a));null==m.createElementNS?(u.setAttribute("xmlns",mxConstants.NS_SVG),u.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):u.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=d/p;u.setAttribute("width",Math.max(1,Math.ceil(c.width*a)+2*b)+"px");u.setAttribute("height",Math.max(1,Math.ceil(c.height*a)+2*b)+"px");u.setAttribute("version","1.1");var r=u;f&&(r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),r.setAttribute("transform",
+"translate(0.5,0.5)"),u.appendChild(r));m.appendChild(u);m=this.createSvgCanvas(r);m.foOffset=f?-.5:0;m.textOffset=f?-.5:0;m.imageOffset=f?-.5:0;m.translate(Math.floor((b/d-c.x)/p),Math.floor((b/d-c.y)/p));var v=document.createElement("textarea"),k=m.createAlternateContent;m.createAlternateContent=function(a,d,b,c,f,g,e,h,m,p,u,r,q){var x=this.state;if(null!=this.foAltText&&(0==c||0!=x.fontSize&&g.length<5*c/x.fontSize)){var w=this.createElement("text");w.setAttribute("x",Math.round(c/2));w.setAttribute("y",
+Math.round((f+x.fontSize)/2));w.setAttribute("fill",x.fontColor||"black");w.setAttribute("text-anchor","middle");w.setAttribute("font-size",Math.round(x.fontSize)+"px");w.setAttribute("font-family",x.fontFamily);(x.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&w.setAttribute("font-weight","bold");(x.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&w.setAttribute("font-style","italic");(x.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&w.setAttribute("text-decoration",
+"underline");try{return v.innerHTML=g,w.textContent=v.value,w}catch(Ba){return k.apply(this,arguments)}}else return k.apply(this,arguments)};b=this.backgroundImage;null!=b&&(f=p/d,d=this.view.translate,f=new mxRectangle(d.x*f,d.y*f,b.width*f,b.height*f),mxUtils.intersects(c,f)&&m.image(d.x,d.y,b.width,b.height,b.src,!0));m.scale(a);m.textEnabled=e;h=null!=h?h:this.createSvgImageExport();var q=h.drawCellState;h.drawCellState=function(a,d){(g||a.view.graph.isCellSelected(a.cell))&&q.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),m);return u};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(a=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,d,b){for(;null!=a&&a.nodeName!=d;){if(a==b)return null;
+a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var b=document.createRange();b.selectNode(a);d.removeAllRanges();d.addRange(b)}}else(d=document.selection)&&"Control"!=d.type&&(a=d.createRange(),a.collapse(!0),b=d.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,d){for(var b=a.tBodies[0],c=0<b.rows.length?b.rows[0].cells.length:1,b=b.insertRow(d),
+f=0;f<c;f++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,d){a.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(a,d){var b=a.tHead;if(null!=b)for(var c=0;c<b.rows.length;c++){var f=document.createElement("th");b.rows[c].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(c=0;c<b.rows.length;c++)f=b.rows[c].insertCell(d),mxUtils.br(f);return b.rows[0].cells[0<=d?d:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,d){if(0<=d)for(var b=
+a.tBodies[0].rows,c=0;c<b.length;c++)b[c].cells.length>d&&b[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(a){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var c;c=b.firstChild;)lastNode=a.appendChild(c);d.insertNode(a)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=
+function(a,d){d=null!=d?d:a;var b=document.createElement("a");b.setAttribute("href",this.getAbsoluteUrl(a));b.setAttribute("title",a);null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);40<d.length&&(d=d.substring(0,26)+"..."+d.substring(d.length-10));mxUtils.write(b,d);return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,d){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(d){d=a.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var b=this.getCellAt(d.graphX,d.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,d.graphX,d.graphY)||(d.state=this.view.getState(b),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,b=!1,c=!1,f=
+this.fireMouseEvent;this.fireMouseEvent=function(a,g,e){a==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),d=this.isCellSelected(g.getCell()),b=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!mxEvent.isMouseEvent(f.getEvent())&&
+(b&&null==f.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var d=[],b=0,c=a.rangeCount;b<c;++b)d.push(a.getRangeAt(b));return d}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,b=a.length;d<b;++d)sel.addRange(a[d])}else document.selection&&a.select&&a.select()}catch(J){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));k.apply(this,arguments)};var l=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,d){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?l.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var n=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,d){n.apply(this,
+arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),c=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=c&&c.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function d(a,b){b.originalNode=a;a=a.firstChild;for(var c=b.firstChild;null!=a&&null!=c;)d(a,c),a=a.nextSibling,c=c.nextSibling;return b}function b(a,d){if(null!=a)if(d.originalNode!=a)c(a);else for(a=a.firstChild,d=d.firstChild;null!=a;){var f=
+a.nextSibling;null==d?c(a):(b(a,d),d=d.nextSibling);a=f}}function c(a){for(var d=a.firstChild;null!=d;){var b=d.nextSibling;c(d);d=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,c)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),d=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=g?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=b;this.resize()};var t=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,d){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var c=null!=a.text?a.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-
+this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",t.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,d){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,d);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};
+mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(a.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var d=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();d.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(G){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,d){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==d&&b==mxConstants.NONE&&c==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var d=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=
+function(a){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*d+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,d,b,c,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,c=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/
+c-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/c-b.y);this.hint.innerHTML=d+", "+b;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,d){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(d.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,d){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(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};
+var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),d=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,a.x=this.sizers[0].bounds.width+d,a.y=this.sizers[0].bounds.height+d):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(d){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(d=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/d)+" x "+this.roundLength(this.bounds.height/d)),d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==d&&(d=this.bounds),this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=d.y+d.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(d,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var c=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(b.x/f-c.x),c=this.roundLength(b.y/f-c.y);this.hint.innerHTML=g+", "+c;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(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxVertexHandler.prototype.rotationHandleVSpacing=
-20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};
if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return null==
-a.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==a.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var n=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,d){n.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return mxEvent.isLeftMouseButton(d)&&
+a.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==a.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var m=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,d){m.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return mxEvent.isLeftMouseButton(d)&&
(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,d){var b=null!=this.div&&"none"!=this.div.style.display,c=null,f=null,g=null,e=null;null!=this.first&&
null!=this.currentX&&null!=this.currentY&&(c=this.first.x,f=this.first.y,g=(this.currentX-c)/this.graph.view.scale,e=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),e=this.graph.snap(e),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(e)<this.graph.tolerance&&(e=0))));this.reset();if(b){if(mxEvent.isAltDown(d.getEvent())&&this.graph.isToggleEvent(d.getEvent())){var g=new mxRectangle(this.x,this.y,this.width,this.height),h=
-this.graph.getCells(g.x,g.y,g.width,g.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(c,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var n=this.graph.view.getState(h[b]),p=this.graph.getCellGeometry(h[b]);null!=n&&null!=p&&(p=p.clone(),p.translate(g,e),this.graph.model.setGeometry(h[b],p))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,
+this.graph.getCells(g.x,g.y,g.width,g.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(c,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var m=this.graph.view.getState(h[b]),p=this.graph.getCellGeometry(h[b]);null!=m&&null!=p&&(p=p.clone(),p.translate(g,e),this.graph.model.setGeometry(h[b],p))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,
this.width,this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}};mxRubberband.prototype.mouseMove=function(a,d){if(!d.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);b.x-=c.x;b.y-=c.y;var c=d.getX()+b.x,b=d.getY()+b.y,f=this.first.x-c,g=this.first.y-b,e=this.graph.tolerance;if(null!=this.div||Math.abs(f)>e||Math.abs(g)>e)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,b),
this.isSpaceEvent(d)?(c=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,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=c-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=
this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=
Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var h=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);h.apply(this,
-arguments)};var w=(new Date).getTime(),u=0,x=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,d,b,c){x.apply(this,arguments);b!=this.currentTerminalState?(w=(new Date).getTime(),u=0):u=(new Date).getTime()-w;this.currentTerminalState=b};var r=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<u||(null==this.currentTerminalState||
+arguments)};var w=(new Date).getTime(),u=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,d,b,c){v.apply(this,arguments);b!=this.currentTerminalState?(w=(new Date).getTime(),u=0):u=(new Date).getTime()-w;this.currentTerminalState=b};var r=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<u||(null==this.currentTerminalState||
"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&r.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,d){var b=null!=a&&0==a,c=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,c,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),
-f):null)?this.fixedHandleImage:null!=f&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,d,b){this.handleImage=d==mxEvent.ROTATION_HANDLE?
-HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var v=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var d=this.graph.getModel(),b=d.getParent(a[0]),c=this.graph.getCellGeometry(a[0]);if(d.isEdge(b)&&null!=c&&c.relative&&(d=this.graph.view.getState(a[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return v.apply(this,
-arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var d=this.graph.getModel(),b=d.getParent(a.cell),c=this.graph.getCellGeometry(a.cell);return d.isEdge(b)&&null!=c&&c.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(d=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):A.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;
-mxVertexHandler.prototype.mouseDown=function(a,d){var b=this.graph.getModel(),c=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!b.isEdge(c)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
-this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var B=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,d){B.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var G=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
-function(a,d){G.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var d=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
+f):null)?this.fixedHandleImage:null!=f&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var A=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,d,b){this.handleImage=d==mxEvent.ROTATION_HANDLE?
+HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return A.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var d=this.graph.getModel(),b=d.getParent(a[0]),c=this.graph.getCellGeometry(a[0]);if(d.isEdge(b)&&null!=c&&c.relative&&(d=this.graph.view.getState(a[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return C.apply(this,
+arguments)};var y=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var d=this.graph.getModel(),b=d.getParent(a.cell),c=this.graph.getCellGeometry(a.cell);return d.isEdge(b)&&null!=c&&c.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(d=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):y.apply(this,arguments)};var z=mxVertexHandler.prototype.mouseDown;
+mxVertexHandler.prototype.mouseDown=function(a,d){var b=this.graph.getModel(),c=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!b.isEdge(c)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&z.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
+this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var B=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,d){B.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var F=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
+function(a,d){F.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var H=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){H.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var d=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,b){d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,d){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);this.updateLinkHint(b,c);if(null!=b||null!=c&&0<c.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,b){if(null==d&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=
this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=d||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));this.linkHint.innerHTML="";if(null!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var c=
document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/edit.gif");c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));c=document.createElement("img");c.setAttribute("src",Dialog.prototype.clearImage);
c.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));c.setAttribute("width","13");c.setAttribute("height","10");c.style.marginLeft="4px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(c=0;c<b.length;c++){var f=document.createElement("div");f.style.marginTop=null!=d||0<c?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[c].getAttribute("href"),
-mxUtils.getTextContent(b[c])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var H=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){H.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=
+mxUtils.getTextContent(b[c])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var L=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){L.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=
this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(d,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(d,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,
-this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=d||null!=b&&0<b.length)this.updateLinkHint(d,b),this.redrawHandles()};var y=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){y.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this);
+this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=d||null!=b&&0<b.length)this.updateLinkHint(d,b),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this);
if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=d&&(b=Math.max(b,
-d.y+d.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var E=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var I=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
-function(){I.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(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+6+this.state.view.graph.tolerance)+"px"}};var R=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=
-function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var P=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){P.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),
-this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function m(){mxActor.call(this)}function l(){mxCylinder.call(this)}function q(){mxActor.call(this)}function t(){mxActor.call(this)}function d(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function h(a,d){this.canvas=
+d.y+d.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var E=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var Q=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
+function(){Q.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var X=mxEdgeHandler.prototype.redrawHandles;
+mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(X.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+6+this.state.view.graph.tolerance)+"px"}};var R=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=
+function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var Z=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){Z.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),
+this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function n(){mxCylinder.call(this)}function q(){mxActor.call(this)}function t(){mxActor.call(this)}function d(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function p(){mxActor.call(this)}function m(){mxActor.call(this)}function h(a,d){this.canvas=
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,h.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,h.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,h.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,h.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function w(){mxRectangleShape.call(this)}function u(){mxRectangleShape.call(this)}function x(){mxActor.call(this)}function r(){mxActor.call(this)}function z(){mxActor.call(this)}function v(){mxRectangleShape.call(this)}function A(){mxRectangleShape.call(this)}function F(){mxCylinder.call(this)}function B(){mxShape.call(this)}function G(){mxShape.call(this)}
-function C(){mxEllipse.call(this)}function H(){mxShape.call(this)}function y(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function E(){mxShape.call(this)}function I(){mxShape.call(this)}function Y(){mxShape.call(this)}function R(){mxCylinder.call(this)}function P(){mxDoubleEllipse.call(this)}function J(){mxDoubleEllipse.call(this)}function K(){mxArrowConnector.call(this);this.spacing=0}function M(){mxArrowConnector.call(this);this.spacing=0}function S(){mxActor.call(this)}function D(){mxRectangleShape.call(this)}
-function W(){mxActor.call(this)}function Q(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function T(){mxActor.call(this)}function O(){mxActor.call(this)}function ca(){mxActor.call(this)}function V(){mxActor.call(this)}function Z(){mxActor.call(this)}function aa(){mxActor.call(this)}function ja(){mxEllipse.call(this)}function da(){mxEllipse.call(this)}function ma(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function ka(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}
-function qa(){mxEllipse.call(this)}function na(){mxEllipse.call(this)}function ta(){mxActor.call(this)}function oa(){mxActor.call(this)}function pa(){mxActor.call(this)}function la(){mxConnector.call(this)}function Aa(a,d,b,c,f,g,e,h,p,n){e+=p;var ha=c.clone();c.x-=f*(2*e+p);c.y-=g*(2*e+p);f*=e+p;g*=e+p;return function(){a.ellipse(ha.x-f-e,ha.y-g-e,2*e,2*e);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,
+this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function w(){mxRectangleShape.call(this)}function u(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function r(){mxActor.call(this)}function A(){mxActor.call(this)}function C(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxCylinder.call(this)}function B(){mxShape.call(this)}function F(){mxShape.call(this)}
+function H(){mxEllipse.call(this)}function L(){mxShape.call(this)}function x(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function E(){mxShape.call(this)}function Q(){mxShape.call(this)}function X(){mxShape.call(this)}function R(){mxCylinder.call(this)}function Z(){mxDoubleEllipse.call(this)}function G(){mxDoubleEllipse.call(this)}function K(){mxArrowConnector.call(this);this.spacing=0}function S(){mxArrowConnector.call(this);this.spacing=0}function J(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}
+function U(){mxActor.call(this)}function D(){mxActor.call(this)}function W(){mxActor.call(this)}function O(){mxActor.call(this)}function T(){mxActor.call(this)}function V(){mxActor.call(this)}function Y(){mxActor.call(this)}function M(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function aa(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function ha(){mxRhombus.call(this)}function ra(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
+function ma(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function pa(){mxActor.call(this)}function ia(){mxActor.call(this)}function qa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Aa(a,d,b,c,f,g,e,h,p,m){e+=p;var ja=c.clone();c.x-=f*(2*e+p);c.y-=g*(2*e+p);f*=e+p;g*=e+p;return function(){a.ellipse(ja.x-f-e,ja.y-g-e,2*e,2*e);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,
Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(d,f),a.lineTo(d,d),a.lineTo(0,0),a.moveTo(d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(d,f),a.lineTo(0,f-d),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var xa=Math.tan(mxUtils.toRadians(30)),ga=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/xa);a.translate((c-d)/2,(f-d)/2+d/4);a.moveTo(0,.25*d);a.lineTo(.5*d,d*ga);a.lineTo(d,.25*d);a.lineTo(.5*d,(.5-ga)*d);a.lineTo(0,.25*d);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=20;e.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(c,f/(.5+xa));g?(a.moveTo(0,.25*d),a.lineTo(.5*
-d,(.5-ga)*d),a.lineTo(d,.25*d),a.moveTo(.5*d,(.5-ga)*d),a.lineTo(.5*d,(1-ga)*d)):(a.translate((c-d)/2,(f-d)/2),a.moveTo(0,.25*d),a.lineTo(.5*d,d*ga),a.lineTo(d,.25*d),a.lineTo(d,.75*d),a.lineTo(.5*d,(1-ga)*d),a.lineTo(0,.75*d),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(c,mxCylinder);c.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||
+a);var xa=Math.tan(mxUtils.toRadians(30)),oa=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/xa);a.translate((c-d)/2,(f-d)/2+d/4);a.moveTo(0,.25*d);a.lineTo(.5*d,d*oa);a.lineTo(d,.25*d);a.lineTo(.5*d,(.5-oa)*d);a.lineTo(0,.25*d);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=20;e.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(c,f/(.5+xa));g?(a.moveTo(0,.25*d),a.lineTo(.5*
+d,(.5-oa)*d),a.lineTo(d,.25*d),a.moveTo(.5*d,(.5-oa)*d),a.lineTo(.5*d,(1-oa)*d)):(a.translate((c-d)/2,(f-d)/2),a.moveTo(0,.25*d),a.lineTo(.5*d,d*oa),a.lineTo(d,.25*d),a.lineTo(d,.75*d),a.lineTo(.5*d,(1-oa)*d),a.lineTo(0,.75*d),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(c,mxCylinder);c.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||
(a.stroke(),a.begin()),a.translate(0,d/2),a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||(a.stroke(),a.begin()),a.translate(0,d/2),a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||(a.stroke(),a.begin()),a.translate(0,-d);g||(a.moveTo(0,d),a.curveTo(0,-d/3,c,-d/3,c,d),a.lineTo(c,f-d),a.curveTo(c,f+d/3,0,f+d/3,0,f-d),a.close())};c.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
-c);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(c-d,0),a.lineTo(c-d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c/2,.5*f,c,0);a.quadTo(.5*
-c,f/2,c,f);a.quadTo(c/2,.5*f,0,f);a.quadTo(.5*c,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(l,mxCylinder);l.prototype.tabWidth=60;l.prototype.tabHeight=20;l.prototype.tabPosition="right";l.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var e=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
-g?"left"==e?(a.moveTo(0,b),a.lineTo(d,b)):(a.moveTo(c-d,b),a.lineTo(c,b)):("left"==e?(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,b),a.lineTo(c,b)):(a.moveTo(0,b),a.lineTo(c-d,b),a.lineTo(c-d,0),a.lineTo(c,0)),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",l);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,
+c);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(c-d,0),a.lineTo(c-d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c/2,.5*f,c,0);a.quadTo(.5*
+c,f/2,c,f);a.quadTo(c/2,.5*f,0,f);a.quadTo(.5*c,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=20;n.prototype.tabPosition="right";n.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var e=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
+g?"left"==e?(a.moveTo(0,b),a.lineTo(d,b)):(a.moveTo(c-d,b),a.lineTo(c,b)):("left"==e?(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,b),a.lineTo(c,b)):(a.moveTo(0,b),a.lineTo(c-d,b),a.lineTo(c-d,0),a.lineTo(c,0)),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",n);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(t,mxActor);t.prototype.size=.4;t.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,d/2);a.quadTo(c/4,1.4*d,c/2,d/2);a.quadTo(3*c/4,d*(1-1.4),c,d/2);a.lineTo(c,f-d/2);a.quadTo(3*
c/4,f-1.4*d,c/2,f-d/2);a.quadTo(c/4,f-d*(1-1.4),0,f-d/2);a.lineTo(0,d/2);a.close();a.end()};t.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),b=a.width,c=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(a.x,a.y+d,b,c-2*d);d*=b;return new mxRectangle(a.x+d,a.y,b-2*d,c)}return a};mxCellRenderer.registerShape("tape",
t);mxUtils.extend(d,mxActor);d.prototype.size=.3;d.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};d.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(c,0);a.lineTo(c,f-d/2);a.quadTo(3*c/4,f-1.4*d,c/2,f-d/2);a.quadTo(c/4,f-d*(1-1.4),0,f-d/2);a.lineTo(0,d/2);a.close();
a.end()};mxCellRenderer.registerShape("document",d);mxCylinder.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,Math.min(this.maxHeight*this.scale,.3*a.height),0,0):null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
[new mxPoint(0,f),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,f)],this.isRounded,
b,!0)};mxCellRenderer.registerShape("trapezoid",g);mxUtils.extend(p,mxActor);p.prototype.size=.5;p.prototype.redrawPath=function(a,d,b,c,f){a.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f/2),new mxPoint(0,f/2),new mxPoint(d,f/2),new mxPoint(d,f),new mxPoint(c,f)],this.isRounded,b,!1);a.end()};
-mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(n,mxActor);n.prototype.redrawPath=function(a,d,b,c,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);d=c/5;a.rect(0,0,d,f);a.fillAndStroke();a.rect(2*d,0,d,f);a.fillAndStroke();a.rect(4*d,0,d,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",n);h.prototype.moveTo=function(a,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;this.firstX=a;this.firstY=d};h.prototype.close=function(){null!=this.firstX&&
+mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,d,b,c,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);d=c/5;a.rect(0,0,d,f);a.fillAndStroke();a.rect(2*d,0,d,f);a.fillAndStroke();a.rect(4*d,0,d,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",m);h.prototype.moveTo=function(a,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;this.firstX=a;this.firstY=d};h.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};h.prototype.quadTo=function(a,d,b,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=c};h.prototype.curveTo=function(a,d,b,c,f,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};h.prototype.arcTo=function(a,d,b,c,f,g,e){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=
-e};h.prototype.lineTo=function(a,d){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),g=Math.sqrt(c*c+f*f);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var e=Math.round(g/10),ha=this.defaultVariation;5>e&&(e=5,ha/=3);for(var h=b(a-this.lastX)*c/e,b=b(d-this.lastY)*f/e,c=c/g,f=f/g,g=0;g<e;g++){var p=(Math.random()-.5)*ha;this.originalLineTo.call(this.canvas,
-h*g+this.lastX-p*f,b*g+this.lastY-p*c)}this.originalLineTo.call(this.canvas,a,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d};h.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};var Ea=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ea.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Fa=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Fa.apply(this,arguments)};
+e};h.prototype.lineTo=function(a,d){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),g=Math.sqrt(c*c+f*f);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var e=Math.round(g/10),ja=this.defaultVariation;5>e&&(e=5,ja/=3);for(var h=b(a-this.lastX)*c/e,b=b(d-this.lastY)*f/e,c=c/g,f=f/g,g=0;g<e;g++){var p=(Math.random()-.5)*ja;this.originalLineTo.call(this.canvas,
+h*g+this.lastX-p*f,b*g+this.lastY-p*c)}this.originalLineTo.call(this.canvas,a,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d};h.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};var Ba=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ba.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Fa=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Fa.apply(this,arguments)};
var Ga=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,d,b,c,f){if(null==a.handJiggle)Ga.apply(this,arguments);else{var g=!0;null!=this.style&&(g="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(g||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)g||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
0)?g=Math.min(c/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.min(c*g,f*g)),a.moveTo(d+g,b),a.lineTo(d+c-g,b),a.quadTo(d+c,b,d+c,b+g),a.lineTo(d+c,b+f-g),a.quadTo(d+c,b+f,d+c-g,b+f),a.lineTo(d+g,b+f),a.quadTo(d,b+f,d,b+f-g),a.lineTo(d,b+g),a.quadTo(d,b,d+g,b)):(a.moveTo(d,b),a.lineTo(d+c,b),a.lineTo(d+c,b+f),a.lineTo(d,b+f),a.lineTo(d,
b)),a.close(),a.end(),a.fillAndStroke()}};var Ha=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,d,b,c,f){null==a.handJiggle&&Ha.apply(this,arguments)};mxUtils.extend(w,mxRectangleShape);w.prototype.size=.1;w.prototype.isHtmlAllowed=function(){return!1};w.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 d=
a.width,b=a.height;a=new mxRectangle(a.x,a.y,d,b);var c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.max(c,Math.min(d*f,b*f));a.x+=Math.round(c);a.width-=Math.round(2*c)}return a};w.prototype.paintForeground=function(a,d,b,c,f){var g=c*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,g=Math.max(g,Math.min(c*e,f*e));g=Math.round(g);a.begin();a.moveTo(d+g,b);a.lineTo(d+g,b+f);a.moveTo(d+c-g,b);a.lineTo(d+c-g,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",w);mxUtils.extend(u,mxRectangleShape);u.prototype.paintBackground=function(a,d,b,c,f){a.setFillColor(mxConstants.NONE);a.rect(d,b,c,f);a.fill()};u.prototype.paintForeground=
-function(a,d,b,c,f){};mxCellRenderer.registerShape("transparent",u);mxUtils.extend(x,mxHexagon);x.prototype.size=30;x.prototype.position=.5;x.prototype.position2=.5;x.prototype.base=20;x.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};x.prototype.redrawPath=function(a,d,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+function(a,d,b,c,f){};mxCellRenderer.registerShape("transparent",u);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.redrawPath=function(a,d,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));var g=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),e=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-b),new mxPoint(Math.min(c,g+h),f-b),new mxPoint(e,f),new mxPoint(Math.max(0,g),f-b),new mxPoint(0,f-b)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",
-x);mxUtils.extend(r,mxActor);r.prototype.size=.2;r.prototype.fixedSize=20;r.prototype.redrawPath=function(a,d,b,c,f){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=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-
-d,f),new mxPoint(0,f),new mxPoint(d,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",r);mxUtils.extend(z,mxHexagon);z.prototype.size=.25;z.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*f),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(0,.5*f)],
-this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",z);mxUtils.extend(v,mxRectangleShape);v.prototype.isHtmlAllowed=function(){return!1};v.prototype.paintForeground=function(a,d,b,c,f){var g=Math.min(c/5,f/5)+1;a.begin();a.moveTo(d+c/2,b+g);a.lineTo(d+c/2,b+f-g);a.moveTo(d+g,b+f/2);a.lineTo(d+c-g,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",v);var Ba=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=
-function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};mxRhombus.prototype.paintVertexShape=function(a,d,b,c,f){Ba.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&(a.setShadow(!1),Ba.apply(this,[a,d,
-b,c,f]))}};mxUtils.extend(A,mxRectangleShape);A.prototype.isHtmlAllowed=function(){return!1};A.prototype.getLabelBounds=function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};A.prototype.paintForeground=function(a,d,b,c,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,e;do{e=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=e){var h=this.style["symbol"+g+"Align"],ha=this.style["symbol"+g+"VerticalAlign"],p=this.style["symbol"+g+"Width"],n=this.style["symbol"+g+"Height"],r=this.style["symbol"+g+"Spacing"]||0,u=this.style["symbol"+g+"VSpacing"]||r,x=this.style["symbol"+g+"ArcSpacing"];null!=x&&(x*=this.getArcSize(c+this.strokewidth,
-f+this.strokewidth),r+=x,u+=x);var x=d,k=b,x=h==mxConstants.ALIGN_CENTER?x+(c-p)/2:h==mxConstants.ALIGN_RIGHT?x+(c-p-r):x+r,k=ha==mxConstants.ALIGN_MIDDLE?k+(f-n)/2:ha==mxConstants.ALIGN_BOTTOM?k+(f-n-u):k+u;a.save();h=new e;h.style=this.style;e.prototype.paintVertexShape.call(h,a,x,k,p,n);a.restore()}g++}while(null!=e)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",A);mxUtils.extend(F,mxCylinder);F.prototype.redrawPath=function(a,d,b,c,f,g){g?
-(a.moveTo(0,0),a.lineTo(c/2,f/2),a.lineTo(c,0),a.end()):(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",F);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.ellipse(c/4,0,c/2,f/4);a.fillAndStroke();a.begin();a.moveTo(c/2,f/4);a.lineTo(c/2,2*f/3);a.moveTo(c/2,f/3);a.lineTo(0,f/3);a.moveTo(c/2,f/3);a.lineTo(c,f/3);a.moveTo(c/2,2*f/3);a.lineTo(0,f);a.moveTo(c/2,2*f/3);a.lineTo(c,f);a.end();a.stroke()};
-mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(G,mxShape);G.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};G.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(c/6,f/2);a.end();a.stroke();a.ellipse(c/6,0,5*c/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",G);mxUtils.extend(C,mxEllipse);C.prototype.paintVertexShape=function(a,d,
-b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/8,b+f);a.lineTo(d+7*c/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",C);mxUtils.extend(H,mxShape);H.prototype.paintVertexShape=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(c,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(c,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",H);mxUtils.extend(y,mxShape);y.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
-a.height/8,a.width,7*a.height/8)};y.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,0);a.end();a.stroke();a.ellipse(0,f/8,c,7*f/8);a.fillAndStroke()};y.prototype.paintForeground=function(a,d,b,c,f){a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",y);mxUtils.extend(L,mxRectangleShape);L.prototype.size=40;L.prototype.isHtmlAllowed=function(){return!1};L.prototype.getLabelBounds=
-function(a){var d=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,d)};L.prototype.paintBackground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"participant");null==e||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,d,b,c,g):(e=this.state.view.graph.cellRenderer.getShape(e),null!=e&&e!=L&&(e=new e,
-e.apply(this.state),a.save(),e.paintVertexShape(a,d,b,c,g),a.restore()));g<f&&(a.setDashed(!0),a.begin(),a.moveTo(d+c/2,b+g),a.lineTo(d+c/2,b+f),a.end(),a.stroke())};L.prototype.paintForeground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,d,b,c,Math.min(f,g))};mxCellRenderer.registerShape("umlLifeline",L);mxUtils.extend(E,mxShape);E.prototype.width=60;E.prototype.height=30;E.prototype.corner=
+v);mxUtils.extend(r,mxActor);r.prototype.size=.2;r.prototype.fixedSize=20;r.prototype.redrawPath=function(a,d,b,c,f){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=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-
+d,f),new mxPoint(0,f),new mxPoint(d,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",r);mxUtils.extend(A,mxHexagon);A.prototype.size=.25;A.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*f),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(0,.5*f)],
+this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",A);mxUtils.extend(C,mxRectangleShape);C.prototype.isHtmlAllowed=function(){return!1};C.prototype.paintForeground=function(a,d,b,c,f){var g=Math.min(c/5,f/5)+1;a.begin();a.moveTo(d+c/2,b+g);a.lineTo(d+c/2,b+f-g);a.moveTo(d+g,b+f/2);a.lineTo(d+c-g,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",C);var Ca=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=
+function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};mxRhombus.prototype.paintVertexShape=function(a,d,b,c,f){Ca.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&(a.setShadow(!1),Ca.apply(this,[a,d,
+b,c,f]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};y.prototype.paintForeground=function(a,d,b,c,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,e;do{e=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=e){var h=this.style["symbol"+g+"Align"],ja=this.style["symbol"+g+"VerticalAlign"],p=this.style["symbol"+g+"Width"],m=this.style["symbol"+g+"Height"],u=this.style["symbol"+g+"Spacing"]||0,r=this.style["symbol"+g+"VSpacing"]||u,v=this.style["symbol"+g+"ArcSpacing"];null!=v&&(v*=this.getArcSize(c+this.strokewidth,
+f+this.strokewidth),u+=v,r+=v);var v=d,k=b,v=h==mxConstants.ALIGN_CENTER?v+(c-p)/2:h==mxConstants.ALIGN_RIGHT?v+(c-p-u):v+u,k=ja==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:ja==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new e;h.style=this.style;e.prototype.paintVertexShape.call(h,a,v,k,p,m);a.restore()}g++}while(null!=e)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",y);mxUtils.extend(z,mxCylinder);z.prototype.redrawPath=function(a,d,b,c,f,g){g?
+(a.moveTo(0,0),a.lineTo(c/2,f/2),a.lineTo(c,0),a.end()):(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",z);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.ellipse(c/4,0,c/2,f/4);a.fillAndStroke();a.begin();a.moveTo(c/2,f/4);a.lineTo(c/2,2*f/3);a.moveTo(c/2,f/3);a.lineTo(0,f/3);a.moveTo(c/2,f/3);a.lineTo(c,f/3);a.moveTo(c/2,2*f/3);a.lineTo(0,f);a.moveTo(c/2,2*f/3);a.lineTo(c,f);a.end();a.stroke()};
+mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};F.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(c/6,f/2);a.end();a.stroke();a.ellipse(c/6,0,5*c/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(H,mxEllipse);H.prototype.paintVertexShape=function(a,d,
+b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/8,b+f);a.lineTo(d+7*c/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",H);mxUtils.extend(L,mxShape);L.prototype.paintVertexShape=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(c,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(c,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",L);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,0);a.end();a.stroke();a.ellipse(0,f/8,c,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,d,b,c,f){a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(I,mxRectangleShape);I.prototype.size=40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=
+function(a){var d=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,d)};I.prototype.paintBackground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"participant");null==e||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,d,b,c,g):(e=this.state.view.graph.cellRenderer.getShape(e),null!=e&&e!=I&&(e=new e,
+e.apply(this.state),a.save(),e.paintVertexShape(a,d,b,c,g),a.restore()));g<f&&(a.setDashed(!0),a.begin(),a.moveTo(d+c/2,b+g),a.lineTo(d+c/2,b+f),a.end(),a.stroke())};I.prototype.paintForeground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,d,b,c,Math.min(f,g))};mxCellRenderer.registerShape("umlLifeline",I);mxUtils.extend(E,mxShape);E.prototype.width=60;E.prototype.height=30;E.prototype.corner=
10;E.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};E.prototype.paintBackground=function(a,d,b,c,f){var g=this.corner,e=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5*g,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),p=mxUtils.getValue(this.style,
mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);p!=mxConstants.NONE&&(a.setFillColor(p),a.rect(d,b,c,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,d,b,c,f),a.setGradient(this.fill,this.gradient,d,b,c,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(d,b);a.lineTo(d+e,b);a.lineTo(d+e,b+Math.max(0,h-1.5*g));a.lineTo(d+Math.max(0,e-g),b+h);a.lineTo(d,b+h);a.close();a.fillAndStroke();a.begin();
-a.moveTo(d+e,b);a.lineTo(d+c,b);a.lineTo(d+c,b+f);a.lineTo(d,b+f);a.lineTo(d,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",E);mxPerimeter.LifelinePerimeter=function(a,d,b,c){c=L.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;b.x<a.getCenterX()&&(d=-1*(d+1));return new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y+c,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);
+a.moveTo(d+e,b);a.lineTo(d+c,b);a.lineTo(d+c,b+f);a.lineTo(d,b+f);a.lineTo(d,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",E);mxPerimeter.LifelinePerimeter=function(a,d,b,c){c=I.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;b.x<a.getCenterX()&&(d=-1*(d+1));return new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y+c,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);
mxPerimeter.OrthogonalPerimeter=function(a,d,b,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,d,b,c){c=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(c+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return b.x<
-a.getCenterX()&&(c=-1*(c+1)),new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,d,b,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(d.style,"size",x.prototype.size))*
-d.view.scale))),d.style),d,b,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,d,b,c){var g=f.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(g=n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+
-p,h+g),new mxPoint(e+p,h+n),new mxPoint(e,h+n-g),new mxPoint(e,h)]):(g=p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+g,h),new mxPoint(e+p,h),new mxPoint(e+p-g,h+n),new mxPoint(e,h+n),new mxPoint(e+g,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f=
-mxUtils.getValue(d.style,"size",f));var e=a.x,h=a.y,p=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+p-f,h),new mxPoint(e+p,h+n),new mxPoint(e,h+n),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_WEST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h),new mxPoint(e+p-f,h+n),new mxPoint(e+f,h+n),new mxPoint(e,
-h)]):d==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+n),new mxPoint(e,h+n-f),new mxPoint(e,h+f)]):(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h+f),new mxPoint(e+p,h+n-f),new mxPoint(e,h+n),new mxPoint(e,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);
-mxPerimeter.StepPerimeter=function(a,d,b,c){var f="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=f?r.prototype.fixedSize:r.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,n=a.height,u=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+p-
-f,h),new mxPoint(e+p,a),new mxPoint(e+p-f,h+n),new mxPoint(e,h+n),new mxPoint(e+f,a),new mxPoint(e,h)]):d==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+f,h),new mxPoint(e+p,h),new mxPoint(e+p-f,a),new mxPoint(e+p,h+n),new mxPoint(e+f,h+n),new mxPoint(e,a),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,g)):n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h+f),new mxPoint(u,h),new mxPoint(e+p,h+f),new mxPoint(e+p,
-h+n),new mxPoint(u,h+n-f),new mxPoint(e,h+n),new mxPoint(e,h+f)]):(f=f?Math.max(0,Math.min(n,g)):n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(u,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+n-f),new mxPoint(u,h+n),new mxPoint(e,h+n-f),new mxPoint(e,h)]);u=new mxPoint(u,a);c&&(b.x<e||b.x>e+p?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=z.prototype.size;null!=
-d&&(f=mxUtils.getValue(d.style,"size",f));var g=a.x,e=a.y,h=a.width,p=a.height,n=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=p*Math.max(0,Math.min(1,f)),e=[new mxPoint(n,e),new mxPoint(g+h,e+f),new mxPoint(g+h,e+p-f),new mxPoint(n,e+p),new mxPoint(g,e+p-f),new mxPoint(g,e+f),new mxPoint(n,e)]):(f=h*Math.max(0,Math.min(1,f)),e=[new mxPoint(g+
-f,e),new mxPoint(g+h-f,e),new mxPoint(g+h,a),new mxPoint(g+h-f,e+p),new mxPoint(g+f,e+p),new mxPoint(g,a),new mxPoint(g+f,e)]);n=new mxPoint(n,a);c&&(b.x<g||b.x>g+h?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(e,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(I,mxShape);I.prototype.size=10;I.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-g)/2,0,g,g);a.fillAndStroke();
-a.begin();a.moveTo(c/2,g);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",I);mxUtils.extend(Y,mxShape);Y.prototype.size=10;Y.prototype.inset=2;Y.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,g+e);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-g)/2-e,g/2);a.quadTo((c-g)/2-e,g+e,c/
-2,g+e);a.quadTo((c+g)/2+e,g+e,(c+g)/2+e,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",Y);mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,d,b,c,f,g){var e=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=e/2;var e=b+e/2,h=.3*f-d/2,p=.7*f-d/2;g?(a.moveTo(b,h),a.lineTo(e,h),a.lineTo(e,h+d),a.lineTo(b,h+d),a.moveTo(b,p),
-a.lineTo(e,p),a.lineTo(e,p+d),a.lineTo(b,p+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,p+d),a.lineTo(0,p+d),a.lineTo(0,p),a.lineTo(b,p),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",R);mxUtils.extend(P,mxDoubleEllipse);P.prototype.outerStroke=!0;P.prototype.paintVertexShape=function(a,d,b,c,f){var g=Math.min(4,Math.min(c/5,f/5));0<c&&0<f&&(a.ellipse(d+g,b+g,c-2*g,f-2*g),a.fillAndStroke());a.setShadow(!1);
-this.outerStroke&&(a.ellipse(d,b,c,f),a.stroke())};mxCellRenderer.registerShape("endState",P);mxUtils.extend(J,P);J.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",J);mxUtils.extend(K,mxArrowConnector);K.prototype.defaultWidth=4;K.prototype.isOpenEnded=function(){return!0};K.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};K.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-K);mxUtils.extend(M,mxArrowConnector);M.prototype.defaultWidth=10;M.prototype.defaultArrowWidth=20;M.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};M.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};M.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-M);mxUtils.extend(S,mxActor);S.prototype.size=30;S.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",S);mxUtils.extend(D,mxRectangleShape);D.prototype.dx=20;D.prototype.dy=20;D.prototype.isHtmlAllowed=
-function(){return!1};D.prototype.paintForeground=function(a,d,b,c,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*e,f*e));e=Math.max(g,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(d,b+g);a.lineTo(d+c,b+g);
-a.end();a.stroke();a.begin();a.moveTo(d+e,b);a.lineTo(d+e,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",D);mxUtils.extend(W,mxActor);W.prototype.dx=20;W.prototype.dy=20;W.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d,b),new mxPoint(d,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("corner",W);mxUtils.extend(Q,mxActor);Q.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(c,0);a.lineTo(c,f);a.end();a.moveTo(0,f/2);a.lineTo(c,f/2);a.end()};mxCellRenderer.registerShape("crossbar",Q);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
-20;X.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint((c+d)/2,b),new mxPoint((c+d)/2,f),new mxPoint((c-d)/2,f),new mxPoint((c-
-d)/2,b),new mxPoint(0,b)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("tee",X);mxUtils.extend(U,mxActor);U.prototype.arrowWidth=.3;U.prototype.arrowSize=.2;U.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("singleArrow",U);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.prototype.arrowSize))));
-b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(d,g),new mxPoint(d,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",T);mxUtils.extend(O,mxActor);O.prototype.size=.1;O.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.moveTo(d,0);a.lineTo(c,0);a.quadTo(c-2*d,f/2,c,f);a.lineTo(d,f);a.quadTo(d-2*d,f/2,d,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",O);mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ca);mxUtils.extend(V,mxActor);V.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.quadTo(c/2,f/2,0,0);a.close();
-a.end()};mxCellRenderer.registerShape("xor",V);mxUtils.extend(Z,mxActor);Z.prototype.size=20;Z.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,.8*d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-Z);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-d),new mxPoint(c/2,f),new mxPoint(0,f-d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(ja,mxEllipse);ja.prototype.paintVertexShape=
-function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/2,b+f);a.lineTo(d+c,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",ja);mxUtils.extend(da,mxEllipse);da.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke();a.begin();a.moveTo(d+c/2,b);a.lineTo(d+c/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",
-da);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d+.145*c,b+.145*f);a.lineTo(d+.855*c,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(d+.855*c,b+.145*f);a.lineTo(d+.145*c,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ma);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,d,b,c,f){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,d,b,c,f){a.begin();a.moveTo(d,b);a.lineTo(d+c,b);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(d,b+f);a.lineTo(d+c,b+f);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ka);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=
-function(a,d,b,c,f){var g=b+f-5;a.begin();a.moveTo(d,b);a.lineTo(d,b+f);a.moveTo(d,g);a.lineTo(d+10,g-5);a.moveTo(d,g);a.lineTo(d+10,g+5);a.moveTo(d,g);a.lineTo(d+c,g);a.moveTo(d+c,b);a.lineTo(d+c,b+f);a.moveTo(d+c,g);a.lineTo(d+c-10,g-5);a.moveTo(d+c,g);a.lineTo(d+c-10,g+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ba);mxUtils.extend(qa,mxEllipse);qa.prototype.paintVertexShape=function(a,d,b,c,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
-arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(d,b,c,f),a.fill(),a.begin(),a.moveTo(d,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(d+c,b):a.moveTo(d+c,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(d+c,b+f):a.moveTo(d+c,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(d,b+f):a.moveTo(d,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(d,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",qa);mxUtils.extend(na,
-mxEllipse);na.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(d+c/2,b),a.lineTo(d+c/2,b+f)):(a.moveTo(d,b+f/2),a.lineTo(d+c,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",na);mxUtils.extend(ta,mxActor);ta.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);a.moveTo(0,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(0,
-f);a.close();a.end()};mxCellRenderer.registerShape("delay",ta);mxUtils.extend(oa,mxActor);oa.prototype.size=.2;oa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(f-g)/2;b=d+g;var e=(c-g)/2,g=e+g;a.moveTo(0,d);a.lineTo(e,d);a.lineTo(e,0);a.lineTo(g,0);a.lineTo(g,d);a.lineTo(c,d);a.lineTo(c,b);a.lineTo(g,b);a.lineTo(g,f);a.lineTo(e,f);a.lineTo(e,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",
-oa);mxUtils.extend(pa,mxActor);pa.prototype.size=.25;pa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);b=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",pa);mxUtils.extend(la,mxConnector);la.prototype.origPaintEdgeShape=la.prototype.paintEdgeShape;la.prototype.paintEdgeShape=function(a,d,b){for(var c=
-[],f=0;f<d.length;f++)c.push(mxUtils.clone(d[f]));var f=a.state.dashed,g=a.state.fixDash;la.prototype.origPaintEdgeShape.apply(this,[a,c,b]);3<=a.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(a.setStrokeColor(c),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,g),la.prototype.origPaintEdgeShape.apply(this,[a,d,b])))};mxCellRenderer.registerShape("filledEdge",la);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==d.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,d,b,c,f,g,e,h,p,n){var r=f*(e+p+1),u=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-r/2-u/2,c.y-u/2+r/2);a.lineTo(c.x+u/2-3*r/2,c.y-3*u/2-r/2);a.stroke()}});mxMarker.addMarker("cross",function(a,d,b,c,f,g,e,h,p,
-n){var r=f*(e+p+1),u=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-r/2-u/2,c.y-u/2+r/2);a.lineTo(c.x+u/2-3*r/2,c.y-3*u/2-r/2);a.moveTo(c.x-r/2+u/2,c.y-u/2-r/2);a.lineTo(c.x-u/2-3*r/2,c.y-3*u/2+r/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,d,b,c,f,g,e,h,p,n){var r=c.clone(),u=Aa.apply(this,arguments),x=f*(e+2*p),k=g*(e+2*p);return function(){u.apply(this,arguments);a.begin();a.moveTo(r.x-f*p,r.y-g*p);a.lineTo(r.x-2*x+f*p,r.y-2*k+g*p);a.moveTo(r.x-
-x-k+g*p,r.y-k+x-f*p);a.lineTo(r.x+k-x-g*p,r.y-k-x+f*p);a.stroke()}});mxMarker.addMarker("async",function(a,d,b,c,f,g,e,h,p,n){d=f*p*1.118;b=g*p*1.118;f*=e+p;g*=e+p;var r=c.clone();r.x-=d;r.y-=b;c.x+=1*-f-d;c.y+=1*-g-b;return function(){a.begin();a.moveTo(r.x,r.y);h?a.lineTo(r.x-f-g/2,r.y-g+f/2):a.lineTo(r.x+g/2-f,r.y-g-f/2);a.lineTo(r.x-f,r.y-g);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(d,b,c,f,g,e,h,p,n,r){g*=h+n;e*=h+n;var u=
-f.clone();return function(){d.begin();d.moveTo(u.x,u.y);p?d.lineTo(u.x-g-e/a,u.y-e+g/a):d.lineTo(u.x+e/a-g,u.y-e-g/a);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,d,b){return ra(a,["width"],d,function(d,c,f,g,e){e=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(g.x+c*d/4+f*e/2,g.y+f*d/4-c*e/2)},function(d,c,f,g,e,h){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));a.style.width=Math.round(2*d)/a.view.scale-b})},ra=function(a,d,b,c,f){return N(a,d,
-function(d){var f=a.absolutePoints,g=f.length-1;d=a.view.translate;var e=a.view.scale,h=b?f[0]:f[g],f=b?f[1]:f[g-1],g=f.x-h.x,p=f.y-h.y,n=Math.sqrt(g*g+p*p),h=c.call(this,n,g/n,p/n,h,f);return new mxPoint(h.x/e-d.x,h.y/e-d.y)},function(d,c,g){var e=a.absolutePoints,h=e.length-1;d=a.view.translate;var p=a.view.scale,n=b?e[0]:e[h],e=b?e[1]:e[h-1],h=e.x-n.x,r=e.y-n.y,u=Math.sqrt(h*h+r*r);c.x=(c.x+d.x)*p;c.y=(c.y+d.y)*p;f.call(this,u,h/u,r/u,n,e,c,g)})},ia=function(a){return function(d){return[N(d,["arrowWidth",
-"arrowSize"],function(d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),c=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-b)*d.height/2)},function(d,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-b.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(d.x+d.width-b.x)/d.width))})]}},ya=function(a,d,b){return function(c){var f=
-[N(c,["size"],function(b){var c=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*a;return new mxPoint(b.x+c,b.y+c)},function(d,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,b.x-d.x),Math.min(d.height,b.y-d.y)))/a)})];b&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ea(c));return f}},ua=function(a,d,b,c,f){b=null!=b?b:1;return function(g){var e=[N(g,["size"],function(d){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(d.x+Math.max(0,Math.min(d.width,c*(b?1:d.width))),d.getCenterY())},function(a,d,c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=e?d.x-a.x:Math.max(0,Math.min(b,(d.x-a.x)/a.width));e&&!mxEvent.isAltDown(c.getEvent())&&(a=g.view.graph.snap(a));this.state.style.size=a},null,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(g));return e}},Da=function(a){return function(d){var b=
-[N(d,["size"],function(d){var b=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(d.x+b*d.width*.75,d.y+d.height/4)},function(d,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-d.x)/(.75*d.width)))},null,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(d));return b}},sa=function(){return function(a){var d=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d}},ea=function(a,d){return N(a,
+a.getCenterX()&&(c=-1*(c+1)),new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,d,b,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(d.style,"size",v.prototype.size))*
+d.view.scale))),d.style),d,b,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,d,b,c){var g=f.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,m=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(g=m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+
+p,h+g),new mxPoint(e+p,h+m),new mxPoint(e,h+m-g),new mxPoint(e,h)]):(g=p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+g,h),new mxPoint(e+p,h),new mxPoint(e+p-g,h+m),new mxPoint(e,h+m),new mxPoint(e+g,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f=
+mxUtils.getValue(d.style,"size",f));var e=a.x,h=a.y,p=a.width,m=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+p-f,h),new mxPoint(e+p,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_WEST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h),new mxPoint(e+p-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,
+h)]):d==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h+f)]):(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h+f),new mxPoint(e+p,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);
+mxPerimeter.StepPerimeter=function(a,d,b,c){var f="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=f?r.prototype.fixedSize:r.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,m=a.height,u=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+p-
+f,h),new mxPoint(e+p,a),new mxPoint(e+p-f,h+m),new mxPoint(e,h+m),new mxPoint(e+f,a),new mxPoint(e,h)]):d==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+f,h),new mxPoint(e+p,h),new mxPoint(e+p-f,a),new mxPoint(e+p,h+m),new mxPoint(e+f,h+m),new mxPoint(e,a),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h+f),new mxPoint(u,h),new mxPoint(e+p,h+f),new mxPoint(e+p,
+h+m),new mxPoint(u,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h+f)]):(f=f?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(u,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+m-f),new mxPoint(u,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h)]);u=new mxPoint(u,a);c&&(b.x<e||b.x>e+p?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=A.prototype.size;null!=
+d&&(f=mxUtils.getValue(d.style,"size",f));var g=a.x,e=a.y,h=a.width,p=a.height,m=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=p*Math.max(0,Math.min(1,f)),e=[new mxPoint(m,e),new mxPoint(g+h,e+f),new mxPoint(g+h,e+p-f),new mxPoint(m,e+p),new mxPoint(g,e+p-f),new mxPoint(g,e+f),new mxPoint(m,e)]):(f=h*Math.max(0,Math.min(1,f)),e=[new mxPoint(g+
+f,e),new mxPoint(g+h-f,e),new mxPoint(g+h,a),new mxPoint(g+h-f,e+p),new mxPoint(g+f,e+p),new mxPoint(g,a),new mxPoint(g+f,e)]);m=new mxPoint(m,a);c&&(b.x<g||b.x>g+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(e,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-g)/2,0,g,g);a.fillAndStroke();
+a.begin();a.moveTo(c/2,g);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",Q);mxUtils.extend(X,mxShape);X.prototype.size=10;X.prototype.inset=2;X.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,g+e);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-g)/2-e,g/2);a.quadTo((c-g)/2-e,g+e,c/
+2,g+e);a.quadTo((c+g)/2+e,g+e,(c+g)/2+e,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",X);mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,d,b,c,f,g){var e=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=e/2;var e=b+e/2,h=.3*f-d/2,p=.7*f-d/2;g?(a.moveTo(b,h),a.lineTo(e,h),a.lineTo(e,h+d),a.lineTo(b,h+d),a.moveTo(b,p),
+a.lineTo(e,p),a.lineTo(e,p+d),a.lineTo(b,p+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,p+d),a.lineTo(0,p+d),a.lineTo(0,p),a.lineTo(b,p),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",R);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(a,d,b,c,f){var g=Math.min(4,Math.min(c/5,f/5));0<c&&0<f&&(a.ellipse(d+g,b+g,c-2*g,f-2*g),a.fillAndStroke());a.setShadow(!1);
+this.outerStroke&&(a.ellipse(d,b,c,f),a.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(G,Z);G.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",G);mxUtils.extend(K,mxArrowConnector);K.prototype.defaultWidth=4;K.prototype.isOpenEnded=function(){return!0};K.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};K.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+K);mxUtils.extend(S,mxArrowConnector);S.prototype.defaultWidth=10;S.prototype.defaultArrowWidth=20;S.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};S.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};S.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+S);mxUtils.extend(J,mxActor);J.prototype.size=30;J.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",J);mxUtils.extend(N,mxRectangleShape);N.prototype.dx=20;N.prototype.dy=20;N.prototype.isHtmlAllowed=
+function(){return!1};N.prototype.paintForeground=function(a,d,b,c,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*e,f*e));e=Math.max(g,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(d,b+g);a.lineTo(d+c,b+g);
+a.end();a.stroke();a.begin();a.moveTo(d+e,b);a.lineTo(d+e,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",N);mxUtils.extend(U,mxActor);U.prototype.dx=20;U.prototype.dy=20;U.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d,b),new mxPoint(d,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("corner",U);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(c,0);a.lineTo(c,f);a.end();a.moveTo(0,f/2);a.lineTo(c,f/2);a.end()};mxCellRenderer.registerShape("crossbar",D);mxUtils.extend(W,mxActor);W.prototype.dx=20;W.prototype.dy=
+20;W.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint((c+d)/2,b),new mxPoint((c+d)/2,f),new mxPoint((c-d)/2,f),new mxPoint((c-
+d)/2,b),new mxPoint(0,b)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("tee",W);mxUtils.extend(O,mxActor);O.prototype.arrowWidth=.3;O.prototype.arrowSize=.2;O.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("singleArrow",O);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",O.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",O.prototype.arrowSize))));
+b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(d,g),new mxPoint(d,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",T);mxUtils.extend(V,mxActor);V.prototype.size=.1;V.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.moveTo(d,0);a.lineTo(c,0);a.quadTo(c-2*d,f/2,c,f);a.lineTo(d,f);a.quadTo(d-2*d,f/2,d,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",V);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.quadTo(c/2,f/2,0,0);a.close();
+a.end()};mxCellRenderer.registerShape("xor",M);mxUtils.extend(ca,mxActor);ca.prototype.size=20;ca.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,.8*d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
+ca);mxUtils.extend(da,mxActor);da.prototype.size=.375;da.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-d),new mxPoint(c/2,f),new mxPoint(0,f-d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",da);mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=
+function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/2,b+f);a.lineTo(d+c,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",aa);mxUtils.extend(ea,mxEllipse);ea.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke();a.begin();a.moveTo(d+c/2,b);a.lineTo(d+c/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",
+ea);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d+.145*c,b+.145*f);a.lineTo(d+.855*c,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(d+.855*c,b+.145*f);a.lineTo(d+.145*c,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",la);mxUtils.extend(ha,mxRhombus);ha.prototype.paintVertexShape=function(a,d,b,c,f){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",ha);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,d,b,c,f){a.begin();a.moveTo(d,b);a.lineTo(d+c,b);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(d,b+f);a.lineTo(d+c,b+f);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ra);mxUtils.extend(fa,mxEllipse);fa.prototype.paintVertexShape=
+function(a,d,b,c,f){var g=b+f-5;a.begin();a.moveTo(d,b);a.lineTo(d,b+f);a.moveTo(d,g);a.lineTo(d+10,g-5);a.moveTo(d,g);a.lineTo(d+10,g+5);a.moveTo(d,g);a.lineTo(d+c,g);a.moveTo(d+c,b);a.lineTo(d+c,b+f);a.moveTo(d+c,g);a.lineTo(d+c-10,g-5);a.moveTo(d+c,g);a.lineTo(d+c-10,g+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,d,b,c,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
+arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(d,b,c,f),a.fill(),a.begin(),a.moveTo(d,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(d+c,b):a.moveTo(d+c,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(d+c,b+f):a.moveTo(d+c,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(d,b+f):a.moveTo(d,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(d,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",ma);mxUtils.extend(ba,
+mxEllipse);ba.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(d+c/2,b),a.lineTo(d+c/2,b+f)):(a.moveTo(d,b+f/2),a.lineTo(d+c,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",ba);mxUtils.extend(pa,mxActor);pa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);a.moveTo(0,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(0,
+f);a.close();a.end()};mxCellRenderer.registerShape("delay",pa);mxUtils.extend(ia,mxActor);ia.prototype.size=.2;ia.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(f-g)/2;b=d+g;var e=(c-g)/2,g=e+g;a.moveTo(0,d);a.lineTo(e,d);a.lineTo(e,0);a.lineTo(g,0);a.lineTo(g,d);a.lineTo(c,d);a.lineTo(c,b);a.lineTo(g,b);a.lineTo(g,f);a.lineTo(e,f);a.lineTo(e,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",
+ia);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);b=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",qa);mxUtils.extend(na,mxConnector);na.prototype.origPaintEdgeShape=na.prototype.paintEdgeShape;na.prototype.paintEdgeShape=function(a,d,b){for(var c=
+[],f=0;f<d.length;f++)c.push(mxUtils.clone(d[f]));var f=a.state.dashed,g=a.state.fixDash;na.prototype.origPaintEdgeShape.apply(this,[a,c,b]);3<=a.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(a.setStrokeColor(c),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,g),na.prototype.origPaintEdgeShape.apply(this,[a,d,b])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==d.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,d,b,c,f,g,e,h,p,m){var u=f*(e+p+1),r=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-u/2-r/2,c.y-r/2+u/2);a.lineTo(c.x+r/2-3*u/2,c.y-3*r/2-u/2);a.stroke()}});mxMarker.addMarker("cross",function(a,d,b,c,f,g,e,h,p,
+m){var u=f*(e+p+1),r=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-u/2-r/2,c.y-r/2+u/2);a.lineTo(c.x+r/2-3*u/2,c.y-3*r/2-u/2);a.moveTo(c.x-u/2+r/2,c.y-r/2-u/2);a.lineTo(c.x-r/2-3*u/2,c.y-3*r/2+u/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,d,b,c,f,g,e,h,p,m){var u=c.clone(),r=Aa.apply(this,arguments),v=f*(e+2*p),k=g*(e+2*p);return function(){r.apply(this,arguments);a.begin();a.moveTo(u.x-f*p,u.y-g*p);a.lineTo(u.x-2*v+f*p,u.y-2*k+g*p);a.moveTo(u.x-
+v-k+g*p,u.y-k+v-f*p);a.lineTo(u.x+k-v-g*p,u.y-k-v+f*p);a.stroke()}});mxMarker.addMarker("async",function(a,d,b,c,f,g,e,h,p,m){d=f*p*1.118;b=g*p*1.118;f*=e+p;g*=e+p;var u=c.clone();u.x-=d;u.y-=b;c.x+=1*-f-d;c.y+=1*-g-b;return function(){a.begin();a.moveTo(u.x,u.y);h?a.lineTo(u.x-f-g/2,u.y-g+f/2):a.lineTo(u.x+g/2-f,u.y-g-f/2);a.lineTo(u.x-f,u.y-g);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(d,b,c,f,g,e,h,p,m,u){g*=h+m;e*=h+m;var r=
+f.clone();return function(){d.begin();d.moveTo(r.x,r.y);p?d.lineTo(r.x-g-e/a,r.y-e+g/a):d.lineTo(r.x+e/a-g,r.y-e-g/a);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Da=function(a,d,b){return sa(a,["width"],d,function(d,c,f,g,e){e=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(g.x+c*d/4+f*e/2,g.y+f*d/4-c*e/2)},function(d,c,f,g,e,h){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));a.style.width=Math.round(2*d)/a.view.scale-b})},sa=function(a,d,b,c,f){return P(a,d,
+function(d){var f=a.absolutePoints,g=f.length-1;d=a.view.translate;var e=a.view.scale,h=b?f[0]:f[g],f=b?f[1]:f[g-1],g=f.x-h.x,p=f.y-h.y,m=Math.sqrt(g*g+p*p),h=c.call(this,m,g/m,p/m,h,f);return new mxPoint(h.x/e-d.x,h.y/e-d.y)},function(d,c,g){var e=a.absolutePoints,h=e.length-1;d=a.view.translate;var p=a.view.scale,m=b?e[0]:e[h],e=b?e[1]:e[h-1],h=e.x-m.x,u=e.y-m.y,r=Math.sqrt(h*h+u*u);c.x=(c.x+d.x)*p;c.y=(c.y+d.y)*p;f.call(this,r,h/r,u/r,m,e,c,g)})},ka=function(a){return function(d){return[P(d,["arrowWidth",
+"arrowSize"],function(d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",O.prototype.arrowWidth))),c=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",O.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-b)*d.height/2)},function(d,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-b.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(d.x+d.width-b.x)/d.width))})]}},ya=function(a,d,b){return function(c){var f=
+[P(c,["size"],function(b){var c=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*a;return new mxPoint(b.x+c,b.y+c)},function(d,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,b.x-d.x),Math.min(d.height,b.y-d.y)))/a)})];b&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ga(c));return f}},ua=function(a,d,b,c,f){b=null!=b?b:1;return function(g){var e=[P(g,["size"],function(d){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(d.x+Math.max(0,Math.min(d.width,c*(b?1:d.width))),d.getCenterY())},function(a,d,c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=e?d.x-a.x:Math.max(0,Math.min(b,(d.x-a.x)/a.width));e&&!mxEvent.isAltDown(c.getEvent())&&(a=g.view.graph.snap(a));this.state.style.size=a},null,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(g));return e}},Ea=function(a){return function(d){var b=
+[P(d,["size"],function(d){var b=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(d.x+b*d.width*.75,d.y+d.height/4)},function(d,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-d.x)/(.75*d.width)))},null,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(d));return b}},ta=function(){return function(a){var d=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d}},ga=function(a,d){return P(a,
[mxConstants.STYLE_ARCSIZE],function(b){var c=null!=d?d:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+c)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*
-f),b.y+c)},function(d,b,c){"1"==mxUtils.getValue(a.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-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-b.x+d.x)/Math.min(d.width,d.height))))})},N=function(a,d,b,c,f,g){var e=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);e.execute=function(){for(var a=0;a<d.length;a++)this.copyStyle(d[a])};
-e.getPosition=b;e.setPosition=c;e.ignoreGrid=null!=f?f:!0;if(g){var h=e.positionChanged;e.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return e},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var d=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ra(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
+f),b.y+c)},function(d,b,c){"1"==mxUtils.getValue(a.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-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-b.x+d.x)/Math.min(d.width,d.height))))})},P=function(a,d,b,c,f,g){var e=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);e.execute=function(){for(var a=0;a<d.length;a++)this.copyStyle(d[a])};
+e.getPosition=b;e.setPosition=c;e.ignoreGrid=null!=f?f:!0;if(g){var h=e.positionChanged;e.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return e},za={link:function(a){return[Da(a,!0,10),Da(a,!1,10)]},flexArrow:function(a){var d=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)+c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)-b*d/2)},function(b,c,f,g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;
-a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ra(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,b,c,f,g){d=(a.shape.getStartArrowWidth()-
+a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,b,c,f,g){d=(a.shape.getStartArrowWidth()-
a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)+c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)-b*d/2)},function(b,c,f,g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,
Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(p.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<d&&(a.style.startWidth=
-a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ra(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,
+a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,
g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ra(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,g,e,h,p){b=
+d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,g,e,h,p){b=
Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(p.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<d&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var d=[N(a,[mxConstants.STYLE_STARTSIZE],function(d){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),
-d.y+Math.max(0,Math.min(d.height,b))):new mxPoint(d.x+Math.max(0,Math.min(d.width,b)),d.getCenterY())},function(d,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,b.y-d.y))):Math.round(Math.max(0,Math.min(d.width,b.x-d.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(ea(a,b/2))}return d},
-label:sa(),ext:sa(),rectangle:sa(),triangle:sa(),rhombus:sa(),umlLifeline:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",L.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))},!1)]},umlFrame:function(a){return[N(a,["width","height"],function(a){var d=Math.max(E.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,
-"width",E.prototype.width))),b=Math.max(1.5*E.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",E.prototype.height)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.width=Math.round(Math.max(E.prototype.corner,Math.min(a.width,d.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*E.prototype.corner,Math.min(a.height,d.y-a.y)))},!1)]},process:function(a){var d=[N(a,["size"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
-"size",w.prototype.size))));return new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,Math.min(.5,(d.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},cross:function(a){return[N(a,["size"],function(a){var d=Math.min(a.width,a.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",oa.prototype.size)))*d/2;return new mxPoint(a.getCenterX()-d,a.getCenterY()-d)},function(a,d){var b=Math.min(a.width,
-a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-d.y)/b*2,Math.max(0,a.getCenterX()-d.x)/b*2)))})]},note:function(a){return[N(a,["size"],function(a){var d=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-d,a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-d.x),Math.min(a.height,d.y-a.y))))})]},manualInput:function(a){var d=
-[N(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",S.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*d/4)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(d.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},dataStorage:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.x+
-(1-d)*a.width,a.getCenterY())},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-d.x)/a.width))})]},callout:function(a){var d=[N(a,["size","position"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",x.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position)));mxUtils.getValue(this.state.style,"base",x.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-d)},function(a,d){mxUtils.getValue(this.state.style,
-"base",x.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),N(a,["position2"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",x.prototype.position2)));return new mxPoint(a.x+d*a.width,a.y+a.height)},function(a,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),N(a,["base"],function(a){var d=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",x.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position))),c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",x.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+c),a.y+a.height-d)},function(a,d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,
-d.x-a.x-b*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},internalStorage:function(a){var d=[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",D.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",D.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(a.height,d.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},corner:function(a){return[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",W.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",W.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(a.height,d.y-a.y)))})]},tee:function(a){return[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+d)/2,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,d.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),
-folder:function(a){return[N(a,["tabWidth","tabHeight"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",l.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",l.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",l.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);return new mxPoint(a.x+d,a.y+b)},function(a,d){var b=Math.max(0,Math.min(a.width,d.x-a.x));mxUtils.getValue(this.state.style,
-"tabPosition",l.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},document:function(a){return[N(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},
-tape:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d*a.height/2)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-d)*a.height)},
-function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},step:ua(r.prototype.size,!0,null,!0,r.prototype.fixedSize),hexagon:ua(z.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(pa.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,q.prototype.size,!0),loopLimit:ya(.5,Z.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=N;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<d&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var d=[P(a,[mxConstants.STYLE_STARTSIZE],function(d){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),
+d.y+Math.max(0,Math.min(d.height,b))):new mxPoint(d.x+Math.max(0,Math.min(d.width,b)),d.getCenterY())},function(d,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,b.y-d.y))):Math.round(Math.max(0,Math.min(d.width,b.x-d.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(ga(a,b/2))}return d},
+label:ta(),ext:ta(),rectangle:ta(),triangle:ta(),rhombus:ta(),umlLifeline:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",I.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))},!1)]},umlFrame:function(a){return[P(a,["width","height"],function(a){var d=Math.max(E.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,
+"width",E.prototype.width))),b=Math.max(1.5*E.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",E.prototype.height)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.width=Math.round(Math.max(E.prototype.corner,Math.min(a.width,d.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*E.prototype.corner,Math.min(a.height,d.y-a.y)))},!1)]},process:function(a){var d=[P(a,["size"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
+"size",w.prototype.size))));return new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,Math.min(.5,(d.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},cross:function(a){return[P(a,["size"],function(a){var d=Math.min(a.width,a.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ia.prototype.size)))*d/2;return new mxPoint(a.getCenterX()-d,a.getCenterY()-d)},function(a,d){var b=Math.min(a.width,
+a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-d.y)/b*2,Math.max(0,a.getCenterX()-d.x)/b*2)))})]},note:function(a){return[P(a,["size"],function(a){var d=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-d,a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-d.x),Math.min(a.height,d.y-a.y))))})]},manualInput:function(a){var d=
+[P(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",J.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*d/4)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(d.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},dataStorage:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",V.prototype.size))));return new mxPoint(a.x+
+(1-d)*a.width,a.getCenterY())},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-d.x)/a.width))})]},callout:function(a){var d=[P(a,["size","position"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));mxUtils.getValue(this.state.style,"base",v.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-d)},function(a,d){mxUtils.getValue(this.state.style,
+"base",v.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),P(a,["position2"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+d*a.width,a.y+a.height)},function(a,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),P(a,["base"],function(a){var d=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position))),c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",v.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+c),a.y+a.height-d)},function(a,d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,
+d.x-a.x-b*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},internalStorage:function(a){var d=[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,d.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},corner:function(a){return[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",U.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",U.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,d.y-a.y)))})]},tee:function(a){return[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",W.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",W.prototype.dy)));return new mxPoint(a.x+(a.width+d)/2,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,d.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},singleArrow:ka(1),doubleArrow:ka(.5),
+folder:function(a){return[P(a,["tabWidth","tabHeight"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);return new mxPoint(a.x+d,a.y+b)},function(a,d){var b=Math.max(0,Math.min(a.width,d.x-a.x));mxUtils.getValue(this.state.style,
+"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},document:function(a){return[P(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},
+tape:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d*a.height/2)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-d)*a.height)},
+function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},step:ua(r.prototype.size,!0,null,!0,r.prototype.fixedSize),hexagon:ua(A.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(qa.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,q.prototype.size,!0),loopLimit:ya(.5,ca.prototype.size,!0),trapezoid:Ea(.5),parallelogram:Ea(1)};Graph.createHandle=P;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==
this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var va=new mxPoint(1,0),wa=new mxPoint(1,0),ia=mxUtils.toRadians(-30),va=mxUtils.getRotatedPoint(va,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),wa=mxUtils.getRotatedPoint(wa,Math.cos(ia),Math.sin(ia));mxEdgeStyle.IsometricConnector=function(a,d,b,c,f){var g=a.view;c=null!=c&&0<c.length?c[0]:null;var e=a.absolutePoints,h=e[0],e=e[e.length-1];null!=c&&(c=g.transformControlPoint(a,
-c));null==h&&null!=d&&(h=new mxPoint(d.getCenterX(),d.getCenterY()));null==e&&null!=b&&(e=new mxPoint(b.getCenterX(),b.getCenterY()));var p=va.x,n=va.y,r=wa.x,u=wa.y,x="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=e&&null!=h){a=function(a,d,b){a-=k.x;var c=d-k.y;d=(u*a-r*c)/(p*u-n*r);a=(n*a-p*c)/(n*r-p*u);x?(b&&(k=new mxPoint(k.x+p*d,k.y+n*d),f.push(k)),k=new mxPoint(k.x+r*a,k.y+u*a)):(b&&(k=new mxPoint(k.x+r*a,k.y+u*a),f.push(k)),k=new mxPoint(k.x+p*d,k.y+n*d));f.push(k)};
-var k=h;null==c&&(c=new mxPoint(h.x+(e.x-h.x)/2,h.y+(e.y-h.y)/2));a(c.x,c.y,!0);a(e.x,e.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,d){if(d==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return Ia.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];x.prototype.constraints=[];mxRectangleShape.prototype.constraints=
+a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var va=new mxPoint(1,0),wa=new mxPoint(1,0),ka=mxUtils.toRadians(-30),va=mxUtils.getRotatedPoint(va,Math.cos(ka),Math.sin(ka)),ka=mxUtils.toRadians(-150),wa=mxUtils.getRotatedPoint(wa,Math.cos(ka),Math.sin(ka));mxEdgeStyle.IsometricConnector=function(a,d,b,c,f){var g=a.view;c=null!=c&&0<c.length?c[0]:null;var e=a.absolutePoints,h=e[0],e=e[e.length-1];null!=c&&(c=g.transformControlPoint(a,
+c));null==h&&null!=d&&(h=new mxPoint(d.getCenterX(),d.getCenterY()));null==e&&null!=b&&(e=new mxPoint(b.getCenterX(),b.getCenterY()));var p=va.x,m=va.y,u=wa.x,r=wa.y,v="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=e&&null!=h){a=function(a,d,b){a-=k.x;var c=d-k.y;d=(r*a-u*c)/(p*r-m*u);a=(m*a-p*c)/(m*u-p*r);v?(b&&(k=new mxPoint(k.x+p*d,k.y+m*d),f.push(k)),k=new mxPoint(k.x+u*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+u*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+p*d,k.y+m*d));f.push(k)};
+var k=h;null==c&&(c=new mxPoint(h.x+(e.x-h.x)/2,h.y+(e.y-h.y)/2));a(c.x,c.y,!0);a(e.x,e.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,d){if(d==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return Ia.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,
1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=
-mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;l.prototype.constraints=mxRectangleShape.prototype.constraints;D.prototype.constraints=
-mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxEllipse.prototype.constraints;da.prototype.constraints=mxEllipse.prototype.constraints;ma.prototype.constraints=mxEllipse.prototype.constraints;na.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;ta.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;
-Z.prototype.constraints=mxRectangleShape.prototype.constraints;aa.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,
+mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=
+mxRectangleShape.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;ea.prototype.constraints=mxEllipse.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;
+ca.prototype.constraints=mxRectangleShape.prototype.constraints;da.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)];B.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)];R.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)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,
+.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)];l.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)];r.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)];I.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=
+.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)];Q.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)];f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;d.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;X.prototype.constraints=null;W.prototype.constraints=null;Q.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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
-new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];L.prototype.constraints=null;ca.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)];V.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
+.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;W.prototype.constraints=null;U.prototype.constraints=null;D.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)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
+new mxConnectionConstraint(new mxPoint(1,.5),!1)];ia.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];I.prototype.constraints=null;Y.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)];M.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){c.escape();var b=c.getDeletableCells(c.getSelectionCells());if(null!=b&&0<b.length){var d=c.model.getParents(b);c.removeCells(b,a);if(null!=d){a=[];for(b=0;b<d.length;b++)c.model.contains(d[b])&&(c.model.isVertex(d[b])||c.model.isEdge(d[b]))&&a.push(d[b]);c.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,c=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&c.isEnabled()};this.addAction("new...",function(){c.openLink(b.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));b.showDialog((new OpenDialog(this)).container,
320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=k;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=k;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(c,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
function(){mxClipboard.cut(c)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(c)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&mxClipboard.paste(c)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())){c.getModel().beginUpdate();try{var b=mxClipboard.paste(c);if(null!=b){a=!0;for(var d=0;d<b.length&&
-a;d++)a=a&&c.model.isEdge(b[d]);var f=c.view.translate,g=c.view.scale,e=f.x,n=f.y,f=null;if(1==b.length&&a){var h=c.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:c.getBoundingBoxFromGeometry(b,a);if(null!=f){var k=Math.round(c.snap(c.popupMenuHandler.triggerX/g-e)),u=Math.round(c.snap(c.popupMenuHandler.triggerY/g-n));c.cellsMoved(b,k-f.x,u-f.y)}}}finally{c.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
+a;d++)a=a&&c.model.isEdge(b[d]);var f=c.view.translate,g=c.view.scale,e=f.x,m=f.y,f=null;if(1==b.length&&a){var h=c.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:c.getBoundingBoxFromGeometry(b,a);if(null!=f){var k=Math.round(c.snap(c.popupMenuHandler.triggerX/g-e)),u=Math.round(c.snap(c.popupMenuHandler.triggerY/g-m));c.cellsMoved(b,k-f.x,u-f.y)}}}finally{c.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){c.setSelectionCells(c.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){c.turnShapes(c.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){c.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){c.selectEdges()},
null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){c.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){c.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!c.isSelectionEmpty()){c.getModel().beginUpdate();try{var a=c.isCellMovable(c.getSelectionCell())?1:0;c.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);c.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);c.toggleCellStyles(mxConstants.STYLE_ROTATABLE,
a);c.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);c.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);c.toggleCellStyles("connectable",a)}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){c.home()},null,null,"Home");this.addAction("exitGroup",function(){c.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){c.enterGroup()},null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){c.foldCells(!0)},
@@ -2583,14 +2584,14 @@ this.addAction("zoomOut",function(a){c.zoomOut()},null,null,Editor.ctrlKey+" - (
a.y*c.view.scale,c.container.scrollLeft=Math.min(a.x*c.view.scale,(c.container.scrollWidth-c.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){c.pageVisible||this.get("pageView").funct();var a=c.pageFormat,b=c.pageScale;c.zoomTo(Math.floor(20*Math.min((c.container.clientWidth-10)/(2*a.width)/b,(c.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(c.container)&&(a=c.getPagePadding(),c.container.scrollTop=Math.min(a.y,
(c.container.scrollHeight-c.container.clientHeight)/2),c.container.scrollLeft=Math.min(a.x,(c.container.scrollWidth-c.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){c.pageVisible||this.get("pageView").funct();c.zoomTo(Math.floor(20*(c.container.clientWidth-10)/c.pageFormat.width/c.pageScale)/20);if(mxUtils.hasScrollbars(c.container)){var a=c.getPagePadding();c.container.scrollLeft=Math.min(a.x*c.view.scale,(c.container.scrollWidth-
c.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*c.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&c.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,
-parseInt(100*c.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){c.setGridEnabled(!c.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.isGridEnabled()});m.setEnabled(!1);
-m=this.addAction("guides",function(){c.graphHandler.guidesEnabled=!c.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){c.tooltipHandler.setEnabled(!c.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a=
-new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!c.foldingEnabled;c.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.foldingEnabled});m.isEnabled=k;m=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!c.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return c.pageVisible});
-m=this.addAction("connectionArrows",function(){c.connectionArrowsEnabled=!c.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){c.setConnectable(!c.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionHandler.isEnabled()});
-m=this.addAction("copyConnect",function(){c.connectionHandler.setCreateTarget(!c.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionHandler.isCreateTarget()});m.isEnabled=k;m=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.editor.autosave});m.isEnabled=k;m.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);c.openLink(RESOURCES_PATH+"/help"+a+".html")});var l=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){l||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){l=!1}),l=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,b,d,f){return this.addAction(a,function(){if(null!=d&&c.cellEditor.isContentEditing())d();else{c.stopEditing(!1);c.getModel().beginUpdate();try{c.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+parseInt(100*c.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){c.setGridEnabled(!c.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.isGridEnabled()});l.setEnabled(!1);
+l=this.addAction("guides",function(){c.graphHandler.guidesEnabled=!c.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){c.tooltipHandler.setEnabled(!c.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a=
+new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!c.foldingEnabled;c.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!c.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return c.pageVisible});
+l=this.addAction("connectionArrows",function(){c.connectionArrowsEnabled=!c.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){c.setConnectable(!c.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionHandler.isEnabled()});
+l=this.addAction("copyConnect",function(){c.connectionHandler.setCreateTarget(!c.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionHandler.isCreateTarget()});l.isEnabled=k;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=k;l.visible=!1;this.addAction("help",function(){var a=
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);c.openLink(RESOURCES_PATH+"/help"+a+".html")});var n=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){n||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){n=!1}),n=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,d,f){return this.addAction(a,function(){if(null!=d&&c.cellEditor.isContentEditing())d();else{c.stopEditing(!1);c.getModel().beginUpdate();try{c.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?c.updateLabelElements(c.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&c.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?c.updateLabelElements(c.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&c.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&c.updateLabelElements(c.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
-c.replaceElement(a)})}finally{c.getModel().endUpdate()}}},null,null,f)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
+c.replaceElement(a)})}finally{c.getModel().endUpdate()}}},null,null,f)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,null),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}});
this.addAction("dashed",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,"1"),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}});this.addAction("dotted",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,"1"),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
@@ -2601,14 +2602,14 @@ d=null!=e?e.style:c.getCellStyle(a[0]),f="1"==mxUtils.getValue(d,mxConstants.STY
mxUtils.bind(this,function(){var a=c.getSelectionCells();if(null!=a&&0<a.length){var b=c.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(d){null!=d&&c.setCellStyle(mxUtils.trim(d),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){c.isEnabled()&&!c.isSelectionEmpty()&&b.setDefaultStyle(c.getSelectionCell())},null,null,Editor.ctrlKey+
"+Shift+D");this.addAction("clearDefaultStyle",function(){c.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=c.getSelectionCell();if(null!=a&&c.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var d=c.view.translate,f=c.view.scale,g=d.x,d=d.y,a=c.getModel().getParent(a),p=c.getCellGeometry(a);c.getModel().isVertex(a)&&null!=p;)g+=p.x,d+=p.y,a=c.getModel().getParent(a),p=
c.getCellGeometry(a);g=Math.round(c.snap(c.popupMenuHandler.triggerX/f-g));f=Math.round(c.snap(c.popupMenuHandler.triggerY/f-d));b.addPointAt(b.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=c.getSelectionCells();if(null!=a){a=c.addAllEdges(a);c.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var d=a[b];if(c.getModel().isEdge(d)){var f=
-c.getCellGeometry(d);null!=f&&(f=f.clone(),f.points=null,c.getModel().setGeometry(d,f))}}}finally{c.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
+c.getCellGeometry(d);null!=f&&(f=f.clone(),f.points=null,c.getModel().setGeometry(d,f))}}}finally{c.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
function(){if(c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=c.getView().getState(c.getSelectionCell()),d="";null!=e&&(d=e.style[mxConstants.STYLE_IMAGE]||d);var f=c.cellEditor.saveSelection();b.showImageDialog(a,d,function(a,d,b){if(c.cellEditor.isContentEditing())c.cellEditor.restoreSelection(f),c.insertImage(a,d,b);else{var g=c.getSelectionCells();if(null!=a&&(0<a.length||0<g.length)){var e=null;c.getModel().beginUpdate();
-try{if(0==g.length){var p=c.getFreeInsertPoint(),e=g=[c.insertVertex(c.getDefaultParent(),null,"",p.x,p.y,d,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];c.fireEvent(new mxEventObject("cellsInserted","cells",e))}c.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,g);var n=c.view.getState(g[0]),r=null!=n?n.style:c.getCellStyle(g[0]);"image"!=r[mxConstants.STYLE_SHAPE]&&"label"!=r[mxConstants.STYLE_SHAPE]?c.setCellStyles(mxConstants.STYLE_SHAPE,"image",
-g):0==a.length&&c.setCellStyles(mxConstants.STYLE_SHAPE,null,g);if(1==c.getSelectionCount()&&null!=d&&null!=b){var k=g[0],m=c.getModel().getGeometry(k);null!=m&&(m=m.clone(),m.width=d,m.height=b,c.getModel().setGeometry(k,m))}}finally{c.getModel().endUpdate()}null!=e&&(c.setSelectionCells(e),c.scrollCellToVisible(e[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-(c.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));m=this.addAction("outline",
+try{if(0==g.length){var p=c.getFreeInsertPoint(),e=g=[c.insertVertex(c.getDefaultParent(),null,"",p.x,p.y,d,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];c.fireEvent(new mxEventObject("cellsInserted","cells",e))}c.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,g);var m=c.view.getState(g[0]),r=null!=m?m.style:c.getCellStyle(g[0]);"image"!=r[mxConstants.STYLE_SHAPE]&&"label"!=r[mxConstants.STYLE_SHAPE]?c.setCellStyles(mxConstants.STYLE_SHAPE,"image",
+g):0==a.length&&c.setCellStyles(mxConstants.STYLE_SHAPE,null,g);if(1==c.getSelectionCount()&&null!=d&&null!=b){var k=g[0],l=c.getModel().getGeometry(k);null!=l&&(l=l.clone(),l.width=d,l.height=b,c.getModel().setGeometry(k,l))}}finally{c.getModel().endUpdate()}null!=e&&(c.setSelectionCells(e),c.scrollCellToVisible(e[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
+(c.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
+this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline",
mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,
-null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,c,k){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,b,e,c,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
+null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,c,k){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,c,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
function Action(a,b,e,c,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=c;this.shortcut=k;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};
Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=18E5;DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};
DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,e,c){this.updateFileData();this.clearAutosave()};DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this))};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,c){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
@@ -2623,15 +2624,15 @@ DrawioFile.prototype.autosave=function(a,b,e,c){null==this.lastAutosave&&(this.l
mxUtils.bind(this,function(a){null!=c&&c(a)}))}else null!=e&&e(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};
DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),c=0<e?a.substring(e):"",e=b.lastIndexOf(".");return c===(0<e?b.substring(e):"")}return a==b};
DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,e,c){DrawioFile.call(this,a,b);this.title=e;this.mode=c?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};
-LocalFile.prototype.saveFile=function(a,b,e,c){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),m=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
-(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):m(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
+LocalFile.prototype.saveFile=function(a,b,e,c){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),l=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
+(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):l(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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":
IMAGE_PATH+"/spin.gif";Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=":
IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
IMAGE_PATH+"/img-lo-res.png";Editor.cameraLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/BJREFUWAnFl0uIjWEYx885buPSuGwmSYwtwsY1ikKSNYNclmQnadgrZSPlsnBLSlaGBdNYKY0Vdi4L4zYzIqxGxmXG//d+7//0+uY7nWMiT/2/53mf+3v7vnNKpf9M5UbrDw8Pj4m+wzmeT1FBUS6Xf+YNox6reMONukijMXUTM3NmI75PyXcJPwRWg5kS7xysDLNmfEUxpx2rceNE50IlYjyRklcLf0prY+x4BTqfmx3ZUHQaO9ISGngYq38V/1EH+ECPa+QaK1u1kVBQirDMChiS3CTeIkwWvghtwhKBpZ8g1CO2B99FynVU/KowSRgQ3mlrBsVZ1awmQlS0SGbfXglfBPbdRGMm5O8RXg2P835pDCvzWjghTHETcLpZLHwS8kTCtBEK1SN83Egam8YxyVZqc+Do5qkwS+gT9grNwkUBG6cbsG/gs3BTuC/0ChCxq4QtwgzBMdwUZBPyN4Ftfi4sYPZHktbOSRlIuutRP5jYj0ueZp88xyYcS/zZoiLyQT1IA/cTj7eSlwnrhI+JnkQbCwo2Sx/2M7VJt17wdhVtgxvrpoFnAuSAbJQ97biZAlKxBfD9wgOhV+BgIR/AZtJ4kwD5PGSj7OmmekjWEy0oAQHAS3+KpBpzXqYK3UItopHpSRMno2N+cm7gDYnfRCcr3QBqriMHLJDkeyhFfiG5aVbK+8rhtP9M6QcIEJHX5Fp9NMAyQlYiu+OOJNlODCIXyka/P23bncTdiC7OydC1+v1Bsb+5r84DK8S3Rdmf5cRUFW3bXtWUSt1Rdk6G4SyJV2o1YId+vNUxr+x5yCJiapFtcxQzLjrxboGcMxvFJwEOKnLwjIbkx/sdSmeSaUY++SwTAxV+4DJT7RVwkbk46gNCsifIItuy0e9PF33Cb4homhN5YRyzL5q5V2VNkv98kqgoGTo3YF9CnMM5Y5rItFfvBSi9JulVXOgI+VwIntkt+SaZ6weQfcovJf7zpTfl86P/wAF7Fz18NeKwmvAWCaX0Z/uMHQr42ZxvR/Rxcw5xM+9J/CJq8w2gduDhmDgso/QrBH47dEXQ1IqczyHpIOfIRtnTtV7SwO1oKXKkU3fbToFGSDHtMWcaH1WBuVYnDbRFi99iqSMySdzxXckrazUh23KBVYGIcfNBkTxca0e4ATJ0KukGYVBgr/MnlhPOtQq/ksUfCbzh+EFCjtnCUoHfjhA/OsiTv2HcEvJMELp0VakZDliTmriTdPivxU4VmEhtPrGV+KJhO7ZKt0doFZh1fgZSBWIW2AGEHwg3BUWOnKtH+suqdw07tYMfglCrWPD5mw9qVYuniaXkT0OtWaSuo5LJTY1RBf+roF9X5+y/5qU+DAAAAABJRU5ErkJggg==";
-Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node width. Possible value are px or auto. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value are px or auto. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=
a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var d=document.createElement("style");d.setAttribute("type","text/css");d.appendChild(document.createTextNode(a.css));var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(d,b)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=
a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(d=document.createElement("style"),d.setAttribute("type",
@@ -2640,15 +2641,15 @@ null;if(null!=d){var b=d.getElementsByTagName("parsererror");if(null!=b&&0<b.len
this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var f=new mxCodec(c.ownerDocument);f.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==d.getAttribute("math");b=d.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);
mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==d.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var d=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&d.setAttribute("style",this.graph.currentStyle);
null!=this.graph.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));d.setAttribute("math",this.graph.mathEnabled?"1":"0");d.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return d};Editor.prototype.isDataSvg=function(a){try{var d=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=d&&(null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),
-null!=d&&0<d.length)){var b=mxUtils.parseXml(d).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(z){}return!1};Editor.prototype.extractGraphModel=function(a,d){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),c=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){c.push(b[f]);break}0<c.length&&(b=c[0].getAttribute("data-mxgraph"),null!=b?(c=JSON.parse(b),null!=c&&null!=c.xml&&(c=mxUtils.parseXml(c.xml),
+null!=d&&0<d.length)){var b=mxUtils.parseXml(d).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(A){}return!1};Editor.prototype.extractGraphModel=function(a,d){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),c=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){c.push(b[f]);break}0<c.length&&(b=c[0].getAttribute("data-mxgraph"),null!=b?(c=JSON.parse(b),null!=c&&null!=c.xml&&(c=mxUtils.parseXml(c.xml),
a=c.documentElement)):(c=c[0].getElementsByTagName("div"),0<c.length&&(b=mxUtils.getTextContent(c[0]),b=this.graph.decompress(b),0<b.length&&(c=mxUtils.parseXml(b),a=c.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(b=a.getAttribute("content"),null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)a=mxUtils.parseXml(b).documentElement;else throw{message:mxResources.get("notADiagramFile")};
null==a||d||(c=null,"diagram"==a.nodeName?c=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(c=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=c&&(b=this.graph.decompress(mxUtils.getTextContent(c)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||d&&"mxfile"==a.nodeName||(a=null);return a};var e=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?!0:this.originalNoForeignObject;e.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var c=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){c.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,d){a=null!=a?a:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(d||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var b=Editor.prototype.init;Editor.prototype.init=function(){b.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,
-d){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;c[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+d){this.graph.mathEnabled&&"hidden"!=this.graph.container.style.visibility&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;c[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
var d=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,c,f){void 0!==b?d.push(b.replace(/\\'/g,"'")):void 0!==c?d.push(c.replace(/\\"/g,'"')):void 0!==f&&d.push(f);return""});/,\s*$/.test(a)&&d.push("");return d};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,d){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
-var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}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?
+var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}if(null!=window.StyleFormatPanel){var n=Format.prototype.init;Format.prototype.init=function(){n.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()};var t=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=t.apply(this,arguments);if(mxClient.IS_SVG){var d=this.editorUi,b=d.editor.graph,c=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var c=new ChangePageSetup(d);c.ignoreColor=!0;c.ignoreImage=!0;c.shadowVisible=a;b.model.execute(c)},{install:function(a){this.listener=function(){a(b.shadowVisible)};d.addListener("shadowVisibleChanged",
this.listener)},destroy:function(){d.removeListener(this.listener)}});Editor.shadowOptionEnabled||(c.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(c,60));a.appendChild(c)}return a};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),
function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};StyleFormatPanel.prototype.defaultColorSchemes=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},
@@ -2667,7 +2668,7 @@ function(a){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("ti
(b.style.width="100px",d.style.width="100px",d.style.marginLeft="2px"),a.appendChild(d));return a}}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;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(a){d=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)d=mxUtils.clone(a)}p.apply(this,arguments);var d=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){d=null});this.isMouseInsertPoint=function(){return null!=d};var b=this.getInsertPoint;
this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):b.apply(this,arguments)};var c=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a),d=null!=d?d.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==d.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,d){d.height=Math.max(d.height,20);if(1<d.height/20){var b=d.height%20;d.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a,
-d)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=d.marginLeft||0;b.marginRight=d.marginRight||0;b.marginTop=d.marginTop||0;b.marginBottom=d.marginBottom||0;b.resizeParent=!1;return b}return c.apply(this,arguments)}};var n=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){n.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.highlightCell=function(a,
+d)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=d.marginLeft||0;b.marginRight=d.marginRight||0;b.marginTop=d.marginTop||0;b.marginBottom=d.marginBottom||0;b.resizeParent=!1;return b}return c.apply(this,arguments)}};var m=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){m.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.highlightCell=function(a,
d,b){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var c=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),f=new mxCellHighlight(this,d,c,!1);f.highlight(a);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)},b)}};Graph.prototype.addSvgShadow=function(a,d,b){b=null!=b?b:!1;
var c=a.ownerDocument,f=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"filter"):c.createElement("filter");f.setAttribute("id",this.shadowId);var g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):c.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",this.svgShadowBlur);g.setAttribute("result","blur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feOffset"):c.createElement("feOffset");
g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feFlood"):c.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",this.svgShadowOpacity);g.setAttribute("result","offsetColor");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feComposite"):
@@ -2680,224 +2681,224 @@ mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegist
[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=
[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.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.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(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,n,k){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){m.value=Math.max(1,
-Math.min(h,Math.max(parseInt(m.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(m.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=ca.get(),n=1/d.pageScale,k=t.checked;if(k)var n=parseInt(T.value),r=parseInt(O.value),n=Math.min(p.height*r/(g.height/d.view.scale),p.width*n/(g.width/d.view.scale));else n=parseInt(q.value)/(100*d.pageScale),isNaN(n)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*
-c);p.height=Math.ceil(p.height*c);n*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,n,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=
-function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,n,e,h,f,!0)}return b}var c=parseInt(V.value)/100;isNaN(c)&&(c=1,V.value="100 %");var c=.75*c,g=w.value,e=m.value,h=!k.checked,n=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||
-(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var y=a.pages[u],g=y==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,l=null,x=null;null==y.viewState&&null==y.mapping&&null==y.root&&a.updatePageRoot(y);null!=y.viewState?(e=y.viewState.pageVisible,r=y.viewState.mathEnabled,l=y.viewState.background,x=y.viewState.backgroundImage):null!=y.mapping&&null!=y.mapping.diagramMap&&(r="0"!=y.mapping.diagramMap.get("mathEnabled"),l=y.mapping.diagramMap.get("background"),
-x=y.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);g.background=l;g.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;g.pageVisible=e;g.mathEnabled=r;var v=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?u+1:v.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(y);g.model.setRoot(y.root)}n=b(g,n,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else n=b(f);n.mathEnabled&&
-(h=n.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),
-h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));n.closeDocument();!n.mathEnabled&&d&&PrintDialog.printPreview(n)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");
-e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");n.appendChild(k);e=document.createElement("span");
-mxUtils.write(e,mxResources.get("printAllPages"));n.appendChild(e);mxUtils.br(n);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");n.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";n.appendChild(w);e=document.createElement("span");
-mxUtils.write(e,mxResources.get("to"));n.appendChild(e);var m=w.cloneNode(!0);n.appendChild(m);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(m,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(m,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;m.value=p;break}w.setAttribute("max",h);m.setAttribute("max",h);1<h&&g.appendChild(n);var l=document.createElement("div");
-l.style.marginBottom="10px";var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");l.appendChild(x);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));l.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";l.appendChild(q);mxEvent.addListener(q,"focus",function(){x.checked=!0});
-g.appendChild(l);var n=n.cloneNode(!1),t=x.cloneNode(!0);t.setAttribute("value","fit");x.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);n.appendChild(e);l=document.createElement("table");l.style.display="inline-block";var J=document.createElement("tbody"),K=document.createElement("tr"),M=K.cloneNode(!0),S=document.createElement("td"),D=S.cloneNode(!0),W=S.cloneNode(!0),Q=S.cloneNode(!0),
-X=S.cloneNode(!0),U=S.cloneNode(!0);S.style.textAlign="right";Q.style.textAlign="right";mxUtils.write(S,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";D.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));W.appendChild(e);mxUtils.write(Q,mxResources.get("fitToBy"));var O=T.cloneNode(!0);X.appendChild(O);
-mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(O,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));U.appendChild(e);K.appendChild(S);K.appendChild(D);K.appendChild(W);M.appendChild(Q);M.appendChild(X);M.appendChild(U);J.appendChild(K);J.appendChild(M);l.appendChild(J);n.appendChild(l);g.appendChild(n);n=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
-"12px";mxUtils.write(e,mxResources.get("paperSize"));n.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var ca=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));n.appendChild(e);var V=document.createElement("input");V.style.cssText="margin:0 8px 0 8px;";V.setAttribute("value","100 %");V.style.width="60px";n.appendChild(V);
-g.appendChild(n);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&e.appendChild(n);a.isOffline()||(l=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),l.className="geBtn",e.appendChild(l));PrintDialog.previewEnabled&&(l=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
-c(!1)}),l.className="geBtn",e.appendChild(l));l=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});l.className="geBtn gePrimaryBtn";e.appendChild(l);a.editor.cancelFirst||e.appendChild(n);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1,
+Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*
+c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=
+function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||
+(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"),
+v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m=b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&&
+(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),
+h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");
+e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span");
+mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span");
+mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div");
+n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0});
+g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"),K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0),
+W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V);
+mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G);m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
+"12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e);var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M);
+g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
+c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),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)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=
this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,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(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";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.sidebarFooterHeight=36;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.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
-!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(n){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
-6<a.length}catch(h){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(n){}})();
+!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(m){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
+6<a.length}catch(h){}};c.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{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(m){}})();
EditorUi.prototype.openLink=function(a,b){return this.editor.graph.openLink(a,b)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return"1"==urlParams.appcache||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,
length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=d.spin;d.spin=function(c,g){var e=!1;this.active||(f.call(this,c),this.active=!0,null!=g&&(e=document.createElement("div"),e.style.position="absolute",e.style.whiteSpace="nowrap",e.style.background="#4B4243",e.style.color="white",e.style.fontFamily="Helvetica, Arial",e.style.fontSize="9pt",e.style.padding="6px",e.style.paddingLeft="10px",e.style.paddingRight=
"10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=g+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,g)}));this.stop();return a}),e=!0);return e};var g=d.stop;d.stop=function(){g.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,d){var b=g;g+=d;return a.substring(b,g)}function f(a){a=d(a,4);return a.charCodeAt(3)+
(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var g=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(g-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var d=mxUtils.parseXml(a),b=this.editor.extractGraphModel(d.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(p){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var n=mxUtils.parseXml(d),h=this.editor.extractGraphModel(n.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(w){}return b};EditorUi.prototype.validateFileData=
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var m=mxUtils.parseXml(d),h=this.editor.extractGraphModel(m.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(w){}return b};EditorUi.prototype.validateFileData=
function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");
if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,n,h,k,u,m,r){b=null!=b?b:this.editor.graph;n=null!=n?n:!1;m=null!=m?m:!0;var d,f=null;null==c||
+this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,m,h,k,u,l,r){b=null!=b?b:this.editor.graph;m=null!=m?m:!1;l=null!=l?l:!0;var d,f=null;null==c||
c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var p=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(p);if(b.decompress(g)!=p)return p;p=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(p,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(p)}r?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",
-navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!n&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!n&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,m,f);return a};EditorUi.prototype.getXmlFileData=
+navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!m&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!m&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,l,f);return a};EditorUi.prototype.getXmlFileData=
function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,n,h,k,u,m){n=null!=n?n:!0;k=null!=k?k:this.getXmlFileData(n,null!=h?h:!1);m=null!=m?m:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
-var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(k,h,m,window.location.href,a,b,c,e,n,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,n,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
-b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==n&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
-n&&(n=n.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==n?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=n?
-'<meta http-equiv="refresh" content="0;URL=\''+n+"'\"/>\n":"")+"</head>\n<body"+(null==n&&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;">'+e+"</div>\n</div>\n"+(null==n?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+n+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,n){null!=n&&(n=n.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==n?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=n?'<meta http-equiv="refresh" content="0;URL=\''+n+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==n?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-n+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
+e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,m,h,k,u,l){m=null!=m?m:!0;k=null!=k?k:this.getXmlFileData(m,null!=h?h:!1);l=null!=l?l:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
+var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(k,h,l,window.location.href,a,b,c,e,m,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,m,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
+b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==m&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
+m&&(m=m.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=m?
+'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&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;">'+e+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,m){null!=m&&(m=m.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==m?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==m?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
+m+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,c,e,n,h){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
-var d=this.getBaseFilename(),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,n));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,
-function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b);this.editor.graph.pageVisible=c;return f}catch(H){this.handleError(H)}}));else{var p=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var m=this.editor.graph.background;
-m==mxConstants.NONE&&(m=null);var l=this.editor.graph.getSvg(m,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(l);this.convertImages(l,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(F){this.handleError(F)}};
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,c,e,m,h){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
+var d=this.getBaseFilename(),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,m));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,
+function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b);this.editor.graph.pageVisible=c;return f}catch(L){this.handleError(L)}}));else{var p=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var l=this.editor.graph.background;
+l==mxConstants.NONE&&(l=null);var n=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(n);this.convertImages(n,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(z){this.handleError(z)}};
EditorUi.prototype.createDownloadRequest=function(a,b,c,e){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&base64="+e+"&embedXml="+
d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();
this.editor.graph.model.clear();this.editor.undoManager.clear();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.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();
this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.chromeless||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):
-this.editor.graph.lightbox&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(n){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(n){}}catch(n){null!=
-window.console&&console.log("error in fileLoaded:",a,n);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=n&&null!=n.message?":err:"+encodeURIComponent(n.message):"")+(null!=n&&null!=n.stack?"&stack="+encodeURIComponent(n.stack):"")}catch(h){}this.handleError(n,mxResources.get("errorLoadingFile"),mxUtils.bind(this,
+this.editor.graph.lightbox&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(m){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(m){}}catch(m){null!=
+window.console&&console.log("error in fileLoaded:",a,m);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=m&&null!=m.message?":err:"+encodeURIComponent(m.message):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}catch(h){}this.handleError(m,mxResources.get("errorLoadingFile"),mxUtils.bind(this,
function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){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!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,n,h,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,m,h,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=
function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=
function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&
(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=
0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=
b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));
-return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;c=m.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&m.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var r=document.createElement("div");r.style.position="absolute";r.style.right="0px";r.style.top=
-"5px";mxClient.IS_QUIRKS||8==document.documentMode||(r.style.backgroundColor="inherit");m.style.position="relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title",mxResources.get("close"));l.setAttribute("align","top");l.setAttribute("border","0");l.className="geButton";l.style.marginRight="1px";l.style.marginTop="-1px";r.appendChild(l);var v=null;mxEvent.addListener(l,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=
-mxUtils.bind(this,function(){this.closeLibrary(a)});null!=v?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var q=this.editor.graph,t=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=l.cloneNode(!1),
-t.setAttribute("src",Editor.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="2px",t.style.marginTop="-2px",r.insertBefore(t,r.firstChild),m.style.paddingRight=18*r.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&(t.parentNode.removeChild(t),m.style.paddingRight=18*r.childNodes.length+"px")})):null==v&&(v=l.cloneNode(!1),v.setAttribute("src",IMAGE_PATH+"/download.png"),v.setAttribute("title",
-mxResources.get("save")),r.insertBefore(v,r.firstChild),mxEvent.addListener(v,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==v||a.isModified()||(m.style.paddingRight=18*r.childNodes.length+"px",v.parentNode.removeChild(v),v=null)});mxEvent.consume(d)})),m.style.paddingRight=18*r.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=
-0;g<a.length;g++){var h=q.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);G(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),H=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),
-q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=q.getSelectionCells(),b=q.view.getBounds(d),c=q.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=q.view.translate.x;b.y-=q.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility=
-"hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),
-k.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,H(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility=
+return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var r=document.createElement("div");r.style.position="absolute";r.style.right="0px";r.style.top=
+"5px";mxClient.IS_QUIRKS||8==document.documentMode||(r.style.backgroundColor="inherit");l.style.position="relative";var n=document.createElement("img");n.setAttribute("src",Dialog.prototype.closeImage);n.setAttribute("title",mxResources.get("close"));n.setAttribute("align","top");n.setAttribute("border","0");n.className="geButton";n.style.marginRight="1px";n.style.marginTop="-1px";r.appendChild(n);var q=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=
+mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var y=this.editor.graph,t=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),F=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=n.cloneNode(!1),
+t.setAttribute("src",Editor.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="2px",t.style.marginTop="-2px",r.insertBefore(t,r.firstChild),l.style.paddingRight=18*r.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&(t.parentNode.removeChild(t),l.style.paddingRight=18*r.childNodes.length+"px")})):null==q&&(q=n.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",
+mxResources.get("save")),r.insertBefore(q,r.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*r.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*r.childNodes.length+"px")}),H=mxUtils.bind(this,function(a,d,c,e){a=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(a)));for(var g=
+0;g<a.length;g++){var h=y.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);F(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),L=mxUtils.bind(this,function(a){if(y.isSelectionEmpty())y.getRubberband().isActive()?(y.getRubberband().execute(a),
+y.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=y.getSelectionCells(),b=y.view.getBounds(d),c=y.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=y.view.translate.x;b.y-=y.view.translate.y;H(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.shape&&(y.graphHandler.shape.node.style.visibility=
+"hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,null!=y.graphHandler.guide&&y.graphHandler.guide.setVisible(!1),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),
+k.style.cursor="default",this.sidebar.showTooltips=!0,y.panningManager.stop(),y.graphHandler.reset(),y.isMouseDown=!1,y.autoScroll=!0,L(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.graphHandler.shape&&(y.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",y.autoScroll=!0,null!=y.graphHandler.guide&&y.graphHandler.guide.setVisible(!0),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility=
"visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border=
-"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,p,n,r,m,l){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,n),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&
-0<b.length&&(f.parentNode.removeChild(f),f=null);else{var w=!1,u=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);G(a);this.spinner.stop();w=!0}catch(V){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),g=0;g<p.length;g++){var h=mxUtils.getTextContent(p[g]),n=this.stringToCells(this.editor.graph.decompress(h)),
-r=this.editor.graph.getBoundingBoxFromGeometry(n);C(n,new mxRectangle(0,0,r.width,r.height),a)}w=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}}w||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=l&&null!=r&&(/(\.vsdx)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(l,function(a){u(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(d,r)&&null!=l?this.parseFile(l,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?u(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",
-k.style.cursor="");a.stopPropagation();a.preventDefault()}));l=l.cloneNode(!1);l.setAttribute("src",IMAGE_PATH+"/edit.gif");l.setAttribute("title",mxResources.get("edit"));r.insertBefore(l,r.firstChild);mxEvent.addListener(l,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=l.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));r.insertBefore(c,r.firstChild);mxEvent.addListener(c,"click",H);this.isOffline()||".scratchpad"!=
-a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:gray;text-decoration:none;",c.className="geButton",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),r.insertBefore(c,r.firstChild))}m.appendChild(r);m.style.paddingRight=18*r.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
+"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,p,m,r,u,l){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,m),d)],d[0].vertex=!0,H(d,new mxRectangle(0,0,p,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&
+0<b.length&&(f.parentNode.removeChild(f),f=null);else{var n=!1,w=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);F(a);this.spinner.stop();n=!0}catch(M){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),g=0;g<p.length;g++){var h=mxUtils.getTextContent(p[g]),m=this.stringToCells(this.editor.graph.decompress(h)),
+r=this.editor.graph.getBoundingBoxFromGeometry(m);H(m,new mxRectangle(0,0,r.width,r.height),a)}n=!0}catch(M){null!=window.console&&console.log("error in drop handler:",M)}}n||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=l&&null!=r&&(/(\.vsdx)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(l,function(a){w(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(d,r)&&null!=l?this.parseFile(l,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",
+k.style.cursor="");a.stopPropagation();a.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",IMAGE_PATH+"/edit.gif");n.setAttribute("title",mxResources.get("edit"));r.insertBefore(n,r.firstChild);mxEvent.addListener(n,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=n.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));r.insertBefore(c,r.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=
+a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:gray;text-decoration:none;",c.className="geButton",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),r.insertBefore(c,r.firstChild))}l.appendChild(r);l.style.paddingRight=18*r.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position=
"relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),
Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",
Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor=
"#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,n){a=new ImageDialog(this,a,b,c,e,n);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,n){a=new LibraryDialog(this,a,b,c,e,n);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
+EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,m){a=new ImageDialog(this,a,b,c,e,m);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
+!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,m){a=new LibraryDialog(this,a,b,c,e,m);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,
function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=
typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),
a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=
-function(a,b,c,e,n,h,k){a=new ErrorDialog(this,a,b,c,e,n,h,k);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,n)).container,
+function(a,b,c,e,m,h,k){a=new ErrorDialog(this,a,b,c,e,m,h,k);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,m){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,m)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||
d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
-"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,n){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",
+"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,m){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",
!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");
-document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(u){}}else this.createEchoRequest(a,b,c,e,n).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,n,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=n?"&format="+n:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
-function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),k=0;k<f;++k){for(var m=1024*k,l=Math.min(m+1024,c),r=Array(l-m),q=0;m<l;++q,++m)r[q]=d[m].charCodeAt(0);e[k]=new Uint8Array(r)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,n,h,k){h=null!=h?h:!1;k=null!=k?k:"vsdx"!=n&&(!mxClient.IS_IOS||!navigator.standalone);n=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,
-6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(v){this.handleError(v)}}))}catch(z){this.handleError(z)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
-mxResources.get("download"),!1,h,k,null,null,4<n?3:4,a,c,e);this.showDialog(b.container,420,n==(mxClient.IS_IOS?0:1)?160:4<n?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
+document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(u){}}else this.createEchoRequest(a,b,c,e,m).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,m,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=m?"&format="+m:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
+function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),k=0;k<f;++k){for(var l=1024*k,n=Math.min(l+1024,c),r=Array(n-l),q=0;l<n;++q,++l)r[q]=d[l].charCodeAt(0);e[k]=new Uint8Array(r)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,m,h,k){h=null!=h?h:!1;k=null!=k?k:"vsdx"!=m&&(!mxClient.IS_IOS||!navigator.standalone);m=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,
+6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(C){this.handleError(C)}}))}catch(A){this.handleError(A)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
+mxResources.get("download"),!1,h,k,null,null,4<m?3:4,a,c,e);this.showDialog(b.container,420,m==(mxClient.IS_IOS?0:1)?160:4<m?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,
-function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,n){this.isLocalFileSave()?this.saveLocalFile(c,
-a,e,n,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,n,b,d)}),c,n,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,n,h,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,
-mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(A){this.handleError(A)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(A){this.handleError(A)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
-mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,null,4<d?3:4,e,h,n);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,n,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,n,h,k,m,l){if(this.spinner.spin(document.body,
-mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,k,m,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",p=mxUtils.bind(this,function(a){this.spinner.stop();n&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
+function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,m){this.isLocalFileSave()?this.saveLocalFile(c,
+a,e,m,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,m,b,d)}),c,m,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,m,h,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,
+mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(y){this.handleError(y)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(y){this.handleError(y)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,null,4<d?3:4,e,h,m);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,m,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,m,h,k,l,n){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,k,l,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",p=mxUtils.bind(this,function(a){this.spinner.stop();m&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,n));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||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(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,p,this.thumbImageCache)):p(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,n,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
-"disabled");h&&(a.appendChild(d),mxUtils.write(a,b),n||mxUtils.br(a));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,p,this.thumbImageCache)):p(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,m,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
+"disabled");h&&(a.appendChild(d),mxUtils.write(a,b),m||mxUtils.br(a));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");
c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,
300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?
"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft="8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");
f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",k=
null,k=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";a.appendChild(k);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};
-EditorUi.prototype.createLink=function(a,b,c,e,n,h,k,m){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=n&&0<n.length&&f.push("edit="+encodeURIComponent(n)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);
-break}a=!0;null!=k?c="#U"+encodeURIComponent(k):(d=this.getCurrentFile(),m||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
-"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,n,h,k,m,l,r,q){this.getBasenames();var d={};""!=n&&n!=mxConstants.NONE&&(d.highlight=n);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];k&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
-d.resize=!0);m&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=r&&0<r.length&&(d.edit=r);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+EditorUi.prototype.createLink=function(a,b,c,e,m,h,k,l){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=m&&0<m.length&&f.push("edit="+encodeURIComponent(m)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);
+break}a=!0;null!=k?c="#U"+encodeURIComponent(k):(d=this.getCurrentFile(),l||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,m,h,k,l,n,r,q){this.getBasenames();var d={};""!=m&&m!=mxConstants.NONE&&(d.highlight=m);"auto"!==e&&(d.target=e);n||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];k&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
+d.resize=!0);l&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),d.toolbar=c.join(" "));null!=r&&0<r.length&&(d.edit=r);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";
var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";p.setAttribute("value","url");p.setAttribute("type","radio");p.setAttribute("name","type-embedhtmldialog");f=p.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(p);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));
-g.appendChild(k);var r=this.getCurrentFile();null==c&&null!=r&&r.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(r.getId())})));f.setAttribute("checked","checked");null==c&&p.setAttribute("disabled","disabled");d.appendChild(g);var m=
-this.addLinkSection(d),l=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");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="100%";d.appendChild(q);var t=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),G=this.addCheckbox(d,mxResources.get("layers"),!0),
-C=this.addCheckbox(d,mxResources.get("lightbox"),!0),H=this.addEditButton(d,C),y=H.getEditInput();y.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled");y.checked&&C.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(p.checked?c:null,l.checked,q.value,m.getTarget(),m.getColor(),t.checked,B.checked,
-G.checked,C.checked,H.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,n,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
+g.appendChild(k);var r=this.getCurrentFile();null==c&&null!=r&&r.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(r.getId())})));f.setAttribute("checked","checked");null==c&&p.setAttribute("disabled","disabled");d.appendChild(g);var l=
+this.addLinkSection(d),n=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");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="100%";d.appendChild(q);var t=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),F=this.addCheckbox(d,mxResources.get("layers"),!0),
+H=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,H),x=L.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(H,"change",function(){H.checked?x.removeAttribute("disabled"):x.setAttribute("disabled","disabled");x.checked&&H.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(p.checked?c:null,n.checked,q.value,l.getTarget(),l.getColor(),t.checked,B.checked,
+F.checked,H.checked,L.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,m,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var k=document.createElement("div");k.style.whiteSpace="normal";mxUtils.write(k,mxResources.get("linkAccountRequired"));p.appendChild(k);k=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));
k.style.marginTop="12px";k.className="geBtn";p.appendChild(k);d.appendChild(p);k=document.createElement("a");k.style.paddingLeft="12px";k.style.color="gray";k.style.fontSize="11px";k.setAttribute("href","javascript:void(0);");mxUtils.write(k,mxResources.get("check"));p.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,
-null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,l=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",d.appendChild(m),mxUtils.write(d,mxResources.get("height")+
-":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=e+"px",d.appendChild(l),mxUtils.br(d);var q=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var t=null;if(null==g||g.constructor!=window.DriveFile||b)t=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var G=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,G),H=C.getEditInput(),y=this.addCheckbox(d,mxResources.get("layers"),
-!0);y.style.marginLeft=H.style.marginLeft;y.style.marginBottom="16px";y.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(y.removeAttribute("disabled"),H.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&G.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){n(q.getTarget(),q.getColor(),null==t?
-!0:t.checked,G.checked,C.getLink(),y.checked,null!=m?m.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
+null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,n=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+
+":"),n=document.createElement("input"),n.setAttribute("type","text"),n.style.width="50px",n.style.marginLeft="6px",n.style.marginBottom="10px",n.value=e+"px",d.appendChild(n),mxUtils.br(d);var q=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var t=null;if(null==g||g.constructor!=window.DriveFile||b)t=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var F=this.addCheckbox(d,mxResources.get("lightbox"),!0),H=this.addEditButton(d,F),L=H.getEditInput(),x=this.addCheckbox(d,mxResources.get("layers"),
+!0);x.style.marginLeft=L.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(x.removeAttribute("disabled"),L.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"));L.checked&&F.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){m(q.getTarget(),q.getColor(),null==t?
+!0:t.checked,F.checked,H.getLink(),x.checked,null!=l?l.value:null,null!=n?n.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),!0);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:146,!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,c,e,k,h,m,l){m=null!=m?m:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==l?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(p);mxUtils.write(d,mxResources.get("zoom")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight=
-"12px";n.value=this.lastExportZoom||"100%";d.appendChild(n);mxUtils.write(d,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.value=this.lastExportBorder||"0";d.appendChild(q);mxUtils.br(d);var u=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),w=this.addCheckbox(d,mxResources.get("selectionOnly"),
-!1,f.isSelectionEmpty()),t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.style.marginLeft="24px";t.setAttribute("disabled","disabled");t.setAttribute("type","checkbox");h&&(d.appendChild(t),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(w,"change",function(){w.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(t.setAttribute("checked","checked"),t.defaultChecked=!0);var H=this.addCheckbox(d,
-mxResources.get("shadow"),f.shadowVisible),y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||y.setAttribute("disabled","disabled");b&&(d.appendChild(y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var L=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,I=this.addCheckbox(d,E?mxResources.get("allPages"):
-"",E,!E,null,"jpeg"!=l);I.style.marginLeft="24px";I.style.marginBottom="16px";E||(I.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&E?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")});m&&E||I.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,u.checked,!w.checked,H.checked,L.checked,y.checked,q.value,t.checked,!I.checked)}),null,c,e);this.showDialog(a.container,
-340,g,!0,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var p=this.addCheckbox(d,mxResources.get("fit"),
-!0),n=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(d,c),l=this.addCheckbox(d,mxResources.get("lightbox"),!0),q=this.addEditButton(d,l),t=q.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),B,!B);G.style.marginLeft=t.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?(B&&G.removeAttribute("disabled"),t.removeAttribute("disabled")):
-(G.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&l.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(p.checked,n.checked,m.checked,l.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,m,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var p="";c&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+d+'"'+p+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
-null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
-EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,m){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var n=" ",l="";e&&(n="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+n+"/>")}))}else l="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=l&&d.setAttribute("style",l),m(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
+function(a,b,c,e,k,h,l,n){l=null!=l?l:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==n?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(p);mxUtils.write(d,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%";d.appendChild(m);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 q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=n),w=this.addCheckbox(d,mxResources.get("selectionOnly"),
+!1,f.isSelectionEmpty()),t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.style.marginLeft="24px";t.setAttribute("disabled","disabled");t.setAttribute("type","checkbox");h&&(d.appendChild(t),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(w,"change",function(){w.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(t.setAttribute("checked","checked"),t.defaultChecked=!0);var L=this.addCheckbox(d,
+mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(d.appendChild(x),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=n),E=null!=this.pages&&1<this.pages.length,Q=this.addCheckbox(d,E?mxResources.get("allPages"):
+"",E,!E,null,"jpeg"!=n);Q.style.marginLeft="24px";Q.style.marginBottom="16px";E||(Q.style.visibility="hidden");mxEvent.addListener(I,"change",function(){I.checked&&E?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled")});l&&E||Q.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=m.value;k(m.value,q.checked,!w.checked,L.checked,I.checked,x.checked,u.value,t.checked,!Q.checked)}),null,c,e);this.showDialog(a.container,
+340,g,!0,!0);m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var p=this.addCheckbox(d,mxResources.get("fit"),
+!0),m=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(d,c),n=this.addCheckbox(d,mxResources.get("lightbox"),!0),q=this.addEditButton(d,n),t=q.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),F=this.addCheckbox(d,mxResources.get("layers"),B,!B);F.style.marginLeft=t.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?(B&&F.removeAttribute("disabled"),t.removeAttribute("disabled")):
+(F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(p.checked,m.checked,l.checked,n.checked,q.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,l,n){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var p="";c&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+d+'"'+p+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){n({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):n({message:mxResources.get("unknownError")})}))}else n({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,l){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var m=" ",n="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");a&&(n+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){l('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=n?' style="'+n+'"':"")+m+"/>")}))}else n="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),n+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),n+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=n&&d.setAttribute("style",n),l(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
" "+mxResources.get("months");d=Math.floor(a/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(a/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(a/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,e){e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var d=null;if("diagram"==a.nodeName)d=a;else if("mxfile"==a.nodeName){var c=a.getElementsByTagName("diagram");if(0<
c.length){var d=c[0],f=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:f.apply(this,arguments)}}}null!=d&&(c=b.decompress(mxUtils.getTextContent(d)),null!=c&&0<c.length&&(a=mxUtils.parseXml(c).documentElement))}c=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=c}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){var d=this.editor.graph,
f=null;if(null!=c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),f=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),e=d.getGlobalVariable,g=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);
d.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==f&&(f=this.getFileData(!0));var e=c.toDataURL("image/png"),e=this.writeGraphModelToPng(e,"zTXt","mxGraphModel",atob(this.editor.graph.compress(f)));a(e.substring(e.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(r){null!=b&&b(r)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)};EditorUi.prototype.getEmbeddedSvg=
function(a,b,c,e,k,h,l){l=b.background;l==mxConstants.NONE&&(l=null);b=b.getSvg(l,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=c&&b.setAttribute("resource",c);if(null!=k)this.convertImages(b,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,e,k,h,l,m,q){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,c,m):null,q)}catch(v){"Invalid image"==v.message?this.downloadFile(q):this.handleError(v)}}),null,
-this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,e,null,null,h,l)}catch(z){this.spinner.stop(),this.handleError(z)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var d=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),c=0,e={},h=mxUtils.bind(this,function(){if(0==c){for(var f=[b[0]],g=1;g<b.length;g++){var h=
-b[g].indexOf(")");f.push('url("');f.push(e[d(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var k=1;k<b.length;k++){var l=b[k].indexOf(")"),m=null,r=b[k].indexOf("format(",l);0<r&&(m=d(b[k].substring(r+7,b[k].indexOf(")",r))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;c++;var d="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(a))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(a))d=
-"application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(a))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(a))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(a))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(a))d="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(d){e[a]=d;c--;h()}),mxUtils.bind(this,
-function(a){c--;h()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(d(b[k].substring(0,l)),m)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,e,k,h,m,l,q,r,t,v,A,F){h=null!=h?h:!0;v=null!=v?v:this.editor.graph;A=null!=A?A:0;var d=q?null:v.background;d==mxConstants.NONE&&(d=null);null==d&&(d=e);null==d&&0==q&&(d=this.editor.graph.defaultPageBackgroundColor);this.convertImages(v.getSvg(d,null,null,F,null,null!=m?m:!0),mxUtils.bind(this,function(c){var f=new Image;f.onload=mxUtils.bind(this,
-function(){try{var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),n=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*n),b/g)):b/g);g=Math.ceil(l*g)+2*A;n=Math.ceil(l*n)+2*A;e.setAttribute("width",g);e.setAttribute("height",n);var p=e.getContext("2d");null!=d&&(p.beginPath(),p.rect(0,0,g,n),p.fillStyle=d,p.fill());p.scale(l,l);p.drawImage(f,A/l,A/l);a(e)}catch(Y){null!=k&&k(Y)}});f.onerror=function(a){null!=k&&k(a)};try{r&&this.editor.graph.addSvgShadow(c);
-var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(v,c,!0,mxUtils.bind(this,function(){f.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(e)}catch(y){null!=k&&k(y)}}),c,t)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,e,k,h,l,n,q){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,c,n):null,q)}catch(C){"Invalid image"==C.message?this.downloadFile(q):this.handleError(C)}}),null,
+this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,e,null,null,h,l)}catch(A){this.spinner.stop(),this.handleError(A)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var d=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),c=0,e={},h=mxUtils.bind(this,function(){if(0==c){for(var f=[b[0]],g=1;g<b.length;g++){var h=
+b[g].indexOf(")");f.push('url("');f.push(e[d(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var k=1;k<b.length;k++){var l=b[k].indexOf(")"),n=null,r=b[k].indexOf("format(",l);0<r&&(n=d(b[k].substring(r+7,b[k].indexOf(")",r))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;c++;var d="application/x-font-ttf";if("svg"==n||/(\.svg)($|\?)/i.test(a))d="image/svg+xml";else if("otf"==n||"embedded-opentype"==n||/(\.otf)($|\?)/i.test(a))d=
+"application/x-font-opentype";else if("woff"==n||/(\.woff)($|\?)/i.test(a))d="application/font-woff";else if("woff2"==n||/(\.woff2)($|\?)/i.test(a))d="application/font-woff2";else if("eot"==n||/(\.eot)($|\?)/i.test(a))d="application/vnd.ms-fontobject";else if("sfnt"==n||/(\.sfnt)($|\?)/i.test(a))d="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(d){e[a]=d;c--;h()}),mxUtils.bind(this,
+function(a){c--;h()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(d(b[k].substring(0,l)),n)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,e,k,h,l,n,q,r,t,C,y,z){h=null!=h?h:!0;C=null!=C?C:this.editor.graph;y=null!=y?y:0;var d=q?null:C.background;d==mxConstants.NONE&&(d=null);null==d&&(d=e);null==d&&0==q&&(d=this.editor.graph.defaultPageBackgroundColor);this.convertImages(C.getSvg(d,null,null,z,null,null!=l?l:!0),mxUtils.bind(this,function(c){var f=new Image;f.onload=mxUtils.bind(this,
+function(){try{var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));n=null!=n?n:1;null!=b&&(n=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(n*g)+2*y;m=Math.ceil(n*m)+2*y;e.setAttribute("width",g);e.setAttribute("height",m);var p=e.getContext("2d");null!=d&&(p.beginPath(),p.rect(0,0,g,m),p.fillStyle=d,p.fill());p.scale(n,n);p.drawImage(f,y/n,y/n);a(e)}catch(X){null!=k&&k(X)}});f.onerror=function(a){null!=k&&k(a)};try{r&&this.editor.graph.addSvgShadow(c);
+var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(C,c,!0,mxUtils.bind(this,function(){f.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(e)}catch(x){null!=k&&k(x)}}),c,t)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
c=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=c.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"!=d.substring(0,19)&&(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,e){null==e&&(e=this.createImageUrlConverter());var d=0,f=c||{};c=mxUtils.bind(this,
function(c,g){for(var h=a.getElementsByTagName(c),k=0;k<h.length;k++)mxUtils.bind(this,function(c){var h=e.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(d++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,c.setAttribute(g,e));d--;0==d&&b(a)})):c.setAttribute(g,k)}else null!=h&&c.setAttribute(g,h)})(h[k])});c("image","xlink:href");c("img","src");0==d&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,e,k,h){try{var d=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||
/(\.gif)($|\?)/i.test(a);k=null!=k?k:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var f=a.getText();if(d){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var f=Array(a.length),e=0;e<a.length;e++)f[e]=String.fromCharCode(a[e]);f=f.join("")}h=null!=h?h:"data:image/png;base64,";f=h+this.base64Encode(f)}b(f)}}else null!=
-c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},d,this.timeout,function(){k&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(x){null!=c&&c(x)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
+c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},d,this.timeout,function(){k&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=c&&c(v)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var d=new Image,c=this;this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){var a=document.createElement("canvas"),f=a.getContext("2d");
-a.height=d.height;a.width=d.width;f.drawImage(d,0,0);try{b(a.toDataURL())}catch(w){b(c.svgBrokenImage.src)}};d.onerror=function(){b(c.svgBrokenImage.src)};d.src=a}};EditorUi.prototype.importXml=function(a,b,c,e,k){b=null!=b?b:0;c=null!=c?c:0;var d=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var p=n.getElementsByTagName("diagram");if(1==p.length)n=
-mxUtils.parseXml(f.decompress(mxUtils.getTextContent(p[0]))).documentElement;else if(1<p.length){f.model.beginUpdate();try{for(a=0;a<p.length;a++){var l=this.updatePageRoot(new DiagramPage(p[a])),m=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[m+1]));f.model.execute(new ChangePage(this,l,l,m))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(d=f.importGraphModel(n,b,c,e))}}catch(A){throw k||this.handleError(A,mxResources.get("invalidOrMissingFile")),
-A;}return d};EditorUi.prototype.importVisio=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)try{this.doImportVisio(a,b,c)}catch(n){c(n)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==
+a.height=d.height;a.width=d.width;f.drawImage(d,0,0);try{b(a.toDataURL())}catch(w){b(c.svgBrokenImage.src)}};d.onerror=function(){b(c.svgBrokenImage.src)};d.src=a}};EditorUi.prototype.importXml=function(a,b,c,e,k){b=null!=b?b:0;c=null!=c?c:0;var d=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),m=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length)m=
+mxUtils.parseXml(f.decompress(mxUtils.getTextContent(p[0]))).documentElement;else if(1<p.length){f.model.beginUpdate();try{for(a=0;a<p.length;a++){var l=this.updatePageRoot(new DiagramPage(p[a])),n=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[n+1]));f.model.execute(new ChangePage(this,l,l,n))}}finally{f.model.endUpdate()}}}null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,b,c,e))}}catch(y){throw k||this.handleError(y,mxResources.get("invalidOrMissingFile")),
+y;}return d};EditorUi.prototype.importVisio=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)try{this.doImportVisio(a,b,c)}catch(m){c(m)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==
typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.importLucidChart=function(a,b,c,e,k){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.pasteLucidChart)try{this.insertLucidChart(a,b,c,e,k)}catch(w){this.handleError(w)}finally{null!=k&&k()}});this.pasteLucidChart||this.loadingExtensions||
this.isOffline()?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.insertLucidChart=function(a,b,c,e,k){k=JSON.parse(a);a=[];if(null!=k.state){k=JSON.parse(k.state);for(var d in k.Pages)a.push(k.Pages[d]);a.sort(function(a,d){return a.Properties.Order<d.Properties.Order?-1:a.Properties.Order>d.Properties.Order?1:0})}else a.push(k);if(0<a.length){this.editor.graph.getModel().beginUpdate();
try{if(this.pasteLucidChart(a[0],b,c,e),null!=this.pages){var f=this.currentPage;for(b=1;b<a.length;b++)this.insertPage(),this.pasteLucidChart(a[b]);this.selectPage(f)}}finally{this.editor.graph.getModel().endUpdate()}}};EditorUi.prototype.insertTextAt=function(a,b,c,e,k,h,l){h=null!=h?h:!0;l=null!=l?l:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,
function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var d=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,c,h,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0,19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,
-26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,c,h,!0),0<g.length)return g}catch(z){}this.loadImage(a,mxUtils.bind(this,function(f){if("data:"==a.substring(0,5))this.resizeImage(f,a,mxUtils.bind(this,function(a,f,e){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),f,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,c,h,!0),0<g.length)return g}catch(A){}this.loadImage(a,mxUtils.bind(this,function(f){if("data:"==a.substring(0,5))this.resizeImage(f,a,mxUtils.bind(this,function(a,f,e){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),f,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
this.convertDataUri(a)+";"))}),l,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/f.width,this.maxImageSize/f.height)),g=Math.round(f.width*e);f=Math.round(f.height*e);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),g,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;d.getModel().beginUpdate();try{f=d.insertVertex(d.getDefaultParent(),
null,a,d.snap(b),d.snap(c),1,1,"text;"+(e?"html=1;":"")),d.updateCellSize(f),d.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{d.getModel().endUpdate()}d.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,h);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26))this.importLucidChart(a,b,c,h);else{d=this.editor.graph;k=null;d.getModel().beginUpdate();try{k=d.insertVertex(d.getDefaultParent(),
null,"",d.snap(b),d.snap(c),1,1,"text;"+(e?"html=1;":"")),d.fireEvent(new mxEventObject("textInserted","cells",[k])),k.value=a,d.updateCellSize(k),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(k.value)&&d.setLinkForCell(k,k.value),k.geometry.width+=d.gridSize,k.geometry.height+=d.gridSize}finally{d.getModel().endUpdate()}return[k]}}return[]};
-EditorUi.prototype.formatFileSize=function(a){var d=-1;do a/=1024,d++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var d=a.indexOf(";");0<d&&(a=a.substring(0,d)+a.substring(a.indexOf(",",d+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.importFile=function(a,b,c,e,k,h,l,m,
-q,r,t){r=null!=r?r:!0;var d=!1,f=null,g=mxUtils.bind(this,function(a){var d=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):d=this.importXml(a,c,e,r);null!=m&&m(d)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=t?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,c,e,r),q=!0)),q||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),r&&f.isGridEnabled()&&(c=f.snap(c),
-e=f.snap(e)),f=[f.insertVertex(null,null,"",c,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,e,r);null!=m&&m(a)})):null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?(d=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(a,l)?(d=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),l)):/(\.vsd)($|\?)/i.test(l)||(f=this.insertTextAt(this.validateFileData(a),c,e,!0,null,r));d||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var d="",b=0,c=a.length,e,h,k;b<c;){e=a.charCodeAt(b++)&255;if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+EditorUi.prototype.formatFileSize=function(a){var d=-1;do a/=1024,d++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var d=a.indexOf(";");0<d&&(a=a.substring(0,d)+a.substring(a.indexOf(",",d+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.importFile=function(a,b,c,e,k,h,l,n,
+q,r,t){r=null!=r?r:!0;var d=!1,f=null,g=mxUtils.bind(this,function(a){var d=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):d=this.importXml(a,c,e,r);null!=n&&n(d)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=t?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,c,e,r),q=!0)),q||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),r&&f.isGridEnabled()&&(c=f.snap(c),
+e=f.snap(e)),f=[f.insertVertex(null,null,"",c,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,e,r);null!=n&&n(a)})):null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?(d=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a,l)?(d=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=n&&n(null))}),l)):/(\.vsd)($|\?)/i.test(l)||(f=this.insertTextAt(this.validateFileData(a),c,e,!0,null,r));d||null==n||n(f);return f};EditorUi.prototype.base64Encode=function(a){for(var d="",b=0,c=a.length,e,h,k;b<c;){e=a.charCodeAt(b++)&255;if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}h=a.charCodeAt(b++);if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);d+="=";break}k=a.charCodeAt(b++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return d};EditorUi.prototype.importFiles=function(a,b,c,e,k,h,l,m,q,r,t,v){b=null!=b?b:0;c=null!=c?c:0;e=null!=e?e:this.maxImageSize;r=null!=r?r:this.maxImageBytes;var d=null!=b&&null!=c,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&
-null!=a)for(var p=t||this.resampleThreshold,n=0;n<a.length;n++)if("image/"==a[n].type.substring(0,6)&&a[n].size>p){g=!0;break}var u=mxUtils.bind(this,function(){var g=this.editor.graph,p=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,c,e,f,g,h,k,p){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,e,f,g,h,k,p,d,v)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,
-mxResources.get("loading")))for(var n=a.length,q=n,u=[],w=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var d=[];g.getModel().beginUpdate();try{for(var c=0;c<u.length;c++){var e=u[c]();null!=e&&(d=d.concat(e))}}finally{g.getModel().endUpdate()}}h(d)}}),x=0;x<n;x++)mxUtils.bind(this,function(d){var h=a[d],n=new FileReader;n.onload=mxUtils.bind(this,function(a){if(null==l||l(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var n=
-a.target.result,m=n.indexOf(","),q=decodeURIComponent(escape(atob(n.substring(m+1)))),y=mxUtils.parseXml(q),q=y.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=v?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?w(d,mxUtils.bind(this,function(){try{if(n.substring(0,m+1),null!=y){var a=
-y.getElementsByTagName("svg");if(0<a.length){var l=a[0],r=parseFloat(l.getAttribute("width")),q=parseFloat(l.getAttribute("height")),t=l.getAttribute("viewBox");if(null==t||0==t.length)l.setAttribute("viewBox","0 0 "+r+" "+q);else if(isNaN(r)||isNaN(q)){var u=t.split(" ");3<u.length&&(r=parseFloat(u[2]),q=parseFloat(u[3]))}n=this.createSvgDataUri(mxUtils.getXml(l));var w=Math.min(1,Math.min(e/Math.max(1,r)),e/Math.max(1,q)),E=k(n,h.type,b+d*p,c+d*p,Math.max(1,Math.round(r*w)),Math.max(1,Math.round(q*
-w)),h.name,f);if(isNaN(r)||isNaN(q)){var v=new Image;v.onload=mxUtils.bind(this,function(){r=Math.max(1,v.width);q=Math.max(1,v.height);E[0].geometry.width=r;E[0].geometry.height=q;l.setAttribute("viewBox","0 0 "+r+" "+q);n=this.createSvgDataUri(mxUtils.getXml(l));var a=n.indexOf(";");0<a&&(n=n.substring(0,a)+n.substring(n.indexOf(",",a+1)));g.setCellStyles("image",n,[E[0]])});v.src=this.createSvgDataUri(mxUtils.getXml(l))}return E}}}catch(ba){}return null})):w(d,mxUtils.bind(this,function(){return k(u,
-"text/xml",b+d*p,c+d*p,0,0,h.name)}))}}else{q=!1;if("image/png"==h.type){var E=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var x=new Image;x.src=a.target.result;w(d,mxUtils.bind(this,function(){return k(E,"text/xml",b+d*p,c+d*p,x.width,x.height,h.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
-mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,l){w(d,mxUtils.bind(this,function(){if(null!=g&&g.length<r){var m=f&&this.isResampleImage(a.target.result,t)?Math.min(1,Math.min(e/n,e/l)):1;return k(g,h.type,b+d*p,c+d*p,Math.round(n*m),Math.round(l*m),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,t)}),mxUtils.bind(this,
-function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})})});/(\.vsdx)($|\?)/i.test(h.name)||/(\.vssx)($|\?)/i.test(h.name)?k(null,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})},h):"image"==h.type.substring(0,5)?n.readAsDataURL(h):n.readAsText(h)})(x)});g?this.confirmImageResize(function(a){f=a;u()},q):u()};EditorUi.prototype.confirmImageResize=function(a,
+2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return d};EditorUi.prototype.importFiles=function(a,b,c,e,k,h,l,n,q,r,t,C){b=null!=b?b:0;c=null!=c?c:0;e=null!=e?e:this.maxImageSize;r=null!=r?r:this.maxImageBytes;var d=null!=b&&null!=c,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&
+null!=a)for(var p=t||this.resampleThreshold,m=0;m<a.length;m++)if("image/"==a[m].type.substring(0,6)&&a[m].size>p){g=!0;break}var u=mxUtils.bind(this,function(){var g=this.editor.graph,p=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,c,e,f,g,h,k,p){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,e,f,g,h,k,p,d,C)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var m=a.length,q=m,u=[],w=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=n)n(u);else{var d=[];g.getModel().beginUpdate();try{for(var c=0;c<u.length;c++){var e=u[c]();null!=e&&(d=d.concat(e))}}finally{g.getModel().endUpdate()}}h(d)}}),v=0;v<m;v++)mxUtils.bind(this,function(d){var h=a[d],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var m=
+a.target.result,n=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(n+1)))),x=mxUtils.parseXml(q),q=x.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=C?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?w(d,mxUtils.bind(this,function(){try{if(m.substring(0,n+1),null!=x){var a=
+x.getElementsByTagName("svg");if(0<a.length){var l=a[0],r=parseFloat(l.getAttribute("width")),q=parseFloat(l.getAttribute("height")),u=l.getAttribute("viewBox");if(null==u||0==u.length)l.setAttribute("viewBox","0 0 "+r+" "+q);else if(isNaN(r)||isNaN(q)){var t=u.split(" ");3<t.length&&(r=parseFloat(t[2]),q=parseFloat(t[3]))}m=this.createSvgDataUri(mxUtils.getXml(l));var w=Math.min(1,Math.min(e/Math.max(1,r)),e/Math.max(1,q)),E=k(m,h.type,b+d*p,c+d*p,Math.max(1,Math.round(r*w)),Math.max(1,Math.round(q*
+w)),h.name,f);if(isNaN(r)||isNaN(q)){var v=new Image;v.onload=mxUtils.bind(this,function(){r=Math.max(1,v.width);q=Math.max(1,v.height);E[0].geometry.width=r;E[0].geometry.height=q;l.setAttribute("viewBox","0 0 "+r+" "+q);m=this.createSvgDataUri(mxUtils.getXml(l));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[E[0]])});v.src=this.createSvgDataUri(mxUtils.getXml(l))}return E}}}catch(fa){}return null})):w(d,mxUtils.bind(this,function(){return k(u,
+"text/xml",b+d*p,c+d*p,0,0,h.name)}))}}else{q=!1;if("image/png"==h.type){var E=C?null:this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var v=new Image;v.src=a.target.result;w(d,mxUtils.bind(this,function(){return k(E,"text/xml",b+d*p,c+d*p,v.width,v.height,h.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
+mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,m,l){w(d,mxUtils.bind(this,function(){if(null!=g&&g.length<r){var n=f&&this.isResampleImage(a.target.result,t)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+d*p,c+d*p,Math.round(m*n),Math.round(l*n),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,t)}),mxUtils.bind(this,
+function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})})});/(\.vsdx)($|\?)/i.test(h.name)||/(\.vssx)($|\?)/i.test(h.name)?k(null,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})},h):"image"==h.type.substring(0,5)?m.readAsDataURL(h):m.readAsText(h)})(v)});g?this.confirmImageResize(function(a){f=a;u()},q):u()};EditorUi.prototype.confirmImageResize=function(a,
b){b=null!=b?b:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},c=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(c,e){if(c||b)mxSettings.setResizeImages(c?e:null),mxSettings.save();d();a(e)};null==c||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,c)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>
-b};EditorUi.prototype.resizeImage=function(a,b,c,e,k,h){k=null!=k?k:this.maxImageSize;var d=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(d/k,f/k);if(1<g){var p=Math.round(d/g),n=Math.round(f/g),l=document.createElement("canvas");l.width=p;l.height=n;l.getContext("2d").drawImage(a,0,0,p,n);var m=l.toDataURL();if(m.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=n;var t=q.toDataURL();m!==t&&(b=m,d=p,f=n)}}}catch(G){}c(b,d,f)};
+b};EditorUi.prototype.resizeImage=function(a,b,c,e,k,h){k=null!=k?k:this.maxImageSize;var d=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(d/k,f/k);if(1<g){var p=Math.round(d/g),m=Math.round(f/g),l=document.createElement("canvas");l.width=p;l.height=m;l.getContext("2d").drawImage(a,0,0,p,m);var n=l.toDataURL();if(n.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=m;var t=q.toDataURL();n!==t&&(b=n,d=p,f=m)}}}catch(F){}c(b,d,f)};
EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var c=e,k=0;8>k;k++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[e]=c;EditorUi.prototype.updateCRC=function(a,b,c,e){for(var d=0;d<e;d++)a=EditorUi.prototype.crcTable[(a^b[c+d])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,e,k){function d(a,b){var d=p;p+=b;return a.substring(d,p)}function f(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>
-24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var p=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(d(a,4),"IHDR"!=d(a,4))null!=k&&k();else{d(a,17);k=a.substring(0,p);do{var n=f(a);if("IDAT"==d(a,4)){k=a.substring(0,p-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,c,0,c.length);k+=g(c.length)+b+c+g(e^4294967295);
-k+=a.substring(p-8,a.length);break}k+=a.substring(p-8,p-4+n);d(a,n);d(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var d=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(d):Base64.decode(d,!0);EditorUi.parsePng(c,mxUtils.bind(this,function(a,d,e){a=c.substring(a+8,a+8+e);"zTXt"==d?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
-2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==d&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==d)return!0}))}catch(n){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a){var d=
+24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var p=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(d(a,4),"IHDR"!=d(a,4))null!=k&&k();else{d(a,17);k=a.substring(0,p);do{var m=f(a);if("IDAT"==d(a,4)){k=a.substring(0,p-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,c,0,c.length);k+=g(c.length)+b+c+g(e^4294967295);
+k+=a.substring(p-8,a.length);break}k+=a.substring(p-8,p-4+m);d(a,m);d(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var d=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(d):Base64.decode(d,!0);EditorUi.parsePng(c,mxUtils.bind(this,function(a,d,e){a=c.substring(a+8,a+8+e);"zTXt"==d?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==d&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==d)return!0}))}catch(m){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a){var d=
a.indexOf(",");0<d&&(a=b.getPageById(a.substring(d+1)))&&b.selectPage(a)}"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;c.addListener("pageLinkClicked",function(b,d){a(d.getProperty("href"))});var e=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";if(null!=b.pages&&null!=b.currentPage)for(var d=0;d<b.pages.length;d++)if(b.pages[d]==b.currentPage){0<d&&(a+=(0<a.length?"&":"?")+"page="+d);break}"1"==
-urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var k=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null==d||!c.isPageLink(d)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(d),mxEvent.consume(b));null!=f&&f(b,d)};k.call(this,b,d,e)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,
-null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:h.apply(this,arguments)};var l=c.createLinkForHint;c.createLinkForHint=function(d,e){var f=
-c.isPageLink(d);if(f){var g=d.indexOf(",");0<g&&(g=b.getPageById(d.substring(g+1)),e=null!=g?g.getName():mxResources.get("pageNotFound"))}g=l.call(this,d,e);f&&mxEvent.addListener(g,"click",function(b){a(d);mxEvent.consume(b)});return g};var q=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isPageLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))q.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))a(f),c.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,d=b.getCurrentFile();null!=d&&(a=null!=d.getTitle()?d.getTitle():a);return a};var t=this.actions.get("print");t.setEnabled(!mxClient.IS_IOS||!navigator.standalone);t.visible=t.isEnabled();if(!this.editor.chromeless||this.editor.editable){var r=function(){window.setTimeout(function(){z.innerHTML="&nbsp;";z.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,
+urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var k=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null==d||!c.isPageLink(d)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(d),mxEvent.consume(b));null!=f&&f(b,d)};k.call(this,b,d,e)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,
+null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:h.apply(this,arguments)};var n=c.createLinkForHint;c.createLinkForHint=function(d,e){var f=
+c.isPageLink(d);if(f){var g=d.indexOf(",");0<g&&(g=b.getPageById(d.substring(g+1)),e=null!=g?g.getName():mxResources.get("pageNotFound"))}g=n.call(this,d,e);f&&mxEvent.addListener(g,"click",function(b){a(d);mxEvent.consume(b)});return g};var q=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isPageLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))q.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))a(f),c.getRubberband().reset();
+mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,d=b.getCurrentFile();null!=d&&(a=null!=d.getTitle()?d.getTitle():a);return a};var t=this.actions.get("print");t.setEnabled(!mxClient.IS_IOS||!navigator.standalone);t.visible=t.isEnabled();if(!this.editor.chromeless||this.editor.editable){var r=function(){window.setTimeout(function(){A.innerHTML="&nbsp;";A.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||c.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var d=a.clipboardData||a.originalEvent.clipboardData,c=!1,e=0;e<d.types.length;e++)if("text/"===
-d.types[e].substring(0,5)){c=!0;break}if(!c){var f=d.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(J){}}),!1);var z=document.createElement("div");
-z.style.position="absolute";z.style.whiteSpace="nowrap";z.style.overflow="hidden";z.style.display="block";z.contentEditable=!0;mxUtils.setOpacity(z,0);z.style.width="1px";z.style.height="1px";z.innerHTML="&nbsp;";var v=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
-null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||v||(z.style.left=c.container.scrollLeft+10+"px",z.style.top=c.container.scrollTop+10+"px",c.container.appendChild(z),v=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){z.focus();document.execCommand("selectAll",!1,null)},0):(z.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
-a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!v||224!=b&&17!=b&&91!=b||(v=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),z.parentNode.removeChild(z))}),0)}));mxEvent.addListener(z,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(z),r())}));mxEvent.addListener(z,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(z,!0),r())}));mxEvent.addListener(z,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-(z.innerHTML="&nbsp;",z.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,z);z.innerHTML="&nbsp;"}),0))}),!0);var A=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==z?!0:A.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+d.types[e].substring(0,5)){c=!0;break}if(!c){var f=d.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(G){}}),!1);var A=document.createElement("div");
+A.style.position="absolute";A.style.whiteSpace="nowrap";A.style.overflow="hidden";A.style.display="block";A.contentEditable=!0;mxUtils.setOpacity(A,0);A.style.width="1px";A.style.height="1px";A.innerHTML="&nbsp;";var C=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
+null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||C||(A.style.left=c.container.scrollLeft+10+"px",A.style.top=c.container.scrollTop+10+"px",c.container.appendChild(A),C=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){A.focus();document.execCommand("selectAll",!1,null)},0):(A.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
+a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!C||224!=b&&17!=b&&91!=b||(C=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),A.parentNode.removeChild(A))}),0)}));mxEvent.addListener(A,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(A),r())}));mxEvent.addListener(A,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(A,!0),r())}));mxEvent.addListener(A,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
+(A.innerHTML="&nbsp;",A.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,A);A.innerHTML="&nbsp;"}),0))}),!0);var y=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==A?!0:y.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
this.editor.graph,d=b.cellEditor.text2,c=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=this.highlightElement(d));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var d=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
Math.min(e/Math.max(1,c)),e/Math.max(1,a));b.insertImage(decodeURIComponent(d),c*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==
-typeof mxRuler){t=document.createElement("div");t.style.position="absolute";t.style.top="95px";t.style.left="250px";t.style.width="2000px";t.style.height="30px";t.style.background="whiteSmoke";document.body.appendChild(t);var F=document.createElement("div");F.style.position="absolute";F.style.top="125px";F.style.left="220px";F.style.width="30px";F.style.height="1000px";F.style.background="whiteSmoke";document.body.appendChild(F);var B=document.createElement("div");B.style.position="absolute";B.style.top=
-"95px";B.style.left="220px";B.style.width="30px";B.style.height="30px";B.style.background="whiteSmoke";document.body.appendChild(B);this.vRuler=new mxRuler(this.editor.graph,F,!0);this.hRuler=new mxRuler(this.editor.graph,t,!1)}if("1"==urlParams.test){t=document.getElementById("geFooter");null!=t&&(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=
+typeof mxRuler){t=document.createElement("div");t.style.position="absolute";t.style.top="95px";t.style.left="250px";t.style.width="2000px";t.style.height="30px";t.style.background="whiteSmoke";document.body.appendChild(t);var z=document.createElement("div");z.style.position="absolute";z.style.top="125px";z.style.left="220px";z.style.width="30px";z.style.height="1000px";z.style.background="whiteSmoke";document.body.appendChild(z);var B=document.createElement("div");B.style.position="absolute";B.style.top=
+"95px";B.style.left="220px";B.style.width="30px";B.style.height="30px";B.style.background="whiteSmoke";document.body.appendChild(B);this.vRuler=new mxRuler(this.editor.graph,z,!0);this.hRuler=new mxRuler(this.editor.graph,t,!1)}if("1"==urlParams.test){t=document.getElementById("geFooter");null!=t&&(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)})),t.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}t=document.getElementById("geInfo");null!=t&&t.parentNode.removeChild(t);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var C=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=C&&(C.parentNode.removeChild(C),
-C=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==C&&(!mxClient.IS_IE||10<document.documentMode)&&(C=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=C&&(C.parentNode.removeChild(C),C=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
+this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}t=document.getElementById("geInfo");null!=t&&t.parentNode.removeChild(t);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var H=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=H&&(H.parentNode.removeChild(H),
+H=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==H&&(!mxClient.IS_IE||10<document.documentMode)&&(H=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=H&&(H.parentNode.removeChild(H),H=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=c.view.translate,e=c.view.scale,f=b.x/e-d.x,g=b.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,b=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=b)c.setSelectionCells(this.importXml(b,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/html")){var k=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=k;var p=null,d=b.getElementsByTagName("img");null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(p=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(k=b[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(k,f,g,!0,p,null,n))});p&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=
+"text/html")){var k=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=k;var p=null,d=b.getElementsByTagName("img");null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(p=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(k=b[0].getAttribute("href")));var m=!0,l=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(k,f,g,!0,p,null,m))});p&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){m=
a;l()},mxEvent.isControlDown(a)):l()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,function(a){var b=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,b)),d/Math.max(1,a));c.setSelectionCell(c.insertVertex(null,null,"",f,g,b*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){c.setSelectionCells(this.insertTextAt(h,
f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=
mxSettings.getRecentColors();this.editor.graph.currentEdgeStyle=mxSettings.getCurrentEdgeStyle();this.editor.graph.currentVertexStyle=mxSettings.getCurrentVertexStyle();this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.addListener("styleChanged",mxUtils.bind(this,function(a,b){mxSettings.setCurrentEdgeStyle(this.editor.graph.currentEdgeStyle);mxSettings.setCurrentVertexStyle(this.editor.graph.currentVertexStyle);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());
@@ -2905,8 +2906,8 @@ this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyCo
mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(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.copyCells=function(a,b){var d=this.editor.graph;if(d.isSelectionEmpty())a.innerHTML="";else{var c=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(c));mxUtils.setTextContent(a,encodeURIComponent(e));b?(d.removeCells(c,
!1),d.lastPasteXml=null):(d.lastPasteXml=e,d.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var d=b.getElementsByTagName("span");if(null!=d&&0<d.length&&"application/vnd.lucid.chart.objects"===d[0].getAttribute("data-lucid-type")){var c=d[0].getAttribute("data-lucid-content");null!=c&&0<c.length&&(this.importLucidChart(c,0,0),mxEvent.consume(a))}else{var c=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||
-8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(x){}try{var d=b.getElementsByTagName("span"),l=null!=d&&0<d.length?mxUtils.trim(decodeURIComponent(d[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(x){}c.lastPasteXml==e?c.pasteCounter++:(c.lastPasteXml=e,c.pasteCounter=0);d=c.pasteCounter*c.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?c.setSelectionCells(this.importXml(e,
-d,d)):(f=c.getInsertPoint(),c.isMouseInsertPoint()&&(d=0,c.lastPasteXml==e&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(e,f.x+d,f.y+d,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,d=0;d<a.length;d++)mxEvent.addListener(a[d],"dragleave",
+8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var d=b.getElementsByTagName("span"),l=null!=d&&0<d.length?mxUtils.trim(decodeURIComponent(d[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}c.lastPasteXml==e?c.pasteCounter++:(c.lastPasteXml=e,c.pasteCounter=0);d=c.pasteCounter*c.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?c.setSelectionCells(this.importXml(e,
+d,d)):(f=c.getInsertPoint(),c.isMouseInsertPoint()&&(d=0,c.lastPasteXml==e&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(e,f.x+d,f.y+d,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,d=0;d<a.length;d++)mxEvent.addListener(a[d],"dragleave",
function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[d],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[d],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||
"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var d=this.extractGraphModelFromEvent(a);if(null==d){var c=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=c&&(10==document.documentMode||11==document.documentMode?d=c.getData("Text"):(d=null,d=0<=mxUtils.indexOf(c.types,
"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(c.types,"text/html")?c.getData("text/html"):null,null!=d&&0<d.length?(c=document.createElement("div"),c.innerHTML=d,c=c.getElementsByTagName("img"),0<c.length&&(d=c[0].getAttribute("src"))):0<=mxUtils.indexOf(c.types,"text/plain")&&(d=c.getData("text/plain"))),null!=d&&("data:image/png;base64,"==d.substring(0,22)?(d=this.extractGraphModelFromPng(d),null!=d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?
@@ -2914,7 +2915,7 @@ function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.
EditorUi.prototype.highlightElement=function(a){var b=0,d=0,c,e;if(null==a){e=document.body;var h=document.documentElement;c=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-3}else b=a.offsetTop,d=a.offsetLeft,c=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=b+"px";h.style.left=d+"px";h.style.width=
Math.max(0,c-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var d=new mxCodec(b.ownerDocument),c=new mxGraphModel;d.decode(b,c);b=c.getChildAt(c.getRoot(),0);for(d=0;d<c.getChildCount(b);d++)a.push(c.getChildAt(b,d))}return a};EditorUi.prototype.openFiles=
function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){var c=d.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&
-"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(z){this.handleError(z,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.parseFile(a,mxUtils.bind(this,
+"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.parseFile(a,mxUtils.bind(this,
function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if('{"state":"{\\"Properties\\":'==c.substring(0,26))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.openLocalFile(this.emptyDiagramXml,e,b),this.importLucidChart(c,0,0,null,mxUtils.bind(this,function(){this.editor.undoManager.clear();this.spinner.stop()}));
else if("<mxlibrary"==d.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,d.target.result,a.name))}catch(r){this.handleError(r,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,e,b)}});d.onerror=mxUtils.bind(this,function(a){this.spinner.stop();
this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?d.readAsDataURL(a):d.readAsText(a)})(a[d])};EditorUi.prototype.openLocalFile=function(a,b,c){var d=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(a);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,
@@ -2925,37 +2926,38 @@ a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebar
function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&
this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,
page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,d=!1,c=!1,e=null,h=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,h);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function g(a){if(null!=
-a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(I){}return a}if(f.source==(window.opener||window.parent)){var h=f.data;if("json"==urlParams.proto){try{h=JSON.parse(h)}catch(E){h=null}if(null==h)return;if("dialog"==h.action){this.showError(null!=
+a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(Q){}return a}if(f.source==(window.opener||window.parent)){var h=f.data;if("json"==urlParams.proto){try{h=JSON.parse(h)}catch(E){h=null}if(null==h)return;if("dialog"==h.action){this.showError(null!=
h.titleKey?mxResources.get(h.titleKey):h.title,null!=h.messageKey?mxResources.get(h.messageKey):h.message,null!=h.buttonKey?mxResources.get(h.buttonKey):h.button);null!=h.modified&&(this.editor.modified=h.modified);return}if("prompt"==h.action){this.spinner.stop();var l=new FilenameDialog(this,h.defaultValue||"",null!=h.okKey?mxResources.get(h.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:h}),"*")},null!=h.titleKey?mxResources.get(h.titleKey):h.title);
this.showDialog(l.container,300,80,!0,!1);l.init();return}if("draft"==h.action){l=null;l="data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):g(h.xml);this.spinner.stop();l=new DraftDialog(this,mxResources.get("draftFound",[h.name||this.defaultFilename]),l,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:h}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
result:"discard",message:h}),"*")}),h.editKey?mxResources.get(h.editKey):null,h.discardKey?mxResources.get(h.discardKey):null,h.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:h}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(E){k.postMessage(JSON.stringify({event:"draft",error:E.toString(),message:h}),"*")}return}if("template"==
-h.action){this.spinner.stop();var l=1==h.enableRecent,m=1==h.enableSearch,l=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,d){b=b||this.emptyDiagramXml;null!=h.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,l?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),
-"*")}):null,m?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,d){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:d}),"*")});this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("searchDocsList"==h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,
+h.action){this.spinner.stop();var l=1==h.enableRecent,n=1==h.enableSearch,l=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,d){b=b||this.emptyDiagramXml;null!=h.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,l?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),
+"*")}):null,n?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,d){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:d}),"*")});this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("searchDocsList"==h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,
h.errorMsg);else{if("status"==h.action){null!=h.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(h.messageKey))):null!=h.message&&this.editor.setStatus(mxUtils.htmlEntities(h.message));null!=h.modified&&(this.editor.modified=h.modified);return}if("spinner"==h.action){var p=null!=h.messageKey?mxResources.get(h.messageKey):h.message;null==h.show||h.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==h.action){if("png"==h.format||"xmlpng"==h.format){if(null==
-h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var n=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var q=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(n);k.postMessage(JSON.stringify(b),"*")}),u=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
-"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,y=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
-q.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
-h.xml&&0<h.xml.length&&this.setFileData(h.xml);p=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),p.xml=mxUtils.getXml(l),p.data=this.getFileData(null,null,!0,null,null,null,l),p.format=h.format;else if("html"==h.format)n=this.editor.getGraphXml(),p.data=this.getHtml(n,this.editor.graph),p.xml=mxUtils.getXml(n),p.format=h.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;
+h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var m=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var q=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(m);k.postMessage(JSON.stringify(b),"*")}),u=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
+"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(m))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,x=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
+q.model.setRoot(x.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(m)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
+h.xml&&0<h.xml.length&&this.setFileData(h.xml);p=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),p.xml=mxUtils.getXml(l),p.data=this.getFileData(null,null,!0,null,null,null,l),p.format=h.format;else if("html"==h.format)m=this.editor.getGraphXml(),p.data=this.getHtml(m,this.editor.graph),p.xml=mxUtils.getXml(m),p.format=h.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;
l==mxConstants.NONE&&(l=null);p.xml=this.getFileData(!0);p.format="svg";if(h.embedImages||null==h.embedImages){if(null==h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==h.format?this.getEmbeddedSvg(p.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(a);k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(l),
mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(p),"*")}));return}l="xmlsvg"==h.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(l));p.data=this.createSvgDataUri(l)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==h.action)c=1==h.autosave,this.hideDialog(),null!=h.modified&&null==urlParams.modified&&(urlParams.modified=
h.modified),null!=h.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=h.saveAndExit),null!=h.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,h.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),h=null!=h.xmlpng?this.extractGraphModelFromPng(h.xmlpng):null!=h.xml&&"data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):h.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(h)}),"*");return}}}h=g(h);d=!0;try{a(h,f)}catch(E){this.handleError(E)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");var L=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
-1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=L();c&&null==b&&(b=mxUtils.bind(this,function(a,b){var c=L();if(c!=e&&!d){var f=this.createLoadMessage("autosave");f.xml=c;c=JSON.stringify(f);(window.opener||window.parent).postMessage(c,"*")}e=c}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
+this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),h=null!=h.xmlpng?this.extractGraphModelFromPng(h.xmlpng):null!=h.xml&&"data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):h.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(h)}),"*");return}}}h=g(h);d=!0;try{a(h,f)}catch(E){this.handleError(E)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
+1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();c&&null==b&&(b=mxUtils.bind(this,function(a,b){var c=I();if(c!=e&&!d){var f=this.createLoadMessage("autosave");f.xml=c;c=JSON.stringify(f);(window.opener||window.parent).postMessage(c,"*")}e=c}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}}));var k=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):
urlParams.ready||"ready";k.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize=
"12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=
-function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),d=[];if(0<b.length){var c={},e=null,h=null,k="auto",l="auto",m=40,q=40,t=0,v=this.editor.graph;v.getGraphBounds();
-for(var A=function(){v.setSelectionCells(T);v.scrollCellToVisible(v.getSelectionCell())},F=v.getFreeInsertPoint(),B=F.x,G=F.y,F=G,C=null,H="auto",y=[],L=null,E=null,I=0;I<b.length&&"#"==b[I].charAt(0);){a=b[I];for(I++;I<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[I].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[I].substring(1)),I++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var R=mxUtils.trim(a.substring(1,Y)),P=mxUtils.trim(a.substring(Y+1));"label"==R?C=v.sanitizeHtml(P):"style"==
-R?e=P:"identity"==R&&0<P.length&&"-"!=P?h=P:"width"==R?k=P:"height"==R?l=P:"ignore"==R?E=P.split(","):"connect"==R?y.push(JSON.parse(P)):"link"==R?L=P:"padding"==R?t=parseFloat(P):"edgespacing"==R?m=parseFloat(P):"nodespacing"==R?q=parseFloat(P):"layout"==R&&(H=P)}}}var J=this.editor.csvToArray(b[I]);a=null;if(null!=h)for(var K=0;K<J.length;K++)if(h==J[K]){a=K;break}null==C&&(C="%"+J[0]+"%");if(null!=y)for(var M=0;M<y.length;M++)null==c[y[M].to]&&(c[y[M].to]={});v.model.beginUpdate();try{for(K=I+
-1;K<b.length;K++){var S=this.editor.csvToArray(b[K]);if(S.length==J.length){var D=null,W=null!=a?S[a]:null;null!=W&&(D=v.model.getCell(W));null==D&&(D=new mxCell(C,new mxGeometry(B,F,0,0),e||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=W);for(var Q=0;Q<S.length;Q++)v.setAttributeForCell(D,J[Q],S[Q]);v.setAttributeForCell(D,"placeholders","1");D.style=v.replacePlaceholders(D,D.style);for(M=0;M<y.length;M++)c[y[M].to][D.getAttribute(y[M].to)]=D;null!=L&&"link"!=L&&(v.setLinkForCell(D,D.getAttribute(L)),
-v.setAttributeForCell(D,L,null));v.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var X=this.editor.graph.getPreferredSizeForCell(D);D.geometry.width="auto"==k?X.width+t:parseFloat(k);D.geometry.height="auto"==l?X.height+t:parseFloat(l);F+=D.geometry.height+q;d.push(v.addCell(D))}}for(var U=d.slice(),T=d.slice(),M=0;M<y.length;M++)for(var O=y[M],K=0;K<d.length;K++){var D=d[K],ca=D.getAttribute(O.from);if(null!=ca){v.setAttributeForCell(D,O.from,null);for(var V=ca.split(","),Q=0;Q<V.length;Q++){var Z=
-c[O.to][V[Q]];null!=Z&&(C=O.label,null!=O.fromlabel&&(C=(D.getAttribute(O.fromlabel)||"")+(C||"")),null!=O.tolabel&&(C=(C||"")+(Z.getAttribute(O.tolabel)||"")),T.push(v.insertEdge(null,null,C||"",O.invert?Z:D,O.invert?D:Z,O.style||v.createCurrentEdgeStyle())),mxUtils.remove(O.invert?D:Z,U))}}}if(null!=E)for(K=0;K<d.length;K++)for(D=d[K],Q=0;Q<E.length;Q++)v.setAttributeForCell(D,mxUtils.trim(E[Q]),null);var aa=new mxParallelEdgeLayout(v);aa.spacing=m;var ja=function(){aa.execute(v.getDefaultParent());
-for(var a=0;a<d.length;a++){var b=v.getCellGeometry(d[a]);b.x=Math.round(v.snap(b.x));b.y=Math.round(v.snap(b.y));"auto"==k&&(b.width=Math.round(v.snap(b.width)));"auto"==l&&(b.height=Math.round(v.snap(b.height)))}};if("circle"==H){var da=new mxCircleLayout(v);da.resetEdges=!1;var ma=da.isVertexIgnored;da.isVertexIgnored=function(a){return ma.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){da.execute(v.getDefaultParent());ja()},!0,A);A=null}else if("horizontaltree"==H||
-"verticaltree"==H||"auto"==H&&T.length==2*d.length-1&&1==U.length){v.view.validate();var fa=new mxCompactTreeLayout(v,"horizontaltree"==H);fa.levelDistance=q;fa.edgeRouting=!1;fa.resetEdges=!1;this.executeLayout(function(){fa.execute(v.getDefaultParent(),0<U.length?U[0]:null)},!0,A);A=null}else if("horizontalflow"==H||"verticalflow"==H||"auto"==H&&1==U.length){v.view.validate();var ka=new mxHierarchicalLayout(v,"horizontalflow"==H?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ka.intraCellSpacing=
-q;ka.disableEdgeStyle=!1;this.executeLayout(function(){ka.execute(v.getDefaultParent(),T);v.moveCells(T,B,G)},!0,A);A=null}else if("organic"==H||"auto"==H&&T.length>d.length){v.view.validate();var ba=new mxFastOrganicLayout(v);ba.forceConstant=3*q;ba.resetEdges=!1;var qa=ba.isVertexIgnored;ba.isVertexIgnored=function(a){return qa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};aa=new mxParallelEdgeLayout(v);aa.spacing=m;this.executeLayout(function(){ba.execute(v.getDefaultParent());ja()},!0,A);A=null}this.hideDialog()}finally{v.model.endUpdate()}null!=
-A&&A()}}catch(na){this.handleError(na)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var d="?",c;for(c in urlParams)0>mxUtils.indexOf(a,c)&&null!=urlParams[c]&&(b+=d+c+"="+urlParams[c],d="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
-c;for(c in urlParams)0>mxUtils.indexOf(d,c)&&(a=0==b?a+"?":a+"&",null!=urlParams[c]&&(a+=c+"="+urlParams[c],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),d=this.editor.graph,c=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(d.container)&&d.pageVisible&&
+function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),d=[];if(0<b.length){var c={},e=null,h=null,k="auto",l="auto",n=null,q=null,t=40,C=40,y=0,z=this.editor.graph;
+z.getGraphBounds();for(var B=function(){z.setSelectionCells(Y);z.scrollCellToVisible(z.getSelectionCell())},F=z.getFreeInsertPoint(),H=F.x,L=F.y,F=L,x=null,I="auto",E=[],Q=null,X=null,R=0;R<b.length&&"#"==b[R].charAt(0);){a=b[R];for(R++;R<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[R].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[R].substring(1)),R++;if("#"!=a.charAt(1)){var Z=a.indexOf(":");if(0<Z){var G=mxUtils.trim(a.substring(1,Z)),K=mxUtils.trim(a.substring(Z+1));"label"==G?x=z.sanitizeHtml(K):
+"style"==G?e=K:"identity"==G&&0<K.length&&"-"!=K?h=K:"width"==G?k=K:"height"==G?l=K:"left"==G&&0<K.length?n=K:"top"==G&&0<K.length?q=K:"ignore"==G?X=K.split(","):"connect"==G?E.push(JSON.parse(K)):"link"==G?Q=K:"padding"==G?y=parseFloat(K):"edgespacing"==G?t=parseFloat(K):"nodespacing"==G?C=parseFloat(K):"layout"==G&&(I=K)}}}var S=this.editor.csvToArray(b[R]);a=null;if(null!=h)for(var J=0;J<S.length;J++)if(h==S[J]){a=J;break}null==x&&(x="%"+S[0]+"%");if(null!=E)for(var N=0;N<E.length;N++)null==c[E[N].to]&&
+(c[E[N].to]={});z.model.beginUpdate();try{for(J=R+1;J<b.length;J++){var U=this.editor.csvToArray(b[J]);if(U.length==S.length){var D=null,W=null!=a?U[a]:null;null!=W&&(D=z.model.getCell(W));null==D&&(D=new mxCell(x,new mxGeometry(H,F,0,0),e||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=W);for(var O=0;O<U.length;O++)z.setAttributeForCell(D,S[O],U[O]);z.setAttributeForCell(D,"placeholders","1");D.style=z.replacePlaceholders(D,D.style);for(N=0;N<E.length;N++)c[E[N].to][D.getAttribute(E[N].to)]=D;null!=
+Q&&"link"!=Q&&(z.setLinkForCell(D,D.getAttribute(Q)),z.setAttributeForCell(D,Q,null));z.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var T=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=n&&null!=D.getAttribute(n)&&(D.geometry.x=H+parseFloat(D.getAttribute(n))),null!=q&&null!=D.getAttribute(q)&&(D.geometry.y=L+parseFloat(D.getAttribute(q))),"@"==k.charAt(0)&&null!=D.getAttribute(k.substring(1))?D.geometry.width=parseFloat(D.getAttribute(k.substring(1))):D.geometry.width=
+"auto"==k?T.width+y:parseFloat(k),"@"==l.charAt(0)&&null!=D.getAttribute(l.substring(1))?D.geometry.height=parseFloat(D.getAttribute(l.substring(1))):D.geometry.height="auto"==l?T.height+y:parseFloat(l),F+=D.geometry.height+C);d.push(z.addCell(D))}}for(var V=d.slice(),Y=d.slice(),N=0;N<E.length;N++)for(var M=E[N],J=0;J<d.length;J++){var D=d[J],ca=D.getAttribute(M.from);if(null!=ca){z.setAttributeForCell(D,M.from,null);for(var da=ca.split(","),O=0;O<da.length;O++){var aa=c[M.to][da[O]];null!=aa&&(x=
+M.label,null!=M.fromlabel&&(x=(D.getAttribute(M.fromlabel)||"")+(x||"")),null!=M.tolabel&&(x=(x||"")+(aa.getAttribute(M.tolabel)||"")),Y.push(z.insertEdge(null,null,x||"",M.invert?aa:D,M.invert?D:aa,M.style||z.createCurrentEdgeStyle())),mxUtils.remove(M.invert?D:aa,V))}}}if(null!=X)for(J=0;J<d.length;J++)for(D=d[J],O=0;O<X.length;O++)z.setAttributeForCell(D,mxUtils.trim(X[O]),null);var ea=new mxParallelEdgeLayout(z);ea.spacing=t;var la=function(){ea.execute(z.getDefaultParent());for(var a=0;a<d.length;a++){var b=
+z.getCellGeometry(d[a]);b.x=Math.round(z.snap(b.x));b.y=Math.round(z.snap(b.y));"auto"==k&&(b.width=Math.round(z.snap(b.width)));"auto"==l&&(b.height=Math.round(z.snap(b.height)))}};if("circle"==I){var ha=new mxCircleLayout(z);ha.resetEdges=!1;var ra=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return ra.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ha.execute(z.getDefaultParent());la()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||"auto"==I&&Y.length==
+2*d.length-1&&1==V.length){z.view.validate();var fa=new mxCompactTreeLayout(z,"horizontaltree"==I);fa.levelDistance=C;fa.edgeRouting=!1;fa.resetEdges=!1;this.executeLayout(function(){fa.execute(z.getDefaultParent(),0<V.length?V[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==V.length){z.view.validate();var ma=new mxHierarchicalLayout(z,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ma.intraCellSpacing=C;ma.disableEdgeStyle=!1;this.executeLayout(function(){ma.execute(z.getDefaultParent(),
+Y);z.moveCells(Y,H,L)},!0,B);B=null}else if("organic"==I||"auto"==I&&Y.length>d.length){z.view.validate();var ba=new mxFastOrganicLayout(z);ba.forceConstant=3*C;ba.resetEdges=!1;var pa=ba.isVertexIgnored;ba.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ea=new mxParallelEdgeLayout(z);ea.spacing=t;this.executeLayout(function(){ba.execute(z.getDefaultParent());la()},!0,B);B=null}this.hideDialog()}finally{z.model.endUpdate()}null!=B&&B()}}catch(ia){this.handleError(ia)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var d="?",c;for(c in urlParams)0>mxUtils.indexOf(a,c)&&null!=urlParams[c]&&(b+=d+c+"="+urlParams[c],d="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+c;for(c in urlParams)0>mxUtils.indexOf(d,c)&&(a=0==b?a+"?":a+"&",null!=urlParams[c]&&(a+=c+"="+urlParams[c],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var n=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=n.apply(this,arguments),d=this.editor.graph,c=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(d.container)&&d.pageVisible&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return c.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(d.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(d.container)&&null!=this.source.minimumGraphSize){var c=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*c.x))/2)-c.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*c.y))/2)-c.y-5/a))}return new mxPoint(8/
a,8/a)};var h=b.init;b.init=function(){h.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=d.getPageLayout(),b=d.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)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,d){var c=d.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=
@@ -2971,8 +2973,8 @@ EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return
this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);
this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("rename").setEnabled(null!=c&&c.isRenamable());this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());
a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.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(a,b,c,e,k,h){var d=a.editor.graph;if("xml"==
-c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(d.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=d.getGraphBounds(),l=Math.floor(g.width*k/d.view.scale),m=Math.floor(g.height*k/d.view.scale);f.length<=MAX_REQUEST_SIZE&&l*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
-encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+m+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};
+c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(d.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=d.getGraphBounds(),l=Math.floor(g.width*k/d.view.scale),n=Math.floor(g.height*k/d.view.scale);f.length<=MAX_REQUEST_SIZE&&l*n<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+n+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};
DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b))}
@@ -2982,10 +2984,10 @@ mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){th
EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var c=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=!1,c=null,k=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=c&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
-a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?e||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){e=!0}))):"undefined"===typeof Editor.MathJaxClear||
-this.editor.graph.mathEnabled||(e=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,e=0;e<c.length;e++)if(c[e]instanceof SelectPage||c[e]instanceof RenamePage||c[e]instanceof MovePage||c[e]instanceof mxRootChange){k();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
-Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=a.getAttribute("pageScale"),c=a.getAttribute("pageWidth"),k=a.getAttribute("pageHeight"),m=a.getAttribute("background"),l=a.getAttribute("backgroundImage"),l=null!=l&&0<l.length?JSON.parse(l):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
-a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:null!=e?e:mxGraph.prototype.pageScale,pageFormat:null!=c&&null!=k?new mxRectangle(0,0,parseFloat(c),parseFloat(k)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
+a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?e||null==this.editor||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){e=!0}))):"undefined"===
+typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||(e=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,e=0;e<c.length;e++)if(c[e]instanceof SelectPage||c[e]instanceof RenamePage||c[e]instanceof MovePage||c[e]instanceof mxRootChange){k();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=a.getAttribute("pageScale"),c=a.getAttribute("pageWidth"),k=a.getAttribute("pageHeight"),l=a.getAttribute("background"),n=a.getAttribute("backgroundImage"),n=null!=n&&0<n.length?JSON.parse(n):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
+a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=n?new mxImage(n.src,n.width,n.height):null,pageScale:null!=e?e:mxGraph.prototype.pageScale,pageFormat:null!=c&&null!=k?new mxRectangle(0,0,parseFloat(c),parseFloat(k)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}};
@@ -3001,11 +3003,11 @@ EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,c=null;e.
EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))};
EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#dcdcdc";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a};
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="12px";b.style.marginLeft="30px";for(var e=this.editor.chromeless?29:59,c=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
-e)/this.pages.length)+1),k=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(c,e){this.pages[c]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",e.style.fontWeight="bold",e.style.borderTopStyle="none"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(e,
-"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(e)})(m,this.createTabForPage(this.pages[m],c,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
-c=this.createPageMenuTab();this.tabContainer.appendChild(c);c=null;this.isPageInsertTabVisible()&&(c=this.createPageInsertTab(),this.tabContainer.appendChild(c));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=c&&(c.style.position="absolute",c.style.right="0px",b.style.marginRight="30px");var l=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");l.style.position="absolute";l.style.right=this.editor.chromeless?"29px":"55px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var q=this.createControlTab(4,
-"&nbsp;&#10095;");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var t=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=t+"px";mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,t-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(l,
-0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,t-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(d,c){this.pages[d]==this.currentPage?(c.className="geActivePage",c.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",c.style.fontWeight="bold",c.style.borderTopStyle="none"):c.className="geInactivePage";c.setAttribute("draggable","true");mxEvent.addListener(c,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=d):mxEvent.consume(b)}));mxEvent.addListener(c,
+"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=k&&d!=k&&this.movePage(k,d);a.stopPropagation();a.preventDefault()}));b.appendChild(c)})(l,this.createTabForPage(this.pages[l],c,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
+c=this.createPageMenuTab();this.tabContainer.appendChild(c);c=null;this.isPageInsertTabVisible()&&(c=this.createPageInsertTab(),this.tabContainer.appendChild(c));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=c&&(c.style.position="absolute",c.style.right="0px",b.style.marginRight="30px");var n=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");n.style.position="absolute";n.style.right=this.editor.chromeless?"29px":"55px";n.style.fontSize="13pt";this.tabContainer.appendChild(n);var q=this.createControlTab(4,
+"&nbsp;&#10095;");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var t=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=t+"px";mxEvent.addListener(n,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,t-20);mxUtils.setOpacity(n,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(n,
+0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,t-20);mxUtils.setOpacity(n,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="8px 4px 8px 4px";b.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";b.style.borderBottomStyle="solid";b.style.backgroundColor=this.tabContainer.style.backgroundColor;
b.style.cursor="default";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b};
EditorUi.prototype.createControlTab=function(a,b){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
@@ -3014,46 +3016,46 @@ function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,funct
null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,arguments);b.destroy()});var c=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(c,k,null,a);this.setCurrentMenu(b);
mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var c=a.getName();e.setAttribute("title",c);mxUtils.write(e,c);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var c=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){c=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&k||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!c){var l=new mxPopupMenu(this.createPageMenu(a));l.div.className+=" geMenubarMenu";l.smartSeparators=!0;l.showDisabled=!0;l.autoExpand=!0;l.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(l,arguments);this.resetCurrentMenu();l.destroy()});var q=mxEvent.getClientX(m),t=mxEvent.getClientY(m);l.popup(q,t,null,m);this.setCurrentMenu(l,b)}mxEvent.consume(m)}}))};
+EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var c=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){c=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&k||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!c){var n=new mxPopupMenu(this.createPageMenu(a));n.div.className+=" geMenubarMenu";n.smartSeparators=!0;n.showDisabled=!0;n.autoExpand=!0;n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments);this.resetCurrentMenu();n.destroy()});var q=mxEvent.getClientX(l),t=mxEvent.getClientY(l);n.popup(q,t,null,l);this.setCurrentMenu(n,b)}mxEvent.consume(l)}}))};
EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,c){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),c);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),c);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),c);e.addSeparator(c);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
mxResources.get("copyOf",[a.getName()]))}),c)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page","previous"]);a.afterEncode=function(a,e,c){c.setAttribute("page",e.page.getId());return c};a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.page=a.ui.getPageById(e.getAttribute("page"));c.previous=c.name;return c};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new ChangePage,["ui","relatedPage","index","neverShown"]);a.afterEncode=function(a,e,c){c.setAttribute("relatedPage",e.relatedPage.getId());null==e.index&&(c.setAttribute("name",e.relatedPage.getName()),null!=e.relatedPage.root&&a.encodeCell(e.relatedPage.root,c));return c};a.beforeDecode=function(a,e,c){c.ui=a.ui;c.relatedPage=c.ui.getPageById(e.getAttribute("relatedPage"));if(null==c.relatedPage){var b=document.createElement("diagram");b.setAttribute("id",e.getAttribute("relatedPage"));
-b.setAttribute("name",e.getAttribute("name"));c.relatedPage=new DiagramPage(b);e=e.cloneNode(!0);b=e.firstChild;if(null!=b)for(c.relatedPage.root=a.decodeCell(b,!1),c=b.nextSibling,b.parentNode.removeChild(b),b=c;null!=b;){c=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var m=b.getAttribute("id");null==a.lookup(m)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=c}}return e};a.afterDecode=function(a,e,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png",b=Graph.prototype.foldCells;
+b.setAttribute("name",e.getAttribute("name"));c.relatedPage=new DiagramPage(b);e=e.cloneNode(!0);b=e.firstChild;if(null!=b)for(c.relatedPage.root=a.decodeCell(b,!1),c=b.nextSibling,b.parentNode.removeChild(b),b=c;null!=b;){c=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var l=b.getAttribute("id");null==a.lookup(l)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=c}}return e};a.afterDecode=function(a,e,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png",b=Graph.prototype.foldCells;
Graph.prototype.foldCells=function(a,c,e,q,t){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var d=e.slice(),f=[],g=0;g<e.length;g++){var k=this.view.getState(e[g]),l=null!=k?k.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})),this.model.setCollapsed(e[g],
a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=d;e=b.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.chromeless&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return w.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=w.getParent(a),b=h.view.getState(a),h.view.getState(a),b="tree"==(null!=b?b.style:h.getCellStyle(a)).containerType);
return b}function e(a){var b=!1;null!=a&&(a=w.getParent(a),b=h.view.getState(a),h.view.getState(a),b=null!=(null!=b?b.style:h.getCellStyle(a)).childLayout);return b}function q(a){a=h.view.getState(a);if(null!=a){var b=h.getIncomingEdges(a.cell);if(0<b.length&&(b=h.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<
a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function t(a,b){b=null!=b?b:!0;h.model.beginUpdate();try{var c=h.model.getParent(a),d=h.getIncomingEdges(a),e=h.cloneCells([d[0],a]);h.model.setTerminal(e[0],h.model.getTerminal(d[0],!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+
-10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),l=h.view.scale;if(null!=k){var m=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var n=h.getOutgoingEdges(h.model.getTerminal(d[0],
-!0));if(null!=n){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,r=g=d=0;r<n.length;r++){var t=h.model.getTerminal(n[r],!1);if(f==q(t)){var y=h.view.getState(t);t!=a&&null!=y&&(p&&b!=y.getCenterX()<k.getCenterX()||!p&&b!=y.getCenterY()<k.getCenterY())&&mxUtils.intersects(m,y)&&(d=10+Math.max(d,(Math.min(m.x+m.width,y.x+y.width)-Math.max(m.x,y.x))/l),g=10+Math.max(g,(Math.min(m.y+m.height,y.y+y.height)-Math.max(m.y,y.y))/l))}}p?g=0:d=0;for(r=0;r<n.length;r++)if(t=h.model.getTerminal(n[r],
-!1),f==q(t)&&(y=h.view.getState(t),t!=a&&null!=y&&(p&&b!=y.getCenterX()<k.getCenterX()||!p&&b!=y.getCenterY()<k.getCenterY()))){var v=[];h.traverse(y.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});h.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function d(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);
+10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),l=h.view.scale;if(null!=k){var n=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:n.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var m=h.getOutgoingEdges(h.model.getTerminal(d[0],
+!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<m.length;t++){var r=h.model.getTerminal(m[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(n,x)&&(d=10+Math.max(d,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/l),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/l))}}p?g=0:d=0;for(t=0;t<m.length;t++)if(r=h.model.getTerminal(m[t],
+!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY()))){var u=[];h.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});h.moveCells(u,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function d(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);
var e=h.model.getParent(a),f=e.geometry,g=[];h.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);h.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var k=a.geometry.width+40,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,l=-40):b==mxConstants.DIRECTION_WEST?(k=-40,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);h.moveCells(g,k,l);return h.addCells(d,e)}finally{h.model.endUpdate()}}function f(a){h.model.beginUpdate();try{var b=
-h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var l=h.view.getBounds(f),m=q(a),n=h.view.translate,p=h.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-
-e.y+40):m==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=m==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/p-n.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,
+h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var l=h.view.getBounds(f),n=q(a),m=h.view.translate,p=h.view.scale;n==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-m.x-e.x+10,d[1].geometry.y+=a.geometry.height-
+e.y+40):n==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-m.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=n==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/p-m.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,
b,c){a=h.getOutgoingEdges(a);c=h.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=h.view.getState(h.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function p(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||
-c==mxConstants.DIRECTION_WEST)==d&&c!=b?n.actions.get("selectParent").funct():c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var n=this,h=n.editor.graph,w=h.getModel();mxResources.parse("selectChildren=Select Children");
-mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var u=n.menus.createPopupMenu;n.menus.createPopupMenu=function(a,c,d){u.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&
-(a.addSeparator(),0<h.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};n.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");n.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),
-a=h.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");n.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");n.actions.addAction("selectDescendants",
-function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+T");var x=h.removeCells;h.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&c(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(h.traverse(g,!0,
-function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return x.apply(this,arguments)};n.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var r=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
-a)}this.model.beginUpdate();try{var k=r.call(this,a,c);if(k.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var m=this.cloneCells([g[0]])[0];this.addEdge(m,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var z=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var l=null;this.model.beginUpdate();try{var m=f,n=this.view.getState(f),p=null!=n?n.style:this.getCellStyle(f);
-if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||h.model.isEdge(a[q])&&null==h.model.getTerminal(a[q],!0)){f=h.model.getParent(a[q]);break}if(null!=m&&f!=m&&null!=this.view.getState(a[0])){var r=h.getIncomingEdges(a[0]);if(0<r.length){var t=h.view.getState(h.model.getTerminal(r[0],!0));if(null!=t){var v=h.view.getState(m);null!=v&&(c=(v.getCenterX()-t.getCenterX())/h.view.scale,d=(v.getCenterY()-t.getCenterY())/h.view.scale)}}}}l=z.apply(this,arguments);
-if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(m)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],m,!0);else if(b(a[q])&&(r=h.getIncomingEdges(a[q]),0<r.length))if(!e)b(m)&&0>mxUtils.indexOf(a,this.model.getTerminal(r[0],!0))&&this.model.setTerminal(r[0],m,!0);else if(0==h.getIncomingEdges(l[q]).length){n=m;if(null==n||n==h.model.getParent(a[q]))n=h.model.getTerminal(r[0],!0);e=this.cloneCells([r[0]])[0];this.addEdge(e,
-h.getDefaultParent(),n,l[q])}}finally{this.model.endUpdate()}return l};if(null!=n.sidebar){var v=n.sidebar.dropAndConnect;n.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=v.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var l=h.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var A={88:n.actions.get("selectChildren"),
-84:n.actions.get("selectSubtree"),80:n.actions.get("selectParent"),83:n.actions.get("selectSiblings")},F=n.onKeyDown;n.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var c=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?d(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(c=t(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&h.model.isEdge(c[0])?h.setSelectionCell(h.model.getTerminal(c[0],
-!1)):h.setSelectionCell(c[c.length-1]),null!=n.hoverIcons&&n.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=A[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(p(h.getSelectionCell(),
-mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(p(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(I){console.log("error",I)}mxEvent.isConsumed(a)||F.apply(this,arguments)};var B=h.connectVertex;h.connectVertex=function(a,c,e,g,k,l){var m=h.getIncomingEdges(a);return b(a)&&0<m.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,e==c?f(a):g==k?d(a):t(a,c!=mxConstants.DIRECTION_NORTH&&
-c!=mxConstants.DIRECTION_WEST)):B.call(this,a,c,e,g,k,l)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var G=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){G.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
+c==mxConstants.DIRECTION_WEST)==d&&c!=b?m.actions.get("selectParent").funct():c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var m=this,h=m.editor.graph,w=h.getModel();mxResources.parse("selectChildren=Select Children");
+mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var u=m.menus.createPopupMenu;m.menus.createPopupMenu=function(a,c,d){u.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&
+(a.addSeparator(),0<h.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};m.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");m.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),
+a=h.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");m.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");m.actions.addAction("selectDescendants",
+function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+T");var v=h.removeCells;h.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&c(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(h.traverse(g,!0,
+function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};m.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var r=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
+a)}this.model.beginUpdate();try{var k=r.call(this,a,c);if(k.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var A=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var l=null;this.model.beginUpdate();try{var n=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);
+if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||h.model.isEdge(a[q])&&null==h.model.getTerminal(a[q],!0)){f=h.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=h.getIncomingEdges(a[0]);if(0<t.length){var r=h.view.getState(h.model.getTerminal(t[0],!0));if(null!=r){var u=h.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}l=A.apply(this,arguments);
+if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(n)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],n,!0);else if(b(a[q])&&(t=h.getIncomingEdges(a[q]),0<t.length))if(!e)b(n)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==h.getIncomingEdges(l[q]).length){m=n;if(null==m||m==h.model.getParent(a[q]))m=h.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,
+h.getDefaultParent(),m,l[q])}}finally{this.model.endUpdate()}return l};if(null!=m.sidebar){var C=m.sidebar.dropAndConnect;m.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=C.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var l=h.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var y={88:m.actions.get("selectChildren"),
+84:m.actions.get("selectSubtree"),80:m.actions.get("selectParent"),83:m.actions.get("selectSiblings")},z=m.onKeyDown;m.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var c=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?d(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(c=t(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&h.model.isEdge(c[0])?h.setSelectionCell(h.model.getTerminal(c[0],
+!1)):h.setSelectionCell(c[c.length-1]),null!=m.hoverIcons&&m.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=y[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(p(h.getSelectionCell(),
+mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(p(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(Q){console.log("error",Q)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var B=h.connectVertex;h.connectVertex=function(a,c,e,g,k,l){var n=h.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,e==c?f(a):g==k?d(a):t(a,c!=mxConstants.DIRECTION_NORTH&&
+c!=mxConstants.DIRECTION_WEST)):B.call(this,a,c,e,g,k,l)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);
-this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=
-this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
+this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};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 L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");
b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");
-e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);k.insertEdge(m,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-w.geometry.relative=!0;w.edge=!0;b.insertEdge(w,!0);h.insertEdge(w,!1);a.insert(d);a.insert(g);a.insert(m);a.insert(w);a.insert(b);a.insert(c);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
+e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+w.geometry.relative=!0;w.edge=!0;b.insertEdge(w,!0);h.insertEdge(w,!1);a.insert(d);a.insert(g);a.insert(l);a.insert(w);a.insert(b);a.insert(c);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,
0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization",
@@ -3072,33 +3074,33 @@ mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGE
this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=0;b<this.diagrams.length;b++)if(this.diagrams[b].getAttribute("id")==a){this.selectPage(b);break}};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=d&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),d=this.xmlNode)});this.addListener("xmlNodeChanged",
f);f();urlParams.page=c.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow};
this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",
-this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a),m=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(m.disconnect(),c())}));m.observe(k,{attributes:!0})}else c()}};
+this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a),l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),c())}));l.observe(k,{attributes:!0})}else c()}};
GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};
GraphViewer.prototype.setXmlNode=function(a){this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph(),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})};
-GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var c=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<b.width+this.graph.border?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},b={left:b.left-
-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||m||(m=!0,this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
-(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",c),this.graph.addListener("size",c)):new ResizeSensor(this.graph.container,
-c));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,this.toolbarHeight),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var l=k=null,c=mxUtils.bind(this,function(){window.clearTimeout(l);m||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),
-100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",c):new ResizeSensor(this.graph.container,c))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",c);var q=mxUtils.bind(this,function(){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var d=
+GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var c=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,
+top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,l=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||l||(l=!0,this.graph.maxFitScale=
+null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){l=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",c),this.graph.addListener("size",
+c)):new ResizeSensor(this.graph.container,c));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var n=k=null,c=mxUtils.bind(this,function(){window.clearTimeout(n);l||(n=window.setTimeout(mxUtils.bind(this,
+this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",c):new ResizeSensor(this.graph.container,c))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",c);var q=mxUtils.bind(this,function(){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var d=
null;null!=this.graphConfig["max-height"]&&(d=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(d)}else this.graph.view.setTranslate(Math.floor((this.graph.border-b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),k=a.offsetWidth;a.style.minWidth=c});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){b=this.graph.getGraphBounds();k=null;q()}};
GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var c=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var m=k.getChildCount(k.root),l=0;l<m;l++)k.setVisible(k.getChildAt(k.root,l),null!=b?c.isVisible(c.getChildAt(c.root,l)):!1);if(null==c)for(l=0;l<e.length;l++)k.setVisible(k.getChildAt(k.root,parseInt(e[l])),!0)}finally{k.endUpdate()}}};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var c=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),n=0;n<l;n++)k.setVisible(k.getChildAt(k.root,n),null!=b?c.isVisible(c.getChildAt(c.root,n)):!1);if(null==c)for(n=0;n<e.length;n++)k.setVisible(k.getChildAt(k.root,parseInt(e[n])),!0)}finally{k.endUpdate()}}};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",a);null!=c&&g.setAttribute("title",c);g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave",
function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
-e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var c=null,k=null,m=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);c=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
-0);c=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),l=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(l(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
-"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){l(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){l(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var q=this.graph,t=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
-q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<t&&Math.abs(this.scrollTop-q.container.scrollTop)<t&&Math.abs(this.startX-b.getGraphX())<t&&Math.abs(this.startY-b.getGraphY())<t&&(0<parseFloat(e.style.opacity||0)?m():l(30))}})}for(var d=this.toolbarItems,f=0,g=null,p=null,n=0;n<d.length;n++){var h=d[n];if("pages"==h){p=b.ownerDocument.createElement("div");
+e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var c=null,k=null,l=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);c=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
+0);c=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),n=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(n(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
+"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){n(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){n(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||n(30)}));var q=this.graph,t=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
+q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<t&&Math.abs(this.scrollTop-q.container.scrollTop)<t&&Math.abs(this.startX-b.getGraphX())<t&&Math.abs(this.startY-b.getGraphY())<t&&(0<parseFloat(e.style.opacity||0)?l():n(30))}})}for(var d=this.toolbarItems,f=0,g=null,p=null,m=0;m<d.length;m++){var h=d[m];if("pages"==h){p=b.ownerDocument.createElement("div");
p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(p,70);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");w.style.borderRightStyle="none";w.style.paddingLeft="0px";w.style.paddingRight="0px";e.appendChild(p);var u=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");u.style.paddingLeft="0px";u.style.paddingRight="0px";h=mxUtils.bind(this,function(){p.innerHTML="";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";w.style.display=p.style.display;u.style.display=p.style.display});this.addListener("graphChanged",h);h()}else if("zoom"==h)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var x=this.graph.getModel(),r=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g),
+mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var v=this.graph.getModel(),r=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g),
g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=r.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+
-"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");x.addListener(mxEvent.CHANGE,function(){r.style.display=1<x.getChildCount(x.root)?"inline-block":"none"});r.style.display=1<x.getChildCount(x.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h],
+"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){r.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});r.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h],
null!=h&&a(null==h.enabled||h.enabled?h.handler:function(){},h.image,h.title,h.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(d=b.ownerDocument.createElement("div"),d.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",d.setAttribute("title",this.graphConfig.title),mxUtils.write(d,this.graphConfig.title),mxUtils.setOpacity(d,
-70),e.appendChild(d));this.minToolbarWidth=34*f;var z=b.style.border,d=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";
-e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==z&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
-g=null),b.style.border=z)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",d)};
+70),e.appendChild(d));this.minToolbarWidth=34*f;var A=b.style.border,d=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";
+e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==A&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
+g=null),b.style.border=A)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",d)};
GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,c){if(null==c){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(c=k.getAttribute("href"))}null!=b?null==c||a.isExternalProtocol(c)||a.isBlankLink(c)||window.setTimeout(function(){b.destroy()},0):null==c||!a.isPageLink(c)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e)||(k=c.indexOf(","),0<k&&(k=c.substring(k+
1),this.selectPageById(k),mxEvent.consume(e)))}),mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&&
@@ -3107,17 +3109,17 @@ GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.l
GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),b=document.createElement("div");mxClient.IS_QUIRKS?(b.style.position="absolute",b.style.left=a.x+"px",b.style.top=a.y+"px",b.style.width=document.body.offsetWidth+"px",b.style.height=document.body.offsetHeight+"px"):b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b);
var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){c.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||
10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var c=new EditorUi(new Editor(!0),document.createElement("div"),!0);c.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";c.refresh=function(){};mxEvent.addListener(b,"click",function(){c.destroy()});
-var k=mxUtils.bind(this,function(a){27==a.keyCode&&c.destroy()}),m=c.destroy;c.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var l=c.editor.graph,q=l.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",
-k)):(b.style.display="none",e.style.display="none");var t=this;l.getImageFromBundles=function(a){return t.getImageUrl(a)};var d=c.createTemporaryGraph;c.createTemporaryGraph=function(){var a=d.apply(this,arguments);a.getImageFromBundles=function(a){return t.getImageUrl(a)};return a};this.graphConfig.move&&(l.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
-"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(l,c);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);c.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");c.chromelessToolbar.style.bottom=
+var k=mxUtils.bind(this,function(a){27==a.keyCode&&c.destroy()}),l=c.destroy;c.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var n=c.editor.graph,q=n.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",
+k)):(b.style.display="none",e.style.display="none");var t=this;n.getImageFromBundles=function(a){return t.getImageUrl(a)};var d=c.createTemporaryGraph;c.createTemporaryGraph=function(){var a=d.apply(this,arguments);a.getImageFromBundles=function(a){return t.getImageUrl(a)};return a};this.graphConfig.move&&(n.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
+"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(n,c);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);c.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");c.chromelessToolbar.style.bottom=
"60px";c.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(c.chromelessToolbar);c.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",c.chromelessToolbar.style.display="block",c.chromelessToolbar.style.position="absolute",
-c.chromelessToolbar.style.bottom="",c.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");c.lightboxFit();c.chromelessResize();this.showLayers(l,this.graph)}),0);return c};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})};
+c.chromelessToolbar.style.bottom="",c.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");c.lightboxFit();c.chromelessResize();this.showLayers(n,this.graph)}),0);return c};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})};
GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var c=document.getElementsByTagName("*"),b=[],e=0;e<c.length;e++){var k=c[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(c[e]))}return b};
GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var c=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,c);null!=b&&b(e)};null!=c.url?GraphViewer.getUrl(c.url,function(a){k(a)}):k(c.xml)}};
GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var c=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;c.open("GET",a);c.onload=function(){b(null!=c.getText?c.getText():c.responseText)};c.onerror=e;c.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,c){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function l(b,c){if(!b.resizedAttached)b.resizedAttached=
+(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,c){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function n(b,c){if(!b.resizedAttached)b.resizedAttached=
new k,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var l=!1,p=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(p))};a(p);var q,t,A,F,B=function(){if((A=b.offsetWidth)!=q||(F=b.offsetHeight)!=t)l=!0,q=A,t=F;g()},G=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};G(d,"scroll",B);G(f,"scroll",B)}var q=function(){GraphViewer.resizeSensorEnabled&&c()},t=Object.prototype.toString.call(e),d="[object Array]"===t||"[object NodeList]"===t||"[object HTMLCollection]"===t||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(d)for(var t=0,f=e.length;t<f;t++)l(e[t],q);else l(e,q);this.detach=function(){if(d)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var n=!1,p=function(){b.resizedAttached&&(n&&(b.resizedAttached.call(),n=!1),a(p))};a(p);var q,t,y,z,B=function(){if((y=b.offsetWidth)!=q||(z=b.offsetHeight)!=t)n=!0,q=y,t=z;g()},F=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};F(d,"scroll",B);F(f,"scroll",B)}var q=function(){GraphViewer.resizeSensorEnabled&&c()},t=Object.prototype.toString.call(e),d="[object Array]"===t||"[object NodeList]"===t||"[object HTMLCollection]"===t||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(d)for(var t=0,f=e.length;t<f;t++)n(e[t],q);else n(e,q);this.detach=function(){if(d)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
diff --git a/src/main/webapp/js/atlas.min.js b/src/main/webapp/js/atlas.min.js
index f6e9d8c1..32b13082 100644
--- a/src/main/webapp/js/atlas.min.js
+++ b/src/main/webapp/js/atlas.min.js
@@ -398,8 +398,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -412,7 +412,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -509,9 +509,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -522,7 +522,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -1012,10 +1012,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -1057,9 +1057,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1208,11 +1208,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
-(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1413,10 +1413,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
-mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
-g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
-this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
+mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
+Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
+g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
+c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
@@ -1979,14 +1979,14 @@ this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))
Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.createXmlDocument())).encode(this.graph.getModel()):this.graph.encodeCells(mxUtils.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells())));if(0!=this.graph.view.translate.x||0!=this.graph.view.translate.y)a.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),a.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100);a.setAttribute("grid",this.graph.isGridEnabled()?"1":"0");a.setAttribute("gridSize",
this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width);
a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":"hidden",this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFilename=function(a){this.filename=a};
-Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){for(var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes),f=a.getModel(),g=[],h=0;h<d.length;h++)(f.isVertex(d[h])||f.isEdge(d[h]))&&null!=a.view.getState(d[h])&&
-g.push(d[h]);a.setSelectionCells(g)};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
+Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){for(var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes),f=a.getModel(),g=[],k=0;k<d.length;k++)(f.isVertex(d[k])||f.isEdge(d[k]))&&null!=a.view.getState(d[k])&&
+g.push(d[k]);a.setSelectionCells(g)};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,c,d,b,f,e,k,g){var h=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(h=80);d+=h;b+=h;var l=d,m=b,p=Math.max(document.body.clientHeight,document.documentElement.clientHeight),n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2)),q=Math.max(1,Math.round((p-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=Math.min(d,document.body.scrollWidth-64);b=Math.min(b,p-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&
+function Dialog(a,c,d,b,f,e,h,g){var k=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(k=80);d+=k;b+=k;var l=d,m=b,p=Math.max(document.body.clientHeight,document.documentElement.clientHeight),n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2)),q=Math.max(1,Math.round((p-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(c.style.maxHeight="100%");d=Math.min(d,document.body.scrollWidth-64);b=Math.min(b,p-64);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=p+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var t=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=t.x+"px";this.bg.style.top=t.y+"px";n+=t.x;q+=t.y;f&&document.body.appendChild(this.bg);var r=a.createDiv("geDialog");f=this.getPosition(n,q,
-d,b);n=f.x;q=f.y;r.style.width=d+"px";r.style.height=b+"px";r.style.left=n+"px";r.style.top=q+"px";r.style.zIndex=this.zIndex;r.appendChild(c);document.body.appendChild(r);!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=q+14+"px",e.style.left=n+d+38-h+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",
+d,b);n=f.x;q=f.y;r.style.width=d+"px";r.style.height=b+"px";r.style.left=n+"px";r.style.top=q+"px";r.style.zIndex=this.zIndex;r.appendChild(c);document.body.appendChild(r);!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=q+14+"px",e.style.left=n+d+38-k+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",
mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(b){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){p=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=p+"px";n=Math.max(1,Math.round((document.body.clientWidth-d-64)/2));q=Math.max(1,Math.round((p-b-a.footerHeight)/3));d=Math.min(l,document.body.scrollWidth-64);b=
-Math.min(m,p-64);var e=this.getPosition(n,q,d,b);n=e.x;q=e.y;r.style.left=n+"px";r.style.top=q+"px";r.style.width=d+"px";r.style.height=b+"px";!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=q+14+"px",this.dialogImg.style.left=n+d+38-h+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=r;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
+Math.min(m,p-64);var e=this.getPosition(n,q,d,b);n=e.x;q=e.y;r.style.left=n+"px";r.style.top=q+"px";r.style.width=d+"px";r.style.height=b+"px";!g&&c.clientHeight>r.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=q+14+"px",this.dialogImg.style.left=n+d+38-k+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=r;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
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";
@@ -1997,29 +1997,29 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,c){return new mxPoint(a,c)};Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),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 PrintDialog=function(a,c){this.create(a,c)};
-PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(p.value)/100;isNaN(c)&&(c=1,p.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var k=g.checked?1:parseInt(m.value);isNaN(k)||(f=mxUtils.getScaleForPageCount(k,d,e))}d.getGraphBounds();var h=k=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),k-=c.x*e.width,h-=c.y*e.height):
-b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,k,h,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var k=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var h=document.createElement("span");mxUtils.write(h," "+mxResources.get("fitPage"));
-f.appendChild(h);mxEvent.addListener(h,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);k.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);h=document.createElement("span");mxUtils.write(h," "+mxResources.get("posterPrint")+":");f.appendChild(h);mxEvent.addListener(h,
-"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(m);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);k.appendChild(b);mxEvent.addListener(l,"change",
-function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var p=document.createElement("input");p.setAttribute("value","100 %");p.setAttribute("size","5");p.style.width="50px";f.appendChild(p);b.appendChild(f);k.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
-f.style.paddingTop="20px";f.setAttribute("align","right");h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&f.appendChild(h);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});n.className="geBtn";f.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";f.appendChild(n);a.editor.cancelFirst||
-f.appendChild(h);b.appendChild(f);k.appendChild(b);e.appendChild(k);this.container=e};PrintDialog.printPreview=function(a){if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}};
-PrintDialog.createPrintPreview=function(a,c,d,b,f,e,k){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=k;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
+PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(p.value)/100;isNaN(c)&&(c=1,p.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var h=g.checked?1:parseInt(m.value);isNaN(h)||(f=mxUtils.getScaleForPageCount(h,d,e))}d.getGraphBounds();var k=h=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),h-=c.x*e.width,k-=c.y*e.height):
+b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,h,k,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var h=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
+f.appendChild(k);mxEvent.addListener(k,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);h.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");f.appendChild(k);mxEvent.addListener(k,
+"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(m);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);h.appendChild(b);mxEvent.addListener(l,"change",
+function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var p=document.createElement("input");p.setAttribute("value","100 %");p.setAttribute("size","5");p.style.width="50px";f.appendChild(p);b.appendChild(f);h.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
+f.style.paddingTop="20px";f.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&f.appendChild(k);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});n.className="geBtn";f.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";f.appendChild(n);a.editor.cancelFirst||
+f.appendChild(k);b.appendChild(f);h.appendChild(b);e.appendChild(h);this.container=e};PrintDialog.printPreview=function(a){if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}};
+PrintDialog.createPrintPreview=function(a,c,d,b,f,e,h){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==q?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",q.src),n.style.fontSize="11px",n.innerHTML=q.src.substring(0,42)+"...")}var b=a.editor.graph,f,e,k=document.createElement("table");k.style.width=
-"100%";k.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var h=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");
+var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==q?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",q.src),n.style.fontSize="11px",n.innerHTML=q.src.substring(0,42)+"...")}var b=a.editor.graph,f,e,h=document.createElement("table");h.style.width=
+"100%";h.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");
mxUtils.write(e,mxResources.get("background")+":");f.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="18px";l.style.height="18px";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";var m=b.background;c();mxEvent.addListener(l,"click",function(b){a.pickColor(m||"none",function(a){m=a;c()});mxEvent.consume(b)});
e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=b.getGridSize();e.appendChild(p);mxEvent.addListener(p,"change",function(){var a=parseInt(p.value);p.value=Math.max(1,isNaN(a)?b.getGridSize():a)});f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("image")+
":");f.appendChild(e);e=document.createElement("td");var n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var q=b.backgroundImage;mxEvent.addListener(n,"click",function(b){a.showBackgroundImageDialog(function(a){q=a;d()});mxEvent.consume(b)});d();e.appendChild(n);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var t=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var r=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==p.value&&b.setGridSize(parseInt(p.value));var c=new ChangePageSetup(a,m,q,h.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
-c.ignoreColor&&c.ignoreImage||b.model.execute(c)});r.className="geBtn gePrimaryBtn";e.appendChild(r);a.editor.cancelFirst||e.appendChild(t);f.appendChild(e);g.appendChild(f);k.appendChild(g);this.container=k};
+mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var r=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==p.value&&b.setGridSize(parseInt(p.value));var c=new ChangePageSetup(a,m,q,k.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
+c.ignoreColor&&c.ignoreImage||b.model.execute(c)});r.className="geBtn gePrimaryBtn";e.appendChild(r);a.editor.cancelFirst||e.appendChild(t);f.appendChild(e);g.appendChild(f);h.appendChild(g);this.container=h};
PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||p!=document.activeElement&&n!=document.activeElement){a=!1;for(b=0;b<t.length;b++)c=t[b],u?"custom"==c.key&&(g.value=c.key,u=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
-d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,a=k.checked=!0));a?(h.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
-g.value="custom",h.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",c);k.setAttribute("type","radio");k.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var h=document.createElement("div");h.style.marginLeft="4px";h.style.width="210px";
-h.style.height="24px";e.style.marginRight="6px";h.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));h.appendChild(c);k.style.marginLeft="10px";k.style.marginRight="6px";h.appendChild(k);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));h.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),r=0;r<t.length;r++){var w=t[r];q[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);g.appendChild(v)}var u=!1;f();a.appendChild(g);mxUtils.br(a);
-a.appendChild(h);a.appendChild(m);var z=d,x=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",h.style.display=""):(h.style.display="none",m.style.display="");isNaN(parseFloat(p.value))&&(p.value=d.width/100);isNaN(parseFloat(n.value))&&(n.value=d.height/100);e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&k.checked&&(e=new mxRectangle(0,0,e.height,e.width));
-c&&u||e.width==z.width&&e.height==z.height||(z=e,null!=b&&b(z))};mxEvent.addListener(c,"click",function(a){e.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){k.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(n,"blur",x);mxEvent.addListener(n,"click",x);mxEvent.addListener(k,"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(g,"change",function(a){u="custom"==g.value;x(a,!0)});x();
+d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(k.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
+g.value="custom",k.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",c);h.setAttribute("type","radio");h.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";
+k.style.height="24px";e.style.marginRight="6px";k.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);h.style.marginLeft="10px";h.style.marginRight="6px";k.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));k.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");k.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),r=0;r<t.length;r++){var w=t[r];q[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);g.appendChild(v)}var u=!1;f();a.appendChild(g);mxUtils.br(a);
+a.appendChild(k);a.appendChild(m);var z=d,x=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",k.style.display=""):(k.style.display="none",m.style.display="");isNaN(parseFloat(p.value))&&(p.value=d.width/100);isNaN(parseFloat(n.value))&&(n.value=d.height/100);e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&h.checked&&(e=new mxRectangle(0,0,e.height,e.width));
+c&&u||e.width==z.width&&e.height==z.height||(z=e,null!=b&&b(z))};mxEvent.addListener(c,"click",function(a){e.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;x(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(n,"blur",x);mxEvent.addListener(n,"click",x);mxEvent.addListener(h,"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(g,"change",function(a){u="custom"==g.value;x(a,!0)});x();
return{set:function(a){d=a;f(null,null,!0)},get:function(){return z},widthInput:p,heightInput:n}};
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 (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{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:"custom",title:mxResources.get("custom"),format:null}]};
@@ -2030,33 +2030,33 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
d="url("+this.gridImage+")";var f=c=0;null!=a.view.backgroundPageShape&&(f=this.getBackgroundPageBounds(),c=1+f.x,f=1+f.y);e=-Math.round(e-mxUtils.mod(this.translate.x*this.scale-c,e))+"px "+-Math.round(e-mxUtils.mod(this.translate.y*this.scale-f,e))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=e,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor=
b,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+" "+c)}return'<svg width="'+
c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=
-this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,k=this.view.getBackgroundPageBounds();b=k.width;c=k.height;var h=
-new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),l=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,u=k.x+b,z=k.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),Math.round(k.y+(c+1)*h.height)),
-new mxPoint(Math.round(u),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,h=this.view.getBackgroundPageBounds();b=h.width;c=h.height;var k=
+new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),l=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(c/k.height)-1:0,v=a?Math.ceil(b/k.width)-1:0,u=h.x+b,z=h.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?l:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
+new mxPoint(Math.round(u),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++)if(this.graph.getModel().isVertex(b[e])){var f=this.graph.getCellGeometry(b[e]);if(null!=f&&f.relative)return!1}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?
-!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),k=Math.floor(Math.min(0,
-c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-k)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,k){var g=f.apply(this,arguments);null==k||k||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),f=b.getParent(d);
-if(null==c||c!=d&&c!=f)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(f)&&b.isVertex(f)&&!this.graph.isContainer(f);)d=f,f=this.graph.getModel().getParent(d);return d};var k=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=k.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
+!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),h=Math.floor(Math.min(0,
+c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+h*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-h)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,h){var g=f.apply(this,arguments);null==h||h||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=e.apply(this,arguments),f=b.getParent(d);
+if(null==c||c!=d&&c!=f)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(f)&&b.isVertex(f)&&!this.graph.isContainer(f);)d=f,f=this.graph.getModel().getParent(d);return d};var h=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=h.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,c,d){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=c||document.body;var b=this.editor.graph;b.lightbox=d;mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var f=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=f,this.menubarContainer.onmousedown=
f,this.toolbarContainer.onselectstart=f,this.toolbarContainer.onmousedown=f,this.diagramContainer.onselectstart=f,this.diagramContainer.onmousedown=f,this.sidebarContainer.onselectstart=f,this.sidebarContainer.onmousedown=f,this.formatContainer.onselectstart=f,this.formatContainer.onmousedown=f,this.footerContainer.onselectstart=f,this.footerContainer.onmousedown=f,null!=this.tabContainer&&(this.tabContainer.onselectstart=f));!this.editor.chromeless||this.editor.editable?(c=function(a){var b=mxEvent.getSource(a);
if("A"==b.nodeName)for(;null!=b;){if("geHint"==b.className)return!0;b=b.parentNode}return f(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,k=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return e||k.apply(this,arguments)};this.keydownHandler=
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,h=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return e||h.apply(this,arguments)};this.keydownHandler=
mxUtils.bind(this,function(a){32==a.which?(e=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";e=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var g=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=
-function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var h=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return h.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};
+function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return k.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 l=!1,m=null,p=null,n=null,q=mxUtils.bind(this,function(){if(null!=this.toolbar&&l!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==n)this.toolbar.createTextToolbar();else{for(var e=0;e<n.length;e++)this.toolbar.container.appendChild(n[e]);this.toolbar.fontMenu=m;this.toolbar.sizeMenu=
p}l=b.cellEditor.isContentEditing();m=a;p=d;n=c}}),t=this,r=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){r.apply(this,arguments);q();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=t.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d=
d.substring(0,d.length-1));t.toolbar.setFontName(d);t.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var w=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){w.apply(this,arguments);q()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";
if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(B){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],e=[],f;for(f in c.style)a[f]!=c.style[f]&&(d.push(c.style[f]),e.push(f));f=b.getModel().getStyle(c.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var h=g[k],
-l=h.indexOf("=");0<=l&&(f=h.substring(0,l),h=h.substring(l+1),null!=a[f]&&"none"==h&&(d.push(h),e.push(f)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var x=
-["fontFamily","fontSize","fontColor"],D="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),A=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],x,["align"],["html"]];for(a=0;a<A.length;a++)for(c=0;c<A[a].length;c++)u.push(A[a][c]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(u,z[a])&&u.push(z[a]);var C=function(a,c){var d=b.getModel();d.beginUpdate();
-try{if(c)for(var e=d.isEdge(h),f=e?b.currentEdgeStyle:b.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var k=f[e[g]];null!=k&&b.setCellStyles(e[g],k,a)}else for(k=0;k<a.length;k++){for(var h=a[k],l=d.getStyle(h),m=null!=l?l.split(";"):[],H=u.slice(),g=0;g<m.length;g++){var n=m[g],y=n.indexOf("=");if(0<=y){var p=n.substring(0,y),R=mxUtils.indexOf(H,p);0<=R&&H.splice(R,1);for(var t=0;t<A.length;t++){var q=A[t];if(0<=mxUtils.indexOf(q,p))for(var r=0;r<q.length;r++){var B=
-mxUtils.indexOf(H,q[r]);0<=B&&H.splice(B,1)}}}}for(var f=(e=d.isEdge(h))?b.currentEdgeStyle:b.currentVertexStyle,v=d.getStyle(h),g=0;g<H.length;g++){var p=H[g],w=f[p];null==w||"shape"==p&&!e||e&&!(0>mxUtils.indexOf(z,p))||(v=mxUtils.setStyle(v,p,w))}d.setStyle(h,v)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){C(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){C(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=
-[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));C(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,f=!1;if(0<d.length)for(var g=0;g<d.length&&(e=b.getModel().isVertex(d[g])||e,!(f=b.getModel().isEdge(d[g])||f)||!e);g++);else f=e=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),g=0;g<d.length;g++){var h=0<=mxUtils.indexOf(x,d[g]);if("strokeColor"!=d[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,
-d[g]))f||0<=mxUtils.indexOf(D,d[g])?null==k[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=k[g]:e&&0<=mxUtils.indexOf(u,d[g])&&(null==k[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=k[g]);else if(0<=mxUtils.indexOf(u,d[g])){if(e||h)null==k[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=k[g];if(f||h||0<=mxUtils.indexOf(D,d[g]))null==k[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
+this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],e=[],f;for(f in c.style)a[f]!=c.style[f]&&(d.push(c.style[f]),e.push(f));f=b.getModel().getStyle(c.cell);for(var g=null!=f?f.split(";"):[],h=0;h<g.length;h++){var k=g[h],
+l=k.indexOf("=");0<=l&&(f=k.substring(0,l),k=k.substring(l+1),null!=a[f]&&"none"==k&&(d.push(k),e.push(f)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var x=
+["fontFamily","fontSize","fontColor"],C="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),A=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],x,["align"],["html"]];for(a=0;a<A.length;a++)for(c=0;c<A[a].length;c++)u.push(A[a][c]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(u,z[a])&&u.push(z[a]);var D=function(a,c){var d=b.getModel();d.beginUpdate();
+try{if(c)for(var e=d.isEdge(k),f=e?b.currentEdgeStyle:b.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],g=0;g<e.length;g++){var h=f[e[g]];null!=h&&b.setCellStyles(e[g],h,a)}else for(h=0;h<a.length;h++){for(var k=a[h],l=d.getStyle(k),m=null!=l?l.split(";"):[],G=u.slice(),g=0;g<m.length;g++){var n=m[g],y=n.indexOf("=");if(0<=y){var p=n.substring(0,y),R=mxUtils.indexOf(G,p);0<=R&&G.splice(R,1);for(var t=0;t<A.length;t++){var q=A[t];if(0<=mxUtils.indexOf(q,p))for(var r=0;r<q.length;r++){var B=
+mxUtils.indexOf(G,q[r]);0<=B&&G.splice(B,1)}}}}for(var f=(e=d.isEdge(k))?b.currentEdgeStyle:b.currentVertexStyle,C=d.getStyle(k),g=0;g<G.length;g++){var p=G[g],w=f[p];null==w||"shape"==p&&!e||e&&!(0>mxUtils.indexOf(z,p))||(C=mxUtils.setStyle(C,p,w))}d.setStyle(k,C)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){D(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){D(b.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=
+[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));D(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),e=!1,f=!1;if(0<d.length)for(var g=0;g<d.length&&(e=b.getModel().isVertex(d[g])||e,!(f=b.getModel().isEdge(d[g])||f)||!e);g++);else f=e=!0;for(var d=c.getProperty("keys"),h=c.getProperty("values"),g=0;g<d.length;g++){var k=0<=mxUtils.indexOf(x,d[g]);if("strokeColor"!=d[g]||null!=h[g]&&"none"!=h[g])if(0<=mxUtils.indexOf(z,
+d[g]))f||0<=mxUtils.indexOf(C,d[g])?null==h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]:e&&0<=mxUtils.indexOf(u,d[g])&&(null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g]);else if(0<=mxUtils.indexOf(u,d[g])){if(e||k)null==h[g]?delete b.currentVertexStyle[d[g]]:b.currentVertexStyle[d[g]]=h[g];if(f||k||0<=mxUtils.indexOf(C,d[g]))null==h[g]?delete b.currentEdgeStyle[d[g]]:b.currentEdgeStyle[d[g]]=h[g]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2078,14 +2078,14 @@ EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,c=
EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);a.updatePasteActionStates()};var d=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(c){var d=null;c.cellEditor.isContentEditing()?document.execCommand("paste",
!1,null):d=b.apply(this,arguments);a.updatePasteActionStates();return d};var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);a.updatePasteActionStates()};var e=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){e.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),b=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,
-this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.chromeless){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container){d=null!=d?d:0;e=null!=e?e:0;var f=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),g=mxUtils.hasScrollbars(a.container),k=a.view.translate,h=a.view.scale,l=mxRectangle.fromRectangle(f);
-l.x=l.x/h-k.x;l.y=l.y/h-k.y;l.width/=h;l.height/=h;var k=a.container.scrollTop,m=a.container.scrollLeft,n=mxClient.IS_QUIRKS||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)):h;c=(p-b*l.width)/2/b;var t=0==this.lightboxVerticalDivider?0:(n-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),t=Math.max(t,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,
-Math.floor(c-l.x),Math.floor(t-l.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=m*b/h;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/h),Math.floor(f.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
+this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.chromeless){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container){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=mxClient.IS_QUIRKS||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 t=0==this.lightboxVerticalDivider?0:(n-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),t=Math.max(t,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,
+Math.floor(c-l.x),Math.floor(t-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 b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",
mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(b){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(b){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace=
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var f=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);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 e=0,f=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);
-return d}),k=f(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var h=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,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";h.style.paddingLeft="4px";h.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(h.style.display="",k.style.display="",g.style.display="inline-block"):(h.style.display="none",k.style.display=
+return d}),h=f(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var k=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,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))});h.style.paddingLeft="0px";h.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",h.style.display="",g.style.display="inline-block"):(k.style.display="none",h.style.display=
"none",g.style.display="none");l()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",l);f(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(b){a.lightbox?(1==a.view.scale?
this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,n=null,q=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";n=
null}),600)}),a||200)}),t=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var r=f(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
@@ -2125,18 +2125,18 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),c=this.actions.get("redo"),d=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});d.addListener(mxEvent.ADD,b);d.addListener(mxEvent.UNDO,b);d.addListener(mxEvent.REDO,b);d.addListener(mxEvent.CLEAR,b);var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);b()};var e=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,c){e.apply(this,arguments);b()};b()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),d=!1,b=!1,f=a.getSelectionCells();if(null!=f)for(var e=0;e<f.length;e++){var k=f[e];a.getModel().isEdge(k)&&(b=!0);a.getModel().isVertex(k)&&(d=!0);if(b&&d)break}f="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),d=!1,b=!1,f=a.getSelectionCells();if(null!=f)for(var e=0;e<f.length;e++){var h=f[e];a.getModel().isEdge(h)&&(b=!0);a.getModel().isVertex(h)&&(d=!0);if(b&&d)break}f="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
0;e<f.length;e++)this.actions.get(f[e]).setEnabled(c);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(d);this.actions.get("wordWrap").setEnabled(d);this.actions.get("autosize").setEnabled(d);b=d&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
b&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||b&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(b&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(c||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(d&&(a.isContainer(a.getSelectionCell())||
0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));c=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(c);this.actions.get("collapse").setEnabled(c);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==
a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);c=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(c);this.menus.get("insert").setEnabled(c);this.menus.get("direction").setEnabled(c&&d);this.menus.get("align").setEnabled(c&&d&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(c&&d&&1<a.getSelectionCount());
this.actions.get("selectVertices").setEnabled(c);this.actions.get("selectEdges").setEnabled(c);this.actions.get("selectAll").setEnabled(c);this.actions.get("selectNone").setEnabled(c);this.updatePasteActionStates()};
EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var c=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),d=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(d=document.body.clientWidth||document.documentElement.clientWidth,b=c?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var f=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var e=Math.max(0,Math.min(this.hsplitPosition,d-this.splitSize-20)),k=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",k+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",k+=this.toolbarHeight);0<k&&!mxClient.IS_QUIRKS&&(k+=1);var g=0;if(null!=this.sidebarFooterContainer){var h=
-this.footerHeight+f,g=Math.max(0,Math.min(b-k-h,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=e+"px";this.sidebarFooterContainer.style.height=g+"px";this.sidebarFooterContainer.style.bottom=h+"px"}h=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=k+"px";this.sidebarContainer.style.width=e+"px";this.formatContainer.style.top=k+"px";this.formatContainer.style.width=h+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
+(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var e=Math.max(0,Math.min(this.hsplitPosition,d-this.splitSize-20)),h=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",h+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",h+=this.toolbarHeight);0<h&&!mxClient.IS_QUIRKS&&(h+=1);var g=0;if(null!=this.sidebarFooterContainer){var k=
+this.footerHeight+f,g=Math.max(0,Math.min(b-h-k,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=e+"px";this.sidebarFooterContainer.style.height=g+"px";this.sidebarFooterContainer.style.bottom=k+"px"}k=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=h+"px";this.sidebarContainer.style.width=e+"px";this.formatContainer.style.top=h+"px";this.formatContainer.style.width=k+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
null!=this.hsplit.parentNode?e+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+f+"px";this.hsplit.style.left=e+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);c?(this.menubarContainer.style.width=d+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-c=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=c-g+"px",this.formatContainer.style.height=c+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,d-e-this.splitSize-h)+"px":d+"px",this.footerContainer.style.width=this.menubarContainer.style.width,g=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
-this.footerHeight+f+"px",g-=this.tabContainer.clientHeight),this.diagramContainer.style.height=g+"px",this.hsplit.style.height=g+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px"),this.diagramContainer.style.right=h+"px",d=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,d=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+g+f+"px",this.formatContainer.style.bottom=
+c=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=c-g+"px",this.formatContainer.style.height=c+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,d-e-this.splitSize-k)+"px":d+"px",this.footerContainer.style.width=this.menubarContainer.style.width,g=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
+this.footerHeight+f+"px",g-=this.tabContainer.clientHeight),this.diagramContainer.style.height=g+"px",this.hsplit.style.height=g+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px"),this.diagramContainer.style.right=k+"px",d=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,d=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+g+f+"px",this.formatContainer.style.bottom=
this.footerHeight+f+"px",this.diagramContainer.style.bottom=this.footerHeight+f+d+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
@@ -2146,8 +2146,8 @@ 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";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};
EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var c=document.createElement("div");c.className=a;return c};
-EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=k){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-k.x:k.y-e.y)-d));mxEvent.consume(a);g!=m()&&(h=!0,l=null)}}function e(a){f(a);k=g=null}var k=null,g=null,h=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){k=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));g=m();h=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!h){var c=null!=l?l-d:0;l=m();b(c);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,k){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,k);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=h){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-h.x:h.y-e.y)-d));mxEvent.consume(a);g!=m()&&(k=!0,l=null)}}function e(a){f(a);h=g=null}var h=null,g=null,k=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));g=m();k=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!k){var c=null!=l?l-d:0;l=m();b(c);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,h){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,h);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,c){var d=this.editor.graph,b=d.cellEditor.saveSelection(),f=new ColorDialog(this,a||"none",function(a){d.cellEditor.restoreSelection(b);c(a)},function(){d.cellEditor.restoreSelection(b)});this.showDialog(f.container,230,430,!0,!1);f.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2157,16 +2157,16 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var c=null,d=null;null
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,c);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(c.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(c))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(c);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(d){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(a,c,d){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(f){throw f;}finally{this.allowAnimation&&c&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=d&&d()})),a.startAnimation()):(b.getModel().endUpdate(),null!=d&&d())}}};
-EditorUi.prototype.showImageDialog=function(a,c,d,b){b=this.editor.graph.cellEditor;var f=b.saveSelection(),e=mxUtils.prompt(a,c);b.restoreSelection(f);if(null!=e&&0<e.length){var k=new Image;k.onload=function(){d(e,k.width,k.height)};k.onerror=function(){d(null);mxUtils.alert(mxResources.get("fileNotFound"))};k.src=e}else d(null)};EditorUi.prototype.showLinkDialog=function(a,c,d){a=new LinkDialog(this,a,c,d);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.showImageDialog=function(a,c,d,b){b=this.editor.graph.cellEditor;var f=b.saveSelection(),e=mxUtils.prompt(a,c);b.restoreSelection(f);if(null!=e&&0<e.length){var h=new Image;h.onload=function(){d(e,h.width,h.height)};h.onerror=function(){d(null);mxUtils.alert(mxResources.get("fileNotFound"))};h.src=e}else d(null)};EditorUi.prototype.showLinkDialog=function(a,c,d){a=new LinkDialog(this,a,c,d);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var c=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=c&&0<c.length){var d=new Image;d.onload=function(){a(new mxImage(c,d.width,d.height))};d.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};d.src=c}else a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,c,d){mxUtils.confirm(a)?null!=c&&c():null!=d&&d()};
EditorUi.prototype.createOutline=function(a){var c=new mxOutline(this.editor.graph);c.border=20;mxEvent.addListener(window,"resize",function(){c.update()});this.addListener("pageFormatChanged",function(){c.update()});return c};
-EditorUi.prototype.createKeyHandler=function(a){function c(a,c,d){k.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var e=b.getSelectionCells(),f=0;f<e.length;f++)if(b.getModel().isVertex(e[f])&&b.isCellResizable(e[f])){var g=b.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-c):38==a?g.height=Math.max(0,g.height-c):39==a?g.width+=c:40==a&&(g.height+=c),b.getModel().setGeometry(e[f],g))}}finally{b.getModel().endUpdate()}}else e=
+EditorUi.prototype.createKeyHandler=function(a){function c(a,c,d){h.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var e=b.getSelectionCells(),f=0;f<e.length;f++)if(b.getModel().isVertex(e[f])&&b.isCellResizable(e[f])){var g=b.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-c):38==a?g.height=Math.max(0,g.height-c):39==a?g.width+=c:40==a&&(g.height+=c),b.getModel().setGeometry(e[f],g))}}finally{b.getModel().endUpdate()}}else e=
b.getSelectionCell(),f=b.model.getParent(e),g=null,1==b.getSelectionCount()&&b.model.isVertex(e)&&null!=b.layoutManager&&!b.isCellLocked(e)&&(g=b.layoutManager.getLayout(f)),null!=g&&g.constructor==mxStackLayout?(g=f.getIndex(e),37==a||38==a?b.model.add(f,e,Math.max(0,g-1)):39!=a&&40!=a||b.model.add(f,e,Math.min(b.model.getChildCount(f),g+1))):(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),e,f))});null!=g&&window.clearTimeout(g);g=window.setTimeout(function(){if(0<
-k.length){b.getModel().beginUpdate();try{for(var a=0;a<k.length;a++)k[a]();k=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var d=this,b=this.editor.graph,f=new mxKeyHandler(b),e=f.isEventIgnored;f.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&e.apply(this,arguments)};f.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};f.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var k=[],g=null,h={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},l=f.getFunction,m={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
-80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var e=m[a.keyCode];if(null!=e)return e.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=h[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=
-b.connectVertex(b.getSelectionCell(),h[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=d.hoverIcons&&d.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return l.apply(this,
+h.length){b.getModel().beginUpdate();try{for(var a=0;a<h.length;a++)h[a]();h=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var d=this,b=this.editor.graph,f=new mxKeyHandler(b),e=f.isEventIgnored;f.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
+!mxClient.IS_SF)&&e.apply(this,arguments)};f.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};f.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var h=[],g=null,k={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},l=f.getFunction,m={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
+80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var e=m[a.keyCode];if(null!=e)return e.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=k[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=
+b.connectVertex(b.getSelectionCell(),k[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=d.hoverIcons&&d.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return l.apply(this,
arguments)};f.bindAction=mxUtils.bind(this,function(a,b,c,d){var e=this.actions.get(c);null!=e&&(c=function(){e.isEnabled()&&e.funct()},b?d?f.bindControlShiftKey(a,c):f.bindControlKey(a,c):d?f.bindShiftKey(a,c):f.bindKey(a,c))});var p=f.escape;f.escape=function(a){p.apply(this,arguments)};f.enter=function(){};f.bindControlShiftKey(36,function(){b.exitGroup()});f.bindControlShiftKey(35,function(){b.enterGroup()});f.bindKey(36,function(){b.home()});f.bindKey(35,function(){b.refresh()});f.bindAction(107,
!0,"zoomIn");f.bindAction(109,!0,"zoomOut");f.bindAction(80,!0,"print");f.bindAction(79,!0,"outline",!0);f.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)f.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),f.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),f.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),f.bindAction(8,!1,"delete"),f.bindAction(8,!0,"deleteAll"),f.bindAction(46,!1,
"delete"),f.bindAction(46,!0,"deleteAll"),f.bindAction(72,!0,"resetView"),f.bindAction(72,!0,"fitWindow",!0),f.bindAction(74,!0,"fitPage"),f.bindAction(74,!0,"fitTwoPages",!0),f.bindAction(48,!0,"customZoom"),f.bindAction(82,!0,"turn"),f.bindAction(82,!0,"clearDefaultStyle",!0),f.bindAction(83,!0,"save"),f.bindAction(83,!0,"saveAs",!0),f.bindAction(65,!0,"selectAll"),f.bindAction(65,!0,"selectNone",!0),f.bindAction(73,!0,"selectVertices",!0),f.bindAction(69,!0,"selectEdges",!0),f.bindAction(69,!0,
@@ -2186,26 +2186,26 @@ Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhD
Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+
"/search.png";Sidebar.prototype.dragPreviewBorder="1px dashed black";Sidebar.prototype.enableTooltips=!0;Sidebar.prototype.tooltipBorder=16;Sidebar.prototype.tooltipDelay=300;Sidebar.prototype.dropTargetDelay=200;Sidebar.prototype.gearImage=STENCIL_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.thumbWidth=36;Sidebar.prototype.thumbHeight=36;Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1;Sidebar.prototype.thumbBorder=2;Sidebar.prototype.sidebarTitleSize=9;
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.getTooltipOffset=function(){return new mxPoint(0,0)};
-Sidebar.prototype.showTooltip=function(a,c,d,b,f,e){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var k=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),
+Sidebar.prototype.showTooltip=function(a,c,d,b,f,e){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var h=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(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.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width=
"14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage));this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=d>this.maxTooltipWidth||b>this.maxTooltipHeight?Math.round(100*Math.min(this.maxTooltipWidth/d,this.maxTooltipHeight/b))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==e||e;var g=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph2.addCells(c);
-mxClient.NO_FO=g;var k=this.graph2.getGraphBounds(),l=k.width+2*this.tooltipBorder+4,g=k.height+2*this.tooltipBorder;mxClient.IS_QUIRKS?(g+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible";this.tooltipImage.style.visibility="visible";this.tooltip.style.width=l+"px";this.tooltipTitles&&null!=f&&0<f.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",
+mxClient.NO_FO=g;var h=this.graph2.getGraphBounds(),l=h.width+2*this.tooltipBorder+4,g=h.height+2*this.tooltipBorder;mxClient.IS_QUIRKS?(g+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible";this.tooltipImage.style.visibility="visible";this.tooltip.style.width=l+"px";this.tooltipTitles&&null!=f&&0<f.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,f),l=this.tooltipTitle.offsetHeight+10,g+=l,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-l+"px":(g-=6,this.tooltipTitle.style.top=g-l+"px")):null!=this.tooltipTitle&&
-null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=g+"px";var l=-Math.round(k.x-this.tooltipBorder),k=-Math.round(k.y-this.tooltipBorder),m=document.body,p=document.documentElement,n=this.getTooltipOffset(),q=this.container.clientWidth+this.editorUi.splitSize+3+this.editorUi.container.offsetLeft+n.x,m=Math.min(Math.max(m.clientHeight||0,p.clientHeight)-g-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+a.offsetTop-this.container.scrollTop-
-g/2+16))+n.y;mxClient.IS_SVG?0!=l||0!=k?this.graph2.view.canvas.setAttribute("transform","translate("+l+","+k+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=l+"px",this.graph2.view.drawPane.style.top=k+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=q+"px";this.tooltip.style.top=m+"px";this.tooltipImage.style.left=q-13+"px";this.tooltipImage.style.top=m+g/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?k():this.thread=
-window.setTimeout(k,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.tooltipImage.style.visibility="hidden",this.currentElt=null)};Sidebar.prototype.addDataEntry=function(a,c,d,b,f){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(f,c,d,b)}))};
+null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=g+"px";var l=-Math.round(h.x-this.tooltipBorder),h=-Math.round(h.y-this.tooltipBorder),m=document.body,p=document.documentElement,n=this.getTooltipOffset(),q=this.container.clientWidth+this.editorUi.splitSize+3+this.editorUi.container.offsetLeft+n.x,m=Math.min(Math.max(m.clientHeight||0,p.clientHeight)-g-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+a.offsetTop-this.container.scrollTop-
+g/2+16))+n.y;mxClient.IS_SVG?0!=l||0!=h?this.graph2.view.canvas.setAttribute("transform","translate("+l+","+h+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=l+"px",this.graph2.view.drawPane.style.top=h+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=q+"px";this.tooltip.style.top=m+"px";this.tooltipImage.style.left=q-13+"px";this.tooltipImage.style.top=m+g/2-13+"px"});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.tooltipImage.style.visibility="hidden",this.currentElt=null)};Sidebar.prototype.addDataEntry=function(a,c,d,b,f){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(f,c,d,b)}))};
Sidebar.prototype.addEntry=function(a,c){if(null!=this.taglist&&null!=a&&0<a.length)for(var d=a.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),b=mxUtils.bind(this,function(a){if(1<a.length){var b=this.taglist[a];"object"!==typeof b&&(b={entries:[],dict:new mxDictionary},this.taglist[a]=b);null==b.dict.get(c)&&(b.dict.put(c,c),b.entries.push(c))}}),f=0;f<d.length;f++){b(d[f]);var e=d[f].replace(/\.*\d*$/,"");e!=d[f]&&b(e)}return c};
-Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var k=(d+1)*c;a=[];for(var g=0,h=0;h<e.length;h++)if(0<e[h].length){var l=this.taglist[e[h]],m=new mxDictionary;if(null!=l){var p=l.entries;a=[];for(var n=0;n<p.length;n++)if(l=p[n],0==g==(null==f.get(l))&&(m.put(l,l),a.push(l),h==e.length-1&&a.length==k)){b(a.slice(d*c,k),k,!0,e);return}}else a=[];f=m;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
+Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var h=(d+1)*c;a=[];for(var g=0,k=0;k<e.length;k++)if(0<e[k].length){var l=this.taglist[e[k]],m=new mxDictionary;if(null!=l){var p=l.entries;a=[];for(var n=0;n<p.length;n++)if(l=p[n],0==g==(null==f.get(l))&&(m.put(l,l),a.push(l),k==e.length-1&&a.length==h)){b(a.slice(d*c,h),h,!0,e);return}}else a=[];f=m;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var c=[],d={},b=0;b<a.length;b++)null==d[a[b]]&&(d[a[b]]="1",c.push(a[b]));return c.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,c){var d=a.clone();null!=c&&(d.value=c);return d};
Sidebar.prototype.addSearchPalette=function(a){var c=document.createElement("div");c.style.visibility="hidden";this.container.appendChild(c);var d=document.createElement("div");d.className="geSidebar";d.style.boxSizing="border-box";d.style.overflow="hidden";d.style.width="100%";d.style.padding="8px";d.style.paddingTop="14px";d.style.paddingBottom="0px";a||(d.style.display="none");var b=document.createElement("div");b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.paddingBottom="8px";
b.style.cursor="default";var f=document.createElement("input");f.setAttribute("placeholder",mxResources.get("searchShapes"));f.setAttribute("type","text");f.style.fontSize="12px";f.style.overflow="hidden";f.style.boxSizing="border-box";f.style.border="solid 1px #d5d5d5";f.style.borderRadius="4px";f.style.width="100%";f.style.outline="none";f.style.padding="6px";b.appendChild(f);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",mxResources.get("search"));
-e.style.position="relative";e.style.left="-18px";mxClient.IS_QUIRKS?(f.style.height="28px",e.style.top="-4px"):e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var k;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),h=mxUtils.button(mxResources.get("moreResults"),function(){k()});h.style.display="none";h.style.lineHeight="normal";h.style.marginTop="4px";h.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom="8px";g.appendChild(h);
-d.appendChild(g);var l="",m=!1,p=!1,n=0,q={},t=12,r=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),h.style.display="none",l=f.value="",r());f.focus()});k=mxUtils.bind(this,function(){t=4*Math.max(1,
-Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(r(),l=f.value,q={},p=!1,n=0),!m&&!p)){h.setAttribute("disabled","true");h.style.display="";h.style.cursor="wait";h.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;g.parentNode.removeChild(g);this.insertSearchHint(d,l,t,n,b,c,e,
-f);for(c=0;c<b.length;c++)f=b[c](),null==q[f.innerHTML]&&(q[f.innerHTML]="1",d.appendChild(b[c]()));e?(h.removeAttribute("disabled"),h.innerHTML=mxResources.get("moreResults")):(h.innerHTML=mxResources.get("reset"),h.style.display="none",p=!0);h.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){h.style.cursor=""}))}}else r(),l=f.value="",q={},h.style.display="none",p=!1,f.focus()});mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));
-mxEvent.addListener(f,"focus",function(){f.style.paddingRight=""});mxEvent.addListener(f,"blur",function(){f.style.paddingRight="20px"});f.style.paddingRight="20px";mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(p=!0,h.style.display="none"):f.value!=l?(h.style.display=
-"none",p=!1):m||(h.style.display=p?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
-Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,k,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
+e.style.position="relative";e.style.left="-18px";mxClient.IS_QUIRKS?(f.style.height="28px",e.style.top="-4px"):e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var h;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),k=mxUtils.button(mxResources.get("moreResults"),function(){h()});k.style.display="none";k.style.lineHeight="normal";k.style.marginTop="4px";k.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom="8px";g.appendChild(k);
+d.appendChild(g);var l="",m=!1,p=!1,n=0,q={},t=12,r=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),k.style.display="none",l=f.value="",r());f.focus()});h=mxUtils.bind(this,function(){t=4*Math.max(1,
+Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(r(),l=f.value,q={},p=!1,n=0),!m&&!p)){k.setAttribute("disabled","true");k.style.display="";k.style.cursor="wait";k.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;g.parentNode.removeChild(g);this.insertSearchHint(d,l,t,n,b,c,e,
+f);for(c=0;c<b.length;c++)f=b[c](),null==q[f.innerHTML]&&(q[f.innerHTML]="1",d.appendChild(b[c]()));e?(k.removeAttribute("disabled"),k.innerHTML=mxResources.get("moreResults")):(k.innerHTML=mxResources.get("reset"),k.style.display="none",p=!0);k.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){k.style.cursor=""}))}}else r(),l=f.value="",q={},k.style.display="none",p=!1,f.focus()});mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));
+mxEvent.addListener(f,"focus",function(){f.style.paddingRight=""});mxEvent.addListener(f,"blur",function(){f.style.paddingRight="20px"});f.style.paddingRight="20px";mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(p=!0,k.style.display="none"):f.value!=l?(k.style.display=
+"none",p=!1):m||(k.style.display=p?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
+Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,h,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
Sidebar.prototype.addGeneralPalette=function(a){var c=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",40,20,"Text","Text",null,null,"text textbox textarea label"),
this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",
80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;",120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;",
@@ -2305,96 +2305,96 @@ null,"bpmn send task"),this.createVertexTemplateEntry("shape=message;whiteSpace=
this.createEdgeTemplateEntry("startArrow=dash;startSize=8;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Default Flow",null,"bpmn default flow"),this.createEdgeTemplateEntry("startArrow=diamondThin;startFill=0;startSize=14;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Conditional Flow",null,"bpmn conditional flow"),this.createEdgeTemplateEntry("startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;",100,0,"","Message Flow 1",null,"bpmn message flow"),
this.addEntry("bpmn message flow",function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;b.geometry.offset=new mxPoint(-10,-7);a.insert(b);return d.createEdgeTemplateFromCells([a],
100,0,"Message Flow 2")}),this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"bpmn link")];this.addPaletteFunctions("bpmn","BPMN "+mxResources.get("general"),!1,b)};Sidebar.prototype.createTitle=function(a){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");c.setAttribute("title",mxResources.get("sidebarTooltip"));c.className="geTitle";mxUtils.write(c,a);return c};
-Sidebar.prototype.createThumb=function(a,c,d,b,f,e,k,g,h){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));if(this.graph.dialect!=mxConstants.DIALECT_SVG||
+Sidebar.prototype.createThumb=function(a,c,d,b,f,e,h,g,k){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));if(this.graph.dialect!=mxConstants.DIALECT_SVG||
mxClient.NO_FO){if(g=this.graph.container.cloneNode(!1),g.innerHTML=this.graph.container.innerHTML,mxClient.IS_QUIRKS||8==document.documentMode)g.firstChild.style.overflow="visible"}else g=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();mxClient.NO_FO=e;mxClient.IS_IE6&&(b.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")");g.style.position="relative";g.style.overflow="hidden";g.style.cursor="move";g.style.left=this.thumbBorder+"px";g.style.top=
-this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);this.sidebarTitles&&null!=f&&0!=k&&(b.style.height=this.thumbHeight+(mxClient.IS_QUIRKS?2*this.thumbPadding+2:0)+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),
+this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);this.sidebarTitles&&null!=f&&0!=h&&(b.style.height=this.thumbHeight+(mxClient.IS_QUIRKS?2*this.thumbPadding+2:0)+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),
c.style.paddingTop="4px",mxUtils.write(c,f),b.appendChild(c));return a};
-Sidebar.prototype.createItem=function(a,c,d,b,f,e,k){var g=document.createElement("a");g.setAttribute("href","javascript:void(0);");g.className="geItem";g.style.overflow="hidden";var h=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;g.style.width=this.thumbWidth+h+"px";g.style.height=this.thumbHeight+h+"px";g.style.padding=this.thumbPadding+"px";mxClient.IS_IE6&&(g.style.border="none");mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});this.createThumb(a,this.thumbWidth,this.thumbHeight,
-g,c,d,b,f,e);var l=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(g,this.createDropHandler(a,!0,k,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(g,this.createDropHandler(a,!1,k,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a));mxClient.IS_IOS||mxEvent.addGestureListeners(g,null,mxUtils.bind(this,
+Sidebar.prototype.createItem=function(a,c,d,b,f,e,h){var g=document.createElement("a");g.setAttribute("href","javascript:void(0);");g.className="geItem";g.style.overflow="hidden";var k=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;g.style.width=this.thumbWidth+k+"px";g.style.height=this.thumbHeight+k+"px";g.style.padding=this.thumbPadding+"px";mxClient.IS_IE6&&(g.style.border="none");mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});this.createThumb(a,this.thumbWidth,this.thumbHeight,
+g,c,d,b,f,e);var l=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(g,this.createDropHandler(a,!0,h,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(g,this.createDropHandler(a,!1,h,l),this.createDragPreview(f,e),a,l),this.addClickHandler(g,b,a));mxClient.IS_IOS||mxEvent.addGestureListeners(g,null,mxUtils.bind(this,
function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(g,a,l.width,l.height,c,d)}));return g};
-Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),k="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".split(" "),g=0;g<c.length;g++){var h=c[g];if(d.getModel().isVertex(h)==d.getModel().isVertex(a)||
-d.getModel().isEdge(h)==d.getModel().isEdge(a)){var l=d.view.getState(h),m=null!=l?l.style:d.getCellStyle(c[g]);d.getModel().setStyle(h,e);if(null!=l&&"1"==mxUtils.getValue(l.style,"composite","0"))for(var p=d.model.getChildCount(h);0<=p;p--)d.model.remove(d.model.getChildAt(h,p));if(null!=m)for("umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[h]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],[h])),
-p=0;p<k.length;p++){var n=m[k[p]];null!=n&&d.setCellStyles(k[p],n,[h])}f.push(h)}}}finally{d.model.endUpdate()}return f};
-Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,k,g,h){if(f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();var l=null==k||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(k,a,e),m=null;null==k||l||(k=null);if(!f.isCellLocked(k||f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);h=Math.round(h);if(c&&f.isSplitTarget(k,a,e)){var p=f.cloneCells(a);f.splitEdge(k,p,null,g-b.width/2,h-b.height/2);m=p}else 0<a.length&&
-(m=f.importCells(a,g,h,k));if(null!=f.layoutManager){var n=f.layoutManager.getLayout(k);if(null!=n){var q=f.view.scale,t=f.view.translate,r=(g+t.x)*q,w=(h+t.y)*q;for(k=0;k<m.length;k++)n.moveCell(m[k],r,w)}}d&&f.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m))}}mxEvent.consume(e)}})};
+Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),h="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout recursiveResize container collapsible connectable".split(" "),g=0;g<c.length;g++){var k=c[g];if(d.getModel().isVertex(k)==d.getModel().isVertex(a)||
+d.getModel().isEdge(k)==d.getModel().isEdge(a)){var l=d.view.getState(k),m=null!=l?l.style:d.getCellStyle(c[g]);d.getModel().setStyle(k,e);if(null!=l&&"1"==mxUtils.getValue(l.style,"composite","0"))for(var p=d.model.getChildCount(k);0<=p;p--)d.model.remove(d.model.getChildAt(k,p));if(null!=m)for("umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[k]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],[k])),
+p=0;p<h.length;p++){var n=m[h[p]];null!=n&&d.setCellStyles(h[p],n,[k])}f.push(k)}}}finally{d.model.endUpdate()}return f};
+Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,h,g,k){if(f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();var l=null==h||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(h,a,e),m=null;null==h||l||(h=null);if(!f.isCellLocked(h||f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var p=f.cloneCells(a);f.splitEdge(h,p,null,g-b.width/2,k-b.height/2);m=p}else 0<a.length&&
+(m=f.importCells(a,g,k,h));if(null!=f.layoutManager){var n=f.layoutManager.getLayout(h);if(null!=n){var q=f.view.scale,t=f.view.translate,r=(g+t.x)*q,w=(k+t.y)*q;for(h=0;h<m.length;h++)n.moveCell(m[h],r,w)}}d&&f.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m))}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.style.border=this.dragPreviewBorder;d.style.width=a+"px";d.style.height=c+"px";return d};
-Sidebar.prototype.dropAndConnect=function(a,c,d,b){var f=this.getDropAndConnectGeometry(a,c[b],d,c),e=[];if(null!=f){var k=this.editorUi.editor.graph;k.model.beginUpdate();try{var g=k.getCellGeometry(a),h=k.getCellGeometry(c[b]),l=k.model.getParent(a),m=!0;if(null!=k.layoutManager){var p=k.layoutManager.getLayout(l);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,e=k.view.getState(l),null!=e)){var n=new mxPoint(e.x/k.view.scale-k.view.translate.x,e.y/k.view.scale-k.view.translate.y);f.x+=n.x;f.y+=
-n.y;var q=f.getTerminalPoint(!1);null!=q&&(q.x+=n.x,q.y+=n.y)}}var t=h.x,r=h.y;k.model.isEdge(c[b])&&(r=t=0);var w=k.model.isEdge(a)||null!=g&&!g.relative&&m,e=c=k.importCells(c,f.x-(w?t:0),f.y-(w?r:0),w?l:null);if(k.model.isEdge(a))k.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(k.model.isEdge(c[b])){k.model.setTerminal(c[b],a,!0);var v=k.getCellGeometry(c[b]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(w&&k.model.isVertex(l)){var u=
-k.view.getState(l),n=u.cell!=k.view.currentRoot?new mxPoint(u.x/k.view.scale-k.view.translate.x,u.y/k.view.scale-k.view.translate.y):new mxPoint(0,0);k.cellsMoved(c,n.x,n.y,null,null,!0)}}else h=k.getCellGeometry(c[b]),t=f.x-Math.round(h.x),r=f.y-Math.round(h.y),f.x=Math.round(h.x),f.y=Math.round(h.y),k.model.setGeometry(c[b],f),k.cellsMoved(c,t,r,null,null,!0),e=c.slice(),c.push(k.insertEdge(null,null,"",a,c[b],k.createCurrentEdgeStyle()));k.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{k.model.endUpdate()}}return e};
-Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,k=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
+Sidebar.prototype.dropAndConnect=function(a,c,d,b){var f=this.getDropAndConnectGeometry(a,c[b],d,c),e=[];if(null!=f){var h=this.editorUi.editor.graph;h.model.beginUpdate();try{var g=h.getCellGeometry(a),k=h.getCellGeometry(c[b]),l=h.model.getParent(a),m=!0;if(null!=h.layoutManager){var p=h.layoutManager.getLayout(l);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,e=h.view.getState(l),null!=e)){var n=new mxPoint(e.x/h.view.scale-h.view.translate.x,e.y/h.view.scale-h.view.translate.y);f.x+=n.x;f.y+=
+n.y;var q=f.getTerminalPoint(!1);null!=q&&(q.x+=n.x,q.y+=n.y)}}var t=k.x,r=k.y;h.model.isEdge(c[b])&&(r=t=0);var w=h.model.isEdge(a)||null!=g&&!g.relative&&m,e=c=h.importCells(c,f.x-(w?t:0),f.y-(w?r:0),w?l:null);if(h.model.isEdge(a))h.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(h.model.isEdge(c[b])){h.model.setTerminal(c[b],a,!0);var v=h.getCellGeometry(c[b]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(w&&h.model.isVertex(l)){var u=
+h.view.getState(l),n=u.cell!=h.view.currentRoot?new mxPoint(u.x/h.view.scale-h.view.translate.x,u.y/h.view.scale-h.view.translate.y):new mxPoint(0,0);h.cellsMoved(c,n.x,n.y,null,null,!0)}}else k=h.getCellGeometry(c[b]),t=f.x-Math.round(k.x),r=f.y-Math.round(k.y),f.x=Math.round(k.x),f.y=Math.round(k.y),h.model.setGeometry(c[b],f),h.cellsMoved(c,t,r,null,null,!0),e=c.slice(),c.push(h.insertEdge(null,null,"",a,c[b],h.createCurrentEdgeStyle()));h.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{h.model.endUpdate()}}return e};
+Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,h=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
-b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!k&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
+b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!h&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mxConstants.DIRECTION_WEST&&(b.x=b.x-g.width/2-b.width/2-e),f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=c.getTerminal(!1)&&(g=f.getCellGeometry(c.getTerminal(!1)),null!=g&&(d==mxConstants.DIRECTION_NORTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()+g.height/2):d==mxConstants.DIRECTION_EAST?(b.x-=g.getCenterX()-g.width/2,b.y-=g.getCenterY()):d==mxConstants.DIRECTION_SOUTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()-g.height/
2):d==mxConstants.DIRECTION_WEST&&(b.x-=g.getCenterX()+g.width/2,b.y-=g.getCenterY()))))));return b};
Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(c=document.createElement(mxClient.VML_PREFIX+":image"),c.setAttribute("src",a.src),c.style.borderStyle="none"):(c=document.createElement("div"),c.style.backgroundImage="url("+a.src+")",c.style.backgroundPosition="center",c.style.backgroundRepeat="no-repeat"),c.style.width=a.width+4+"px",c.style.height=a.height+4+"px",c.style.display=mxClient.IS_QUIRKS?
-"inline":"inline-block"):(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 k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),E=d):mxUtils.setOpacity(d,d==C?30:20));return c}for(var g=this.editorUi,h=g.editor.graph,l=null,m=null,p=this,n=0;n<b.length&&(null==m&&this.editorUi.editor.graph.model.isVertex(b[n])?
-m=n:null==l&&this.editorUi.editor.graph.model.isEdge(b[n])&&null==this.editorUi.editor.graph.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=v&&E==C){var k=a.isCellSelected(v.cell)?a.getSelectionCells():[v.cell],k=this.updateShapes(a.model.isEdge(v.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=b&&null!=E&&null!=
-r&&E!=C?(k=a.model.isEdge(r.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(r.cell,b,I,k))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(a,b){q.isActive()&&q.reset()});var t=q.mouseDown;q.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),t.apply(this,
-arguments))};var r=null,w=null,v=null,u=!1,z=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),D=e(this.triangleDown,mxResources.get("connect")),A=e(this.triangleLeft,mxResources.get("connect")),C=e(this.refreshTarget,mxResources.get("replace")),B=null,L=e(this.roundDrop),K=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,E=null,J=q.createPreviewElement;q.createPreviewElement=function(a){var b=J.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
+"inline":"inline-block"):(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),E=d):mxUtils.setOpacity(d,d==D?30:20));return c}for(var g=this.editorUi,k=g.editor.graph,l=null,m=null,p=this,n=0;n<b.length&&(null==m&&this.editorUi.editor.graph.model.isVertex(b[n])?
+m=n:null==l&&this.editorUi.editor.graph.model.isEdge(b[n])&&null==this.editorUi.editor.graph.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=v&&E==D){var h=a.isCellSelected(v.cell)?a.getSelectionCells():[v.cell],h=this.updateShapes(a.model.isEdge(v.cell)?b[0]:b[m],h);a.setSelectionCells(h)}else null!=b&&null!=E&&null!=
+r&&E!=D?(h=a.model.isEdge(r.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(r.cell,b,I,h))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(a,b){q.isActive()&&q.reset()});var t=q.mouseDown;q.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(k.stopEditing(),t.apply(this,
+arguments))};var r=null,w=null,v=null,u=!1,z=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),C=e(this.triangleDown,mxResources.get("connect")),A=e(this.triangleLeft,mxResources.get("connect")),D=e(this.refreshTarget,mxResources.get("replace")),B=null,L=e(this.roundDrop),K=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,E=null,J=q.createPreviewElement;q.createPreviewElement=function(a){var b=J.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var N=q.dragEnter;q.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");N.apply(this,arguments)};var Q=q.dragExit;q.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");Q.apply(this,arguments)};q.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=E&&this.currentGuide.hide();if(null!=this.previewElement){var d=
-a.view;if(null!=v&&E==C)this.previewElement.style.display=a.model.isEdge(v.cell)?"none":"",this.previewElement.style.left=v.x+"px",this.previewElement.style.top=v.y+"px",this.previewElement.style.width=v.width+"px",this.previewElement.style.height=v.height+"px";else if(null!=r&&null!=E){var e=a.model.isEdge(r.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(r.cell,b[e],I,b),k=a.model.isEdge(r.cell)?null:a.getCellGeometry(r.cell),h=a.getCellGeometry(b[e]),y=a.model.getParent(r.cell),H=d.translate.x*
-d.scale,G=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(y)&&y!=d.currentRoot&&(G=d.getState(y),H=G.x,G=G.y);k=h.x;h=h.y;a.model.isEdge(b[e])&&(h=k=0);this.previewElement.style.left=(g.x-k)*d.scale+H+"px";this.previewElement.style.top=(g.y-h)*d.scale+G+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=q.currentHighlight.state&&a.model.isEdge(q.currentHighlight.state.cell)?
-(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),F=0,H=null,G=this.editorUi.editor.graph.getCellStyle(b[0]);q.getDropTarget=mxUtils.bind(this,function(a,
-c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=f&&!this.graph.isCellConnectable(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 h=a.view.getState(f),g=E=null;H!=h?(H=h,O=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=h&&(this.updateThread=window.setTimeout(function(){null==E&&(H=h,q.getDropTarget(a,c,d,e))},this.dropTargetDelay+
-10))):F=(new Date).getTime()-O;if(2500>F&&null!=h&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(G,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(G,mxConstants.STYLE_SHAPE)||
-1500<F||a.model.isEdge(h.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){v=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);C.style.left=Math.floor(l.x)+"px";C.style.top=Math.floor(l.y)+"px";null==B&&(a.container.appendChild(C),B=C.parentNode);k(c,d,l,C)}else null==
-v||!mxUtils.contains(v,c,d)||1500<F&&!mxEvent.isShiftDown(e)?(v=null,null!=B&&(C.parentNode.removeChild(C),B=null)):null!=v&&null!=B&&(l=a.model.isEdge(v.cell)?a.view.getPoint(v):new mxPoint(v.getCenterX(),v.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(c,d,l,C));if(u&&null!=r&&!mxEvent.isAltDown(e)&&null==E){g=mxRectangle.fromRectangle(r);if(a.model.isEdge(r.cell)){var y=r.absolutePoints;null!=
-L.parentNode&&(l=y[0],g.add(k(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=K.parentNode&&(y=y[y.length-1],g.add(k(c,d,new mxRectangle(y.x-this.roundDrop.width/2,y.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)))}else l=mxRectangle.fromRectangle(r),null!=r.shape&&null!=r.shape.boundingBox&&(l=mxRectangle.fromRectangle(r.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),
-y=this.graph.selectionCellsHandler.getHandler(r.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),g.add(k(c,d,new mxRectangle(r.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),
-z)),g.add(k(c,d,new mxRectangle(l.x+l.width,r.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),g.add(k(c,d,new mxRectangle(r.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),D)),g.add(k(c,d,new mxRectangle(l.x-this.triangleLeft.width,r.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),A));null!=g&&g.grow(10)}I=mxConstants.DIRECTION_NORTH;E==x?I=mxConstants.DIRECTION_EAST:
-E==D||E==K?I=mxConstants.DIRECTION_SOUTH:E==A&&(I=mxConstants.DIRECTION_WEST);null!=v&&E==C&&(h=v);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=r&&5E3<=F||r!=h&&(null==g||!mxUtils.contains(g,c,d)||500<F&&null==E&&l))if(u=!1,r=5E3>F&&F>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=r&&l){g=[L,K,z,x,D,A];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(y=h.absolutePoints,
-null!=y&&(l=y[0],y=y[y.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",K.style.left=Math.floor(y.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(y.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(K))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&
-(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),y=this.graph.selectionCellsHandler.getHandler(h.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),
-z.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",z.style.top=Math.floor(l.y-this.triangleUp.height)+"px",x.style.left=Math.floor(l.x+l.width)+"px",x.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",D.style.left=z.style.left,D.style.top=Math.floor(l.y+l.height)+"px",A.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",A.style.top=x.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(z),a.container.appendChild(D)),a.container.appendChild(x),
-a.container.appendChild(A));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));u=!0}else for(g=[L,K,z,x,D,A],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);u||null==w||w.setHandlesVisible(!0);f=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=v&&E==C?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=E||!a.isSplitTarget(f,b,e))){for(;null!=f&&!a.isValidDropTarget(f,
-b,e)&&g.isVertex(g.getParent(f));)f=g.getParent(f);if(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f))f=null}return f});q.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,K,C,z,x,D,A],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=r&&null!=w&&w.reset();E=B=v=r=w=null};return q};
+a.view;if(null!=v&&E==D)this.previewElement.style.display=a.model.isEdge(v.cell)?"none":"",this.previewElement.style.left=v.x+"px",this.previewElement.style.top=v.y+"px",this.previewElement.style.width=v.width+"px",this.previewElement.style.height=v.height+"px";else if(null!=r&&null!=E){var e=a.model.isEdge(r.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(r.cell,b[e],I,b),h=a.model.isEdge(r.cell)?null:a.getCellGeometry(r.cell),k=a.getCellGeometry(b[e]),y=a.model.getParent(r.cell),G=d.translate.x*
+d.scale,H=d.translate.y*d.scale;null!=h&&!h.relative&&a.model.isVertex(y)&&y!=d.currentRoot&&(H=d.getState(y),G=H.x,H=H.y);h=k.x;k=k.y;a.model.isEdge(b[e])&&(k=h=0);this.previewElement.style.left=(g.x-h)*d.scale+G+"px";this.previewElement.style.top=(g.y-k)*d.scale+H+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=q.currentHighlight.state&&a.model.isEdge(q.currentHighlight.state.cell)?
+(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),F=0,G=null,H=this.editorUi.editor.graph.getCellStyle(b[0]);q.getDropTarget=mxUtils.bind(this,function(a,
+c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d);if(null!=f&&!this.graph.isCellConnectable(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=E=null;G!=k?(G=k,O=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=k&&(this.updateThread=window.setTimeout(function(){null==E&&(G=k,q.getDropTarget(a,c,d,e))},this.dropTargetDelay+
+10))):F=(new Date).getTime()-O;if(2500>F&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(H,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(H,mxConstants.STYLE_SHAPE)||
+1500<F||a.model.isEdge(k.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(k.cell)&&null!=m||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){v=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);D.style.left=Math.floor(l.x)+"px";D.style.top=Math.floor(l.y)+"px";null==B&&(a.container.appendChild(D),B=D.parentNode);h(c,d,l,D)}else null==
+v||!mxUtils.contains(v,c,d)||1500<F&&!mxEvent.isShiftDown(e)?(v=null,null!=B&&(D.parentNode.removeChild(D),B=null)):null!=v&&null!=B&&(l=a.model.isEdge(v.cell)?a.view.getPoint(v):new mxPoint(v.getCenterX(),v.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),h(c,d,l,D));if(u&&null!=r&&!mxEvent.isAltDown(e)&&null==E){g=mxRectangle.fromRectangle(r);if(a.model.isEdge(r.cell)){var y=r.absolutePoints;null!=
+L.parentNode&&(l=y[0],g.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=K.parentNode&&(y=y[y.length-1],g.add(h(c,d,new mxRectangle(y.x-this.roundDrop.width/2,y.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)))}else l=mxRectangle.fromRectangle(r),null!=r.shape&&null!=r.shape.boundingBox&&(l=mxRectangle.fromRectangle(r.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),
+y=this.graph.selectionCellsHandler.getHandler(r.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),g.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),
+z)),g.add(h(c,d,new mxRectangle(l.x+l.width,r.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),g.add(h(c,d,new mxRectangle(r.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),C)),g.add(h(c,d,new mxRectangle(l.x-this.triangleLeft.width,r.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),A));null!=g&&g.grow(10)}I=mxConstants.DIRECTION_NORTH;E==x?I=mxConstants.DIRECTION_EAST:
+E==C||E==K?I=mxConstants.DIRECTION_SOUTH:E==A&&(I=mxConstants.DIRECTION_WEST);null!=v&&E==D&&(k=v);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=r&&5E3<=F||r!=k&&(null==g||!mxUtils.contains(g,c,d)||500<F&&null==E&&l))if(u=!1,r=5E3>F&&F>this.dropTargetDelay||a.model.isEdge(f)?k:null,null!=r&&l){g=[L,K,z,x,C,A];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(y=k.absolutePoints,
+null!=y&&(l=y[0],y=y[y.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",K.style.left=Math.floor(y.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(y.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(K))):(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),y=this.graph.selectionCellsHandler.getHandler(k.cell),null!=y&&(l.x-=y.horizontalOffset/2,l.y-=y.verticalOffset/2,l.width+=y.horizontalOffset,l.height+=y.verticalOffset,null!=y.rotationShape&&null!=y.rotationShape.node&&"hidden"!=y.rotationShape.node.style.visibility&&"none"!=y.rotationShape.node.style.display&&null!=y.rotationShape.boundingBox&&l.add(y.rotationShape.boundingBox)),
+z.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",z.style.top=Math.floor(l.y-this.triangleUp.height)+"px",x.style.left=Math.floor(l.x+l.width)+"px",x.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",C.style.left=z.style.left,C.style.top=Math.floor(l.y+l.height)+"px",A.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",A.style.top=x.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(z),a.container.appendChild(C)),a.container.appendChild(x),
+a.container.appendChild(A));null!=k&&(w=a.selectionCellsHandler.getHandler(k.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));u=!0}else for(g=[L,K,z,x,C,A],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);u||null==w||w.setHandlesVisible(!0);f=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=v&&E==D?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=E||!a.isSplitTarget(f,b,e))){for(;null!=f&&!a.isValidDropTarget(f,
+b,e)&&g.isVertex(g.getParent(f));)f=g.getParent(f);if(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f))f=null}return f});q.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,K,D,z,x,C,A],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=r&&null!=w&&w.reset();E=B=v=r=w=null};return q};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;if(mxEvent.isAltDown(d)){if(1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:mxConstants.DIRECTION_SOUTH,
c)),b.scrollCellToVisible(b.getSelectionCell()))}}else mxEvent.isShiftDown(d)&&!b.isSelectionEmpty()?(this.updateShapes(a[0],b.getSelectionCells()),b.scrollCellToVisible(b.getSelectionCell())):(a=b.getFreeInsertPoint(),c.drop(b,d,null,a.x,a.y),null!=this.editorUi.hoverIcons&&(mxEvent.isTouchEvent(d)||mxEvent.isPenEvent(d))&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell())))};
-Sidebar.prototype.addClickHandler=function(a,c,d){var b=this.editorUi.editor.graph,f=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(a){e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))});c.mouseUp=mxUtils.bind(this,function(k){if(!mxEvent.isPopupTrigger(k)&&null==this.currentGraph&&null!=e){var g=b.tolerance;Math.abs(e.x-mxEvent.getClientX(k))<=g&&Math.abs(e.y-mxEvent.getClientY(k))<=g&&this.itemClicked(d,c,k,a)}f.apply(c,arguments);e=null;this.currentElt=a})};
-Sidebar.prototype.createVertexTemplateEntry=function(a,c,d,b,f,e,k,g){g=null!=g&&0<g.length?g:f.toLowerCase();return this.addEntry(g,mxUtils.bind(this,function(){return this.createVertexTemplate(a,c,d,b,f,e,k)}))};Sidebar.prototype.createVertexTemplate=function(a,c,d,b,f,e,k,g){a=[new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,c,d,f,e,k,g)};
-Sidebar.prototype.createVertexTemplateFromData=function(a,c,d,b,f,e,k){a=mxUtils.parseXml(this.graph.decompress(a));var g=new mxCodec(a),h=new mxGraphModel;g.decode(a.documentElement,h);a=this.graph.cloneCells(h.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,c,d,b,f,e,k)};Sidebar.prototype.createVertexTemplateFromCells=function(a,c,d,b,f,e,k){return this.createItem(a,b,f,e,c,d,k)};
-Sidebar.prototype.createEdgeTemplateEntry=function(a,c,d,b,f,e,k,g){k=null!=k&&0<k.length?k:f.toLowerCase();return this.addEntry(k,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,c,d,b,f,e,g)}))};
-Sidebar.prototype.createEdgeTemplate=function(a,c,d,b,f,e,k){a=new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a);a.geometry.setTerminalPoint(new mxPoint(0,d),!0);a.geometry.setTerminalPoint(new mxPoint(c,0),!1);a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],c,d,f,e,k)};Sidebar.prototype.createEdgeTemplateFromCells=function(a,c,d,b,f,e){return this.createItem(a,b,f,!0,c,d,e)};
+Sidebar.prototype.addClickHandler=function(a,c,d){var b=this.editorUi.editor.graph,f=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(a){e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))});c.mouseUp=mxUtils.bind(this,function(h){if(!mxEvent.isPopupTrigger(h)&&null==this.currentGraph&&null!=e){var g=b.tolerance;Math.abs(e.x-mxEvent.getClientX(h))<=g&&Math.abs(e.y-mxEvent.getClientY(h))<=g&&this.itemClicked(d,c,h,a)}f.apply(c,arguments);e=null;this.currentElt=a})};
+Sidebar.prototype.createVertexTemplateEntry=function(a,c,d,b,f,e,h,g){g=null!=g&&0<g.length?g:f.toLowerCase();return this.addEntry(g,mxUtils.bind(this,function(){return this.createVertexTemplate(a,c,d,b,f,e,h)}))};Sidebar.prototype.createVertexTemplate=function(a,c,d,b,f,e,h,g){a=[new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,c,d,f,e,h,g)};
+Sidebar.prototype.createVertexTemplateFromData=function(a,c,d,b,f,e,h){a=mxUtils.parseXml(this.graph.decompress(a));var g=new mxCodec(a),k=new mxGraphModel;g.decode(a.documentElement,k);a=this.graph.cloneCells(k.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,c,d,b,f,e,h)};Sidebar.prototype.createVertexTemplateFromCells=function(a,c,d,b,f,e,h){return this.createItem(a,b,f,e,c,d,h)};
+Sidebar.prototype.createEdgeTemplateEntry=function(a,c,d,b,f,e,h,g){h=null!=h&&0<h.length?h:f.toLowerCase();return this.addEntry(h,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,c,d,b,f,e,g)}))};
+Sidebar.prototype.createEdgeTemplate=function(a,c,d,b,f,e,h){a=new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a);a.geometry.setTerminalPoint(new mxPoint(0,d),!0);a.geometry.setTerminalPoint(new mxPoint(c,0),!1);a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],c,d,f,e,h)};Sidebar.prototype.createEdgeTemplateFromCells=function(a,c,d,b,f,e){return this.createItem(a,b,f,!0,c,d,e)};
Sidebar.prototype.addPaletteFunctions=function(a,c,d,b){this.addPalette(a,c,d,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))};
Sidebar.prototype.addPalette=function(a,c,d,b){c=this.createTitle(c);this.container.appendChild(c);var f=document.createElement("div");f.className="geSidebar";mxClient.IS_POINTER&&(f.style.touchAction="none");d?(b(f),b=null):f.style.display="none";this.addFoldingHandler(c,f,b);d=document.createElement("div");d.appendChild(f);this.container.appendChild(d);null!=a&&(this.palettes[a]=[c,d]);return f};
Sidebar.prototype.addFoldingHandler=function(a,c,d){var b=!1;if(!mxClient.IS_IE||8<=document.documentMode)a.style.backgroundImage="none"==c.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(f){if("none"==c.style.display){if(b)c.style.display="block";else if(b=!0,null!=d){a.style.cursor="wait";var e=a.innerHTML;a.innerHTML=mxResources.get("loading")+
"...";window.setTimeout(function(){var b=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;d(c);mxClient.NO_FO=b;c.style.display="block";a.style.cursor="";a.innerHTML=e},0)}else c.style.display="block";a.style.backgroundImage="url('"+this.expandedImage+"')"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",c.style.display="none";mxEvent.consume(f)}))};
Sidebar.prototype.removePalette=function(a){var c=this.palettes[a];if(null!=c){this.palettes[a]=null;for(a=0;a<c.length;a++)this.container.removeChild(c[a]);return!0}return!1};
-Sidebar.prototype.addImagePalette=function(a,c,d,b,f,e,k){for(var g=[],h=0;h<f.length;h++)mxUtils.bind(this,function(a,c,e){if(null==e){e=a.lastIndexOf("/");var f=a.lastIndexOf(".");e=a.substring(0<=e?e+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}g.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+d+a+b,this.defaultImageWidth,this.defaultImageHeight,"",c,null!=c,null,this.filterTags(e)))})(f[h],null!=e?e[h]:null,null!=k?k[f[h]]:null);this.addPaletteFunctions(a,c,
+Sidebar.prototype.addImagePalette=function(a,c,d,b,f,e,h){for(var g=[],k=0;k<f.length;k++)mxUtils.bind(this,function(a,c,e){if(null==e){e=a.lastIndexOf("/");var f=a.lastIndexOf(".");e=a.substring(0<=e?e+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}g.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+d+a+b,this.defaultImageWidth,this.defaultImageHeight,"",c,null!=c,null,this.filterTags(e)))})(f[k],null!=e?e[k]:null,null!=h?h[f[k]]:null);this.addPaletteFunctions(a,c,
!1,g)};Sidebar.prototype.getTagsForStencil=function(a,c,d){a=a.split(".");for(var b=1;b<a.length;b++)a[b]=a[b].replace(/_/g," ");a.push(c.replace(/_/g," "));null!=d&&a.push(d);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,k,g,h){k=null!=k?k:1;if(this.addStencilsToIndex){var l=[];if(null!=h)for(var m=0;m<h.length;m++)l.push(h[m]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,h){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var m=null!=g?g[c]:null;null!=m&&d.push(m);l.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*k),Math.round(h*k),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,c,!1,l)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=h)for(var c=0;c<h.length;c++)h[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,h){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*k),Math.round(h*k),"",d.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,h,g,k){h=null!=h?h:1;if(this.addStencilsToIndex){var l=[];if(null!=k)for(var m=0;m<k.length;m++)l.push(k[m]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,k){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var m=null!=g?g[c]:null;null!=m&&d.push(m);l.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*h),Math.round(k*h),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,c,!1,l)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=k)for(var c=0;c<k.length;c++)k[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,k){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*h),Math.round(k*h),"",d.replace(/_/g," "),!0))}),!0)}))};
Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),
this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;
(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
Graph=function(a,c,d,b,f){mxGraph.call(this,a,c,d,b);this.themes=f||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;c=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=a.indexOf("/",c+2),0<c&&(this.domainUrl=a.substring(0,c)),c=a.lastIndexOf("/"),0<c&&(this.domainPathUrl=a.substring(0,c+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,k=null,g=null,h=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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(e=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())?h=mxEvent.LABEL_HANDLE:(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&null!=d.bends&&0<d.bends.length&&(h=d.getHandleForEvent(c))))}}}));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.isControlDown(b.getEvent())&&
-!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(d=this.tolerance,null!=e&&null!=g&&null!=k){if(c=g,Math.abs(e.x-b.getGraphX())>d||Math.abs(e.y-b.getGraphY())>d){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(k),p=this.view.getEdgeStyle(c);d=p==mxEdgeStyle.EntityRelation;l||h!=mxEvent.LABEL_HANDLE||(m=h);if(d&&0!=m&&m!=f.bends.length-1&&m!=mxEvent.LABEL_HANDLE)!d||
-null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState)d||m==mxEvent.LABEL_HANDLE||(d=c.absolutePoints,null!=d&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector)&&(m=h,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?
-m=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==p?mxEvent.VIRTUAL_HANDLE-m:m+1))),null==m&&(m=mxEvent.VIRTUAL_HANDLE)),f.start(b.getGraphX(),b.getGraphX(),m),h=e=k=g=null,l=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(m=new mxRectangle(b.getGraphX(),
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,h=null,g=null,k=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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(e=new mxPoint(c.getGraphX(),c.getGraphY()),l=this.isCellSelected(d.cell),g=d,h=c,null!=
+d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?k=mxEvent.LABEL_HANDLE:(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&null!=d.bends&&0<d.bends.length&&(k=d.getHandleForEvent(c))))}}}));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.isControlDown(b.getEvent())&&
+!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(d=this.tolerance,null!=e&&null!=g&&null!=h){if(c=g,Math.abs(e.x-b.getGraphX())>d||Math.abs(e.y-b.getGraphY())>d){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(h),p=this.view.getEdgeStyle(c);d=p==mxEdgeStyle.EntityRelation;l||k!=mxEvent.LABEL_HANDLE||(m=k);if(d&&0!=m&&m!=f.bends.length-1&&m!=mxEvent.LABEL_HANDLE)!d||
+null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState)d||m==mxEvent.LABEL_HANDLE||(d=c.absolutePoints,null!=d&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector)&&(m=k,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?
+m=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==p?mxEvent.VIRTUAL_HANDLE-m:m+1))),null==m&&(m=mxEvent.VIRTUAL_HANDLE)),f.start(b.getGraphX(),b.getGraphX(),m),k=e=h=g=null,l=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(m=new mxRectangle(b.getGraphX(),
b.getGraphY()),m.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))f="move";else if(mxUtils.contains(m,d[0].x,d[0].y)||mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)p=this.view.getEdgeStyle(c),f="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(p=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),
-p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}),mouseUp:mxUtils.bind(this,function(a,b){h=e=k=g=null})})}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);
+p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}),mouseUp:mxUtils.bind(this,function(a,b){k=e=h=g=null})})}this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),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=0;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(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=0;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var b=mxGraphHandler.prototype.getCells.apply(this,arguments),c=[],d=0;d<b.length;d++){var e=this.graph.view.getState(b[d]),e=null!=e?e.style:this.graph.getCellStyle(b[d]);
"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(b[d]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(b,e)&&c.push(e)):c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);
this.getRubberband=function(){return p};var n=(new Date).getTime(),q=0,t=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;t.apply(this,arguments);a!=this.currentState?(n=(new Date).getTime(),q=0):q=(new Date).getTime()-n};var r=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<q||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
"outlineConnect","1"))&&r.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var u=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
(u=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=u)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=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 z.apply(this,
arguments);b=b?a.sourceState.cell:a.getCell();if(null!=b){var c=this.getLinkForCell(b);null!=c&&(this.isPageLink(c)?this.pageLinkClicked(b,c):this.openLink(c))}};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 x=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
-this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return x.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),h=a+c,k=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var l=g.getChildCount(e),m=0;m<l;m++){var G=g.getChildAt(e,m),
-y=this.view.getState(G);if(null!=y&&this.isCellVisible(G)&&"1"!=mxUtils.getValue(y.style,"locked","0")){var p=mxUtils.getValue(y.style,mxConstants.STYLE_ROTATION)||0;0!=p&&(y=mxUtils.getBoundingBox(y,p));(g.isEdge(G)||g.isVertex(G))&&y.x>=a&&y.y+y.height<=k&&y.y>=b&&y.x+y.width<=h&&f.push(G);this.getAllCells(a,b,c,d,G,f)}}}return f};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:D.apply(this,
+this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return x.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,h=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var l=g.getChildCount(e),m=0;m<l;m++){var H=g.getChildAt(e,m),
+y=this.view.getState(H);if(null!=y&&this.isCellVisible(H)&&"1"!=mxUtils.getValue(y.style,"locked","0")){var p=mxUtils.getValue(y.style,mxConstants.STYLE_ROTATION)||0;0!=p&&(y=mxUtils.getBoundingBox(y,p));(g.isEdge(H)||g.isVertex(H))&&y.x>=a&&y.y+y.height<=h&&y.y>=b&&y.x+y.width<=k&&f.push(H);this.getAllCells(a,b,c,d,H,f)}}}return f};var C=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:C.apply(this,
arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var A=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();A=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)),p.start(c.x,c.y)):null!=A?this.addSelectionCells(A):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);A=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=
-function(a,b){return b&&a.view.graph.isCellSelected(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 C=this.updateMouseEvent;this.updateMouseEvent=function(a){a=C.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
+function(a,b){return b&&a.view.graph.isCellSelected(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 D=this.updateMouseEvent;this.updateMouseEvent=function(a){a=D.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
null);return a}}};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.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
Graph.createSvgImage=function(a,c,d){d=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+c+'px" version="1.1">'+d+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0)),a,c)};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.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);
Graph.prototype.transparentBackground=!0;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=(window!=window.top?document.referrer:document.location.toString()).split("#")[0];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,d){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,c=!0,e=null,k=mxUtils.bind(this,function(a){c=!0;e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){c=c&&null!=e&&Math.abs(e.x-mxEvent.getClientX(a))<b&&Math.abs(e.y-mxEvent.getClientY(a))<b}),h=mxUtils.bind(this,function(b){if(c)for(var e=mxEvent.getSource(b);null!=
-e&&e!=d.node;){if("a"==e.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,e,b);break}e=e.parentNode}});mxEvent.addGestureListeners(d.node,k,g,h);mxEvent.addListener(d.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,d){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,c=!0,e=null,h=mxUtils.bind(this,function(a){c=!0;e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){c=c&&null!=e&&Math.abs(e.x-mxEvent.getClientX(a))<b&&Math.abs(e.y-mxEvent.getClientY(a))<b}),k=mxUtils.bind(this,function(b){if(c)for(var e=mxEvent.getSource(b);null!=
+e&&e!=d.node;){if("a"==e.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,e,b);break}e=e.parentNode}});mxEvent.addGestureListeners(d.node,h,g,k);mxEvent.addListener(d.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
Graph.prototype.labelLinkClicked=function(a,c,d){c=c.getAttribute("href");if(null!=c&&!this.isPageLink(c)&&mxEvent.isLeftMouseButton(d)&&!mxEvent.isPopupTrigger(d)||mxEvent.isTouchEvent(d)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),a);mxEvent.consume(d)}};
Graph.prototype.openLink=function(a,c){var d=window;if("_self"==c&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var b=a.split("#")[1];window.location.hash=="#"+b&&(window.location.hash="");window.location.hash=b}else d=window.open(a,c);return d};Graph.prototype.isPageLink=function(a){return!1};
Graph.prototype.pageLinkClicked=function(a,c){this.fireEvent(new mxEventObject("pageLinkClicked","cell",a,"href",c))};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2410,29 +2410,29 @@ Graph.prototype.isSplitTarget=function(a,c,d){return!this.model.isEdge(c[0])&&!m
Graph.prototype.isLabelMovable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(c,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,d){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,k=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",h=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),q=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),r=d?0:a.getTimezoneOffset(),w={d:h,dd:k(h),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:k(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:k(n%12||12),H:n,HH:k(n),M:q,MM:k(q),s:t,ss:k(t),l:k(g,3),L:k(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<r?"-":"+")+k(100*Math.floor(Math.abs(r)/60)+Math.abs(r)%60,4),S:["th","st","nd","rd"][3<h%10?0:(10!=h%100-h%10)*h%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,h=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),q=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),r=d?0:a.getTimezoneOffset(),w={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:h(n%12||12),H:n,HH:h(n),M:q,MM:h(q),s:t,ss:h(t),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<r?"-":"+")+h(100*Math.floor(Math.abs(r)/60)+Math.abs(r)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var c=this.getModel(),d=c.getChildCount(c.root),b=0;b<d;b++)(function(b){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var f=document.createElement("input");f.style.display="inline-block";f.setAttribute("type","checkbox");c.isVisible(b)&&(f.setAttribute("checked","checked"),f.defaultChecked=
!0);d.appendChild(f);var g=b.value||mxResources.get("background")||"Background";d.setAttribute("title",g);mxUtils.write(d,g);a.appendChild(d);mxEvent.addListener(f,"click",function(){null!=f.getAttribute("checked")?f.removeAttribute("checked"):f.setAttribute("checked","checked");c.setVisible(b,f.checked)})})(c.getChildAt(c.root,b));return a};
-Graph.prototype.replacePlaceholders=function(a,c){for(var d=[],b=0;match=this.placeholderPattern.exec(c);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var e=null;if(match.index>b&&"%"==c.charAt(match.index-1))e=f.substring(1);else{var k=f.substring(1,f.length-1);if(0>k.indexOf("{"))for(var g=a;null==e&&null!=g;)null!=g.value&&"object"==typeof g.value&&(e=g.hasAttribute(k)?null!=g.getAttribute(k)?g.getAttribute(k):"":null),g=this.model.getParent(g);null==e&&(e=this.getGlobalVariable(k))}d.push(c.substring(b,
+Graph.prototype.replacePlaceholders=function(a,c){for(var d=[],b=0;match=this.placeholderPattern.exec(c);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var e=null;if(match.index>b&&"%"==c.charAt(match.index-1))e=f.substring(1);else{var h=f.substring(1,f.length-1);if(0>h.indexOf("{"))for(var g=a;null==e&&null!=g;)null!=g.value&&"object"==typeof g.value&&(e=g.hasAttribute(h)?null!=g.getAttribute(h)?g.getAttribute(h):"":null),g=this.model.getParent(g);null==e&&(e=this.getGlobalVariable(h))}d.push(c.substring(b,
match.index)+(null!=e?e:f));b=match.index+f.length}}d.push(c.substring(b));return d.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,c,d,b,f,e){e=e?e:!1;var k=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(k.x+=a.geometry.width/2,k.y-=d):c==mxConstants.DIRECTION_SOUTH?(k.x+=a.geometry.width/2,k.y+=a.geometry.height+d):(k.x=c==mxConstants.DIRECTION_WEST?k.x-d:k.x+(a.geometry.width+d),k.y+=a.geometry.height/2);d=this.view.getState(this.model.getParent(a));
-var g=this.view.scale,h=this.view.translate,l=h.x*g,h=h.y*g;this.model.isVertex(d.cell)&&(l=d.x,h=d.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(k.x+=a.parent.geometry.x,k.y+=a.parent.geometry.y);e=e||mxEvent.isControlDown(b)&&!f?null:this.getCellAt(l+k.x*g,h+k.y*g);this.model.isAncestor(e,a)&&(e=null);for(d=e;null!=d;){if(this.isCellLocked(d)){e=null;break}d=this.model.getParent(d)}null!=e&&(d=this.view.getState(a),g=this.view.getState(e),null!=d&&null!=g&&mxUtils.intersects(d,g)&&(e=
-null));if(f=!mxEvent.isShiftDown(b)||f)c==mxConstants.DIRECTION_NORTH?k.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?k.y+=a.geometry.height/2:k.x=c==mxConstants.DIRECTION_WEST?k.x-a.geometry.width/2:k.x+a.geometry.width/2;null==e||this.isCellConnectable(e)||(d=this.getModel().getParent(e),this.getModel().isVertex(d)&&this.isCellConnectable(d)&&(e=d));if(e==a||this.model.isEdge(e)||!this.isCellConnectable(e))e=null;d=[];this.model.beginUpdate();try{g=e;if(null==g&&f){for(var l=a,m=this.getCellGeometry(a);null!=
-m&&m.relative;)l=this.getModel().getParent(l),m=this.getCellGeometry(l);var p=this.view.getState(l),n=null!=p?p.style:this.getCellStyle(l);if(mxUtils.getValue(n,"part",!1)){var q=this.model.getParent(l);this.model.isVertex(q)&&(l=q)}g=this.duplicateCells([l],!1)[0];m=this.getCellGeometry(g);null!=m&&(m.x=k.x-m.width/2,m.y=k.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var t=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?
+Graph.prototype.connectVertex=function(a,c,d,b,f,e){e=e?e:!1;var h=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(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(h.x+=a.geometry.width/2,h.y-=d):c==mxConstants.DIRECTION_SOUTH?(h.x+=a.geometry.width/2,h.y+=a.geometry.height+d):(h.x=c==mxConstants.DIRECTION_WEST?h.x-d:h.x+(a.geometry.width+d),h.y+=a.geometry.height/2);d=this.view.getState(this.model.getParent(a));
+var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;this.model.isVertex(d.cell)&&(l=d.x,k=d.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(h.x+=a.parent.geometry.x,h.y+=a.parent.geometry.y);e=e||mxEvent.isControlDown(b)&&!f?null:this.getCellAt(l+h.x*g,k+h.y*g);this.model.isAncestor(e,a)&&(e=null);for(d=e;null!=d;){if(this.isCellLocked(d)){e=null;break}d=this.model.getParent(d)}null!=e&&(d=this.view.getState(a),g=this.view.getState(e),null!=d&&null!=g&&mxUtils.intersects(d,g)&&(e=
+null));if(f=!mxEvent.isShiftDown(b)||f)c==mxConstants.DIRECTION_NORTH?h.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?h.y+=a.geometry.height/2:h.x=c==mxConstants.DIRECTION_WEST?h.x-a.geometry.width/2:h.x+a.geometry.width/2;null==e||this.isCellConnectable(e)||(d=this.getModel().getParent(e),this.getModel().isVertex(d)&&this.isCellConnectable(d)&&(e=d));if(e==a||this.model.isEdge(e)||!this.isCellConnectable(e))e=null;d=[];this.model.beginUpdate();try{g=e;if(null==g&&f){for(var l=a,m=this.getCellGeometry(a);null!=
+m&&m.relative;)l=this.getModel().getParent(l),m=this.getCellGeometry(l);var p=this.view.getState(l),n=null!=p?p.style:this.getCellStyle(l);if(mxUtils.getValue(n,"part",!1)){var q=this.model.getParent(l);this.model.isVertex(q)&&(l=q)}g=this.duplicateCells([l],!1)[0];m=this.getCellGeometry(g);null!=m&&(m.x=h.x-m.width/2,m.y=h.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var t=mxEvent.isControlDown(b)&&f||null==e&&null!=m&&m.constructor==mxStackLayout?
null:this.insertEdge(this.model.getParent(a),null,"",a,g,this.createCurrentEdgeStyle());if(null!=t&&this.connectionHandler.insertBeforeSource){var r=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=t.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==t.parent&&(r=b.parent.getIndex(b),this.model.add(b.parent,t,r))}null==e&&null!=g&&null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST&&(r=a.parent.getIndex(a),this.model.add(a.parent,
-g,r));null!=t&&d.push(t);null==e&&null!=g&&d.push(g);null==g&&null!=t&&t.geometry.setTerminalPoint(k,!1);null!=t&&this.fireEvent(new mxEventObject("cellsInserted","cells",[t]))}finally{this.model.endUpdate()}return d};
+g,r));null!=t&&d.push(t);null==e&&null!=g&&d.push(g);null==g&&null!=t&&t.geometry.setTerminalPoint(h,!1);null!=t&&this.fireEvent(new mxEventObject("cellsInserted","cells",[t]))}finally{this.model.endUpdate()}return d};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.getLabel(d),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var c=a.getAttribute("placeholder"),d=a,b=null;null==b&&null!=d;)null!=d.value&&"object"==typeof d.value&&(b=d.hasAttribute(c)?null!=d.getAttribute(c)?d.getAttribute(c):"":null),d=this.model.getParent(d);return b||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);this.model.isVertex(d)&&this.isCellCollapsed(a)&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!d.horizontal))}return c};
Graph.prototype.updateAlternateBounds=function(a,c,d){if(null!=a&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var k=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=k&&null!=g){var h=Math.round(g.width-k.width/this.view.scale),l=Math.round(g.height-k.height/this.view.scale);if(0!=l||0!=h){var m=this.model.getParent(d[e]),p=this.layoutManager.getLayout(m);
-null==p?null!=f&&this.isMoveCellsEvent(f)&&this.moveSiblings(k,m,h,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,h,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
-Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),k=this.getCellGeometry(f[c]);null!=e&&null!=k&&(k=k.clone(),k.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],k))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),k=this.view.getState(a);null!=k&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,k.width/this.view.scale-e.width):e.height+=b+Math.min(0,k.height/this.view.scale-e.height),this.model.setGeometry(a,
+Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var h=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=h&&null!=g){var k=Math.round(g.width-h.width/this.view.scale),l=Math.round(g.height-h.height/this.view.scale);if(0!=l||0!=k){var m=this.model.getParent(d[e]),p=this.layoutManager.getLayout(m);
+null==p?null!=f&&this.isMoveCellsEvent(f)&&this.moveSiblings(h,m,k,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,k,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
+Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),h=this.getCellGeometry(f[c]);null!=e&&null!=h&&(h=h.clone(),h.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],h))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),h=this.view.getState(a);null!=h&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,h.width/this.view.scale-e.width):e.height+=b+Math.min(0,h.height/this.view.scale-e.height),this.model.setGeometry(a,
e));a=this.model.getParent(a);c=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,c,d){d=d||this.getDefaultParent();this.isCellLocked(d)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,c,d){d=d||this.getDefaultParent();return this.isCellLocked(d)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=c.collapsible||!this.isContainer(a)&&"1"==c.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
@@ -2475,23 +2475,23 @@ this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activa
this.reset())}else 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};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,b){var d=this.getState(a);null!=d&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=c.apply(this,arguments);null!=
d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,b){return d.apply(this,arguments)||null!=a.routedPoints&&null!=b.routedPoints&&!mxUtils.equalPoints(b.routedPoints,a.routedPoints)};var b=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){b.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],v=[],u=b[g+2];g<
-b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,u.x,u.y,h.x,h.y)<1*this.scale*this.scale;)h=u,g++,u=b[g+2];for(var c=e(0,k.x,k.y)||c,z=0;z<this.validEdges.length;z++){var x=this.validEdges[z],D=x.absolutePoints;if(null!=D&&mxUtils.intersects(a,x)&&"1"!=x.style.noJump)for(x=0;x<D.length-1;x++){for(var A=D[x+1],C=D[x],u=D[x+2];x<D.length-2&&mxUtils.ptSegDistSq(C.x,C.y,u.x,u.y,A.x,A.y)<1*this.scale*this.scale;)A=u,x++,u=D[x+2];u=mxUtils.intersection(k.x,k.y,h.x,h.y,C.x,C.y,A.x,A.y);if(null!=u&&(Math.abs(u.x-
-C.x)>f||Math.abs(u.y-C.y)>f)&&(Math.abs(u.x-A.x)>f||Math.abs(u.y-A.y)>f)){A=u.x-k.x;C=u.y-k.y;u={distSq:A*A+C*C,x:u.x,y:u.y};for(A=0;A<v.length;A++)if(v[A].distSq>u.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;x<v.length;x++)c=e(1,v[x].x,v[x].y)||c}u=b[b.length-1];c=e(0,u.x,u.y)||c}a.routedPoints=d;return c}return!1};var f=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],v=[],u=b[g+2];g<
+b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,u.x,u.y,k.x,k.y)<1*this.scale*this.scale;)k=u,g++,u=b[g+2];for(var c=e(0,h.x,h.y)||c,z=0;z<this.validEdges.length;z++){var x=this.validEdges[z],C=x.absolutePoints;if(null!=C&&mxUtils.intersects(a,x)&&"1"!=x.style.noJump)for(x=0;x<C.length-1;x++){for(var A=C[x+1],D=C[x],u=C[x+2];x<C.length-2&&mxUtils.ptSegDistSq(D.x,D.y,u.x,u.y,A.x,A.y)<1*this.scale*this.scale;)A=u,x++,u=C[x+2];u=mxUtils.intersection(h.x,h.y,k.x,k.y,D.x,D.y,A.x,A.y);if(null!=u&&(Math.abs(u.x-
+D.x)>f||Math.abs(u.y-D.y)>f)&&(Math.abs(u.x-A.x)>f||Math.abs(u.y-A.y)>f)){A=u.x-h.x;D=u.y-h.y;u={distSq:A*A+D*D,x:u.x,y:u.y};for(A=0;A<v.length;A++)if(v[A].distSq>u.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;x<v.length;x++)c=e(1,v[x].x,v[x].y)||c}u=b[b.length-1];c=e(0,u.x,u.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,k=!0,l=null,m=null;h=[];var u=null;a.begin();for(var z=0;z<this.state.routedPoints.length;z++){var x=
-this.state.routedPoints[z],D=new mxPoint(x.x/this.scale,x.y/this.scale);0==z?D=b[0]:z==this.state.routedPoints.length-1&&(D=b[b.length-1]);var A=!1;if(null!=l&&1==x.type){var C=this.state.routedPoints[z+1],x=C.x/this.scale-D.x,C=C.y/this.scale-D.y,x=x*x+C*C;null==u&&(u=new mxPoint(D.x-l.x,D.y-l.y),m=Math.sqrt(u.x*u.x+u.y*u.y),u.x=u.x*e/m,u.y=u.y*e/m);x>e*e&&0<m&&(x=l.x-D.x,C=l.y-D.y,x=x*x+C*C,x>e*e&&(A=new mxPoint(D.x-u.x,D.y-u.y),x=new mxPoint(D.x+u.x,D.y+u.y),h.push(A),this.addPoints(a,h,c,d,!1,
-null,k),h=0>Math.round(u.x)||0==Math.round(u.x)&&0>=Math.round(u.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(A.x-u.y*h,A.y+u.x*h),a.lineTo(x.x-u.y*h,x.y+u.x*h),a.lineTo(x.x,x.y)):"arc"==g?(h*=1.3,a.curveTo(A.x-u.y*h,A.y+u.x*h,x.x-u.y*h,x.y+u.x*h,x.x,x.y)):(a.moveTo(x.x,x.y),k=!0),h=[x],A=!0))}else u=null;A||(h.push(D),l=D)}this.addPoints(a,h,c,d,!1,null,k);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==
+this.state.routedPoints[z],C=new mxPoint(x.x/this.scale,x.y/this.scale);0==z?C=b[0]:z==this.state.routedPoints.length-1&&(C=b[b.length-1]);var A=!1;if(null!=l&&1==x.type){var D=this.state.routedPoints[z+1],x=D.x/this.scale-C.x,D=D.y/this.scale-C.y,x=x*x+D*D;null==u&&(u=new mxPoint(C.x-l.x,C.y-l.y),m=Math.sqrt(u.x*u.x+u.y*u.y),u.x=u.x*e/m,u.y=u.y*e/m);x>e*e&&0<m&&(x=l.x-C.x,D=l.y-C.y,x=x*x+D*D,x>e*e&&(A=new mxPoint(C.x-u.x,C.y-u.y),x=new mxPoint(C.x+u.x,C.y+u.y),h.push(A),this.addPoints(a,h,c,d,!1,
+null,k),h=0>Math.round(u.x)||0==Math.round(u.x)&&0>=Math.round(u.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(A.x-u.y*h,A.y+u.x*h),a.lineTo(x.x-u.y*h,x.y+u.x*h),a.lineTo(x.x,x.y)):"arc"==g?(h*=1.3,a.curveTo(A.x-u.y*h,A.y+u.x*h,x.x-u.y*h,x.y+u.x*h,x.x,x.y)):(a.moveTo(x.x,x.y),k=!0),h=[x],A=!0))}else u=null;A||(h.push(C),l=C)}this.addPoints(a,h,c,d,!1,null,k);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==
a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)e.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var f=this.getNextPoint(a,c,d),g=this.graph.isOrthogonal(a),h=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=h)var l=Math.cos(-h),m=Math.sin(-h),f=mxUtils.getRotatedPoint(f,l,m,k);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);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;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 k=mxStencil.prototype.evaluateTextAttribute;
-mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=k.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=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&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(a.view.graph.decompress(c));
+0);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;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 h=mxStencil.prototype.evaluateTextAttribute;
+mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=h.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var g=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&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-1),d=mxUtils.parseXml(a.view.graph.decompress(c));
return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var c=mxStencilRegistry.stencils[a];if(null==c&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var d=mxStencilRegistry.getBasenameForStencil(a);if(null!=d){c=mxStencilRegistry.libraries[d];if(null!=c){if(null==mxStencilRegistry.packages[d]){for(var b=0;b<c.length;b++){var f=c[b];if(".xml"==f.toLowerCase().substring(f.length-4,f.length))mxStencilRegistry.loadStencilSet(f,null);else if(".js"==f.toLowerCase().substring(f.length-3,f.length))try{if(mxStencilRegistry.allowEval){var e=
-mxUtils.load(f);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(k){null!=window.console&&console.log("error in getStencil:",f,k)}}mxStencilRegistry.packages[d]=1}}else d=d.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+d+".xml",null);c=mxStencilRegistry.stencils[a]}}return c};
+mxUtils.load(f);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",f,h)}}mxStencilRegistry.packages[d]=1}}else d=d.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+d+".xml",null);c=mxStencilRegistry.stencils[a]}}return c};
mxStencilRegistry.getBasenameForStencil=function(a){var c=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var c=a[1],d=2;d<a.length-1;d++)c+="/"+a[d];return c};
-mxStencilRegistry.loadStencilSet=function(a,c,d,b){var f=mxStencilRegistry.packages[a];if(null!=d&&d||null==f){var e=!1;if(null==f)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,e=!0,mxStencilRegistry.parseStencilSet(b.documentElement,c,e))}));return}f=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=f;e=!0}catch(k){null!=window.console&&console.log("error in loadStencilSet:",a,k)}null!=f&&null!=
+mxStencilRegistry.loadStencilSet=function(a,c,d,b){var f=mxStencilRegistry.packages[a];if(null!=d&&d||null==f){var e=!1;if(null==f)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,e=!0,mxStencilRegistry.parseStencilSet(b.documentElement,c,e))}));return}f=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=f;e=!0}catch(h){null!=window.console&&console.log("error in loadStencilSet:",a,h)}null!=f&&null!=
f.documentElement&&mxStencilRegistry.parseStencilSet(f.documentElement,c,e)}};mxStencilRegistry.loadStencil=function(a,c){if(null!=c)mxUtils.get(a,mxUtils.bind(this,function(a){c(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var c=0;c<a.length;c++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[c]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,c,d){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,c,d),b=b.nextSibling;else{d=null!=d?d:!0;var b=a.firstChild,f="";a=a.getAttribute("name");for(null!=a&&(f=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var f=f.toLowerCase(),e=a.replace(/ /g,"_");d&&mxStencilRegistry.addStencil(f+e.toLowerCase(),new mxStencil(b));if(null!=c){var k=b.getAttribute("w"),
-g=b.getAttribute("h"),k=null==k?80:parseInt(k,10),g=null==g?80:parseInt(g,10);c(f,e,a,k,g)}}b=b.nextSibling}}};
+mxStencilRegistry.parseStencilSet=function(a,c,d){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,c,d),b=b.nextSibling;else{d=null!=d?d:!0;var b=a.firstChild,f="";a=a.getAttribute("name");for(null!=a&&(f=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var f=f.toLowerCase(),e=a.replace(/ /g,"_");d&&mxStencilRegistry.addStencil(f+e.toLowerCase(),new mxStencil(b));if(null!=c){var h=b.getAttribute("w"),
+g=b.getAttribute("h"),h=null==h?80:parseInt(h,10),g=null==g?80:parseInt(g,10);c(f,e,a,h,g)}}b=b.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#99ccff";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR=
"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=8;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var c=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
c.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));
@@ -2505,8 +2505,8 @@ a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stenci
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){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(b,"dropTarget",
"1"))};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){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var f=b.getTerminal(e,!0),g=b.getTerminal(e,!1);b.setTerminal(e,g,!0);b.setTerminal(e,f,!1);var h=b.getGeometry(e);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var k=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);
-h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,h);var m=this.view.getState(e),H=this.view.getState(f),p=this.view.getState(g);if(null!=m){var n=null!=H?this.getConnectionConstraint(m,H,!0):null,q=null!=p?this.getConnectionConstraint(m,p,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,n)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;
-h.height=t;b.setGeometry(e,h);var x=this.view.getState(e);if(null!=x){var r=x.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,r,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);
+h.setTerminalPoint(k,!1);h.setTerminalPoint(l,!0);b.setGeometry(e,h);var m=this.view.getState(e),G=this.view.getState(f),p=this.view.getState(g);if(null!=m){var n=null!=G?this.getConnectionConstraint(m,G,!0):null,q=null!=p?this.getConnectionConstraint(m,p,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,n)}c.push(e)}}else if(b.isVertex(e)&&(h=this.getCellGeometry(e),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;
+h.height=t;b.setGeometry(e,h);var r=this.view.getState(e);if(null!=r){var x=r.style[mxConstants.STYLE_DIRECTION]||"east";"east"==x?x="south":"south"==x?x="west":"west"==x?x="north":"north"==x&&(x="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,x,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);
if(0<b.length)for(var c=0;c<b.length;c++)this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],!1,!1)}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=
0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),h=0;h<g.length;h++)b(g[h]);d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=this.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),
e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||
@@ -2530,46 +2530,47 @@ Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink"
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 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.encodeCells=function(a){for(var b=this.cloneCells(a),c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(d=0;d<b.length;d++){var e=
this.view.getState(a[d]);if(null!=e){var f=this.getCellGeometry(b[d]);null==f||!f.relative||this.model.isEdge(a[d])||c.get(this.model.getParent(a[d]))||(f.relative=!1,f.x=e.x/e.view.scale-e.view.translate.x,f.y=e.y/e.view.scale-e.view.translate.y)}}c=new mxCodec;e=new mxGraphModel;f=e.getChildAt(e.getRoot(),0);for(d=0;d<a.length;d++)e.add(f,b[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var h=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument();d=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=d.style?d.style.backgroundColor=a:d.setAttribute("style","background-color:"+
-a));null==l.createElementNS?(d.setAttribute("xmlns",mxConstants.NS_SVG),d.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):d.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;d.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*c)+"px");d.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*c)+"px");d.setAttribute("version","1.1");var m=d;e&&(m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),m.setAttribute("transform",
-"translate(0.5,0.5)"),d.appendChild(m));l.appendChild(d);l=this.createSvgCanvas(m);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-h.x)/k),Math.floor((c/b-h.y)/k));var y=document.createElement("textarea"),p=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,H){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
+return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h){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;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument(),m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=m.style?m.style.backgroundColor=a:m.setAttribute("style","background-color:"+
+a));null==l.createElementNS?(m.setAttribute("xmlns",mxConstants.NS_SVG),m.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):m.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;m.setAttribute("width",Math.max(1,Math.ceil(d.width*a)+2*c)+"px");m.setAttribute("height",Math.max(1,Math.ceil(d.height*a)+2*c)+"px");m.setAttribute("version","1.1");var y=m;e&&(y=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),y.setAttribute("transform",
+"translate(0.5,0.5)"),m.appendChild(y));l.appendChild(m);l=this.createSvgCanvas(y);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-d.x)/k),Math.floor((c/b-d.y)/k));var p=document.createElement("textarea"),n=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,y,G){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
Math.round((e+q.fontSize)/2));t.setAttribute("fill",q.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(q.fontSize)+"px");t.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(q.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(q.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration",
-"underline");try{return y.innerHTML=f,t.textContent=y.value,t}catch(ia){return p.apply(this,arguments)}}else return p.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(h,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;g=this.createSvgImageExport();var n=g.drawCellState;g.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&n.apply(this,arguments)};g.drawState(this.getView().getState(this.model.root),
-l);return d};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");
-c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,
-f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&
-this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(W){}};var f=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));f.apply(this,arguments)};var e=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?e.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var k=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){k.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=
-c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var g=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
-a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}g.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()};var h=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",h.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(H){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var p=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);p.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};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 n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&
-null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+"underline");try{return p.innerHTML=f,t.textContent=p.value,t}catch(Ea){return n.apply(this,arguments)}}else return n.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var G=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&G.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),l);return m};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),
+e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=
+this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&
+(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(W){}};var f=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));f.apply(this,arguments)};var e=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?e.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var h=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){h.apply(this,
+arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var g=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}g.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(G){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var p=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);p.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
+d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};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 n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
@@ -2588,9 +2589,9 @@ arguments)};var r=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePrevi
"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&u.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),
e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?
HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var x=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return x.apply(this,
-arguments)};var D=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):D.apply(this,arguments)};var A=mxVertexHandler.prototype.mouseDown;
+arguments)};var C=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):C.apply(this,arguments)};var A=mxVertexHandler.prototype.mouseDown;
mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&A.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
-this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var C=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){C.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
+this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var D=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){D.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
function(a,b){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var L=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){L.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,c){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
b()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(c,d);if(null!=c||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b,c){if(null==b&&(null==c||0==c.length)||1<this.graph.getSelectionCount())null!=
@@ -2620,34 +2621,34 @@ Format.prototype.isAutoSizeState=function(a){return"1"==mxUtils.getValue(a.style
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(){if("0px"!=this.container.style.width){this.clear();var a=this.editorUi,c=a.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.color="rgb(112, 112, 112)";d.style.textAlign="left";d.style.cursor="default";var b=document.createElement("div");b.style.border="1px solid #c0c0c0";b.style.borderWidth="0px 0px 1px 0px";b.style.textAlign="center";b.style.fontWeight="bold";b.style.overflow="hidden";b.style.display=mxClient.IS_QUIRKS?"inline":
"inline-block";b.style.paddingTop="8px";b.style.height=mxClient.IS_QUIRKS?"34px":"25px";b.style.width="100%";this.container.appendChild(d);if(c.isSelectionEmpty())mxUtils.write(b,mxResources.get("diagram")),this.showCloseButton&&(c=document.createElement("img"),c.setAttribute("border","0"),c.setAttribute("src",Dialog.prototype.closeImage),c.setAttribute("title",mxResources.get("hide")),c.style.position="absolute",c.style.display="block",c.style.right="0px",c.style.top="8px",c.style.cursor="pointer",
-c.style.marginTop="1px",c.style.marginRight="17px",c.style.border="1px solid transparent",c.style.padding="1px",c.style.opacity=.5,b.appendChild(c),mxEvent.addListener(c,"click",function(){a.actions.get("formatPanel").funct()})),d.appendChild(b),this.panels.push(new DiagramFormatPanel(this,a,d));else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),this.panels.push(new TextFormatPanel(this,a,d));else{var f=this.getSelectionState().containsLabel,e=null,k=null,c=mxUtils.bind(this,
-function(a,b,c){var d=mxUtils.bind(this,function(d){e!=a&&(f?this.labelIndex=c:this.currentIndex=c,null!=e&&(e.style.backgroundColor=this.inactiveTabBackgroundColor,e.style.borderBottomWidth="1px"),e=a,e.style.backgroundColor="",e.style.borderBottomWidth="0px",k!=b&&(null!=k&&(k.style.display="none"),k=b,k.style.display=""))});mxEvent.addListener(a,"click",d);c==(f?this.labelIndex:this.currentIndex)&&d()}),g=0;b.style.backgroundColor=this.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.width=
-f?"50%":"33.3%";b.style.width=f?"50%":"33.3%";var h=b.cloneNode(!1),l=h.cloneNode(!1);h.style.backgroundColor=this.inactiveTabBackgroundColor;l.style.backgroundColor=this.inactiveTabBackgroundColor;if(f)h.style.borderLeftWidth="0px";else{b.style.borderLeftWidth="0px";mxUtils.write(b,mxResources.get("style"));d.appendChild(b);var m=d.cloneNode(!1);m.style.display="none";this.panels.push(new StyleFormatPanel(this,a,m));this.container.appendChild(m);c(b,m,g++)}mxUtils.write(h,mxResources.get("text"));
-d.appendChild(h);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(l,mxResources.get("arrange"));d.appendChild(l);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);c(h,b,g++);c(l,d,g++)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
+c.style.marginTop="1px",c.style.marginRight="17px",c.style.border="1px solid transparent",c.style.padding="1px",c.style.opacity=.5,b.appendChild(c),mxEvent.addListener(c,"click",function(){a.actions.get("formatPanel").funct()})),d.appendChild(b),this.panels.push(new DiagramFormatPanel(this,a,d));else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),this.panels.push(new TextFormatPanel(this,a,d));else{var f=this.getSelectionState().containsLabel,e=null,h=null,c=mxUtils.bind(this,
+function(a,b,c){var d=mxUtils.bind(this,function(d){e!=a&&(f?this.labelIndex=c:this.currentIndex=c,null!=e&&(e.style.backgroundColor=this.inactiveTabBackgroundColor,e.style.borderBottomWidth="1px"),e=a,e.style.backgroundColor="",e.style.borderBottomWidth="0px",h!=b&&(null!=h&&(h.style.display="none"),h=b,h.style.display=""))});mxEvent.addListener(a,"click",d);c==(f?this.labelIndex:this.currentIndex)&&d()}),g=0;b.style.backgroundColor=this.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.width=
+f?"50%":"33.3%";b.style.width=f?"50%":"33.3%";var k=b.cloneNode(!1),l=k.cloneNode(!1);k.style.backgroundColor=this.inactiveTabBackgroundColor;l.style.backgroundColor=this.inactiveTabBackgroundColor;if(f)k.style.borderLeftWidth="0px";else{b.style.borderLeftWidth="0px";mxUtils.write(b,mxResources.get("style"));d.appendChild(b);var m=d.cloneNode(!1);m.style.display="none";this.panels.push(new StyleFormatPanel(this,a,m));this.container.appendChild(m);c(b,m,g++)}mxUtils.write(k,mxResources.get("text"));
+d.appendChild(k);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(l,mxResources.get("arrange"));d.appendChild(l);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);c(k,b,g++);c(l,d,g++)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),d=null,b=0;b<c.length;b++){var f=a.view.getState(c[b]);if(null!=f&&(f=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null),null!=f))if(null==d)d=f;else if(d!=f)return null}return d};
-BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,k,g){e=null!=e?e:"";g=null!=g?g:!1;var h=this.editorUi,l=h.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&k)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),k(q),a.value=q+e,
-p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{l.setCellStyles(c,q,l.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")}),h.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}a.value=q+e;mxEvent.consume(n)});k&&l.cellEditor.isContentEditing()&&
+BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,h,g){e=null!=e?e:"";g=null!=g?g:!1;var k=this.editorUi,l=k.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&h)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),h(q),a.value=q+e,
+p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{l.setCellStyles(c,q,l.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")}),k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}a.value=q+e;mxEvent.consume(n)});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",n);mxEvent.addListener(a,"blur",n);return n};BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.style.padding="12px 0px 12px 18px";a.style.borderBottom="1px solid #c0c0c0";return a};
BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
-BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_QUIRKS)b-=2;else if(mxClient.IS_MT||8<=document.documentMode)b+=1;var k=document.createElement("div");mxUtils.setPrefixedStyle(k.style,"borderRadius","3px");k.style.border="1px solid rgb(192, 192, 192)";k.style.position="absolute";var g=document.createElement("div");g.style.borderBottom="1px solid rgb(192, 192, 192)";g.style.position="relative";g.style.height=b+"px";g.style.width="10px";g.className=
-"geBtnUp";k.appendChild(g);var h=g.cloneNode(!1);h.style.border="none";h.style.height=b+"px";h.className="geBtnDown";k.appendChild(h);mxEvent.addListener(h,"click",function(b){""==a.value&&(a.value=e||"2");var f=parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){""==a.value&&(a.value=e||"0");var f=parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var l=null;mxEvent.addGestureListeners(k,function(a){if(mxClient.IS_QUIRKS||
-8==document.documentMode)l=document.selection.createRange();mxEvent.consume(a)},null,function(a){if(null!=l){try{l.select()}catch(p){}l=null;mxEvent.consume(a)}})}return k};
-BaseFormatPanel.prototype.createOption=function(a,c,d,b){var f=document.createElement("div");f.style.padding="6px 0px 1px 0px";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.width="200px";f.style.height=mxClient.IS_QUIRKS?"27px":"18px";var e=document.createElement("input");e.setAttribute("type","checkbox");e.style.margin="0px 6px 0px 0px";f.appendChild(e);var k=document.createElement("span");mxUtils.write(k,a);f.appendChild(k);var g=!1,h=c(),l=function(a){g||(g=!0,a?(e.setAttribute("checked",
-"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),h!=a&&(h=a,c()!=h&&d(h)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=e.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==k)e.checked=!e.checked;l(e.checked)}});l(h);null!=b&&(b.install(l),this.listeners.push(b));return f};
-BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,k,g){b=null!=b?"null"==b?null:b:"1";f=null!=f?"null"==f?null:f:"0";var h=this.editorUi,l=h.editor.graph;return this.createOption(a,function(){var a=l.view.getState(l.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,d)!=f:null},function(a){g&&l.stopEditing();if(null!=k)k.funct();else{l.getModel().beginUpdate();try{a=a?b:f,l.setCellStyles(c,a,l.getSelectionCells()),null!=e&&e(l.getSelectionCells(),a),h.fireEvent(new mxEventObject("styleChanged",
+BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_QUIRKS)b-=2;else if(mxClient.IS_MT||8<=document.documentMode)b+=1;var h=document.createElement("div");mxUtils.setPrefixedStyle(h.style,"borderRadius","3px");h.style.border="1px solid rgb(192, 192, 192)";h.style.position="absolute";var g=document.createElement("div");g.style.borderBottom="1px solid rgb(192, 192, 192)";g.style.position="relative";g.style.height=b+"px";g.style.width="10px";g.className=
+"geBtnUp";h.appendChild(g);var k=g.cloneNode(!1);k.style.border="none";k.style.height=b+"px";k.className="geBtnDown";h.appendChild(k);mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"2");var f=parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){""==a.value&&(a.value=e||"0");var f=parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var l=null;mxEvent.addGestureListeners(h,function(a){if(mxClient.IS_QUIRKS||
+8==document.documentMode)l=document.selection.createRange();mxEvent.consume(a)},null,function(a){if(null!=l){try{l.select()}catch(p){}l=null;mxEvent.consume(a)}})}return h};
+BaseFormatPanel.prototype.createOption=function(a,c,d,b){var f=document.createElement("div");f.style.padding="6px 0px 1px 0px";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.width="200px";f.style.height=mxClient.IS_QUIRKS?"27px":"18px";var e=document.createElement("input");e.setAttribute("type","checkbox");e.style.margin="0px 6px 0px 0px";f.appendChild(e);var h=document.createElement("span");mxUtils.write(h,a);f.appendChild(h);var g=!1,k=c(),l=function(a){g||(g=!0,a?(e.setAttribute("checked",
+"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),k!=a&&(k=a,c()!=k&&d(k)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=e.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==h)e.checked=!e.checked;l(e.checked)}});l(k);null!=b&&(b.install(l),this.listeners.push(b));return f};
+BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,h,g){b=null!=b?"null"==b?null:b:"1";f=null!=f?"null"==f?null:f:"0";var k=this.editorUi,l=k.editor.graph;return this.createOption(a,function(){var a=l.view.getState(l.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,d)!=f:null},function(a){g&&l.stopEditing();if(null!=h)h.funct();else{l.getModel().beginUpdate();try{a=a?b:f,l.setCellStyles(c,a,l.getSelectionCells()),null!=e&&e(l.getSelectionCells(),a),k.fireEvent(new mxEventObject("styleChanged",
"keys",[c],"values",[a],"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}},{install:function(a){this.listener=function(){var b=l.view.getState(l.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,d)!=f)};l.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){l.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,k){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";k||g.appendChild(h);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=!1,p=c(),n=null,q=function(a,f,g){if(!m){m=
-!0;n.innerHTML='<div style="width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>';if(mxClient.IS_QUIRKS||8==document.documentMode)n.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1);n.style.display=h.checked||k?"":"none";null!=e&&e(a);f||(p=a,(g||k||c()!=p)&&
-d(p));m=!1}},n=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(p,function(a){q(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right=mxClient.IS_QUIRKS?"0px":"20px";n.style.height="22px";n.className="geColorBtn";n.style.display=h.checked||k?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==h||"INPUT"!=a.nodeName)a!=h&&(h.checked=!h.checked),h.checked||null==p||p==mxConstants.NONE||
-b==mxConstants.NONE||(b=p),q(h.checked?b:mxConstants.NONE)});q(p,!0);null!=f&&(f.install(q),this.listeners.push(f));return g};
-BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,k=e.editor.graph;return this.createColorOption(a,function(){var a=k.view.getState(k.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){k.getModel().beginUpdate();try{null!=f&&f(a),k.setCellStyles(c,a,k.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}},d||mxConstants.NONE,
-{install:function(a){this.listener=function(){var b=k.view.getState(k.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};k.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){k.getModel().removeListener(this.listener)}},b)};
+BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=!1,p=c(),n=null,q=function(a,f,g){if(!m){m=
+!0;n.innerHTML='<div style="width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>';if(mxClient.IS_QUIRKS||8==document.documentMode)n.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1);n.style.display=k.checked||h?"":"none";null!=e&&e(a);f||(p=a,(g||h||c()!=p)&&
+d(p));m=!1}},n=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(p,function(a){q(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right=mxClient.IS_QUIRKS?"0px":"20px";n.style.height="22px";n.className="geColorBtn";n.style.display=k.checked||h?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=!k.checked),k.checked||null==p||p==mxConstants.NONE||
+b==mxConstants.NONE||(b=p),q(k.checked?b:mxConstants.NONE)});q(p,!0);null!=f&&(f.install(q),this.listeners.push(f));return g};
+BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,h=e.editor.graph;return this.createColorOption(a,function(){var a=h.view.getState(h.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){h.getModel().beginUpdate();try{null!=f&&f(a),h.setCellStyles(c,a,h.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",h.getSelectionCells()))}finally{h.getModel().endUpdate()}},d||mxConstants.NONE,
+{install:function(a){this.listener=function(){var b=h.view.getState(h.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};h.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){h.getModel().removeListener(this.listener)}},b)};
BaseFormatPanel.prototype.addArrow=function(a,c){c=null!=c?c:10;var d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.padding="6px";d.style.paddingRight="4px";var b=10-c;2==b?d.style.paddingTop="6px":0<b?d.style.paddingTop=6-b+"px":d.style.marginTop="-2px";d.style.height=c+"px";d.style.borderLeft="1px solid #a0a0a0";d.innerHTML='<img border="0" src="'+(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUeNpidHB2ZyAGsACxDRBPIKCuA6TwCBB/h2rABu4A8SYmKCcXiP/iUFgAxL9gCi8A8SwsirZCMQMTkmANEH9E4v+CmsaArvAdyNFI/FlQ92EoBIE+qCRIUz168DBgsU4OqhinQpgHMABAgAEALY4XLIsJ20oAAAAASUVORK5CYII=":
IMAGE_PATH+"/dropdown.png")+'" style="margin-bottom:4px;">';mxUtils.setOpacity(d,70);b=a.getElementsByTagName("div")[0];null!=b&&(b.style.paddingRight="6px",b.style.marginLeft="4px",b.style.marginTop="-1px",b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",mxUtils.setOpacity(b,60));mxUtils.setOpacity(a,100);a.style.border="1px solid #a0a0a0";a.style.backgroundColor=this.buttonBackgroundColor;a.style.backgroundImage="none";a.style.width="auto";a.className+=" geColorBtn";mxUtils.setPrefixedStyle(a.style,
-"borderRadius","3px");a.appendChild(d);return b};BaseFormatPanel.prototype.addUnitInput=function(a,c,d,b,f,e,k,g){k=null!=k?k:0;c=document.createElement("input");c.style.position="absolute";c.style.textAlign="right";c.style.marginTop="-2px";c.style.right=d+12+"px";c.style.width=b+"px";a.appendChild(c);b=this.createStepper(c,f,e,null,g);b.style.marginTop=k-2+"px";b.style.right=d+"px";a.appendChild(b);return c};
-BaseFormatPanel.prototype.createRelativeOption=function(a,c,d,b,f){function e(a){if(null!=b)b(h);else{var d=parseInt(h.value),d=Math.min(100,Math.max(0,isNaN(d)?100:d)),e=k.view.getState(k.getSelectionCell());null!=e&&d!=mxUtils.getValue(e.style,c,100)&&(100==d&&(d=null),k.setCellStyles(c,d,k.getSelectionCells()));h.value=(null!=d?d:"100")+" %"}mxEvent.consume(a)}d=null!=d?d:44;var k=this.editorUi.editor.graph,g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";mxUtils.write(g,
-a);g.style.fontWeight="bold";var h=this.addUnitInput(g,"%",20,d,e,10,-15,null!=b);if(null!=c){var l=mxUtils.bind(this,function(a,b,d){if(d||h!=document.activeElement)a=this.format.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,c,100)),h.value=isNaN(a)?"":a+" %"});mxEvent.addListener(h,"keydown",function(a){13==a.keyCode?(k.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(l(null,null,!0),k.container.focus(),mxEvent.consume(a))});k.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){k.getModel().removeListener(l)}});
-l()}mxEvent.addListener(h,"blur",e);mxEvent.addListener(h,"change",e);null!=f&&f(h);return g};BaseFormatPanel.prototype.addLabel=function(a,c,d,b){b=null!=b?b:61;var f=document.createElement("div");mxUtils.write(f,c);f.style.position="absolute";f.style.right=d+"px";f.style.width=b+"px";f.style.marginTop="6px";f.style.textAlign="center";a.appendChild(f)};
+"borderRadius","3px");a.appendChild(d);return b};BaseFormatPanel.prototype.addUnitInput=function(a,c,d,b,f,e,h,g){h=null!=h?h:0;c=document.createElement("input");c.style.position="absolute";c.style.textAlign="right";c.style.marginTop="-2px";c.style.right=d+12+"px";c.style.width=b+"px";a.appendChild(c);b=this.createStepper(c,f,e,null,g);b.style.marginTop=h-2+"px";b.style.right=d+"px";a.appendChild(b);return c};
+BaseFormatPanel.prototype.createRelativeOption=function(a,c,d,b,f){function e(a){if(null!=b)b(k);else{var d=parseInt(k.value),d=Math.min(100,Math.max(0,isNaN(d)?100:d)),e=h.view.getState(h.getSelectionCell());null!=e&&d!=mxUtils.getValue(e.style,c,100)&&(100==d&&(d=null),h.setCellStyles(c,d,h.getSelectionCells()));k.value=(null!=d?d:"100")+" %"}mxEvent.consume(a)}d=null!=d?d:44;var h=this.editorUi.editor.graph,g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";mxUtils.write(g,
+a);g.style.fontWeight="bold";var k=this.addUnitInput(g,"%",20,d,e,10,-15,null!=b);if(null!=c){var l=mxUtils.bind(this,function(a,b,d){if(d||k!=document.activeElement)a=this.format.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,c,100)),k.value=isNaN(a)?"":a+" %"});mxEvent.addListener(k,"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(k,"blur",e);mxEvent.addListener(k,"change",e);null!=f&&f(k);return g};BaseFormatPanel.prototype.addLabel=function(a,c,d,b){b=null!=b?b:61;var f=document.createElement("div");mxUtils.write(f,c);f.style.position="absolute";f.style.right=d+"px";f.style.width=b+"px";f.style.marginTop="6px";f.style.textAlign="center";a.appendChild(f)};
BaseFormatPanel.prototype.addKeyHandler=function(a,c){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!=c&&c(null,null,!0),this.editorUi.editor.graph.container.focus(),mxEvent.consume(a))}))};
BaseFormatPanel.prototype.styleButtons=function(a){for(var c=0;c<a.length;c++)mxUtils.setPrefixedStyle(a[c].style,"borderRadius","3px"),mxUtils.setOpacity(a[c],100),a[c].style.border="1px solid #a0a0a0",a[c].style.padding="4px",a[c].style.paddingTop="3px",a[c].style.paddingRight="1px",a[c].style.margin="1px",a[c].style.width="24px",a[c].style.height="20px",a[c].className+=" geColorBtn"};
BaseFormatPanel.prototype.destroy=function(){if(null!=this.listeners){for(var a=0;a<this.listeners.length;a++)this.listeners[a].destroy();this.listeners=null}};ArrangePanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(ArrangePanel,BaseFormatPanel);
@@ -2661,43 +2662,43 @@ function(a){c.actions.get("removeFromGroup").funct()}),e.setAttribute("title",mx
e.style.marginBottom="2px",a.appendChild(e),f++);1==d.getSelectionCount()&&(0<f&&mxUtils.br(a),e=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()})),e.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")"),e.style.width="100px",e.style.marginBottom="2px",a.appendChild(e),f++,e=mxUtils.button(mxResources.get("editLink"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editLink").funct()})),
e.setAttribute("title",mxResources.get("editLink")),e.style.width="100px",e.style.marginLeft="2px",e.style.marginBottom="2px",a.appendChild(e),f++);0==f&&(a.style.display="none");return a};
ArrangePanel.prototype.addAlign=function(a){var c=this.editorUi.editor.graph;a.style.paddingTop="6px";a.style.paddingBottom="12px";a.appendChild(this.createTitle(mxResources.get("align")));var d=document.createElement("div");d.style.position="relative";d.style.paddingLeft="0px";d.style.borderWidth="0px";d.className="geToolbarContainer";mxClient.IS_QUIRKS&&(a.style.height="60px");var b=this.editorUi.toolbar.addButton("geSprite-alignleft",mxResources.get("left"),function(){c.alignCells(mxConstants.ALIGN_LEFT)},
-d),f=this.editorUi.toolbar.addButton("geSprite-aligncenter",mxResources.get("center"),function(){c.alignCells(mxConstants.ALIGN_CENTER)},d),e=this.editorUi.toolbar.addButton("geSprite-alignright",mxResources.get("right"),function(){c.alignCells(mxConstants.ALIGN_RIGHT)},d),k=this.editorUi.toolbar.addButton("geSprite-aligntop",mxResources.get("top"),function(){c.alignCells(mxConstants.ALIGN_TOP)},d),g=this.editorUi.toolbar.addButton("geSprite-alignmiddle",mxResources.get("middle"),function(){c.alignCells(mxConstants.ALIGN_MIDDLE)},
-d),h=this.editorUi.toolbar.addButton("geSprite-alignbottom",mxResources.get("bottom"),function(){c.alignCells(mxConstants.ALIGN_BOTTOM)},d);this.styleButtons([b,f,e,k,g,h]);e.style.marginRight="6px";a.appendChild(d);return a};
+d),f=this.editorUi.toolbar.addButton("geSprite-aligncenter",mxResources.get("center"),function(){c.alignCells(mxConstants.ALIGN_CENTER)},d),e=this.editorUi.toolbar.addButton("geSprite-alignright",mxResources.get("right"),function(){c.alignCells(mxConstants.ALIGN_RIGHT)},d),h=this.editorUi.toolbar.addButton("geSprite-aligntop",mxResources.get("top"),function(){c.alignCells(mxConstants.ALIGN_TOP)},d),g=this.editorUi.toolbar.addButton("geSprite-alignmiddle",mxResources.get("middle"),function(){c.alignCells(mxConstants.ALIGN_MIDDLE)},
+d),k=this.editorUi.toolbar.addButton("geSprite-alignbottom",mxResources.get("bottom"),function(){c.alignCells(mxConstants.ALIGN_BOTTOM)},d);this.styleButtons([b,f,e,h,g,k]);e.style.marginRight="6px";a.appendChild(d);return a};
ArrangePanel.prototype.addFlip=function(a){var c=this.editorUi.editor.graph;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("flip"));a.appendChild(d);d=mxUtils.button(mxResources.get("horizontal"),function(a){c.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)});d.setAttribute("title",mxResources.get("horizontal"));d.style.width="100px";d.style.marginRight=
"2px";a.appendChild(d);d=mxUtils.button(mxResources.get("vertical"),function(a){c.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)});d.setAttribute("title",mxResources.get("vertical"));d.style.width="100px";a.appendChild(d);return a};
ArrangePanel.prototype.addDistribute=function(a){var c=this.editorUi.editor.graph;a.style.paddingTop="6px";a.style.paddingBottom="12px";a.appendChild(this.createTitle(mxResources.get("distribute")));var d=mxUtils.button(mxResources.get("horizontal"),function(a){c.distributeCells(!0)});d.setAttribute("title",mxResources.get("horizontal"));d.style.width="100px";d.style.marginRight="2px";a.appendChild(d);d=mxUtils.button(mxResources.get("vertical"),function(a){c.distributeCells(!1)});d.setAttribute("title",
mxResources.get("vertical"));d.style.width="100px";a.appendChild(d);return a};
-ArrangePanel.prototype.addAngle=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState();a.style.paddingBottom="8px";var f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";var e=null,k=null,g=null;0==b.edges.length?(mxUtils.write(f,mxResources.get("angle")),a.appendChild(f),e=this.addUnitInput(a,"°",20,44,function(){k.apply(this,arguments)}),mxUtils.br(a),a.style.paddingTop="10px"):a.style.paddingTop=
-"8px";b.containsLabel||(f=mxResources.get("reverse"),0<b.vertices.length&&0<b.edges.length?f=mxResources.get("turn")+" / "+f:0<b.vertices.length&&(f=mxResources.get("turn")),g=mxUtils.button(f,function(a){c.actions.get("turn").funct()}),g.setAttribute("title",f+" ("+this.editorUi.actions.get("turn").shortcut+")"),g.style.width="202px",a.appendChild(g),null!=e&&(g.style.marginTop="8px"));if(null!=e){var h=mxUtils.bind(this,function(a,c,d){if(d||document.activeElement!=e)b=this.format.getSelectionState(),
-a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isNaN(a)?"":a+"°"}),k=this.installInputHandler(e,mxConstants.STYLE_ROTATION,0,0,360,"°",null,!0);this.addKeyHandler(e,h);d.getModel().addListener(mxEvent.CHANGE,h);this.listeners.push({destroy:function(){d.getModel().removeListener(h)}});h()}return a};
-ArrangePanel.prototype.addGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel();f.style.paddingBottom="8px";var e=document.createElement("div");e.style.position="absolute";e.style.width="50px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("size"));f.appendChild(e);var k,g,h,l,m=this.addUnitInput(f,"pt",84,44,function(){k.apply(this,arguments)}),p=this.addUnitInput(f,"pt",20,44,function(){g.apply(this,arguments)}),
+ArrangePanel.prototype.addAngle=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState();a.style.paddingBottom="8px";var f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";var e=null,h=null,g=null;0==b.edges.length?(mxUtils.write(f,mxResources.get("angle")),a.appendChild(f),e=this.addUnitInput(a,"°",20,44,function(){h.apply(this,arguments)}),mxUtils.br(a),a.style.paddingTop="10px"):a.style.paddingTop=
+"8px";b.containsLabel||(f=mxResources.get("reverse"),0<b.vertices.length&&0<b.edges.length?f=mxResources.get("turn")+" / "+f:0<b.vertices.length&&(f=mxResources.get("turn")),g=mxUtils.button(f,function(a){c.actions.get("turn").funct()}),g.setAttribute("title",f+" ("+this.editorUi.actions.get("turn").shortcut+")"),g.style.width="202px",a.appendChild(g),null!=e&&(g.style.marginTop="8px"));if(null!=e){var k=mxUtils.bind(this,function(a,c,d){if(d||document.activeElement!=e)b=this.format.getSelectionState(),
+a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isNaN(a)?"":a+"°"}),h=this.installInputHandler(e,mxConstants.STYLE_ROTATION,0,0,360,"°",null,!0);this.addKeyHandler(e,k);d.getModel().addListener(mxEvent.CHANGE,k);this.listeners.push({destroy:function(){d.getModel().removeListener(k)}});k()}return a};
+ArrangePanel.prototype.addGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel();f.style.paddingBottom="8px";var e=document.createElement("div");e.style.position="absolute";e.style.width="50px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("size"));f.appendChild(e);var h,g,k,l,m=this.addUnitInput(f,"pt",84,44,function(){h.apply(this,arguments)}),p=this.addUnitInput(f,"pt",20,44,function(){g.apply(this,arguments)}),
n=document.createElement("div");n.className="geSprite geSprite-fit";n.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");n.style.position="relative";n.style.cursor="pointer";n.style.marginTop="-3px";n.style.border="0px";n.style.left="52px";mxUtils.setOpacity(n,50);mxEvent.addListener(n,"mouseenter",function(){mxUtils.setOpacity(n,100)});mxEvent.addListener(n,"mouseleave",function(){mxUtils.setOpacity(n,50)});mxEvent.addListener(n,"click",function(){c.actions.get("autosize").funct()});
f.appendChild(n);this.addLabel(f,mxResources.get("width"),84);this.addLabel(f,mxResources.get("height"),20);mxUtils.br(f);e=document.createElement("div");e.style.paddingTop="8px";e.style.paddingRight="20px";e.style.whiteSpace="nowrap";e.style.textAlign="right";var q=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");q.style.width="100%";e.appendChild(q);f.appendChild(e);var t=q.getElementsByTagName("input")[0];this.addKeyHandler(m,u);this.addKeyHandler(p,
-u);k=this.addGeometryHandler(m,function(a,b){0<a.width&&(b=Math.max(1,b),t.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});g=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,b),t.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(f);var r=this.createPanel();r.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,
-mxResources.get("position"));r.appendChild(e);var w=this.addUnitInput(r,"pt",84,44,function(){h.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){l.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);var u=mxUtils.bind(this,function(a,c,e){b=this.format.getSelectionState();if(b.containsLabel||b.vertices.length!=d.getSelectionCount()||null==b.width||null==b.height)f.style.display="none";else{f.style.display=
+u);h=this.addGeometryHandler(m,function(a,b){0<a.width&&(b=Math.max(1,b),t.checked&&(a.height=Math.round(a.height*b*100/a.width)/100),a.width=b)});g=this.addGeometryHandler(p,function(a,b){0<a.height&&(b=Math.max(1,b),t.checked&&(a.width=Math.round(a.width*b*100/a.height)/100),a.height=b)});a.appendChild(f);var r=this.createPanel();r.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,
+mxResources.get("position"));r.appendChild(e);var w=this.addUnitInput(r,"pt",84,44,function(){k.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){l.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);var u=mxUtils.bind(this,function(a,c,e){b=this.format.getSelectionState();if(b.containsLabel||b.vertices.length!=d.getSelectionCount()||null==b.width||null==b.height)f.style.display="none";else{f.style.display=
"";if(e||document.activeElement!=m)m.value=b.width+(""==b.width?"":" pt");if(e||document.activeElement!=p)p.value=b.height+(""==b.height?"":" pt")}if(b.vertices.length==d.getSelectionCount()&&null!=b.x&&null!=b.y){r.style.display="";if(e||document.activeElement!=w)w.value=b.x+(""==b.x?"":" pt");if(e||document.activeElement!=v)v.value=b.y+(""==b.y?"":" pt")}else r.style.display="none"});this.addKeyHandler(w,u);this.addKeyHandler(v,u);d.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){d.getModel().removeListener(u)}});
-u();h=this.addGeometryHandler(w,function(a,b){a.relative?a.offset.x=b:a.x=b});l=this.addGeometryHandler(v,function(a,b){a.relative?a.offset.y=b:a.y=b});a.appendChild(r)};
-ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isVertex(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}else isNaN(e)&&(a.value=f+" pt")}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
+u();k=this.addGeometryHandler(w,function(a,b){a.relative?a.offset.x=b:a.x=b});l=this.addGeometryHandler(v,function(a,b){a.relative?a.offset.y=b:a.y=b});a.appendChild(r)};
+ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),k=0;k<g.length;k++)if(b.getModel().isVertex(g[k])){var l=b.getCellGeometry(g[k]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[k],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}else isNaN(e)&&(a.value=f+" pt")}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
-ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isEdge(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
+ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),k=0;k<g.length;k++)if(b.getModel().isEdge(g[k])){var l=b.getCellGeometry(g[k]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[k],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(p.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)&&(b.setCellStyles("width",c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",b.getSelectionCells())));p.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel(),
-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("width"));e.appendChild(k);var g,h,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,u);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.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,"Start");n.appendChild(k);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,u);this.addKeyHandler(t,u);var r=this.createPanel();r.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,"End");r.appendChild(k);var w=this.addUnitInput(r,"pt",84,44,function(){g.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);a.appendChild(r);this.addKeyHandler(w,u);this.addKeyHandler(v,u);var u=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
+h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("width"));e.appendChild(h);var g,k,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,u);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";
+h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"Start");n.appendChild(h);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,u);this.addKeyHandler(t,u);var r=this.createPanel();r.style.paddingBottom="30px";h=document.createElement("div");
+h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,"End");r.appendChild(h);var w=this.addUnitInput(r,"pt",84,44,function(){g.apply(this,arguments)}),v=this.addUnitInput(r,"pt",20,44,function(){k.apply(this,arguments)});mxUtils.br(r);this.addLabel(r,mxResources.get("left"),84);this.addLabel(r,mxResources.get("top"),20);a.appendChild(r);this.addKeyHandler(w,u);this.addKeyHandler(v,u);var u=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=p)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),p.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(q.value=d.sourcePoint.x,t.value=d.sourcePoint.y):n.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
-!1)?(w.value=d.targetPoint.x,v.value=d.targetPoint.y):r.style.display="none"):(n.style.display="none",r.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){b.getModel().removeListener(u)}});
+!1)?(w.value=d.targetPoint.x,v.value=d.targetPoint.y):r.style.display="none"):(n.style.display="none",r.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,u);this.listeners.push({destroy:function(){b.getModel().removeListener(u)}});
u()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
TextFormatPanel.prototype.addFont=function(a){function c(a,b){mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter=b?"progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#c5ecff', EndColorStr='#87d4fb', GradientType=0)":"":a.style.backgroundImage=b?"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom=
-"6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(b.cellEditor.isContentEditing()){var k=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";
-g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";var h=g.getElementsByTagName("div")[0];h.style.cssFloat="right";a.appendChild(k);mxClient.IS_FF&&(g.getElementsByTagName("div")[0].style.marginTop="-18px")}a.appendChild(e);k=this.createPanel();k.style.marginTop="8px";k.style.borderTop="1px solid #c0c0c0";k.style.paddingTop="6px";k.style.paddingBottom="6px";var l=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e);l.style.color=
-"rgb(112, 112, 112)";l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px";mxClient.IS_FF&&(l.getElementsByTagName("div")[0].style.marginTop="-18px");h=e.cloneNode(!1);h.style.marginLeft="-3px";var m=this.editorUi.toolbar.addItems(["bold","italic","underline"],h,!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 p=this.editorUi.toolbar.addItems(["vertical"],h,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(h);this.styleButtons(m);this.styleButtons([p]);g=e.cloneNode(!1);g.style.marginLeft="-3px";g.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),
+"6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(b.cellEditor.isContentEditing()){var h=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",h);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";
+g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";var k=g.getElementsByTagName("div")[0];k.style.cssFloat="right";a.appendChild(h);mxClient.IS_FF&&(g.getElementsByTagName("div")[0].style.marginTop="-18px")}a.appendChild(e);h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var l=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e);l.style.color=
+"rgb(112, 112, 112)";l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px";mxClient.IS_FF&&(l.getElementsByTagName("div")[0].style.marginTop="-18px");k=e.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 p=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(k);this.styleButtons(m);this.styleButtons([p]);g=e.cloneNode(!1);g.style.marginLeft="-3px";g.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),
b.cellEditor.isContentEditing()?function(){document.execCommand("justifyleft",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),g),t=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifycenter",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),g),r=this.editorUi.toolbar.addButton("geSprite-right",
-mxResources.get("right"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),g);this.styleButtons([q,t,r]);if(b.cellEditor.isContentEditing()){var w=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},h);this.styleButtons([w])}var v=this.editorUi.toolbar.addButton("geSprite-top",
+mxResources.get("right"),b.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),g);this.styleButtons([q,t,r]);if(b.cellEditor.isContentEditing()){var w=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},k);this.styleButtons([w])}var v=this.editorUi.toolbar.addButton("geSprite-top",
mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),g),u=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),g),z=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),
-g);this.styleButtons([v,u,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(g);var x,D,A,C,B,L,K;b.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",z.style.display="none",p.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},g),this.styleButtons([A,x=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",
-!1,null)},g),D=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},g)]),A.style.marginRight="9px",n=g.cloneNode(!1),n.style.paddingTop="4px",g=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),
+g);this.styleButtons([v,u,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(g);var x,C,A,D,B,L,K;b.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",z.style.display="none",p.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},g),this.styleButtons([A,x=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",
+!1,null)},g),C=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},g)]),A.style.marginRight="9px",n=g.cloneNode(!1),n.style.paddingTop="4px",g=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),
function(){document.execCommand("insertunorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},n)],this.styleButtons(g),g[g.length-1].style.marginLeft=
"9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),n.style.height="40"),a.appendChild(n)):(m[2].style.marginRight="9px",r.style.marginRight="9px");g=e.cloneNode(!1);g.style.marginLeft="0px";g.style.paddingTop="8px";g.style.paddingBottom="4px";g.style.fontWeight="normal";mxUtils.write(g,mxResources.get("position"));var I=document.createElement("select");I.style.position="absolute";I.style.right="20px";I.style.width="97px";I.style.marginTop="-2px";for(var w="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),
E={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,
@@ -2705,64 +2706,64 @@ mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDL
J.setAttribute("value",w[n]);mxUtils.write(J,mxResources.get(w[n]));I.appendChild(J)}g.appendChild(I);w=e.cloneNode(!1);w.style.marginLeft="0px";w.style.paddingTop="4px";w.style.paddingBottom="4px";w.style.fontWeight="normal";mxUtils.write(w,mxResources.get("writingDirection"));var N=document.createElement("select");N.style.position="absolute";N.style.right="20px";N.style.width="97px";N.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],Q={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,
rightToLeft:mxConstants.TEXT_DIRECTION_RTL},n=0;n<J.length;n++){var O=document.createElement("option");O.setAttribute("value",J[n]);mxUtils.write(O,mxResources.get(J[n]));N.appendChild(O)}w.appendChild(N);b.isEditing()||(a.appendChild(g),mxEvent.addListener(I,"change",function(a){b.getModel().beginUpdate();try{var c=E[I.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),
b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(w),mxEvent.addListener(N,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Q[N.value],b.getSelectionCells());mxEvent.consume(a)}));var F=document.createElement("input");F.style.textAlign="right";F.style.marginTop="4px";mxClient.IS_QUIRKS||(F.style.position="absolute",
-F.style.right="32px");F.style.width="46px";F.style.height=mxClient.IS_QUIRKS?"21px":"17px";h.appendChild(F);var H=null,g=this.installInputHandler(F,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(!window.getSelection||mxClient.IS_IE||mxClient.IS_IE11)for(H=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++){if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=H+"px";
-window.setTimeout(function(){F.value=H+" pt";H=null},0);break}}else{var c=function(c,e){c!=b.cellEditor.textarea&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==
-mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(var e=0;e<f.length;e++)c(f[e])}F.value=a+" pt"}},!0),g=this.createStepper(F,g,1,10,!0,Menus.prototype.defaultFontSize);g.style.display=F.style.display;g.style.marginTop="4px";mxClient.IS_QUIRKS||(g.style.right="20px");h.appendChild(g);h=l.getElementsByTagName("div")[0];h.style.cssFloat="right";var G=
-null,y="#ffffff",W=null,R="#000000",T=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return y},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){G=a},destroy:function(){G=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=
-null})});T.style.fontWeight="bold";var ca=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");ca.style.fontWeight="bold";h=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return R},function(a){document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){W=a},destroy:function(){W=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,
-"#000000",function(a){T.style.display=null==a||a==mxConstants.NONE?"none":"";ca.style.display=T.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});h.style.fontWeight="bold";k.appendChild(h);k.appendChild(T);b.cellEditor.isContentEditing()||k.appendChild(ca);
-a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBottom="4px";h=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);h.style.fontWeight="bold";f.containsLabel||f.autoSize||0!=f.edges.length||k.appendChild(h);h=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));h.style.fontWeight="bold";k.appendChild(h);h=this.createPanel();h.style.paddingTop="10px";
-h.style.paddingBottom="28px";h.style.fontWeight="normal";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("spacing"));h.appendChild(g);var X,U,ka,da,la,ea=this.addUnitInput(h,"pt",91,44,function(){X.apply(this,arguments)}),Y=this.addUnitInput(h,"pt",20,44,function(){U.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("top"),91);this.addLabel(h,mxResources.get("global"),
-20);mxUtils.br(h);mxUtils.br(h);var Z=this.addUnitInput(h,"pt",162,44,function(){ka.apply(this,arguments)}),fa=this.addUnitInput(h,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(h,"pt",20,44,function(){la.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("left"),162);this.addLabel(h,mxResources.get("bottom"),91);this.addLabel(h,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ba=null,ma=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
+F.style.right="32px");F.style.width="46px";F.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(F);var G=null,g=this.installInputHandler(F,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(!window.getSelection||mxClient.IS_IE||mxClient.IS_IE11)for(G=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++){if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=G+"px";
+window.setTimeout(function(){F.value=G+" pt";G=null},0);break}}else{var c=function(c,e){c!=b.cellEditor.textarea&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==
+mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(var e=0;e<f.length;e++)c(f[e])}F.value=a+" pt"}},!0),g=this.createStepper(F,g,1,10,!0,Menus.prototype.defaultFontSize);g.style.display=F.style.display;g.style.marginTop="4px";mxClient.IS_QUIRKS||(g.style.right="20px");k.appendChild(g);k=l.getElementsByTagName("div")[0];k.style.cssFloat="right";var H=
+null,y="#ffffff",W=null,R="#000000",T=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return y},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){H=a},destroy:function(){H=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=
+null})});T.style.fontWeight="bold";var ca=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");ca.style.fontWeight="bold";k=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return R},function(a){document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},"#000000",{install:function(a){W=a},destroy:function(){W=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,
+"#000000",function(a){T.style.display=null==a||a==mxConstants.NONE?"none":"";ca.style.display=T.style.display},function(a){null==a||a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,"1",b.getSelectionCells()):b.setCellStyles(mxConstants.STYLE_NOLABEL,null,b.getSelectionCells());b.updateLabelElements(b.getSelectionCells(),function(a){a.removeAttribute("color");a.style.color=null})});k.style.fontWeight="bold";h.appendChild(k);h.appendChild(T);b.cellEditor.isContentEditing()||h.appendChild(ca);
+a.appendChild(h);h=this.createPanel();h.style.paddingTop="2px";h.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);k.style.fontWeight="bold";f.containsLabel||f.autoSize||0!=f.edges.length||h.appendChild(k);k=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,d.actions.get("formattedText"));k.style.fontWeight="bold";h.appendChild(k);k=this.createPanel();k.style.paddingTop="10px";
+k.style.paddingBottom="28px";k.style.fontWeight="normal";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("spacing"));k.appendChild(g);var X,U,ja,da,ka,ea=this.addUnitInput(k,"pt",91,44,function(){X.apply(this,arguments)}),Y=this.addUnitInput(k,"pt",20,44,function(){U.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("top"),91);this.addLabel(k,mxResources.get("global"),
+20);mxUtils.br(k);mxUtils.br(k);var Z=this.addUnitInput(k,"pt",162,44,function(){ja.apply(this,arguments)}),fa=this.addUnitInput(k,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(k,"pt",20,44,function(){ka.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("left"),162);this.addLabel(k,mxResources.get("bottom"),91);this.addLabel(k,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ba=null,la=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
null,null,function(a){var c=""==a.value?120:parseInt(a.value),c=Math.max(0,isNaN(c)?120:c);null!=ba&&(b.cellEditor.restoreSelection(ba),ba=null);for(var d=b.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;null!=d&&d==b.cellEditor.textarea&&null!=b.cellEditor.textarea.firstChild&&("P"!=b.cellEditor.textarea.firstChild.nodeName&&(b.cellEditor.textarea.innerHTML="<p>"+b.cellEditor.textarea.innerHTML+"</p>"),d=b.cellEditor.textarea.firstChild);null!=d&&d!=b.cellEditor.textarea&&
-(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ma=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});a.value="120 %"}));k=e.cloneNode(!1);k.style.paddingLeft="0px";h=this.editorUi.toolbar.addItems(["link","image"],k,!0);g=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),
-function(){document.execCommand("inserthorizontalrule",!1)},k),this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(h);this.styleButtons(g);h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("insert")));h.appendChild(k);a.appendChild(h);mxClient.IS_QUIRKS&&(h.style.height="70");h=e.cloneNode(!1);
-h.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex:0))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex+1:-1))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),
-function(){try{null!=B&&null!=L&&b.deleteColumn(B,L.cellIndex)}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex+1))}catch(S){alert(S)}},h),this.editorUi.toolbar.addButton("geSprite-deleterow",
-mxResources.get("deleteRow"),function(){try{null!=B&&null!=K&&b.deleteRow(B,K.sectionRowIndex)}catch(S){alert(S)}},h)];this.styleButtons(g);g[2].style.marginRight="9px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(h);mxClient.IS_QUIRKS&&(mxUtils.br(a),k.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),
+(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){la=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ba=b.cellEditor.saveSelection())});a.value="120 %"}));h=e.cloneNode(!1);h.style.paddingLeft="0px";k=this.editorUi.toolbar.addItems(["link","image"],h,!0);g=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),
+function(){document.execCommand("inserthorizontalrule",!1)},h),this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(k);this.styleButtons(g);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(h);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);
+k.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex:0))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&b.selectNode(b.insertColumn(B,null!=L?L.cellIndex+1:-1))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),
+function(){try{null!=B&&null!=L&&b.deleteColumn(B,L.cellIndex)}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=B&&null!=K&&b.selectNode(b.insertRow(B,K.sectionRowIndex+1))}catch(S){alert(S)}},k),this.editorUi.toolbar.addButton("geSprite-deleterow",
+mxResources.get("deleteRow"),function(){try{null!=B&&null!=K&&b.deleteRow(B,K.sectionRowIndex)}catch(S){alert(S)}},k)];this.styleButtons(g);g[2].style.marginRight="9px";h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("table")));h.appendChild(k);mxClient.IS_QUIRKS&&(mxUtils.br(a),h.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";g=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),
mxUtils.bind(this,function(){if(null!=B){var a=B.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?(B.removeAttribute("border"),B.style.border="",B.style.borderCollapse=""):(B.setAttribute("border","1"),B.style.border="1px solid "+a,B.style.borderCollapse="collapse")})}}),
e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(){if(null!=B){var a=B.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){B.style.backgroundColor=null==a||a==mxConstants.NONE?"":a})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",
mxResources.get("spacing"),function(){if(null!=B){var a=B.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?B.setAttribute("cellPadding",a):B.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=B&&B.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",
-mxResources.get("center"),function(){null!=B&&B.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=B&&B.setAttribute("align","right")},e)];this.styleButtons(g);g[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));k.appendChild(e);a.appendChild(k);C=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(h);var V=mxUtils.bind(this,
+mxResources.get("center"),function(){null!=B&&B.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=B&&B.setAttribute("align","right")},e)];this.styleButtons(g);g[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(h),mxUtils.br(h));h.appendChild(e);a.appendChild(h);D=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var V=mxUtils.bind(this,
function(a,b,d){f=this.format.getSelectionState();a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(m[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);l.firstChild.nodeValue=mxUtils.htmlEntities(mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));c(p,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=
F)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),F.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(r,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(v,a==mxConstants.ALIGN_TOP);c(u,a==mxConstants.ALIGN_MIDDLE);c(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,
mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);I.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&
b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?N.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?N.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(N.value="automatic");if(d||document.activeElement!=Y)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),Y.value=isNaN(a)?
"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_TOP,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_RIGHT,0)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),fa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Z)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,
-0)),Z.value=isNaN(a)?"":a+" pt"});U=this.installInputHandler(Y,mxConstants.STYLE_SPACING,2,-999,999," pt");X=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");la=this.installInputHandler(ga,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");da=this.installInputHandler(fa,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ka=this.installInputHandler(Z,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(F,V);this.addKeyHandler(Y,V);this.addKeyHandler(ea,V);this.addKeyHandler(ga,
-V);this.addKeyHandler(fa,V);this.addKeyHandler(Z,V);b.getModel().addListener(mxEvent.CHANGE,V);this.listeners.push({destroy:function(){b.getModel().removeListener(V)}});V();if(b.cellEditor.isContentEditing()){var na=!1,e=function(){na||(na=!0,window.setTimeout(function(){for(var a=b.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a){var d=function(a){return"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},e=function(a,b,c){return"%"==
+0)),Z.value=isNaN(a)?"":a+" pt"});U=this.installInputHandler(Y,mxConstants.STYLE_SPACING,2,-999,999," pt");X=this.installInputHandler(ea,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");ka=this.installInputHandler(ga,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");da=this.installInputHandler(fa,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ja=this.installInputHandler(Z,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(F,V);this.addKeyHandler(Y,V);this.addKeyHandler(ea,V);this.addKeyHandler(ga,
+V);this.addKeyHandler(fa,V);this.addKeyHandler(Z,V);b.getModel().addListener(mxEvent.CHANGE,V);this.listeners.push({destroy:function(){b.getModel().removeListener(V)}});V();if(b.cellEditor.isContentEditing()){var ma=!1,e=function(){ma||(ma=!0,window.setTimeout(function(){for(var a=b.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a){var d=function(a){return"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},e=function(a,b,c){return"%"==
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)};a==b.cellEditor.textarea&&1==b.cellEditor.textarea.children.length&&b.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.cellEditor.textarea.firstChild);var f=mxUtils.getCurrentStyle(a),g=d(f.fontSize),h=e(g,f.lineHeight,a),k=a.getElementsByTagName("*");if(0<k.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var p=
window.getSelection(),n=0;n<k.length;n++)if(p.containsNode(k[n],!0)){temp=mxUtils.getCurrentStyle(k[n]);var g=Math.max(d(temp.fontSize),g),u=e(g,temp.lineHeight,k[n]);if(u!=h||isNaN(u))h=""}null!=f&&(c(m[0],"bold"==f.fontWeight||null!=b.getParentByName(a,"B",b.cellEditor.textarea)),c(m[1],"italic"==f.fontStyle||null!=b.getParentByName(a,"I",b.cellEditor.textarea)),c(m[2],null!=b.getParentByName(a,"U",b.cellEditor.textarea)),c(q,"left"==f.textAlign),c(t,"center"==f.textAlign),c(r,"right"==f.textAlign),
-c(A,"justify"==f.textAlign),c(D,null!=b.getParentByName(a,"SUP",b.cellEditor.textarea)),c(x,null!=b.getParentByName(a,"SUB",b.cellEditor.textarea)),B=b.getParentByName(a,"TABLE",b.cellEditor.textarea),K=null==B?null:b.getParentByName(a,"TR",B),L=null==B?null:b.getParentByName(a,"TD",B),C.style.display=null!=B?"":"none",document.activeElement!=F&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=H?(a.removeAttribute("size"),a.style.fontSize=H+" pt",H=null):F.value=isNaN(g)?"":g+" pt",u=parseFloat(h),
-isNaN(u)?ma.value="100 %":ma.value=Math.round(100*u)+" %"),a=f.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),d=f.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
-null!=W&&(R="#"==a.charAt(0)?a:"#000000",W(R,!0)),null!=G&&(y="#"==d.charAt(0)?d:null,G(y,!0)),null!=l.firstChild&&(f=f.fontFamily,"'"==f.charAt(0)&&(f=f.substring(1)),"'"==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),'"'==f.charAt(0)&&(f=f.substring(1)),'"'==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),l.firstChild.nodeValue=f))}na=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
+c(A,"justify"==f.textAlign),c(C,null!=b.getParentByName(a,"SUP",b.cellEditor.textarea)),c(x,null!=b.getParentByName(a,"SUB",b.cellEditor.textarea)),B=b.getParentByName(a,"TABLE",b.cellEditor.textarea),K=null==B?null:b.getParentByName(a,"TR",B),L=null==B?null:b.getParentByName(a,"TD",B),D.style.display=null!=B?"":"none",document.activeElement!=F&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=G?(a.removeAttribute("size"),a.style.fontSize=G+" pt",G=null):F.value=isNaN(g)?"":g+" pt",u=parseFloat(h),
+isNaN(u)?la.value="100 %":la.value=Math.round(100*u)+" %"),a=f.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),d=f.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
+null!=W&&(R="#"==a.charAt(0)?a:"#000000",W(R,!0)),null!=H&&(y="#"==d.charAt(0)?d:null,H(y,!0)),null!=l.firstChild&&(f=f.fontFamily,"'"==f.charAt(0)&&(f=f.substring(1)),"'"==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),'"'==f.charAt(0)&&(f=f.substring(1)),'"'==f.charAt(f.length-1)&&(f=f.substring(0,f.length-1)),l.firstChild.nodeValue=f))}ma=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel()));this.container.appendChild(this.addStroke(this.createPanel()));this.container.appendChild(this.addLineJumps(this.createPanel()));a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41);a.style.paddingTop="8px";a.style.paddingBottom="8px";this.container.appendChild(a);this.container.appendChild(this.addEffects(this.createPanel()));
a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),d=null;1==this.editorUi.editor.graph.getSelectionCount()&&(d=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="202px",d.style.marginBottom="2px",a.appendChild(d));c.image&&(c=mxUtils.button(mxResources.get("editImage"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="202px":(d.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));return a};
StyleFormatPanel.prototype.addFill=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var b=document.createElement("select");b.style.position="absolute";b.style.marginTop="-2px";b.style.right=mxClient.IS_QUIRKS?"52px":"72px";b.style.width="70px";mxEvent.addListener(b,"click",function(a){mxEvent.consume(a)});var f=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,"#ffffff",function(a){b.style.display=
-null==a||a==mxConstants.NONE?"none":""}),e="image"==d.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,k=this.createCellColorOption(mxResources.get("fill"),e,"#ffffff");k.style.fontWeight="bold";e=mxUtils.getValue(d.style,e,null);f.style.display=null!=e&&e!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";for(var g=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST],e=0;e<g.length;e++){var h=document.createElement("option");
-h.setAttribute("value",g[e]);mxUtils.write(h,mxResources.get(g[e]));b.appendChild(h)}f.appendChild(b);var l=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH);""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);f.style.display=!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?
-"none":""});c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(k);a.appendChild(f);k=this.getCustomColors();for(e=0;e<k.length;e++)a.appendChild(this.createCellColorOption(k[e].title,k[e].key,k[e].defaultValue));return a};
+null==a||a==mxConstants.NONE?"none":""}),e="image"==d.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,h=this.createCellColorOption(mxResources.get("fill"),e,"#ffffff");h.style.fontWeight="bold";e=mxUtils.getValue(d.style,e,null);f.style.display=null!=e&&e!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";for(var g=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST],e=0;e<g.length;e++){var k=document.createElement("option");
+k.setAttribute("value",g[e]);mxUtils.write(k,mxResources.get(g[e]));b.appendChild(k)}f.appendChild(b);var l=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH);""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);f.style.display=!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?
+"none":""});c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(h);a.appendChild(f);h=this.getCustomColors();for(e=0;e<h.length;e++)a.appendChild(this.createCellColorOption(h[e].title,h[e].key,h[e].defaultValue));return a};
StyleFormatPanel.prototype.getCustomColors=function(){var a=[];"swimlane"==this.format.getSelectionState().style.shape&&a.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return a};
StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));w.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
-c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
-"bold";var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var h=["sharp","rounded","curved"],l=0;l<h.length;l++){var m=document.createElement("option");m.setAttribute("value",h[l]);mxUtils.write(m,mxResources.get(h[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:
-"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,h=this.createCellColorOption(mxResources.get("line"),p,"#000000");h.appendChild(g);k.appendChild(h);
-var n=k.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=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=
+c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var h=document.createElement("div");h.style.fontWeight=
+"bold";var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var k=["sharp","rounded","curved"],l=0;l<k.length;l++){var m=document.createElement("option");m.setAttribute("value",k[l]);mxUtils.write(m,mxResources.get(k[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:
+"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,k=this.createCellColorOption(mxResources.get("line"),p,"#000000");k.appendChild(g);h.appendChild(k);
+var n=h.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=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(n,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));
q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),t=n.cloneNode(!1),r=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-connection",
mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",
mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),
m=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",
-mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),w=document.createElement("input");w.style.textAlign="right";w.style.marginTop="2px";w.style.width="41px";w.setAttribute("title",mxResources.get("linewidth"));n.appendChild(w);
+mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),k=n.cloneNode(!1),w=document.createElement("input");w.style.textAlign="right";w.style.marginTop="2px";w.style.width="41px";w.setAttribute("title",mxResources.get("linewidth"));n.appendChild(w);
var v=w.cloneNode(!0);t.appendChild(v);var u=this.createStepper(w,c,1,9);u.style.display=w.style.display;u.style.marginTop="2px";n.appendChild(u);var z=this.createStepper(v,d,1,9);z.style.display=v.style.display;z.style.marginTop="2px";t.appendChild(z);mxClient.IS_QUIRKS?(w.style.height="17px",v.style.height="17px"):(w.style.position="absolute",w.style.right="32px",w.style.height="15px",u.style.right="20px",v.style.position="absolute",v.style.right="32px",v.style.height="15px",z.style.right="20px");
-mxEvent.addListener(w,"blur",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(v,"blur",d);mxEvent.addListener(v,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(h),mxUtils.br(h));var x=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
+mxEvent.addListener(w,"blur",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(v,"blur",d);mxEvent.addListener(v,"change",d);mxClient.IS_QUIRKS&&(mxUtils.br(k),mxUtils.br(k));var x=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),"connector"==e.style.shape&&this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,
-mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),D=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-startclassic",
+mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),C=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-startclassic",
mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?
(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-startclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-startclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-startopen",
null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-startopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["openAsync",0],"geIcon geSprite geSprite-startopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-startblock",
@@ -2774,7 +2775,7 @@ null,!1).setAttribute("title",mxResources.get("oval")),this.editorUi.menus.edgeS
this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["dash",0],"geIcon geSprite geSprite-startdash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,
"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,
-"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),A=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
+"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),A=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
@@ -2785,27 +2786,27 @@ null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-endthindiamondtrans",null,!1).setAttribute("title",mxResources.get("diamondThin")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",
-null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(r,8);this.addArrow(x);this.addArrow(D);this.addArrow(A);u=this.addArrow(l,9);u.className="geIcon";u.style.width="84px";z=this.addArrow(m,9);z.className="geIcon";z.style.width="22px";var C=document.createElement("div");C.style.width="85px";C.style.height="1px";C.style.borderBottom=
-"1px solid "+this.defaultStrokeColor;C.style.marginBottom="9px";u.appendChild(C);var B=document.createElement("div");B.style.width="23px";B.style.height="1px";B.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.marginBottom="9px";z.appendChild(B);l.style.height="15px";m.style.height="15px";r.style.height="15px";x.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(k);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);
+null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(r,8);this.addArrow(x);this.addArrow(C);this.addArrow(A);u=this.addArrow(l,9);u.className="geIcon";u.style.width="84px";z=this.addArrow(m,9);z.className="geIcon";z.style.width="22px";var D=document.createElement("div");D.style.width="85px";D.style.height="1px";D.style.borderBottom=
+"1px solid "+this.defaultStrokeColor;D.style.marginBottom="9px";u.appendChild(D);var B=document.createElement("div");B.style.width="23px";B.style.height="1px";B.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.marginBottom="9px";z.appendChild(B);l.style.height="15px";m.style.height="15px";r.style.height="15px";x.style.height="17px";C.style.marginLeft="3px";C.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(h);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);
l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var L,K,I=this.addUnitInput(l,"pt",74,33,function(){L.apply(this,arguments)}),E=this.addUnitInput(l,"pt",20,33,function(){K.apply(this,arguments)});mxUtils.br(l);u=document.createElement("div");
-u.style.height="8px";l.appendChild(u);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,N,Q=this.addUnitInput(l,"pt",74,33,function(){J.apply(this,arguments)}),O=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom=
-"2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.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"));k.appendChild(m);var F,H=this.addUnitInput(k,"pt",20,41,function(){F.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(h),mxClient.IS_QUIRKS&&(mxUtils.br(a),
-mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(k));var G=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(f,e.style.shape,a,c);"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter=
+u.style.height="8px";l.appendChild(u);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,N,Q=this.addUnitInput(l,"pt",74,33,function(){J.apply(this,arguments)}),O=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);h=h.cloneNode(!1);h.style.fontWeight="normal";h.style.position="relative";h.style.paddingLeft="16px";h.style.marginBottom=
+"2px";h.style.marginTop="6px";h.style.borderWidth="0px";h.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));h.appendChild(m);var F,G=this.addUnitInput(h,"pt",20,41,function(){F.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(k),mxClient.IS_QUIRKS&&(mxUtils.br(a),
+mxUtils.br(a)),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(h));var H=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(f,e.style.shape,a,c);"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter=
"none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px");return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(d||document.activeElement!=w)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";
-"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?C.style.borderBottom="1px dashed "+this.defaultStrokeColor:C.style.borderBottom="1px dotted "+this.defaultStrokeColor:C.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.borderBottom=C.style.borderBottom;
+"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?D.style.borderBottom="1px dashed "+this.defaultStrokeColor:D.style.borderBottom="1px dotted "+this.defaultStrokeColor:D.style.borderBottom="1px solid "+this.defaultStrokeColor;B.style.borderBottom=D.style.borderBottom;
a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,
null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";r.getElementsByTagName("div")[0].className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";e.edges.length==
-f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),D,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",
-c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(A,100));if(d||document.activeElement!=O)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),E.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=H)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),H.value=isNaN(a)?"":
-a+" pt"});N=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(E,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");F=this.installInputHandler(H,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,G);this.addKeyHandler(O,
-G);this.addKeyHandler(Q,G);this.addKeyHandler(E,G);this.addKeyHandler(I,G);this.addKeyHandler(H,G);f.getModel().addListener(mxEvent.CHANGE,G);this.listeners.push({destroy:function(){f.getModel().removeListener(G)}});G();return a};
+f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),C,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",
+c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(C,30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(C,100),mxUtils.setOpacity(A,100));if(d||document.activeElement!=O)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,
+mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),E.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=G)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),G.value=isNaN(a)?"":
+a+" pt"});N=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(E,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");F=this.installInputHandler(G,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,H);this.addKeyHandler(O,
+H);this.addKeyHandler(Q,H);this.addKeyHandler(E,H);this.addKeyHandler(I,H);this.addKeyHandler(G,H);f.getModel().addListener(mxEvent.CHANGE,H);this.listeners.push({destroy:function(){f.getModel().removeListener(H)}});H();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,f=document.createElement("div");f.style.position="absolute";f.style.fontWeight="bold";f.style.width="80px";mxUtils.write(f,mxResources.get("lineJumps"));a.appendChild(f);var e=document.createElement("select");e.style.position="absolute";e.style.marginTop="-2px";
-e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],k=0;k<f.length;k++){var g=document.createElement("option");g.setAttribute("value",f[k]);mxUtils.write(g,mxResources.get(f[k]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
-mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var h,l=this.addUnitInput(a,"pt",22,33,function(){h.apply(this,arguments)});h=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
+e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],h=0;h<f.length;h++){var g=document.createElement("option");g.setAttribute("value",f[h]);mxUtils.write(g,mxResources.get(f[h]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
+mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var k,l=this.addUnitInput(a,"pt",22,33,function(){k.apply(this,arguments)});k=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
m);b.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){b.getModel().removeListener(m)}});m()}else a.style.display="none";return a};
-StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var b=document.createElement("table");mxClient.IS_QUIRKS&&(b.style.fontSize="1em");b.style.width="100%";b.style.fontWeight="bold";b.style.paddingRight="20px";var f=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var 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";e.appendChild(k);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var h=k,l=0,m=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";h.appendChild(a);h=h==k?g:k;l++}),p=mxUtils.bind(this,function(b,c,e){d=this.format.getSelectionState();k.innerHTML="";g.innerHTML="";h=k;d.rounded&&m(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&m(mxResources.get("divider"),
+StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var b=document.createElement("table");mxClient.IS_QUIRKS&&(b.style.fontSize="1em");b.style.width="100%";b.style.fontWeight="bold";b.style.paddingRight="20px";var f=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var h=document.createElement("td");h.style.padding="0px";h.style.width="50%";h.setAttribute("valign",
+"top");var g=h.cloneNode(!0);g.style.paddingLeft="8px";e.appendChild(h);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var k=h,l=0,m=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";k.appendChild(a);k=k==h?g:h;l++}),p=mxUtils.bind(this,function(b,c,e){d=this.format.getSelectionState();h.innerHTML="";g.innerHTML="";k=h;d.rounded&&m(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&m(mxResources.get("divider"),
"swimlaneLine",1);d.containsImage||m(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,0);d.glass&&m(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);d.comic&&m(mxResources.get("comic"),"comic",0);0==l&&(a.style.display="none")});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";var c=mxUtils.button(mxResources.get("setAsDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("setAsDefaultStyle").funct()}));c.setAttribute("title",mxResources.get("setAsDefaultStyle")+" ("+this.editorUi.actions.get("setAsDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};
mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))};
@@ -2816,53 +2817,53 @@ DiagramFormatPanel.prototype.addOptions=function(a){var c=this.editorUi,d=c.edit
a.appendChild(this.createOption(mxResources.get("connectionPoints"),function(){return d.connectionHandler.isEnabled()},function(a){c.actions.get("connectionPoints").funct()},{install:function(a){this.listener=function(){a(d.connectionHandler.isEnabled())};c.addListener("connectionPointsChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}})),a.appendChild(this.createOption(mxResources.get("guides"),function(){return d.graphHandler.guidesEnabled},function(a){c.actions.get("guides").funct()},
{install:function(a){this.listener=function(){a(d.graphHandler.guidesEnabled)};c.addListener("guidesEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}})));return a};
DiagramFormatPanel.prototype.addGridOption=function(a){function c(a){var c=parseInt(f.value),c=Math.max(1,isNaN(c)?10:c);c!=b.getGridSize()&&b.setGridSize(c);f.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=document.createElement("input");f.style.position="absolute";f.style.textAlign="right";f.style.width="38px";f.value=b.getGridSize()+" pt";var e=this.createStepper(f,c);f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display;mxEvent.addListener(f,"keydown",
-function(a){13==a.keyCode?(b.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(f.value=b.getGridSize(),b.container.focus(),mxEvent.consume(a))});mxEvent.addListener(f,"blur",c);mxEvent.addListener(f,"change",c);if(mxClient.IS_SVG){f.style.marginTop="-2px";f.style.right="84px";e.style.marginTop="-16px";e.style.right="72px";var k=this.createColorOption(mxResources.get("grid"),function(){var a=b.view.gridColor;return b.isGridEnabled()?a:null},function(a){a==mxConstants.NONE?(b.setGridEnabled(!1),
-d.fireEvent(new mxEventObject("gridEnabledChanged"))):(b.setGridEnabled(!0),d.setGridColor(a));f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display},"#e0e0e0",{install:function(a){this.listener=function(){a(b.isGridEnabled()?b.view.gridColor:null)};d.addListener("gridColorChanged",this.listener);d.addListener("gridEnabledChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});k.appendChild(f);k.appendChild(e);a.appendChild(k)}else f.style.marginTop="2px",
+function(a){13==a.keyCode?(b.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(f.value=b.getGridSize(),b.container.focus(),mxEvent.consume(a))});mxEvent.addListener(f,"blur",c);mxEvent.addListener(f,"change",c);if(mxClient.IS_SVG){f.style.marginTop="-2px";f.style.right="84px";e.style.marginTop="-16px";e.style.right="72px";var h=this.createColorOption(mxResources.get("grid"),function(){var a=b.view.gridColor;return b.isGridEnabled()?a:null},function(a){a==mxConstants.NONE?(b.setGridEnabled(!1),
+d.fireEvent(new mxEventObject("gridEnabledChanged"))):(b.setGridEnabled(!0),d.setGridColor(a));f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display},"#e0e0e0",{install:function(a){this.listener=function(){a(b.isGridEnabled()?b.view.gridColor:null)};d.addListener("gridColorChanged",this.listener);d.addListener("gridEnabledChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});h.appendChild(f);h.appendChild(e);a.appendChild(h)}else f.style.marginTop="2px",
f.style.right="32px",e.style.marginTop="2px",e.style.right="20px",a.appendChild(f),a.appendChild(e),a.appendChild(this.createOption(mxResources.get("grid"),function(){return b.isGridEnabled()},function(a){b.setGridEnabled(a);b.isGridEnabled()&&(b.view.gridColor="#e0e0e0");d.fireEvent(new mxEventObject("gridEnabledChanged"))},{install:function(a){this.listener=function(){f.style.display=b.isGridEnabled()?"":"none";e.style.display=f.style.display;a(b.isGridEnabled())};d.addListener("gridEnabledChanged",
this.listener)},destroy:function(){d.removeListener(this.listener)}}))};DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a};
DiagramFormatPanel.prototype.addPaperSize=function(a){var c=this.editorUi,d=c.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var b=PageSetupDialog.addPageFormatPanel(a,"formatpanel",d.pageFormat,function(a){if(null==d.pageFormat||d.pageFormat.width!=a.width||d.pageFormat.height!=a.height)a=new ChangePageSetup(c,null,null,a),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a)});this.addKeyHandler(b.widthInput,function(){b.set(d.pageFormat)});this.addKeyHandler(b.heightInput,
function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addListener("pageFormatChanged",f);this.listeners.push({destroy:function(){c.removeListener(f)}});d.getModel().addListener(mxEvent.CHANGE,f);this.listeners.push({destroy:function(){d.getModel().removeListener(f)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
-c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function e(){mxActor.call(this)}function k(){mxCylinder.call(this)}function g(){mxActor.call(this)}function h(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function t(a,b){this.canvas=
+c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function e(){mxActor.call(this)}function h(){mxCylinder.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function t(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,t.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,t.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,t.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,t.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,t.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,t.prototype.arcTo)}function r(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function A(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}
-function L(){mxEllipse.call(this)}function K(){mxShape.call(this)}function I(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function J(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function O(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function H(){mxDoubleEllipse.call(this)}function G(){mxArrowConnector.call(this);this.spacing=0}function y(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}
-function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function ka(){mxActor.call(this)}function da(){mxActor.call(this)}function la(){mxActor.call(this)}function ea(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function fa(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function ma(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function na(){mxEllipse.call(this)}
-function S(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function oa(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var P=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(P.x-e-g,P.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
+this.canvas.curveTo=mxUtils.bind(this,t.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,t.prototype.arcTo)}function r(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function A(){mxCylinder.call(this)}function D(){mxShape.call(this)}function B(){mxShape.call(this)}
+function L(){mxEllipse.call(this)}function K(){mxShape.call(this)}function I(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function J(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function O(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function G(){mxDoubleEllipse.call(this)}function H(){mxArrowConnector.call(this);this.spacing=0}function y(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}
+function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function ja(){mxActor.call(this)}function da(){mxActor.call(this)}function ka(){mxActor.call(this)}function ea(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function fa(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function la(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function ma(){mxEllipse.call(this)}
+function S(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var P=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(P.x-e-g,P.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var za=Math.tan(mxUtils.toRadians(30)),ia=(.5-za)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/za);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ia);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ia)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+za));f?(a.moveTo(0,.25*b),a.lineTo(.5*
-b,(.5-ia)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ia)*b),a.lineTo(.5*b,(1-ia)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ia),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ia)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.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);var za=Math.tan(mxUtils.toRadians(30)),oa=(.5-za)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/za);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*oa);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-oa)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",c);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+za));f?(a.moveTo(0,.25*b),a.lineTo(.5*
+b,(.5-oa)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-oa)*b),a.lineTo(.5*b,(1-oa)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*oa),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-oa)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",d);mxUtils.extend(b,mxCylinder);b.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())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
b);mxUtils.extend(f,mxCylinder);f.prototype.size=30;f.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(d-b,0),a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",f);mxUtils.extend(e,mxActor);e.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",e);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
-f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",k);mxUtils.extend(g,mxActor);g.prototype.size=30;g.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,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,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",g);mxUtils.extend(h,mxActor);h.prototype.size=.4;h.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*
-d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};h.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",
-h);mxUtils.extend(l,mxActor);l.prototype.size=.3;l.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();
+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",e);mxUtils.extend(h,mxCylinder);h.prototype.tabWidth=60;h.prototype.tabHeight=20;h.prototype.tabPosition="right";h.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
+f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.registerShape("folder",h);mxUtils.extend(g,mxActor);g.prototype.size=30;g.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,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,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",g);mxUtils.extend(k,mxActor);k.prototype.size=.4;k.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*
+d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};k.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",
+k);mxUtils.extend(l,mxActor);l.prototype.size=.3;l.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();
a.end()};mxCellRenderer.registerShape("document",l);mxCylinder.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,Math.min(this.maxHeight*this.scale,.3*a.height),0,0):null};mxUtils.extend(m,mxActor);m.prototype.size=.2;m.prototype.redrawPath=function(a,b,c,d,e){b=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,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",m);mxUtils.extend(p,mxActor);p.prototype.size=.2;p.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,
c,!0)};mxCellRenderer.registerShape("trapezoid",p);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=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(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};
mxCellRenderer.registerShape("curlyBracket",n);mxUtils.extend(q,mxActor);q.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",q);t.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};t.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};t.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};t.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};t.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=
-g};t.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var P=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
-k*f+this.lastX-P*e,c*f+this.lastY-P*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};t.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};var Ka=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ka.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ha=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ha.apply(this,arguments)};
-var Ia=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ia.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
+g};t.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var P=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
+P*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};t.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};var Ea=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ea.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};
+var Ja=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ja.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("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.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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()}};var Ja=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ja.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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=
+c)),a.close(),a.end(),a.fillAndStroke()}};var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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};r.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",r);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};w.prototype.paintForeground=
function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.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)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=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+h),e-c),new mxPoint(g,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",
v);mxUtils.extend(u,mxActor);u.prototype.size=.2;u.prototype.fixedSize=20;u.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",u);mxUtils.extend(z,mxHexagon);z.prototype.size=.25;z.prototype.redrawPath=function(a,b,c,d,e){b=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",z);mxUtils.extend(x,mxRectangleShape);x.prototype.isHtmlAllowed=function(){return!1};x.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",x);var Ea=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){Ea.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),Ea.apply(this,[a,b,
-c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.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};D.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]||
+this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",z);mxUtils.extend(x,mxRectangleShape);x.prototype.isHtmlAllowed=function(){return!1};x.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",x);var Fa=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){Fa.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),Fa.apply(this,[a,b,
+c,d,e]))}};mxUtils.extend(C,mxRectangleShape);C.prototype.isHtmlAllowed=function(){return!1};C.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};C.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,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],P=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,Aa=this.style["symbol"+f+"VSpacing"]||m,aa=this.style["symbol"+f+"ArcSpacing"];null!=aa&&(aa*=this.getArcSize(d+this.strokewidth,
-e+this.strokewidth),m+=aa,Aa+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-P)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-P-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-Aa):ra+Aa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,P,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(A,mxCylinder);A.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",A);mxUtils.extend(C,mxShape);C.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",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.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",B);mxUtils.extend(L,mxEllipse);L.prototype.paintVertexShape=function(a,
+e+this.strokewidth),m+=aa,Aa+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-P)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-P-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-Aa):ra+Aa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,P,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",C);mxUtils.extend(A,mxCylinder);A.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",A);mxUtils.extend(D,mxShape);D.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",D);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.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",B);mxUtils.extend(L,mxEllipse);L.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",L);mxUtils.extend(K,mxShape);K.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",K);mxUtils.extend(I,mxShape);I.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
a.height/8,a.width,7*a.height/8)};I.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()};I.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",I);mxUtils.extend(E,mxRectangleShape);E.prototype.size=40;E.prototype.isHtmlAllowed=function(){return!1};E.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)};E.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=E&&(g=new g,
@@ -2884,40 +2885,40 @@ e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,a),new mxPoint(f+h-e,g+k),new mxPoint(
a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",N);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.inset=2;Q.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",Q);mxUtils.extend(O,mxCylinder);O.prototype.jettyWidth=32;O.prototype.jettyHeight=12;O.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",O);mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);
-this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",F);mxUtils.extend(H,F);H.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",H);mxUtils.extend(G,mxArrowConnector);G.prototype.defaultWidth=4;G.prototype.isOpenEnded=function(){return!0};G.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};G.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-G);mxUtils.extend(y,mxArrowConnector);y.prototype.defaultWidth=10;y.prototype.defaultArrowWidth=20;y.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};y.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",F);mxUtils.extend(G,F);G.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",G);mxUtils.extend(H,mxArrowConnector);H.prototype.defaultWidth=4;H.prototype.isOpenEnded=function(){return!0};H.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};H.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+H);mxUtils.extend(y,mxArrowConnector);y.prototype.defaultWidth=10;y.prototype.defaultArrowWidth=20;y.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};y.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
y);mxUtils.extend(W,mxActor);W.prototype.size=30;W.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",W);mxUtils.extend(R,mxRectangleShape);R.prototype.dx=20;R.prototype.dy=20;R.prototype.isHtmlAllowed=
function(){return!1};R.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",R);mxUtils.extend(T,mxActor);T.prototype.dx=20;T.prototype.dy=20;T.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",T);mxUtils.extend(ca,mxActor);ca.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",ca);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
20;X.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",X);mxUtils.extend(U,mxActor);U.prototype.arrowWidth=.3;U.prototype.arrowSize=.2;U.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",U);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.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",ka);mxUtils.extend(da,mxActor);da.prototype.size=.1;da.prototype.redrawPath=function(a,b,c,d,e){b=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",da);mxUtils.extend(la,mxActor);la.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",la);mxUtils.extend(ea,mxActor);ea.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);
+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",U);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.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",ja);mxUtils.extend(da,mxActor);da.prototype.size=.1;da.prototype.redrawPath=function(a,b,c,d,e){b=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",da);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",ka);mxUtils.extend(ea,mxActor);ea.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",ea);mxUtils.extend(Y,mxActor);Y.prototype.size=20;Y.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",
Y);mxUtils.extend(Z,mxActor);Z.prototype.size=.375;Z.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",Z);mxUtils.extend(fa,mxEllipse);fa.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",fa);mxUtils.extend(ga,mxEllipse);ga.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",
-ga);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ba);mxUtils.extend(ma,mxRhombus);ma.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",ma);mxUtils.extend(V,mxEllipse);V.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",V);mxUtils.extend(na,mxEllipse);na.prototype.paintVertexShape=
-function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",na);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
+ga);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ba);mxUtils.extend(la,mxRhombus);la.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",la);mxUtils.extend(V,mxEllipse);V.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",V);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=
+function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ma);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),a.begin(),a.moveTo(b,c),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(b,c-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",S);mxUtils.extend(ua,
mxEllipse);ua.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",ua);mxUtils.extend(va,mxActor);va.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",va);mxUtils.extend(pa,mxActor);pa.prototype.size=.2;pa.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",
-pa);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.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",qa);mxUtils.extend(oa,mxConnector);oa.prototype.origPaintEdgeShape=oa.prototype.paintEdgeShape;oa.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;oa.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),oa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",oa);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
-l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Da.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-
-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 n=
-e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Fa=function(a,b,c){return sa(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})},sa=function(a,b,c,d,e){return M(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ja=function(a){return function(b){return[M(b,["arrowWidth",
+pa);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.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",qa);mxUtils.extend(na,mxConnector);na.prototype.origPaintEdgeShape=na.prototype.paintEdgeShape;na.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;na.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),na.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),p=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
+l){var m=e*(g+k+1),p=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.moveTo(d.x-m/2+p/2,d.y-p/2-m/2);a.lineTo(d.x-p/2-3*m/2,d.y-3*p/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),p=Da.apply(this,arguments),n=e*(g+2*k),q=f*(g+2*k);return function(){p.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*q+f*k);a.moveTo(m.x-
+n-q+f*k,m.y-q+n-e*k);a.lineTo(m.x+q-n-f*k,m.y-q-n+e*k);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 p=
+e.clone();return function(){b.begin();b.moveTo(p.x,p.y);k?b.lineTo(p.x-f-g/a,p.y-g+f/a):b.lineTo(p.x+g/a-f,p.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ga=function(a,b,c){return sa(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})},sa=function(a,b,c,d,e){return M(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,p=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,p,h/p,m/p,l,g,d,f)})},ia=function(a){return function(b){return[M(b,["arrowWidth",
"arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.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))})]}},Ba=function(a,b,c){return function(d){var e=
[M(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},wa=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[M(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(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ga=function(a){return function(b){var c=
+"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ha=function(a){return function(b){var c=
[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ha(b));return c}},ta=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b}},ha=function(a,b){return M(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},M=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};
-g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Fa(a,!0,10),Fa(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(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
+g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Ga(a,!0,10),Ga(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(sa(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(sa(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,
@@ -2939,24 +2940,24 @@ b)},function(a,b){mxUtils.getValue(this.state.style,"base",v.prototype.base);thi
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",R.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",R.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.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)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.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)))})]},singleArrow:ja(1),doubleArrow:ja(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(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",k.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)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",h.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))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.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))})]},step:wa(u.prototype.size,!0,null,!0,u.prototype.fixedSize),hexagon:wa(z.prototype.size,!0,.5,!0),curlyBracket:wa(n.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,Y.prototype.size,!0),trapezoid:Ga(.5),parallelogram:Ga(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=
+Math.min(a.height,b.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",h.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",h.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",h.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",h.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)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.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))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.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))})]},step:wa(u.prototype.size,!0,null,!0,u.prototype.fixedSize),hexagon:wa(z.prototype.size,!0,.5,!0),curlyBracket:wa(n.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,Y.prototype.size,!0),trapezoid:Ha(.5),parallelogram:Ha(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Ca[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&
-(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ja=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ja),Math.sin(ja)),ja=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,Math.cos(ja),Math.sin(ja));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=xa.x,l=xa.y,m=ya.x,n=ya.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+
+(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ia=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,Math.cos(ia),Math.sin(ia));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=xa.x,l=xa.y,m=ya.x,p=ya.y,n="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(p*a-m*d)/(k*p-l*m);a=(l*a-k*d)/(l*m-k*p);n?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+p*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+p*a),e.push(q)),q=new mxPoint(q.x+
k*b,q.y+l*b));e.push(q)};var q=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 La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return La.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];v.prototype.constraints=[];
mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;
+.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;
R.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;ua.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=
mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;Z.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)];C.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,
+.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)];D.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)];O.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)];e.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)];h.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,
+1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];k.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)];u.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)];N.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,
@@ -2964,15 +2965,15 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot
!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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;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(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;X.prototype.constraints=null;T.prototype.constraints=null;ca.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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.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),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];E.prototype.constraints=null;la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,
+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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.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),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];E.prototype.constraints=null;ka.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)];ea.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();var c=b.getDeletableCells(b.getSelectionCells());if(null!=c&&0<c.length){var d=b.model.getParents(c);b.removeCells(c,a);if(null!=d){a=[];for(c=0;c<d.length;c++)b.model.contains(d[c])&&(b.model.isVertex(d[c])||b.model.isEdge(d[c]))&&a.push(d[c]);b.setSelectionCells(a)}}}var c=this.editorUi,d=c.editor,b=d.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(c.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,
320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=f;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=f;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
function(){c.showDialog((new PageSetupDialog(c)).container,320,220,!0,!0)}).isEnabled=f;this.addAction("print...",function(){c.showDialog((new PrintDialog(c)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){c.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){c.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
function(){mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(b)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&mxClipboard.paste(b)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){b.getModel().beginUpdate();try{var c=mxClipboard.paste(b);if(null!=c){a=!0;for(var d=0;d<c.length&&
-a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,f=b.view.scale,g=e.x,k=e.y,e=null;if(1==c.length&&a){var t=b.getCellGeometry(c[0]);null!=t&&(e=t.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var r=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g)),w=Math.round(b.snap(b.popupMenuHandler.triggerY/f-k));b.cellsMoved(c,r-e.x,w-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
+a;d++)a=a&&b.model.isEdge(c[d]);var e=b.view.translate,f=b.view.scale,g=e.x,h=e.y,e=null;if(1==c.length&&a){var t=b.getCellGeometry(c[0]);null!=t&&(e=t.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(c,a);if(null!=e){var r=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g)),w=Math.round(b.snap(b.popupMenuHandler.triggerY/f-h));b.cellsMoved(c,r-e.x,w-e.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){b.setSelectionCells(b.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){b.turnShapes(b.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){b.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){b.selectEdges()},
null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){b.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){b.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();try{var a=b.isCellMovable(b.getSelectionCell())?1:0;b.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);b.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);b.toggleCellStyles(mxConstants.STYLE_ROTATABLE,
a);b.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);b.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);b.toggleCellStyles("connectable",a)}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){b.home()},null,null,"Home");this.addAction("exitGroup",function(){b.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){b.enterGroup()},null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){b.foldCells(!0)},
@@ -2996,7 +2997,7 @@ e=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandle
new ChangePageSetup(c);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.foldingEnabled});e.isEnabled=f;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!b.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return b.pageVisible});
e=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionHandler.isEnabled()});
e=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});e.isEnabled=f;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=f;e.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(c.showDialog((new AboutDialog(c)).container,320,280,!0,!0,function(){k=!1}),k=!0)},null,null,"F1"));e=mxUtils.bind(this,function(a,c,d,e){return this.addAction(a,function(){if(null!=d&&b.cellEditor.isContentEditing())d();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var h=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){h||(c.showDialog((new AboutDialog(c)).container,320,280,!0,!0,function(){h=!1}),h=!0)},null,null,"F1"));e=mxUtils.bind(this,function(a,c,d,e){return this.addAction(a,function(){if(null!=d&&b.cellEditor.isContentEditing())d();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
c),(c&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(c&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.updateLabelElements(b.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
b.replaceElement(a)})}finally{b.getModel().endUpdate()}}},null,null,e)});e("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");e("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
@@ -3007,8 +3008,8 @@ this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyl
e=null!=d?d.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("curved",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,
"1"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=b.view.getState(b.getSelectionCell()),d="1";null!=a&&null!=b.getFoldingImage(a)&&(d="0");b.setCellStyles("collapsible",d);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",b.getSelectionCells()))});this.addAction("editStyle...",
mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var c=b.getModel(),c=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",c.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(c.container,420,300,!0,!0);c.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&c.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+
-"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&c.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var c=d.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var e=b.view.translate,f=b.view.scale,k=e.x,e=e.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=n;)k+=n.x,e+=n.y,a=b.getModel().getParent(a),n=
-b.getCellGeometry(a);k=Math.round(b.snap(b.popupMenuHandler.triggerX/f-k));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-e));c.addPointAt(c.state,k,f)}}});this.addAction("removeWaypoint",function(){var a=c.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().isEdge(d)){var e=
+"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&c.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var c=d.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var e=b.view.translate,f=b.view.scale,h=e.x,e=e.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=n;)h+=n.x,e+=n.y,a=b.getModel().getParent(a),n=
+b.getCellGeometry(a);h=Math.round(b.snap(b.popupMenuHandler.triggerX/f-h));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-e));c.addPointAt(c.state,h,f)}}});this.addAction("removeWaypoint",function(){var a=c.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().isEdge(d)){var e=
b.getCellGeometry(d);null!=e&&(e=e.clone(),e.points=null,b.getModel().setGeometry(d,e))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");e=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");e=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=b.getView().getState(b.getSelectionCell()),e="";null!=d&&(e=d.style[mxConstants.STYLE_IMAGE]||e);var f=b.cellEditor.saveSelection();c.showImageDialog(a,e,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate();
try{if(0==e.length){var h=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",h.x,h.y,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=b.view.getState(e[0]),l=null!=k?k.style:b.getCellStyle(e[0]);"image"!=l[mxConstants.STYLE_SHAPE]&&"label"!=l[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",
@@ -3024,7 +3025,7 @@ Menus.prototype.init=function(){var a=this.editorUi.editor.graph,c=mxUtils.bind(
this.put("formatBlock",new Menu(mxUtils.bind(this,function(c,b){function d(d,f){return c.addItem(d,null,mxUtils.bind(this,function(){a.cellEditor.textarea.focus();document.execCommand("formatBlock",!1,"<"+f+">")}),b)}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,b){for(var d=[6,8,9,10,11,12,14,18,24,36,48,72],e=mxUtils.bind(this,function(d){this.styleChange(c,d,[mxConstants.STYLE_FONTSIZE],[d],null,b,function(){document.execCommand("fontSize",!1,"3");for(var b=a.cellEditor.textarea.getElementsByTagName("font"),c=0;c<b.length;c++)if("3"==b[c].getAttribute("size")){b[c].removeAttribute("size");
-b[c].style.fontSize=d+"px";break}})}),k=0;k<d.length;k++)e(d[k]);c.addSeparator(b);if(0<this.customFontSizes.length){for(k=0;k<this.customFontSizes.length;k++)e(this.customFontSizes[k]);c.addSeparator(b);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),b);c.addSeparator(b)}this.promptChange(c,mxResources.get("custom")+"...","(pt)","12",mxConstants.STYLE_FONTSIZE,b,!0,mxUtils.bind(this,function(a){this.customFontSizes.push(a)}))})));this.put("direction",
+b[c].style.fontSize=d+"px";break}})}),h=0;h<d.length;h++)e(d[h]);c.addSeparator(b);if(0<this.customFontSizes.length){for(h=0;h<this.customFontSizes.length;h++)e(this.customFontSizes[h]);c.addSeparator(b);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),b);c.addSeparator(b)}this.promptChange(c,mxResources.get("custom")+"...","(pt)","12",mxConstants.STYLE_FONTSIZE,b,!0,mxUtils.bind(this,function(a){this.customFontSizes.push(a)}))})));this.put("direction",
new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("flipH"),null,function(){a.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},b);c.addItem(mxResources.get("flipV"),null,function(){a.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},b);this.addMenuItems(c,["-","rotation"],b)})));this.put("align",new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("leftAlign"),null,function(){a.alignCells(mxConstants.ALIGN_LEFT)},b);c.addItem(mxResources.get("center"),null,function(){a.alignCells(mxConstants.ALIGN_CENTER)},
b);c.addItem(mxResources.get("rightAlign"),null,function(){a.alignCells(mxConstants.ALIGN_RIGHT)},b);c.addSeparator(b);c.addItem(mxResources.get("topAlign"),null,function(){a.alignCells(mxConstants.ALIGN_TOP)},b);c.addItem(mxResources.get("middle"),null,function(){a.alignCells(mxConstants.ALIGN_MIDDLE)},b);c.addItem(mxResources.get("bottomAlign"),null,function(){a.alignCells(mxConstants.ALIGN_BOTTOM)},b)})));this.put("distribute",new Menu(mxUtils.bind(this,function(c,b){c.addItem(mxResources.get("horizontal"),
null,function(){a.distributeCells(!0)},b);c.addItem(mxResources.get("vertical"),null,function(){a.distributeCells(!1)},b)})));this.put("layout",new Menu(mxUtils.bind(this,function(c,b){var d=mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});c.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var b=new mxHierarchicalLayout(a,
@@ -3039,24 +3040,24 @@ b)})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItem
function(c,b){this.addMenuItems(c,["resetView","-"],b);for(var d=[.25,.5,.75,1,1.25,1.5,2,3,4],e=0;e<d.length;e++)(function(d){c.addItem(100*d+"%",null,function(){a.zoomTo(d)},b)})(d[e]);this.addMenuItems(c,"- fitWindow fitPageWidth fitPage fitTwoPages - customZoom".split(" "),b)})));this.put("file",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"new open - save saveAs - import export - pageSetup print".split(" "),b)})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};
Menus.prototype.get=function(a){return this.menus[a]};Menus.prototype.addSubmenu=function(a,c,d){var b=this.get(a).isEnabled();if(c.showDisabled||b)d=c.addItem(mxResources.get(a),null,null,d,null,b),this.addMenu(a,c,d)};Menus.prototype.addMenu=function(a,c,d){var b=this.get(a);null!=b&&(c.showDisabled||b.isEnabled())&&this.get(a).execute(c,d)};
-Menus.prototype.addInsertTableItem=function(a){function c(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("")}var d=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(a){var b=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=b){var e=d.getParentByName(b,"TR"),f=d.cellEditor.textarea.getElementsByTagName("table");a=[];for(var k=0;k<f.length;k++)a.push(f[k]);d.container.focus();
-d.pasteHtmlAtCaret(c(e.sectionRowIndex+1,b.cellIndex+1));b=d.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(k=b.length-1;0<=k;k--)if(0==k||b[k]!=a[k-1]){d.selectNode(b[k].rows[0].cells[0]);break}}}));var b='<img src="'+mxClient.imageBasePath+'/transparent.gif" width="16" height="16"/>';a.firstChild.innerHTML="";var f=function(a,c){var d=document.createElement("table");d.setAttribute("border","1");d.style.borderCollapse="collapse";mxClient.IS_QUIRKS||d.setAttribute("cellPadding",
-"8");for(var e=0;e<a;e++)for(var f=d.insertRow(e),g=0;g<c;g++){var k=f.insertCell(-1);mxClient.IS_QUIRKS&&(k.innerHTML=b)}return d}(5,5);a.firstChild.appendChild(f);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(f,"mouseover",function(a){var c=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var h=d.getParentByName(c,"TR"),k=Math.min(20,h.sectionRowIndex+2),
-m=Math.min(20,c.cellIndex+2),p=f.rows.length;p<k;p++)for(var n=f.insertRow(p),q=0;q<f.rows[0].cells.length;q++){var t=n.insertCell(-1);mxClient.IS_QUIRKS&&(t.innerHTML=b)}for(p=0;p<f.rows.length;p++)for(n=f.rows[p],q=n.cells.length;q<m;q++)t=n.insertCell(-1),mxClient.IS_QUIRKS&&(t.innerHTML=b);e.innerHTML=c.cellIndex+1+"x"+(h.sectionRowIndex+1);for(k=0;k<f.rows.length;k++)for(m=f.rows[k],p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=k<=h.sectionRowIndex&&p<=c.cellIndex?"blue":"white";
+Menus.prototype.addInsertTableItem=function(a){function c(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("")}var d=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(a){var b=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=b){var e=d.getParentByName(b,"TR"),f=d.cellEditor.textarea.getElementsByTagName("table");a=[];for(var h=0;h<f.length;h++)a.push(f[h]);d.container.focus();
+d.pasteHtmlAtCaret(c(e.sectionRowIndex+1,b.cellIndex+1));b=d.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(h=b.length-1;0<=h;h--)if(0==h||b[h]!=a[h-1]){d.selectNode(b[h].rows[0].cells[0]);break}}}));var b='<img src="'+mxClient.imageBasePath+'/transparent.gif" width="16" height="16"/>';a.firstChild.innerHTML="";var f=function(a,c){var d=document.createElement("table");d.setAttribute("border","1");d.style.borderCollapse="collapse";mxClient.IS_QUIRKS||d.setAttribute("cellPadding",
+"8");for(var e=0;e<a;e++)for(var f=d.insertRow(e),g=0;g<c;g++){var h=f.insertCell(-1);mxClient.IS_QUIRKS&&(h.innerHTML=b)}return d}(5,5);a.firstChild.appendChild(f);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(f,"mouseover",function(a){var c=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var h=d.getParentByName(c,"TR"),l=Math.min(20,h.sectionRowIndex+2),
+m=Math.min(20,c.cellIndex+2),p=f.rows.length;p<l;p++)for(var n=f.insertRow(p),q=0;q<f.rows[0].cells.length;q++){var t=n.insertCell(-1);mxClient.IS_QUIRKS&&(t.innerHTML=b)}for(p=0;p<f.rows.length;p++)for(n=f.rows[p],q=n.cells.length;q<m;q++)t=n.insertCell(-1),mxClient.IS_QUIRKS&&(t.innerHTML=b);e.innerHTML=c.cellIndex+1+"x"+(h.sectionRowIndex+1);for(l=0;l<f.rows.length;l++)for(m=f.rows[l],p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=l<=h.sectionRowIndex&&p<=c.cellIndex?"blue":"white";
mxEvent.consume(a)}})};
-Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,k){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(k){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var q=0;q<d.length;q++)a.setCellStyles(d[q],b[q],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",
-d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f)};Menus.prototype.styleChange=function(a,c,d,b,f,e,k,g){var h=this.createStyleChangeFunction(d,b);return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=k&&a.cellEditor.isContentEditing()?k():h(g)}),e,f)};
+Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,h){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(h){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var q=0;q<d.length;q++)a.setCellStyles(d[q],b[q],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",
+d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f)};Menus.prototype.styleChange=function(a,c,d,b,f,e,h,g){var k=this.createStyleChangeFunction(d,b);return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=h&&a.cellEditor.isContentEditing()?h():k(g)}),e,f)};
Menus.prototype.createStyleChangeFunction=function(a,c){return mxUtils.bind(this,function(d){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var f=0;f<a.length;f++)b.setCellStyles(a[f],c[f]);null!=d&&d();this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",a,"values",c,"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}})};
-Menus.prototype.promptChange=function(a,c,d,b,f,e,k,g,h){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,c=b,e=a.getView().getState(a.getSelectionCell());null!=e&&(c=e.style[f]||c);c=new FilenameDialog(this.editorUi,c,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(f,b)}finally{a.getModel().endUpdate()}null!=g&&g(b)}}),mxResources.get("enterValue")+(0<d.length?" "+
-d:""));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}),e,h,k)};
+Menus.prototype.promptChange=function(a,c,d,b,f,e,h,g,k){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,c=b,e=a.getView().getState(a.getSelectionCell());null!=e&&(c=e.style[f]||c);c=new FilenameDialog(this.editorUi,c,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(f,b)}finally{a.getModel().endUpdate()}null!=g&&g(b)}}),mxResources.get("enterValue")+(0<d.length?" "+
+d:""));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}),e,k,h)};
Menus.prototype.pickColor=function(a,c,d){var b=this.editorUi.editor.graph;if(null!=c&&b.cellEditor.isContentEditing()){var f=b.cellEditor.saveSelection();a=new ColorDialog(this.editorUi,d||"000000",mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(f);document.execCommand(c,!1,a!=mxConstants.NONE?a:"transparent")}),function(){b.cellEditor.restoreSelection(f)});this.editorUi.showDialog(a.container,230,430,!0,!0);a.init()}else{null==this.colorDialog&&(this.colorDialog=new ColorDialog(this.editorUi));
this.colorDialog.currentColorKey=a;d=b.getView().getState(b.getSelectionCell());var e="none";null!=d&&(e=d.style[a]||e);"none"==e?(e="ffffff",this.colorDialog.picker.fromString("ffffff"),this.colorDialog.colorInput.value="none"):this.colorDialog.picker.fromString(e);this.editorUi.showDialog(this.colorDialog.container,230,430,!0,!0);this.colorDialog.init()}};
Menus.prototype.toggleStyle=function(a,c){var d=this.editorUi.editor.graph,b=d.toggleCellStyles(a,c);this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[a],"values",[b],"cells",d.getSelectionCells()))};
Menus.prototype.addMenuItem=function(a,c,d,b,f){var e=this.editorUi.actions.get(c);return null!=e&&(a.showDisabled||e.isEnabled())&&e.visible?(c=a.addItem(e.label,null,function(){e.funct(b)},d,f,e.isEnabled()),e.toggleAction&&e.isSelected()&&a.addCheckmark(c,Editor.checkmarkImage),this.addShortcut(c,e),c):null};
Menus.prototype.addShortcut=function(a,c){if(null!=c.shortcut){var d=a.firstChild.nextSibling.nextSibling,b=document.createElement("span");b.style.color="gray";mxUtils.write(b,c.shortcut);d.appendChild(b)}};Menus.prototype.addMenuItems=function(a,c,d,b,f){for(var e=0;e<c.length;e++)"-"==c[e]?a.addSeparator(d):this.addMenuItem(a,c[e],d,b,null!=f?f[e]:null)};
Menus.prototype.createPopupMenu=function(a,c,d){var b=this.editorUi.editor.graph;a.smartSeparators=!0;b.isSelectionEmpty()?this.addMenuItems(a,["undo","redo","pasteHere"],null,d):this.addMenuItems(a,"delete - cut copy - duplicate".split(" "),null,d);if(b.isSelectionEmpty())this.addMenuItems(a,"- selectVertices selectEdges selectAll - clearDefaultStyle".split(" "),null,d);else{1==b.getSelectionCount()&&this.addMenuItems(a,["setAsDefaultStyle"],null,d);a.addSeparator();c=b.getSelectionCell();var f=
-b.view.getState(c);if(null!=f){var e=!1;this.addMenuItems(a,["toFront","toBack","-"],null,d);if(b.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null)){var e=b.selectionCellsHandler.getHandler(c),k=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var k=e.getHandleForEvent(b.updateMouseEvent(new mxMouseEvent(d))),g=this.editorUi.actions.get("removeWaypoint");g.handler=
-e;g.index=k;k=0<k&&k<e.bends.length-1}this.addMenuItems(a,["-",k?"removeWaypoint":"addWaypoint"],null,d);e=b.getModel().getGeometry(c);e=null!=e&&null!=e.points&&0<e.points.length}1==b.getSelectionCount()&&(e||b.getModel().isVertex(c)&&0<b.getModel().getEdgeCount(c))&&this.addMenuItems(a,["clearWaypoints"],null,d);1<b.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,d)):1==b.getSelectionCount()&&!b.getModel().isEdge(c)&&!b.isSwimlane(c)&&0<b.getModel().getChildCount(c)&&(a.addSeparator(),
+b.view.getState(c);if(null!=f){var e=!1;this.addMenuItems(a,["toFront","toBack","-"],null,d);if(b.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null)){var e=b.selectionCellsHandler.getHandler(c),h=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var h=e.getHandleForEvent(b.updateMouseEvent(new mxMouseEvent(d))),g=this.editorUi.actions.get("removeWaypoint");g.handler=
+e;g.index=h;h=0<h&&h<e.bends.length-1}this.addMenuItems(a,["-",h?"removeWaypoint":"addWaypoint"],null,d);e=b.getModel().getGeometry(c);e=null!=e&&null!=e.points&&0<e.points.length}1==b.getSelectionCount()&&(e||b.getModel().isVertex(c)&&0<b.getModel().getEdgeCount(c))&&this.addMenuItems(a,["clearWaypoints"],null,d);1<b.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,d)):1==b.getSelectionCount()&&!b.getModel().isEdge(c)&&!b.isSwimlane(c)&&0<b.getModel().getChildCount(c)&&(a.addSeparator(),
this.addMenuItems(a,["ungroup"],null,d));1==b.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["edit","-","editData","editLink"],null,d),b.getModel().isVertex(c)&&null!=mxUtils.getValue(f.style,mxConstants.STYLE_IMAGE,null)&&(a.addSeparator(),this.addMenuItem(a,"image",null,d).firstChild.nextSibling.innerHTML=mxResources.get("editImage")+"..."))}}};
Menus.prototype.createMenubar=function(a){for(var c=new Menubar(this.editorUi,a),d=this.defaultMenuItems,b=0;b<d.length;b++)mxUtils.bind(this,function(a){var e=c.addMenu(mxResources.get(d[b]),mxUtils.bind(this,function(){a.funct.apply(this,arguments)}));this.menuCreated(a,e)})(this.get(d[b]));return c};
Menus.prototype.menuCreated=function(a,c){null!=c&&a.addListener("stateChanged",function(){(c.enabled=a.enabled)?(c.className="geItem",8==document.documentMode&&(c.style.color="")):(c.className="geItem mxDisabled",8==document.documentMode&&(c.style.color="#c3c3c3"))})};function Menubar(a,c){this.editorUi=a;this.container=c}Menubar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};
@@ -3077,7 +3078,7 @@ null,!0).setAttribute("title",mxResources.get("simple"));this.editorUi.menus.edg
null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,
mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved"));this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation"))})),this.addDropDownArrow(this.edgeStyleMenu,"geSprite-orthogonal",44,50,0,0,22,-4));this.addSeparator();
a=this.addMenu("",mxResources.get("insert")+" ("+mxResources.get("doubleClickTooltip")+")",!0,"insert",null,!0);this.addDropDownArrow(a,"geSprite-plus",38,48,-4,-3,36,-8)};
-Toolbar.prototype.addDropDownArrow=function(a,c,d,b,f,e,k,g){f=EditorUi.compactUi?f:g;a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.position="relative";a.innerHTML='<div class="geSprite '+c+'" style="margin-left:'+f+"px;margin-top:"+e+'px;"></div>'+this.dropdownImageHtml;a.style.width=mxClient.IS_QUIRKS?b+"px":b-(null!=k?k:32)+"px";mxClient.IS_QUIRKS&&(a.style.height=EditorUi.compactUi?"24px":"26px");EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top=
+Toolbar.prototype.addDropDownArrow=function(a,c,d,b,f,e,h,g){f=EditorUi.compactUi?f:g;a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.position="relative";a.innerHTML='<div class="geSprite '+c+'" style="margin-left:'+f+"px;margin-top:"+e+'px;"></div>'+this.dropdownImageHtml;a.style.width=mxClient.IS_QUIRKS?b+"px":b-(null!=h?h:32)+"px";mxClient.IS_QUIRKS&&(a.style.height=EditorUi.compactUi?"24px":"26px");EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top=
"5px",a.style.width=mxClient.IS_QUIRKS?d+"px":d-10+"px")};Toolbar.prototype.setFontName=function(a){null!=this.fontMenu&&(this.fontMenu.innerHTML='<div style="width:60px;overflow:hidden;display:inline-block;">'+mxUtils.htmlEntities(a)+"</div>"+this.dropdownImageHtml)};Toolbar.prototype.setFontSize=function(a){null!=this.sizeMenu&&(this.sizeMenu.innerHTML='<div style="width:24px;overflow:hidden;display:inline-block;">'+a+"</div>"+this.dropdownImageHtml)};
Toolbar.prototype.createTextToolbar=function(){var a=this.editorUi.editor.graph,c=this.addMenu("",mxResources.get("style"),!0,"formatBlock");c.style.position="relative";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.innerHTML=mxResources.get("style")+this.dropdownImageHtml;EditorUi.compactUi&&(c.style.paddingRight="18px",c.getElementsByTagName("img")[0].style.right="1px",c.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.fontMenu=this.addMenu("",mxResources.get("fontFamily"),
!0,"fontFamily");this.fontMenu.style.position="relative";this.fontMenu.style.whiteSpace="nowrap";this.fontMenu.style.overflow="hidden";this.fontMenu.style.width=mxClient.IS_QUIRKS?"80px":"60px";this.setFontName(Menus.prototype.defaultFont);EditorUi.compactUi&&(this.fontMenu.style.paddingRight="18px",this.fontMenu.getElementsByTagName("img")[0].style.right="1px",this.fontMenu.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.sizeMenu=this.addMenu(Menus.prototype.defaultFontSize,
@@ -3092,41 +3093,41 @@ mxResources.get("fontColor"));d=a.addItem("",null,this.editorUi.actions.get("bac
'<div class="geSprite geSprite-dots" style="margin-left:-2px;"></div>'+this.dropdownImageHtml;c.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(c.getElementsByTagName("img")[0].style.left="22px",c.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.addButton("geIcon geSprite geSprite-code",mxResources.get("html"),function(){a.cellEditor.toggleViewMode();0<a.cellEditor.textarea.innerHTML.length&&("&nbsp;"!=a.cellEditor.textarea.innerHTML||!a.cellEditor.clearOnChange)&&
window.setTimeout(function(){document.execCommand("selectAll",!1,null)})});this.addSeparator();c=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)}))}));c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.position="relative";c.innerHTML='<div class="geSprite geSprite-plus" style="margin-left:-4px;margin-top:-3px;"></div>'+this.dropdownImageHtml;c.style.width=mxClient.IS_QUIRKS?"36px":"16px";EditorUi.compactUi&&(c.getElementsByTagName("img")[0].style.left="24px",c.getElementsByTagName("img")[0].style.top="5px",c.style.width=mxClient.IS_QUIRKS?"50px":"30px");this.addSeparator();var d=this.addMenuFunction("geIcon geSprite geSprite-table",
-mxResources.get("table"),!1,mxUtils.bind(this,function(b){var c=a.getSelectedElement(),d=a.getParentByName(c,"TD",a.cellEditor.text2),k=a.getParentByName(c,"TR",a.cellEditor.text2);if(null==k)this.editorUi.menus.addInsertTableItem(b);else{var g=a.getParentByName(k,"TABLE",a.cellEditor.text2),c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex:0))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");
-c.setAttribute("title",mxResources.get("insertColumnBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex+1:-1))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=b.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{a.deleteColumn(g,d.cellIndex)}catch(h){mxUtils.alert(mxResources.get("error")+
-": "+h.message)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,k.sectionRowIndex))}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,k.sectionRowIndex+1))}catch(h){mxUtils.alert(mxResources.get("error")+
-": "+h.message)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.deleteRow(g,k.sectionRowIndex)}catch(h){mxUtils.alert(mxResources.get("error")+": "+h.message)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=b.addItem("",null,mxUtils.bind(this,function(){var a=g.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
+mxResources.get("table"),!1,mxUtils.bind(this,function(b){var c=a.getSelectedElement(),d=a.getParentByName(c,"TD",a.cellEditor.text2),h=a.getParentByName(c,"TR",a.cellEditor.text2);if(null==h)this.editorUi.menus.addInsertTableItem(b);else{var g=a.getParentByName(h,"TABLE",a.cellEditor.text2),c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex:0))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");
+c.setAttribute("title",mxResources.get("insertColumnBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertColumn(g,null!=d?d.cellIndex+1:-1))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=b.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{a.deleteColumn(g,d.cellIndex)}catch(k){mxUtils.alert(mxResources.get("error")+
+": "+k.message)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,h.sectionRowIndex))}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.selectNode(a.insertRow(g,h.sectionRowIndex+1))}catch(k){mxUtils.alert(mxResources.get("error")+
+": "+k.message)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=b.addItem("",null,mxUtils.bind(this,function(){try{a.deleteRow(g,h.sectionRowIndex)}catch(k){mxUtils.alert(mxResources.get("error")+": "+k.message)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=b.addItem("",null,mxUtils.bind(this,function(){var a=g.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?(g.removeAttribute("border"),g.style.border="",g.style.borderCollapse=""):(g.setAttribute("border","1"),g.style.border="1px solid "+a,g.style.borderCollapse="collapse")})}),null,"geIcon geSprite geSprite-strokecolor");c.setAttribute("title",mxResources.get("borderColor"));c=b.addItem("",
null,mxUtils.bind(this,function(){var a=g.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){g.style.backgroundColor=null==a||a==mxConstants.NONE?"":a})}),null,"geIcon geSprite geSprite-fillcolor");c.setAttribute("title",mxResources.get("backgroundColor"));c=b.addItem("",null,mxUtils.bind(this,
function(){var a=g.getAttribute("cellPadding")||0,a=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?g.setAttribute("cellPadding",a):g.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=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","left")}),null,"geIcon geSprite geSprite-left");
c.setAttribute("title",mxResources.get("left"));c=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","center")}),null,"geIcon geSprite geSprite-center");c.setAttribute("title",mxResources.get("center"));c=b.addItem("",null,mxUtils.bind(this,function(){g.setAttribute("align","right")}),null,"geIcon geSprite geSprite-right");c.setAttribute("title",mxResources.get("right"))}}));d.style.position="relative";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.innerHTML='<div class="geSprite geSprite-table" style="margin-left:-2px;"></div>'+
-this.dropdownImageHtml;d.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(d.getElementsByTagName("img")[0].style.left="22px",d.getElementsByTagName("img")[0].style.top="5px")};Toolbar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Toolbar.prototype.addMenu=function(a,c,d,b,f,e){var k=this.editorUi.menus.get(b),g=this.addMenuFunction(a,c,d,function(){k.funct.apply(k,arguments)},f,e);k.addListener("stateChanged",function(){g.setEnabled(k.enabled)});return g};
+this.dropdownImageHtml;d.style.width=mxClient.IS_QUIRKS?"50px":"30px";EditorUi.compactUi&&(d.getElementsByTagName("img")[0].style.left="22px",d.getElementsByTagName("img")[0].style.top="5px")};Toolbar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Toolbar.prototype.addMenu=function(a,c,d,b,f,e){var h=this.editorUi.menus.get(b),g=this.addMenuFunction(a,c,d,function(){h.funct.apply(h,arguments)},f,e);h.addListener("stateChanged",function(){g.setEnabled(h.enabled)});return g};
Toolbar.prototype.addMenuFunction=function(a,c,d,b,f,e){return this.addMenuFunctionInContainer(null!=f?f:this.container,a,c,d,b,e)};Toolbar.prototype.addMenuFunctionInContainer=function(a,c,d,b,f,e){c=b?this.createLabel(c):this.createButton(c);this.initElement(c,d);this.addMenuHandler(c,b,f,e);a.appendChild(c);return c};Toolbar.prototype.addSeparator=function(a){a=null!=a?a:this.container;var c=document.createElement("div");c.className="geSeparator";a.appendChild(c);return c};
Toolbar.prototype.addItems=function(a,c,d){for(var b=[],f=0;f<a.length;f++){var e=a[f];"-"==e?b.push(this.addSeparator(c)):b.push(this.addItem("geSprite-"+e.toLowerCase(),e,c,d))}return b};Toolbar.prototype.addItem=function(a,c,d,b){var f=this.editorUi.actions.get(c),e=null;null!=f&&(c=f.label,null!=f.shortcut&&(c+=" ("+f.shortcut+")"),e=this.addButton(a,c,f.funct,d),b||(e.setEnabled(f.enabled),f.addListener("stateChanged",function(){e.setEnabled(f.enabled)})));return e};
Toolbar.prototype.addButton=function(a,c,d,b){a=this.createButton(a);b=null!=b?b:this.container;this.initElement(a,c);this.addClickHandler(a,d);b.appendChild(a);return a};Toolbar.prototype.initElement=function(a,c){null!=c&&a.setAttribute("title",c);this.addEnabledState(a)};Toolbar.prototype.addEnabledState=function(a){var c=a.className;a.setEnabled=function(d){a.enabled=d;a.className=d?c:c+" mxDisabled"};a.setEnabled(!0)};
Toolbar.prototype.addClickHandler=function(a,c){null!=c&&(mxEvent.addListener(a,"click",function(d){a.enabled&&c(d);mxEvent.consume(d)}),null!=document.documentMode&&9<=document.documentMode&&mxEvent.addListener(a,"mousedown",function(a){a.preventDefault()}))};Toolbar.prototype.createButton=function(a){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");c.className="geButton";var d=document.createElement("div");null!=a&&(d.className="geSprite "+a);c.appendChild(d);return c};
Toolbar.prototype.createLabel=function(a,c){var d=document.createElement("a");d.setAttribute("href","javascript:void(0);");d.className="geLabel";mxUtils.write(d,a);return d};
-Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editorUi.editor.graph,e=null,k=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(g){if(k&&(null==a.enabled||a.enabled)){f.popupMenuHandler.hideMenu();e=new mxPopupMenu(d);e.div.className+=" geToolbarMenu";e.showDisabled=b;e.labels=c;e.autoExpand=!0;var h=mxUtils.getOffset(a);e.popup(h.x,h.y+a.offsetHeight,null,g);this.editorUi.setCurrentMenu(e,a);!c&&e.div.scrollHeight>e.div.clientHeight&&(e.div.style.width="40px");
-e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}k=!0;mxEvent.consume(g)}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(b){k=this.currentElt!=a;null!=document.documentMode&&9<=document.documentMode&&b.preventDefault()}))}};
+Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editorUi.editor.graph,e=null,h=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(g){if(h&&(null==a.enabled||a.enabled)){f.popupMenuHandler.hideMenu();e=new mxPopupMenu(d);e.div.className+=" geToolbarMenu";e.showDisabled=b;e.labels=c;e.autoExpand=!0;var k=mxUtils.getOffset(a);e.popup(k.x,k.y+a.offsetHeight,null,g);this.editorUi.setCurrentMenu(e,a);!c&&e.div.scrollHeight>e.div.clientHeight&&(e.div.style.width="40px");
+e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}h=!0;mxEvent.consume(g)}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(b){h=this.currentElt!=a;null!=document.documentMode&&9<=document.documentMode&&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";var c=mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)?20:0;a.setAttribute("width",(Editor.useLocalStorage?640:320)+c+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+c+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=
-function(a,c,d,b){function f(){var a=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function e(a,b,c,d){b=null!=b?b:12;var e=document.createElement("table");e.style.borderCollapse="collapse";e.setAttribute("cellspacing","0");e.style.marginBottom="20px";e.style.cellSpacing="0px";var h=document.createElement("tbody");e.appendChild(h);for(var m=a.length/b,n=0;n<m;n++){for(var p=document.createElement("tr"),q=0;q<b;q++)(function(a){var b=
-document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;p.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),k.value="none"):g.fromString(a)}))})(a[n*b+q]);h.appendChild(p)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
-a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();e.parentNode.replaceChild(f(),e)}));l.appendChild(e);return e}this.editorUi=a;var k=document.createElement("input");k.style.marginBottom="10px";
-k.style.width="216px";mxClient.IS_IE&&(k.style.marginTop="10px",document.body.appendChild(k));this.init=function(){mxClient.IS_TOUCH||k.focus()};var g=new jscolor.color(k);g.pickerOnfocus=!1;g.showPicker();var h=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";h.appendChild(jscolor.picker.box);var l=document.createElement("center");h.appendChild(k);
-mxUtils.br(h);f();var m=e(this.presetColors);m.style.marginBottom="8px";m=e(this.defaultColors);m.style.marginBottom="16px";h.appendChild(l);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var n=null!=d?d:this.createApplyFunction();d=mxUtils.button(mxResources.get("apply"),function(){var b=k.value;ColorDialog.addRecentColor(b,
-12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);n(b);a.hideDialog()});d.className="geBtn gePrimaryBtn";m.appendChild(d);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(g.fromString("ffffff"),k.value="none"):g.fromString(c));h.appendChild(m);this.picker=g;this.colorInput=k;mxEvent.addListener(h,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=h};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(" ");
+function(a,c,d,b){function f(){var a=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function e(a,b,c,d){b=null!=b?b:12;var e=document.createElement("table");e.style.borderCollapse="collapse";e.setAttribute("cellspacing","0");e.style.marginBottom="20px";e.style.cellSpacing="0px";var k=document.createElement("tbody");e.appendChild(k);for(var m=a.length/b,n=0;n<m;n++){for(var p=document.createElement("tr"),q=0;q<b;q++)(function(a){var b=
+document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;p.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),h.value="none"):g.fromString(a)}))})(a[n*b+q]);k.appendChild(p)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
+a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();e.parentNode.replaceChild(f(),e)}));l.appendChild(e);return e}this.editorUi=a;var h=document.createElement("input");h.style.marginBottom="10px";
+h.style.width="216px";mxClient.IS_IE&&(h.style.marginTop="10px",document.body.appendChild(h));this.init=function(){mxClient.IS_TOUCH||h.focus()};var g=new jscolor.color(h);g.pickerOnfocus=!1;g.showPicker();var k=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";k.appendChild(jscolor.picker.box);var l=document.createElement("center");k.appendChild(h);
+mxUtils.br(k);f();var m=e(this.presetColors);m.style.marginBottom="8px";m=e(this.defaultColors);m.style.marginBottom="16px";k.appendChild(l);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var n=null!=d?d:this.createApplyFunction();d=mxUtils.button(mxResources.get("apply"),function(){var b=h.value;ColorDialog.addRecentColor(b,
+12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);n(b);a.hideDialog()});d.className="geBtn gePrimaryBtn";m.appendChild(d);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(g.fromString("ffffff"),h.value="none"):g.fromString(c));k.appendChild(m);this.picker=g;this.colorInput=h;mxEvent.addListener(k,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=k};ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");
ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
-"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},FilenameDialog=function(a,c,d,b,f,e,k,g,h,l){h=null!=h?h:!0;var m,p,n=document.createElement("table"),q=document.createElement("tbody");n.style.marginTop="8px";m=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace=
-"nowrap";p.style.fontSize="10pt";p.style.width="120px";mxUtils.write(p,(f||mxResources.get("filename"))+":");m.appendChild(p);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width="180px";var r=mxUtils.button(d,function(){if(null==e||e(t.value))h&&a.hideDialog(),b(t.value)});r.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
+"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},FilenameDialog=function(a,c,d,b,f,e,h,g,k,l){k=null!=k?k:!0;var m,p,n=document.createElement("table"),q=document.createElement("tbody");n.style.marginTop="8px";m=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace=
+"nowrap";p.style.fontSize="10pt";p.style.width="120px";mxUtils.write(p,(f||mxResources.get("filename"))+":");m.appendChild(p);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width="180px";var r=mxUtils.button(d,function(){if(null==e||e(t.value))k&&a.hideDialog(),b(t.value)});r.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==h)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=n.parentNode,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")),r.click());a.stopPropagation();a.preventDefault()}))}};p=document.createElement("td");p.appendChild(t);m.appendChild(p);null==f&&null!=k||q.appendChild(m);null!=k&&(m=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(k),m.appendChild(p),q.appendChild(m));m=document.createElement("tr");p=document.createElement("td");p.colSpan=
+"",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(t.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),r.click());a.stopPropagation();a.preventDefault()}))}};p=document.createElement("td");p.appendChild(t);m.appendChild(p);null==f&&null!=h||q.appendChild(m);null!=h&&(m=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(h),m.appendChild(p),q.appendChild(m));m=document.createElement("tr");p=document.createElement("td");p.colSpan=
2;p.style.paddingTop="20px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});c.className="geBtn";a.editor.cancelFirst&&p.appendChild(c);null!=g&&(d=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),d.className="geBtn",p.appendChild(d));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&r.click()});p.appendChild(r);a.editor.cancelFirst||p.appendChild(c);m.appendChild(p);
-q.appendChild(m);n.appendChild(q);this.container=n},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var n,q,t=document.createElement("table"),r=document.createElement("tbody");n=document.createElement("tr");q=document.createElement("td");q.style.fontSize="10pt";q.style.width="100px";mxUtils.write(q,c);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=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,d||"");w.style.resize="none";w.style.width=k+"px";w.style.height=g+"px";this.textarea=w;this.init=function(){w.focus();w.scrollTop=0};q.appendChild(w);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=document.createElement("td");q.style.paddingTop="14px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");
-c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=h&&h(q);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(w.value)}),h.className="geBtn gePrimaryBtn",q.appendChild(h));a.editor.cancelFirst||q.appendChild(c);n.appendChild(q);r.appendChild(n);t.appendChild(r);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";
+q.appendChild(m);n.appendChild(q);this.container=n},TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,m,p){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var n,q,t=document.createElement("table"),r=document.createElement("tbody");n=document.createElement("tr");q=document.createElement("td");q.style.fontSize="10pt";q.style.width="100px";mxUtils.write(q,c);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=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,d||"");w.style.resize="none";w.style.width=h+"px";w.style.height=g+"px";this.textarea=w;this.init=function(){w.focus();w.scrollTop=0};q.appendChild(w);n.appendChild(q);r.appendChild(n);n=document.createElement("tr");q=document.createElement("td");q.style.paddingTop="14px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");
+c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});c.className="geBtn";a.editor.cancelFirst&&q.appendChild(c);null!=k&&k(q);null!=b&&(k=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(w.value)}),k.className="geBtn gePrimaryBtn",q.appendChild(k));a.editor.cancelFirst||q.appendChild(c);n.appendChild(q);r.appendChild(n);t.appendChild(r);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";
var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();
a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className=
"geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),
@@ -3134,108 +3135,108 @@ f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),functi
f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};
EditDiagramDialog.showNewWindowOption=!0;
var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),q.setAttribute("disabled","true"),t.setAttribute("disabled","true"),w.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),t.removeAttribute("disabled"),w.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled")}
-function d(){q.style.backgroundColor=q.value*t.value>MAX_AREA||0>=q.value?"red":"";t.style.backgroundColor=q.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,k=Math.ceil(f.width/e),g=Math.ceil(f.height/e),h,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";h.style.width="100px";mxUtils.write(h,
-mxResources.get("filename")+":");f.appendChild(h);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";h=document.createElement("td");h.appendChild(m);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("format")+":");f.appendChild(h);var p=document.createElement("select");p.style.width="180px";h=document.createElement("option");h.setAttribute("value",
-"png");mxUtils.write(h,mxResources.get("formatPng"));p.appendChild(h);h=document.createElement("option");ExportDialog.showGifOption&&(h.setAttribute("value","gif"),mxUtils.write(h,mxResources.get("formatGif")),p.appendChild(h));h=document.createElement("option");h.setAttribute("value","jpg");mxUtils.write(h,mxResources.get("formatJpg"));p.appendChild(h);h=document.createElement("option");h.setAttribute("value","pdf");mxUtils.write(h,mxResources.get("formatPdf"));p.appendChild(h);h=document.createElement("option");
-h.setAttribute("value","svg");mxUtils.write(h,mxResources.get("formatSvg"));p.appendChild(h);ExportDialog.showXmlOption&&(h=document.createElement("option"),h.setAttribute("value","xml"),mxUtils.write(h,mxResources.get("formatXml")),p.appendChild(h));h=document.createElement("td");h.appendChild(p);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("zoom")+" (%):");f.appendChild(h);var n=document.createElement("input");
-n.setAttribute("type","number");n.setAttribute("value","100");n.style.width="180px";h=document.createElement("td");h.appendChild(n);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("width")+":");f.appendChild(h);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";h=document.createElement("td");h.appendChild(q);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");
-h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("height")+":");f.appendChild(h);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";h=document.createElement("td");h.appendChild(t);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("background")+":");f.appendChild(h);var r=document.createElement("input");r.setAttribute("type",
-"checkbox");r.checked=null==b.background||b.background==mxConstants.NONE;h=document.createElement("td");h.appendChild(r);mxUtils.write(h,mxResources.get("transparent"));f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("borderWidth")+":");f.appendChild(h);var w=document.createElement("input");w.setAttribute("type","number");w.setAttribute("value",ExportDialog.lastBorderValue);w.style.width="180px";
-h=document.createElement("td");h.appendChild(w);f.appendChild(h);l.appendChild(f);e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(q.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value=
-"100",q.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(k*a)):(n.value="100",q.value=k,t.value=g);d()});f=document.createElement("tr");h=document.createElement("td");h.setAttribute("align","right");h.style.paddingTop="22px";h.colSpan=2;var v=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=
-m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(w.value)),g=b.background;if(("svg"==d||"png"==d)&&r.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f)}}));v.className="geBtn gePrimaryBtn";var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst?(h.appendChild(u),h.appendChild(v)):(h.appendChild(v),h.appendChild(u));f.appendChild(h);
+function d(){q.style.backgroundColor=q.value*t.value>MAX_AREA||0>=q.value?"red":"";t.style.backgroundColor=q.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,
+mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var p=document.createElement("select");p.style.width="180px";k=document.createElement("option");k.setAttribute("value",
+"png");mxUtils.write(k,mxResources.get("formatPng"));p.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),p.appendChild(k));k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));p.appendChild(k);k=document.createElement("option");k.setAttribute("value","pdf");mxUtils.write(k,mxResources.get("formatPdf"));p.appendChild(k);k=document.createElement("option");
+k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));p.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),p.appendChild(k));k=document.createElement("td");k.appendChild(p);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");f.appendChild(k);var n=document.createElement("input");
+n.setAttribute("type","number");n.setAttribute("value","100");n.style.width="180px";k=document.createElement("td");k.appendChild(n);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");f.appendChild(k);var q=document.createElement("input");q.setAttribute("value",h);q.style.width="180px";k=document.createElement("td");k.appendChild(q);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");
+k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");f.appendChild(k);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";k=document.createElement("td");k.appendChild(t);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");f.appendChild(k);var r=document.createElement("input");r.setAttribute("type",
+"checkbox");r.checked=null==b.background||b.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(r);mxUtils.write(k,mxResources.get("transparent"));f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");f.appendChild(k);var w=document.createElement("input");w.setAttribute("type","number");w.setAttribute("value",ExportDialog.lastBorderValue);w.style.width="180px";
+k=document.createElement("td");k.appendChild(w);f.appendChild(k);l.appendChild(f);e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<h?(q.value=Math.floor(h*a),t.value=Math.floor(g*a)):(n.value="100",q.value=h,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/h;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value=
+"100",q.value=h,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(h*a)):(n.value="100",q.value=h,t.value=g);d()});f=document.createElement("tr");k=document.createElement("td");k.setAttribute("align","right");k.style.paddingTop="22px";k.colSpan=2;var v=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=
+m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(w.value)),g=b.background;if(("svg"==d||"png"==d)&&r.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f)}}));v.className="geBtn gePrimaryBtn";var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst?(k.appendChild(u),k.appendChild(v)):(k.appendChild(v),k.appendChild(u));f.appendChild(k);
l.appendChild(f);e.appendChild(l);this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
-ExportDialog.exportFile=function(a,c,d,b,f,e){var k=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(k.getSvg(b,f,e)),c,d);else{var g=k.getGraphBounds(),h=mxUtils.createXmlDocument(),l=h.createElement("output");h.appendChild(l);h=new mxXmlCanvas2D(l);h.translate(Math.floor((e/f-g.x)/k.view.scale),Math.floor((e/f-g.y)/k.view.scale));h.scale(f/k.view.scale);(new mxImageExport).drawState(k.getView().getState(k.model.root),
-h);l="xml="+encodeURIComponent(mxUtils.getXml(l));h=Math.ceil(g.width*f/k.view.scale+2*e);f=Math.ceil(g.height*f/k.view.scale+2*e);l.length<=MAX_REQUEST_SIZE&&h*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+h+"&h="+f+"&"+l)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
+ExportDialog.exportFile=function(a,c,d,b,f,e){var h=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(h.getSvg(b,f,e)),c,d);else{var g=h.getGraphBounds(),k=mxUtils.createXmlDocument(),l=k.createElement("output");k.appendChild(l);k=new mxXmlCanvas2D(l);k.translate(Math.floor((e/f-g.x)/h.view.scale),Math.floor((e/f-g.y)/h.view.scale));k.scale(f/h.view.scale);(new mxImageExport).drawState(h.getView().getState(h.model.root),
+k);l="xml="+encodeURIComponent(mxUtils.getXml(l));k=Math.ceil(g.width*f/h.view.scale+2*e);f=Math.ceil(g.height*f/h.view.scale+2*e);l.length<=MAX_REQUEST_SIZE&&k*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+k+"&h="+f+"&"+l)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(d)+"&format="+b)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,c){function d(){0<r.value.length?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var g=new mxForm("properties");g.table.style.width="100%";for(var k=e.attributes,h=[],l=[],m=0,p=function(a,b){var c=document.createElement("div");c.style.position="relative";
+var EditDataDialog=function(a,c){function d(){0<r.value.length?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",e||"");e=h}var g=new mxForm("properties");g.table.style.width="100%";for(var h=e.attributes,k=[],l=[],m=0,p=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<h.length;c++){if(h[c]==a){l[c]=null;g.table.deleteRow(b);break}null!=l[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},n=function(a,b,c){h[a]=b;l[a]=g.addTextarea(h[m]+":",c,2);l[a].style.width="100%";p(l[a],b)},q=[],t=0;t<k.length;t++)"label"!=k[t].nodeName&&"placeholders"!=k[t].nodeName&&q.push({name:k[t].nodeName,value:k[t].nodeValue});q.sort(function(a,b){return a.name<b.name?-1:
-a.name>b.name?1:0});for(t=0;t<q.length;t++)n(m,q[t].name,q[t].value),m++;k=document.createElement("div");k.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";k.appendChild(g.table);n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.marginTop="6px";var r=document.createElement("input");r.setAttribute("placeholder",mxResources.get("enterPropertyName"));r.setAttribute("type","text");r.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"18":
-"22");r.style.marginLeft="2px";n.appendChild(r);k.appendChild(n);b.appendChild(k);var w=mxUtils.button(mxResources.get("addProperty"),function(){var a=r.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(h,a);if(0<=b&&null!=l[b])l[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(h.splice(b,1),l.splice(b,1));h.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";l.push(c);p(c,a);c.focus()}r.value=""}catch(A){mxUtils.alert(A)}else mxUtils.alert(mxResources.get("invalidName"))});
-this.init=function(){0<l.length?l[0].focus():r.focus()};w.setAttribute("disabled","disabled");w.style.marginLeft="10px";w.style.width="144px";n.appendChild(w);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});k.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<h.length;d++)null==l[d]?e.removeAttribute(h[d]):(e.setAttribute(h[d],l[d].value),b=b||"placeholder"==h[d]&&"1"==
-e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(D){mxUtils.alert(D)}});n.className="geBtn gePrimaryBtn";mxEvent.addListener(r,"keyup",d);mxEvent.addListener(r,"change",d);q=document.createElement("div");q.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";var v=document.createElement("input");
+e=function(a){return function(){for(var b=0,c=0;c<k.length;c++){if(k[c]==a){l[c]=null;g.table.deleteRow(b);break}null!=l[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},n=function(a,b,c){k[a]=b;l[a]=g.addTextarea(k[m]+":",c,2);l[a].style.width="100%";p(l[a],b)},q=[],t=0;t<h.length;t++)"label"!=h[t].nodeName&&"placeholders"!=h[t].nodeName&&q.push({name:h[t].nodeName,value:h[t].nodeValue});q.sort(function(a,b){return a.name<b.name?-1:
+a.name>b.name?1:0});for(t=0;t<q.length;t++)n(m,q[t].name,q[t].value),m++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(g.table);n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.marginTop="6px";var r=document.createElement("input");r.setAttribute("placeholder",mxResources.get("enterPropertyName"));r.setAttribute("type","text");r.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"18":
+"22");r.style.marginLeft="2px";n.appendChild(r);h.appendChild(n);b.appendChild(h);var w=mxUtils.button(mxResources.get("addProperty"),function(){var a=r.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(k,a);if(0<=b&&null!=l[b])l[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(k.splice(b,1),l.splice(b,1));k.push(a);var c=g.addTextarea(a+":","",2);c.style.width="100%";l.push(c);p(c,a);c.focus()}r.value=""}catch(A){mxUtils.alert(A)}else mxUtils.alert(mxResources.get("invalidName"))});
+this.init=function(){0<l.length?l[0].focus():r.focus()};w.setAttribute("disabled","disabled");w.style.marginLeft="10px";w.style.width="144px";n.appendChild(w);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<k.length;d++)null==l[d]?e.removeAttribute(k[d]):(e.setAttribute(k[d],l[d].value),b=b||"placeholder"==k[d]&&"1"==
+e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(C){mxUtils.alert(C)}});n.className="geBtn gePrimaryBtn";mxEvent.addListener(r,"keyup",d);mxEvent.addListener(r,"change",d);q=document.createElement("div");q.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";var v=document.createElement("input");
v.setAttribute("type","checkbox");v.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);mxEvent.addListener(v,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});t.appendChild(v);mxUtils.write(t,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){v=document.createElement("a");v.setAttribute("href",EditDataDialog.placeholderHelpLink);
-v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var u=document.createElement("img");u.setAttribute("border","0");u.setAttribute("valign","middle");u.style.marginTop=mxClient.IS_IE11?"0px":"-4px";u.setAttribute("src",Editor.helpImage);v.appendChild(u);t.appendChild(v)}q.appendChild(t)}a.editor.cancelFirst?(q.appendChild(k),q.appendChild(n)):(q.appendChild(n),q.appendChild(k));b.appendChild(q);this.container=b};
+v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var u=document.createElement("img");u.setAttribute("border","0");u.setAttribute("valign","middle");u.style.marginTop=mxClient.IS_IE11?"0px":"-4px";u.setAttribute("src",Editor.helpImage);v.appendChild(u);t.appendChild(v)}q.appendChild(t)}a.editor.cancelFirst?(q.appendChild(h),q.appendChild(n)):(q.appendChild(n),q.appendChild(h));b.appendChild(q);this.container=b};
EditDataDialog.placeholderHelpLink=null;
-var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var k=document.createElement("input");k.setAttribute("value",c);k.setAttribute("placeholder","http://www.example.com/");k.setAttribute("type",
-"text");k.style.marginTop="6px";k.style.width="400px";k.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";k.style.backgroundRepeat="no-repeat";k.style.backgroundPosition="100% 50%";k.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
-0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){k.value="";k.focus()});e.appendChild(k);e.appendChild(c);f.appendChild(e);this.init=function(){k.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?k.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(k,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
-b(k.value))});c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&e.appendChild(c);d=mxUtils.button(d,function(){a.hideDialog();b(k.value)});d.className="geBtn gePrimaryBtn";e.appendChild(d);a.editor.cancelFirst||e.appendChild(c);f.appendChild(e);this.container=f},OutlineWindow=function(a,c,d,b,f){function e(){h.outline.pageScale=k.pageScale;h.outline.pageFormat=k.pageFormat;h.outline.pageVisible=k.pageVisible;h.outline.background=null==
-k.background||k.background==mxConstants.NONE?k.defaultPageBackgroundColor:k.background;var a=mxUtils.getCurrentStyle(k.container);g.style.backgroundColor=a.backgroundColor;null!=k.view.backgroundPageShape&&null!=h.outline.view.backgroundPageShape&&(h.outline.view.backgroundPageShape.fill=k.view.backgroundPageShape.fill);h.outline.refresh()}var k=a.editor.graph,g=document.createElement("div");g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";
+var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var h=document.createElement("input");h.setAttribute("value",c);h.setAttribute("placeholder","http://www.example.com/");h.setAttribute("type",
+"text");h.style.marginTop="6px";h.style.width="400px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
+0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){h.value="";h.focus()});e.appendChild(h);e.appendChild(c);f.appendChild(e);this.init=function(){h.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?h.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(h,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
+b(h.value))});c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&e.appendChild(c);d=mxUtils.button(d,function(){a.hideDialog();b(h.value)});d.className="geBtn gePrimaryBtn";e.appendChild(d);a.editor.cancelFirst||e.appendChild(c);f.appendChild(e);this.container=f},OutlineWindow=function(a,c,d,b,f){function e(){l.outline.pageScale=h.pageScale;l.outline.pageFormat=h.pageFormat;l.outline.pageVisible=h.pageVisible;l.outline.background=null==
+h.background||h.background==mxConstants.NONE?h.defaultPageBackgroundColor:h.background;var a=mxUtils.getCurrentStyle(h.container);g.style.backgroundColor=a.backgroundColor;null!=h.view.backgroundPageShape&&null!=l.outline.view.backgroundPageShape&&(l.outline.view.backgroundPageShape.fill=h.view.backgroundPageShape.fill);l.outline.refresh()}var h=a.editor.graph,g=document.createElement("div");g.style.position="absolute";g.style.width="100%";g.style.height="100%";g.style.border="1px solid whiteSmoke";
g.style.overflow="hidden";this.window=new mxWindow(mxResources.get("outline"),g,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,80,80);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||
-document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)}));var h=a.createOutline(this.window);this.window.addListener(mxEvent.RESIZE,mxUtils.bind(this,function(){h.update(!1);h.outline.sizeDidChange()}));this.window.addListener(mxEvent.SHOW,
-mxUtils.bind(this,function(){h.suspended=!1;h.outline.refresh();h.update()}));this.window.addListener(mxEvent.HIDE,mxUtils.bind(this,function(){h.suspended=!0}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){h.suspended=!1;h.update()}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){h.suspended=!0}));var l=h.createGraph;h.createGraph=function(a){var b=l.apply(this,arguments);b.gridEnabled=!1;b.pageScale=k.pageScale;b.pageFormat=k.pageFormat;b.background=
-null==k.background||k.background==mxConstants.NONE?k.defaultPageBackgroundColor:k.background;b.pageVisible=k.pageVisible;var c=mxUtils.getCurrentStyle(k.container);g.style.backgroundColor=c.backgroundColor;return b};h.init(g);a.editor.addListener("resetGraphView",e);a.addListener("pageFormatChanged",e);a.addListener("backgroundColorChanged",e);a.addListener("backgroundImageChanged",e);a.addListener("pageViewChanged",function(){e();h.update(!0)});if(h.outline.dialect==mxConstants.DIALECT_SVG){var m=
-a.actions.get("zoomIn"),p=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(a,b){for(var c=!1,d=mxEvent.getSource(a);null!=d;){if(d==h.outline.view.canvas.ownerSVGElement){c=!0;break}d=d.parentNode}c&&(b?m.funct():p.funct(),mxEvent.consume(a))})}},LayersWindow=function(a,c,d,b,f){function e(b){if(g.isEnabled()&&null!=b){var c=new FilenameDialog(a,b.value||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&g.getModel().setValue(b,a)}),mxResources.get("enterName"));
-a.showDialog(c.container,300,100,!0,!0);c.init()}}function k(){function a(a,b,c,d){var f=document.createElement("div");f.className="geToolbarContainer";f.style.overflow="hidden";f.style.position="relative";f.style.padding="4px";f.style.height="22px";f.style.display="block";f.style.backgroundColor="whiteSmoke";f.style.borderWidth="0px 0px 1px 0px";f.style.borderColor="#c3c3c3";f.style.borderStyle="solid";f.style.whiteSpace="nowrap";var h=document.createElement("div");h.style.display="inline-block";
-h.style.width="100%";h.style.textOverflow="ellipsis";h.style.overflow="hidden";mxEvent.addListener(f,"dragover",function(b){b.dataTransfer.dropEffect="move";n=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(f,"dragstart",function(a){p=f;mxClient.IS_FF&&a.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(f,"dragend",function(a){null!=p&&null!=n&&g.addCell(c,g.model.root,n);n=p=null;a.stopPropagation();a.preventDefault()});var l=document.createElement("img");l.setAttribute("draggable",
-"false");l.setAttribute("align","top");l.setAttribute("border","0");l.style.padding="4px";l.setAttribute("title",mxResources.get("lockUnlock"));var r=g.view.getState(c),u=null!=r?r.style:g.getCellStyle(c);"1"==mxUtils.getValue(u,"locked","0")?l.setAttribute("src",Dialog.prototype.lockedImage):l.setAttribute("src",Dialog.prototype.unlockedImage);g.isEnabled()&&(l.style.cursor="pointer");mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==mxUtils.getValue(u,
-"locked","0")?null:"1",g.setCellStyles("locked",b,[c])}finally{g.getModel().endUpdate()}"1"==b&&g.removeSelectionCells(g.getModel().getDescendants(c));mxEvent.consume(a)}});h.appendChild(l);l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));l.style.marginLeft="4px";l.style.marginRight="6px";l.style.marginTop="4px";h.appendChild(l);g.model.isVisible(c)&&(l.setAttribute("checked","checked"),l.defaultChecked=
-!0);mxEvent.addListener(l,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});mxUtils.write(h,b);f.appendChild(h);if(g.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_VML||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position="absolute",b.style.right="6px",b.style.top="6px",0<a&&(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<q-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)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==
-c?(f.style.background="#e6eff8",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),k())});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,c.value||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));w.setAttribute("title",mxResources.get("removeIt",[t.value||mxResources.get("background")]));v.setAttribute("title",
-mxResources.get("moveSelectionTo",[t.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("duplicateIt",[t.value||mxResources.get("background")]));u.setAttribute("title",mxResources.get("renameIt",[t.value||mxResources.get("background")]));g.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border=
-"1px solid whiteSmoke";h.style.height="100%";h.style.marginBottom="10px";h.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":"#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";h.appendChild(m);var p=null,n=null;mxEvent.addListener(h,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;
-a.stopPropagation();a.preventDefault()});mxEvent.addListener(h,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,r=document.createElement("div");r.className="geToolbarContainer";r.style.position="absolute";r.style.bottom="0px";r.style.left="0px";r.style.right="0px";r.style.height=l;r.style.overflow="hidden";r.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";r.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;r.style.borderWidth=
-"1px 0px 0px 0px";r.style.borderColor="#c3c3c3";r.style.borderStyle="solid";r.style.display="block";r.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(r.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var w=l.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(t);g.removeCells([t],
-!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");r.appendChild(w);var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(v,"click",function(a){g.isEnabled()&&
-!g.isSelectionEmpty()&&g.moveCells(g.getSelectionCells(),0,0,!1,t)});r.appendChild(v);var u=l.cloneNode();u.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';u.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(u,"click",function(a){g.isEnabled()&&e(t);mxEvent.consume(a)});g.isEnabled()||(u.className="geButton mxDisabled");r.appendChild(u);var z=l.cloneNode();z.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';
+document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var k=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",k);var l=a.createOutline(this.window);this.destroy=function(){mxEvent.removeListener(window,"resize",k);this.window.destroy();l.destroy()};this.window.addListener(mxEvent.RESIZE,
+mxUtils.bind(this,function(){l.update(!1);l.outline.sizeDidChange()}));this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){l.suspended=!1;l.outline.refresh();l.update()}));this.window.addListener(mxEvent.HIDE,mxUtils.bind(this,function(){l.suspended=!0}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){l.suspended=!1;l.update()}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){l.suspended=!0}));var m=l.createGraph;l.createGraph=function(a){var b=
+m.apply(this,arguments);b.gridEnabled=!1;b.pageScale=h.pageScale;b.pageFormat=h.pageFormat;b.background=null==h.background||h.background==mxConstants.NONE?h.defaultPageBackgroundColor:h.background;b.pageVisible=h.pageVisible;var c=mxUtils.getCurrentStyle(h.container);g.style.backgroundColor=c.backgroundColor;return b};l.init(g);a.editor.addListener("resetGraphView",e);a.addListener("pageFormatChanged",e);a.addListener("backgroundColorChanged",e);a.addListener("backgroundImageChanged",e);a.addListener("pageViewChanged",
+function(){e();l.update(!0)});if(l.outline.dialect==mxConstants.DIALECT_SVG){var p=a.actions.get("zoomIn"),n=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(a,b){for(var c=!1,d=mxEvent.getSource(a);null!=d;){if(d==l.outline.view.canvas.ownerSVGElement){c=!0;break}d=d.parentNode}c&&(b?p.funct():n.funct(),mxEvent.consume(a))})}},LayersWindow=function(a,c,d,b,f){function e(b){if(g.isEnabled()&&null!=b){var c=new FilenameDialog(a,b.value||mxResources.get("background"),mxResources.get("rename"),
+mxUtils.bind(this,function(a){null!=a&&g.getModel().setValue(b,a)}),mxResources.get("enterName"));a.showDialog(c.container,300,100,!0,!0);c.init()}}function h(){function a(a,b,c,d){var f=document.createElement("div");f.className="geToolbarContainer";f.style.overflow="hidden";f.style.position="relative";f.style.padding="4px";f.style.height="22px";f.style.display="block";f.style.backgroundColor="whiteSmoke";f.style.borderWidth="0px 0px 1px 0px";f.style.borderColor="#c3c3c3";f.style.borderStyle="solid";
+f.style.whiteSpace="nowrap";var k=document.createElement("div");k.style.display="inline-block";k.style.width="100%";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxEvent.addListener(f,"dragover",function(b){b.dataTransfer.dropEffect="move";n=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(f,"dragstart",function(a){p=f;mxClient.IS_FF&&a.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(f,"dragend",function(a){null!=p&&null!=n&&g.addCell(c,g.model.root,n);n=p=
+null;a.stopPropagation();a.preventDefault()});var l=document.createElement("img");l.setAttribute("draggable","false");l.setAttribute("align","top");l.setAttribute("border","0");l.style.padding="4px";l.setAttribute("title",mxResources.get("lockUnlock"));var r=g.view.getState(c),u=null!=r?r.style:g.getCellStyle(c);"1"==mxUtils.getValue(u,"locked","0")?l.setAttribute("src",Dialog.prototype.lockedImage):l.setAttribute("src",Dialog.prototype.unlockedImage);g.isEnabled()&&(l.style.cursor="pointer");mxEvent.addListener(l,
+"click",function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==mxUtils.getValue(u,"locked","0")?null:"1",g.setCellStyles("locked",b,[c])}finally{g.getModel().endUpdate()}"1"==b&&g.removeSelectionCells(g.getModel().getDescendants(c));mxEvent.consume(a)}});k.appendChild(l);l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));l.style.marginLeft="4px";l.style.marginRight="6px";
+l.style.marginTop="4px";k.appendChild(l);g.model.isVisible(c)&&(l.setAttribute("checked","checked"),l.defaultChecked=!0);mxEvent.addListener(l,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});mxUtils.write(k,b);f.appendChild(k);if(g.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_VML||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position=
+"absolute",b.style.right="6px",b.style.top="6px",0<a&&(k=document.createElement("a"),k.setAttribute("title",mxResources.get("toBack")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9660;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<q-1&&(k=document.createElement("a"),k.setAttribute("title",
+mxResources.get("toFront")),k.className="geButton",k.style.cssFloat="none",k.innerHTML="&#9650;",k.style.width="14px",k.style.height="14px",k.style.fontSize="14px",k.style.margin="0px",k.style.marginTop="-1px",b.appendChild(k),mxEvent.addListener(k,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",
+function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="#e6eff8",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),h())});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,c.value||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,
+b));w.setAttribute("title",mxResources.get("removeIt",[t.value||mxResources.get("background")]));v.setAttribute("title",mxResources.get("moveSelectionTo",[t.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("duplicateIt",[t.value||mxResources.get("background")]));u.setAttribute("title",mxResources.get("renameIt",[t.value||mxResources.get("background")]));g.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var g=a.editor.graph,k=document.createElement("div");k.style.userSelect=
+"none";k.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;k.style.border="1px solid whiteSmoke";k.style.height="100%";k.style.marginBottom="10px";k.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":"#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";k.appendChild(m);
+var p=null,n=null;mxEvent.addListener(k,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;a.stopPropagation();a.preventDefault()});mxEvent.addListener(k,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,r=document.createElement("div");r.className="geToolbarContainer";r.style.position="absolute";r.style.bottom="0px";r.style.left="0px";r.style.right="0px";r.style.height=l;r.style.overflow="hidden";r.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";r.style.backgroundColor=
+"white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;r.style.borderWidth="1px 0px 0px 0px";r.style.borderColor="#c3c3c3";r.style.borderStyle="solid";r.style.display="block";r.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(r.style.filter="none");l=document.createElement("a");l.className="geButton";mxClient.IS_QUIRKS&&(l.style.filter="none");var w=l.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
+try{var b=g.model.root.getIndex(t);g.removeCells([t],!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");r.appendChild(w);var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';
+mxEvent.addListener(v,"click",function(a){g.isEnabled()&&!g.isSelectionEmpty()&&g.moveCells(g.getSelectionCells(),0,0,!1,t)});r.appendChild(v);var u=l.cloneNode();u.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';u.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(u,"click",function(a){g.isEnabled()&&e(t);mxEvent.consume(a)});g.isEnabled()||(u.className="geButton mxDisabled");r.appendChild(u);var z=l.cloneNode();z.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';
mxEvent.addListener(z,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCells([t])[0],a.value=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()||(z.className="geButton mxDisabled");r.appendChild(z);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));
-mxEvent.addListener(l,"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()||(l.className="geButton mxDisabled");r.appendChild(l);h.appendChild(r);k();g.model.addListener(mxEvent.CHANGE,function(){k()});g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});
-this.window=new mxWindow(mxResources.get("layers"),h,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=k;this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-
-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)}))};
+mxEvent.addListener(l,"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()||(l.className="geButton mxDisabled");r.appendChild(l);k.appendChild(r);h();g.model.addListener(mxEvent.CHANGE,function(){h()});g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});
+this.window=new mxWindow(mxResources.get("layers"),k,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=h;this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-
+this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var x=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",x);this.destroy=function(){mxEvent.removeListener(window,"resize",x);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="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";
Sidebar.prototype.searchFileData="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";
Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.libAliases={aws2:"aws3"};Sidebar.prototype.defaultEntries="general;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.ibm="Analytics Applications Blockchain Data DevOps Infrastructure Management Miscellaneous Security Social Users".split(" ");Sidebar.prototype.gcp="Cards;Big Data;Compute;Developer Tools;Extras;Identity and Security;Machine Learning;Management Tools;Networking;Storage Databases".split(";");
Sidebar.prototype.rack="General APC Cisco Dell F5 HP IBM Oracle".split(" ");Sidebar.prototype.pids="Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";");Sidebar.prototype.cisco="Buildings;Computers and Peripherals;Controllers and Modules;Directors;Hubs and Gateways;Misc;Modems and Phones;People;Routers;Security;Servers;Storage;Switches;Wireless".split(";");
-Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");
+Sidebar.prototype.cisco_safe=["Architecture","Capability","Design","Threat"];Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");
Sidebar.prototype.aws2="Analytics;Application Services;Compute;Database;Developer Tools;Enterprise Applications;Game Development;General;Internet of Things;Management Tools;Mobile Services;Networking;On-Demand Workforce;SDKs;Security and Identity;Storage and Content Delivery;Groups".split(";");Sidebar.prototype.aws3="Analytics;Application Services;Artificial Intelligence;Business Productivity;Compute;Contact Center;Database;Desktop and App Streaming;Developer Tools;Game Development;General;Groups;Internet of Things;Management Tools;Messaging;Migration;Mobile Services;Networking and Content Delivery;On Demand Workforce;SDKs;Security Identity and Compliance;Storage".split(";");
Sidebar.prototype.office="Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.electrical="LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments RotMech Transmission".split(" ");
Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"sitemap"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;General Symbols;Intune;OMS;OpsManager;Other;System Center;Virtual Machine;Deprecated;Cloud Color;Deprecated Color".split(";")},
{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"ibm",prefix:"ibm",libs:Sidebar.prototype.ibm},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},
-{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},
-{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;
-Sidebar.prototype.insertSearchHint=function(b,c,d,e,m,l,r,n){if(null!=n&&1==e){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=document.createElement("a");k.setAttribute("href",
-"https://youtu.be/Z0D96ZikMkc");k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className="geDialogClose";h.style.position="relative";h.style.cursor=
-"default";h.style.top="1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(b)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,c){for(var d=0;d<a.length;d++)this.showPalette(b+a[d],c)};
-Sidebar.prototype.showPalette=function(b,a){var c=this.palettes[b];if(null!=c)for(var d=null!=a?a?"block":"none":"none"==c[0].style.display?"block":"none",e=0;e<c.length;e++)c[e].style.display=d};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var c=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=
-function(b,a,c){this.libs=null!=b&&(c||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var d=0;d<c.length;d++)c[d]=this.libAliases[c[d]]||c[d];for(d=0;d<this.configuration.length;d++)"search"!=this.configuration[d].id&&this.showPalettes(this.configuration[d].prefix||"",this.configuration[d].libs||[this.configuration[d].id],0<=mxUtils.indexOf(c,this.configuration[d].id));a&&(mxSettings.setLibraries(b),
-mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",
-image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},
-{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:"Sitemap",id:"sitemap",image:IMAGE_PATH+"/sidebar-sitemap.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+
-"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+
-"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),
-id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",
-image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;this.shapetags={};this.initPalettes()};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,
-a,c){var d=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var e=document.createElement("button");e.style.marginLeft="4px";mxUtils.write(e,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(h){if("BUTTON"==mxEvent.getSource(h).nodeName){var f=b.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration=
-"none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);h=a.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+
-f.outerHTML+h.outerHTML+"</body></html>";h.style.position="absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(d)b.appendChild(e);else if(d=!0,null!=c){null!=e.parentNode&&e.parentNode.removeChild(e);b.style.cursor="wait";var k=b.innerHTML;b.innerHTML=mxResources.get("loading")+
-"...";window.setTimeout(function(){c(a);b.style.cursor="";b.innerHTML=k;b.appendChild(e)},0)}else b.appendChild(e);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=e.parentNode&&e.parentNode.removeChild(e);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape="==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,
-a)}return null};var e=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,c){var d=e.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&d.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&d.push(this.shapetags[a]));return d};Sidebar.prototype.addTagIndex=function(b){b=b.split("\n");for(var a=0;a<b.length;a++)if(null!=b[a]){var c=b[a].split("\t");if(1<c.length){var d=c[0].toLowerCase().replace(" ","_"),
-c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());0<c.length&&(this.shapetags[d]=c)}}};Sidebar.prototype.addSearchFileData=function(b){if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var c=b[a].getAttribute("style"),d=this.extractShapeStyle(c);if(null!=c&&null!=d){var e=d.lastIndexOf(".");if(0<e){var h=d.substring(0,e),d=d.substring(e+1,d.length),e=this.getTagsForStencil(h,d,b[a].getAttribute("tags"));if(null!=e){var r=c.indexOf(";"),c="shape="+h+"."+d.toLowerCase()+
-";"+(0>r?"":c.substring(r+1));this.createVertexTemplateEntry(c,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",d.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,c=this.signs,d=this.gcp,e=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);
-this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();
-this.addSitemapPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
-"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",b+"/lib/clip_art/finance/",
-"_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",b+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),
-"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",b+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),
+{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"cisco_safe",prefix:"cisco_safe",libs:Sidebar.prototype.cisco_safe},
+{id:"office",prefix:"office",libs:Sidebar.prototype.office},{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];
+var a=Sidebar.prototype.insertSearchHint;Sidebar.prototype.insertSearchHint=function(b,c,d,e,m,l,r,n){if(null!=n&&1==e){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=
+document.createElement("a");k.setAttribute("href","https://youtu.be/Z0D96ZikMkc");k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className=
+"geDialogClose";h.style.position="relative";h.style.cursor="default";h.style.top="1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(a){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(a)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(a,b){this.showPalettes(a,b)};Sidebar.prototype.togglePalette=function(a){this.showPalette(a)};Sidebar.prototype.showPalettes=function(a,
+b,c){for(var d=0;d<b.length;d++)this.showPalette(a+b[d],c)};Sidebar.prototype.showPalette=function(a,b){var c=this.palettes[a];if(null!=c)for(var d=null!=b?b?"block":"none":"none"==c[0].style.display?"block":"none",e=0;e<c.length;e++)c[e].style.display=d};Sidebar.prototype.isEntryVisible=function(a){for(var b=0;b<this.configuration.length;b++)if(this.configuration[b].id==a){var c=this.palettes[null!=this.configuration[b].libs?(this.configuration[b].prefix||"")+this.configuration[b].libs[0]:a];if(null!=
+c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=function(a,b,c){this.libs=null!=a&&(c||0<a.length)?a:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var d=0;d<c.length;d++)c[d]=this.libAliases[c[d]]||c[d];for(d=0;d<this.configuration.length;d++)"search"!=this.configuration[d].id&&this.showPalettes(this.configuration[d].prefix||"",this.configuration[d].libs||[this.configuration[d].id],0<=
+mxUtils.indexOf(c,this.configuration[d].id));b&&(mxSettings.setLibraries(a),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+
+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},
+{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:"Sitemap",id:"sitemap",image:IMAGE_PATH+"/sidebar-sitemap.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},
+{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Cisco Safe",id:"cisco_safe",image:IMAGE_PATH+"/sidebar-cisco_safe.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+
+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+
+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),
+id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;
+this.shapetags={};this.initPalettes()};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(a,b,c){var d=!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%";var e=document.createElement("button");e.style.marginLeft="4px";mxUtils.write(e,"Save");mxEvent.addListener(a,"click",mxUtils.bind(this,function(h){if("BUTTON"==
+mxEvent.getSource(h).nodeName){var f=a.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration="none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);h=b.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+
+f.outerHTML+h.outerHTML+"</body></html>";h.style.position="absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==b.style.display){if(d)a.appendChild(e);else if(d=!0,null!=c){null!=e.parentNode&&e.parentNode.removeChild(e);a.style.cursor="wait";var k=a.innerHTML;a.innerHTML=mxResources.get("loading")+
+"...";window.setTimeout(function(){c(b);a.style.cursor="";a.innerHTML=k;a.appendChild(e)},0)}else a.appendChild(e);a.style.backgroundImage="url('"+this.expandedImage+"')";b.style.display="block"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",b.style.display="none",null!=e.parentNode&&e.parentNode.removeChild(e);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(a){if(null!=a&&"shape="==a.substring(0,6)){var b=a.indexOf(";");0>b&&(b=a.length);return a.substring(6,
+b)}return null};var e=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(a,b,c){var d=e.apply(this,arguments);null!=this.shapetags&&(a=a.toLowerCase(),b=b.toLowerCase(),null!=this.shapetags[a]&&d.push(this.shapetags[a]),b=a+"."+b,null!=this.shapetags[b]&&d.push(this.shapetags[b]));return d};Sidebar.prototype.addTagIndex=function(a){a=a.split("\n");for(var b=0;b<a.length;b++)if(null!=a[b]){var c=a[b].split("\t");if(1<c.length){var d=c[0].toLowerCase().replace(" ","_"),
+c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());0<c.length&&(this.shapetags[d]=c)}}};Sidebar.prototype.addSearchFileData=function(a){if(null!=a){a=a.getElementsByTagName("shape");for(var b=0;b<a.length;b++){var c=a[b].getAttribute("style"),d=this.extractShapeStyle(c);if(null!=c&&null!=d){var e=d.lastIndexOf(".");if(0<e){var h=d.substring(0,e),d=d.substring(e+1,d.length),e=this.getTagsForStencil(h,d,a[b].getAttribute("tags"));if(null!=e){var r=c.indexOf(";"),c="shape="+h+"."+d.toLowerCase()+
+";"+(0>r?"":c.substring(r+1));this.createVertexTemplateEntry(c,parseInt(a[b].getAttribute("w")),parseInt(a[b].getAttribute("h")),"",d.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}};Sidebar.prototype.initPalettes=function(){var a=GRAPH_IMAGE_PATH,b=STENCIL_PATH,c=this.signs,d=this.gcp,e=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);
+this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(b,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();
+this.addSitemapPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),b+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",a+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
+"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",a+"/lib/clip_art/finance/",
+"_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",a+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),
+"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",a+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),
"Bridge;Certificate;Certificate Off;Cloud;Cloud Computer;Cloud Computer Private;Cloud Rack;Cloud Rack Private;Cloud Server;Cloud Server Private;Cloud Storage;Concentrator;Email;Firewall 1;Firewall 2;Firewall;Camera;Modem;Power Distribution Unit;Print Server;Print Server Wireless;Repeater;Router;Router Icon;Switch;UPS;Wireless Router;Wireless Router N".split(";"),{Wireless_Router:"wireless router switch wap wifi access point wlan",Wireless_Router_N:"wireless router switch wap wifi access point wlan",
-Router:"router switch",Router_Icon:"router switch"});this.addImagePalette("people","Clipart / People",b+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" "));
-this.addImagePalette("telco","Clipart / Telecommunication",b+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));for(b=0;b<c.length;b++)this.addStencilPalette("signs"+c[b],"Signs / "+c[b],a+"/signs/"+c[b].toLowerCase()+".xml",";html=1;fillColor=#000000;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");
-for(b=0;b<d.length;b++)"cards"===d[b].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+d[b],"GCP / "+d[b],a+"/gcp/"+d[b].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(b=0;b<e.length;b++)"general"===e[b].toLowerCase()?this.addRackGeneralPalette():"f5"===e[b].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+e[b],"Rack / "+
-e[b],a+"/rack/"+e[b].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(b=0;b<l.length;b++)"Instruments"==l[b]?this.addPidInstrumentsPalette():"Misc"==l[b]?this.addPidMiscPalette():"Valves"==l[b]?this.addPidValvesPalette():"Compressors"==l[b]?this.addPidCompressorsPalette():"Engines"==l[b]?this.addPidEnginesPalette():"Filters"==l[b]?this.addPidFiltersPalette():"Flow Sensors"==l[b]?this.addPidFlowSensorsPalette():"Piping"==l[b]?this.addPidPipingPalette():
-this.addStencilPalette("pid"+l[b],"Proc. Eng. / "+l[b],a+"/pid/"+l[b].toLowerCase().replace(" ","_")+".xml",";html=1;align=center;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;dashed=0;");for(b=0;b<n.length;b++)"Model Elements"==n[b]?this.addSysMLModelElementsPalette():"Blocks"==n[b]?this.addSysMLBlocksPalette():"Ports and Flows"==n[b]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==n[b]?this.addSysMLConstraintBlocksPalette():"Activities"==
-n[b]?this.addSysMLActivitiesPalette():"Interactions"==n[b]?this.addSysMLInteractionsPalette():"State Machines"==n[b]?this.addSysMLStateMachinesPalette():"Use Cases"==n[b]?this.addSysMLUseCasesPalette():"Allocations"==n[b]?this.addSysMLAllocationsPalette():"Requirements"==n[b]?this.addSysMLRequirementsPalette():"Profiles"==n[b]?this.addSysMLProfilesPalette():"Stereotypes"==n[b]&&this.addSysMLStereotypesPalette();for(b=0;b<p.length;b++)"Message Construction"==p[b]?this.addEipMessageConstructionPalette():
-"Message Routing"==p[b]?this.addEipMessageRoutingPalette():"Message Transformation"==p[b]?this.addEipMessageTransformationPalette():"Messaging Channels"==p[b]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==p[b]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==p[b]?this.addEipMessagingSystemsPalette():"System Management"==p[b]&&this.addEipSystemManagementPalette();for(b=0;b<r.length;b++)this.addStencilPalette("cisco"+r[b],"Cisco / "+r[b],a+"/cisco/"+r[b].toLowerCase().replace(/ /g,
-"_")+".xml",";html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;",null,null,1.6);this.addFloorplanPalette();this.addAtlassianPalette();this.addBootstrapPalette();for(b=0;b<q.length;b++)"Bottom Navigation"==q[b]?this.addGMDLBottomNavigationPalette():"Bottom Sheets"==q[b]?this.addGMDLBottomSheetsPalette():"Buttons"==q[b]?this.addGMDLButtonsPalette():"Cards"==q[b]?this.addGMDLCardsPalette():"Chips"==q[b]?this.addGMDLChipsPalette():
-"Dialogs"==q[b]?this.addGMDLDialogsPalette():"Dividers"==q[b]?this.addGMDLDividersPalette():"Grid Lists"==q[b]?this.addGMDLGridListsPalette():"Icons"==q[b]?this.addGMDLIconsPalette():"Lists"==q[b]?this.addGMDLListsPalette():"Menus"==q[b]?this.addGMDLMenusPalette():"Misc"==q[b]?this.addGMDLMiscPalette():"Pickers"==q[b]?this.addGMDLPickersPalette():"Selection Controls"==q[b]?this.addGMDLSelectionControlsPalette():"Sliders"==q[b]?this.addGMDLSlidersPalette():"Steppers"==q[b]?this.addGMDLSteppersPalette():
-"Tabs"==q[b]?this.addGMDLTabsPalette():"Text Fields"==q[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var d=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,c,e,m,l,r,n){d.apply(this,arguments);r=null!=r?r:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(b,a,c,d,h){if(null==m||
-0>mxUtils.indexOf(m,a))c=null!=n?n[a]:null,mxLog.debug('<shape style="shape='+b+a+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,d,e,m){var h=e;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
+Router:"router switch",Router_Icon:"router switch"});this.addImagePalette("people","Clipart / People",a+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" "));
+this.addImagePalette("telco","Clipart / Telecommunication",a+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));for(a=0;a<c.length;a++)this.addStencilPalette("signs"+c[a],"Signs / "+c[a],b+"/signs/"+c[a].toLowerCase()+".xml",";html=1;fillColor=#000000;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");
+for(a=0;a<d.length;a++)"cards"===d[a].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+d[a],"GCP / "+d[a],b+"/gcp/"+d[a].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(a=0;a<e.length;a++)"general"===e[a].toLowerCase()?this.addRackGeneralPalette():"f5"===e[a].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+e[a],"Rack / "+
+e[a],b+"/rack/"+e[a].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(a=0;a<l.length;a++)"Instruments"==l[a]?this.addPidInstrumentsPalette():"Misc"==l[a]?this.addPidMiscPalette():"Valves"==l[a]?this.addPidValvesPalette():"Compressors"==l[a]?this.addPidCompressorsPalette():"Engines"==l[a]?this.addPidEnginesPalette():"Filters"==l[a]?this.addPidFiltersPalette():"Flow Sensors"==l[a]?this.addPidFlowSensorsPalette():"Piping"==l[a]?this.addPidPipingPalette():
+this.addStencilPalette("pid"+l[a],"Proc. Eng. / "+l[a],b+"/pid/"+l[a].toLowerCase().replace(" ","_")+".xml",";html=1;align=center;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;dashed=0;");for(a=0;a<n.length;a++)"Model Elements"==n[a]?this.addSysMLModelElementsPalette():"Blocks"==n[a]?this.addSysMLBlocksPalette():"Ports and Flows"==n[a]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==n[a]?this.addSysMLConstraintBlocksPalette():"Activities"==
+n[a]?this.addSysMLActivitiesPalette():"Interactions"==n[a]?this.addSysMLInteractionsPalette():"State Machines"==n[a]?this.addSysMLStateMachinesPalette():"Use Cases"==n[a]?this.addSysMLUseCasesPalette():"Allocations"==n[a]?this.addSysMLAllocationsPalette():"Requirements"==n[a]?this.addSysMLRequirementsPalette():"Profiles"==n[a]?this.addSysMLProfilesPalette():"Stereotypes"==n[a]&&this.addSysMLStereotypesPalette();for(a=0;a<p.length;a++)"Message Construction"==p[a]?this.addEipMessageConstructionPalette():
+"Message Routing"==p[a]?this.addEipMessageRoutingPalette():"Message Transformation"==p[a]?this.addEipMessageTransformationPalette():"Messaging Channels"==p[a]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==p[a]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==p[a]?this.addEipMessagingSystemsPalette():"System Management"==p[a]&&this.addEipSystemManagementPalette();for(a=0;a<r.length;a++)this.addStencilPalette("cisco"+r[a],"Cisco / "+r[a],b+"/cisco/"+r[a].toLowerCase().replace(/ /g,
+"_")+".xml",";html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;",null,null,1.6);this.addCiscoSafePalette();this.addFloorplanPalette();this.addAtlassianPalette();this.addBootstrapPalette();for(a=0;a<q.length;a++)"Bottom Navigation"==q[a]?this.addGMDLBottomNavigationPalette():"Bottom Sheets"==q[a]?this.addGMDLBottomSheetsPalette():"Buttons"==q[a]?this.addGMDLButtonsPalette():"Cards"==q[a]?this.addGMDLCardsPalette():"Chips"==
+q[a]?this.addGMDLChipsPalette():"Dialogs"==q[a]?this.addGMDLDialogsPalette():"Dividers"==q[a]?this.addGMDLDividersPalette():"Grid Lists"==q[a]?this.addGMDLGridListsPalette():"Icons"==q[a]?this.addGMDLIconsPalette():"Lists"==q[a]?this.addGMDLListsPalette():"Menus"==q[a]?this.addGMDLMenusPalette():"Misc"==q[a]?this.addGMDLMiscPalette():"Pickers"==q[a]?this.addGMDLPickersPalette():"Selection Controls"==q[a]?this.addGMDLSelectionControlsPalette():"Sliders"==q[a]?this.addGMDLSlidersPalette():"Steppers"==
+q[a]?this.addGMDLSteppersPalette():"Tabs"==q[a]?this.addGMDLTabsPalette():"Text Fields"==q[a]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var d=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(a,b,c,e,m,l,r,n){d.apply(this,arguments);r=null!=r?r:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,
+function(a,b,c,d,h){if(null==m||0>mxUtils.indexOf(m,b))c=null!=n?n[b]:null,mxLog.debug('<shape style="shape='+a+b+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,d,e,m){var h=e;null!=this.searchFileData&&(this.addSearchFileData(mxUtils.parseXml(this.editorUi.editor.graph.decompress(this.searchFileData)).documentElement),this.searchFileData=null);null!=this.tagIndex&&(this.addTagIndex(this.editorUi.editor.graph.decompress(this.tagIndex)),
this.tagIndex=null);this.editorUi.isOffline()||0!=d||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});null!=ICONSEARCH_PATH&&(e=mxUtils.bind(this,function(b,e,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=d-Math.ceil((e-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)h(b,e,!1,g),this.editorUi.handleError(f);
else{for(a=0;a<f.icons.length;a++){for(var k=f.icons[a].raster_sizes,l=k.length-1;0<l&&128<k[l].size;)l--;var m=k[l].size,n=k[l].formats[0].preview_url;null!=m&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+c,a,a,"")}))})(m,n)}h(b,(d-1)*c+b.length,f.icons.length==c,g)}}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}else h(b,
-e,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}},function(){h(b,e,!1,g)}))):h(b,e,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,d){var e=this.editorUi.editor.graph,h=!1;if(null!=b&&1==e.getSelectionCount()&&e.getModel().isVertex(b[0])){var f=e.cloneCells(b)[0];if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),
+e,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}},function(){h(b,e,!1,g)}))):h(b,e,f||!this.editorUi.isOffline(),g)}));b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,b,d){var e=this.editorUi.editor.graph,h=!1;if(null!=a&&1==e.getSelectionCount()&&e.getModel().isVertex(a[0])){var f=e.cloneCells(a)[0];if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),
!1)&&e.getModel().isVertex(f)){e.getModel().beginUpdate();try{var g=e.view.getState(e.getSelectionCell());if(null!=g){var n=e.view.translate,p=e.view.scale,q=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=q.x/p-n.x-f.geometry.width/2;f.geometry.y=q.y/p-n.y-f.geometry.height/2}e.addCell(f);e.getModel().setTerminal(e.getSelectionCell(),f,!1)}finally{e.getModel().endUpdate()}e.scrollCellToVisible(f);e.setSelectionCell(f);h=!0}}h||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var e=a.apply(this,arguments),d=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var h=new mxCell("Task",new mxGeometry(20,
20,100,40),"whiteSpace=wrap;html=1;");h.vertex=!0;b.insert(h);var f=new mxCell("",new mxGeometry(0,0,0,0),"html=1;curved=1;");f.geometry.relative=!0;f.edge=!0;c.insertEdge(f,!0);h.insertEdge(f,!1);b.insert(f);var g=new mxCell("Task",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");g.vertex=!0;b.insert(g);f=f.clone();c.insertEdge(f,!0);g.insertEdge(f,!1);b.insert(f);c=new mxCell("End",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);f=f.clone();h.insertEdge(f,
!0);c.insertEdge(f,!1);b.insert(f);f=f.clone();g.insertEdge(f,!0);c.insertEdge(f,!1);b.insert(f);return e.concat([this.addDataEntry("container swimlane pool horizontal",480,380,"Horizontal Pool 1","zZRLbsIwEIZP4709TlHXhJYNSEicwCIjbNWJkWNKwumZxA6IlrRUaisWlmb+eX8LM5mXzdyrnV66Ai2TL0zm3rkQrbLJ0VoG3BRMzhgAp8fgdSQq+ijfKY9VuKcAYsG7snuMyso5G8U6tDaJ9cGUVlXkTXUoacuZIHOjjS0WqnX7blYd1OZt8KYea3PE1bCI+CAtVUMq7/o5b46uCmroSn18WFMm+XCdse5GpLq0OPqAzejxvZQun6MrMfiWUg6mCDpmZM8RENdotjqVyUFUdRS259oLSzISztto5Se0i44gcHEn3i9A/IQB3GbQpmi69DskAn4BSTaGBB4Jicj+k8nTGBP5SExg8odMyL38eH3s6kM8AQ=="),
@@ -3313,7 +3314,7 @@ this.createVertexTemplateEntry("strokeWidth=1;html=1;shadow=0;dashed=0;shape=mxg
174,30,"","Textfield Activated",null,null,"android textfield activated"),this.createVertexTemplateEntry(e+"text_insertion_point;",20,30,"","Text Insertion Point",null,null,"android textfield insertion point"),this.createVertexTemplateEntry(e+"textSelHandles;fillColor=#33b5e5;strokeColor=#0099cc;",168.8,42.2,"","Text Selection Handles",null,null,"android text selection handle"),this.createVertexTemplateEntry(e+"time_picker;",150,230,"","Time Picker (Bright)",null,null,"android time picker bright"),
this.createVertexTemplateEntry(e+"time_picker_dark;",150,230,"","Time Picker (Dark)",null,null,"android time picker dark"),this.createVertexTemplateEntry(d+"rect;fillColor=#33b5e5;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#0099cc;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#aa66cc;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#9933cc;",50,50,"","Color",
null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#99cc00;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#669900;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ffbb33;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ff8800;",50,50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#ff4444;",50,
-50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#cc0000;",50,50,"","Color",null,null,"android color")];this.addPalette("android",mxResources.get("android"),!1,mxUtils.bind(this,function(b){for(var a=0;a<c.length;a++)b.appendChild(c[a](b))}))}})();(function(){Sidebar.prototype.addArchiMatePalette=function(){this.addPaletteFunctions("archimate",mxResources.get("archiMate21"),!1,[this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=actor",100,75,"","Business Actor",null,null,this.getTagsForStencil("mxgraph.archimate","application","archimate business actor").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=role",
+50,"","Color",null,null,"android color"),this.createVertexTemplateEntry(d+"rect;fillColor=#cc0000;",50,50,"","Color",null,null,"android color")];this.addPalette("android",mxResources.get("android"),!1,mxUtils.bind(this,function(a){for(var b=0;b<c.length;b++)a.appendChild(c[b](a))}))}})();(function(){Sidebar.prototype.addArchiMatePalette=function(){this.addPaletteFunctions("archimate",mxResources.get("archiMate21"),!1,[this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=actor",100,75,"","Business Actor",null,null,this.getTagsForStencil("mxgraph.archimate","application","archimate business actor").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=role",
100,75,"","Business Role",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business role").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=collab",100,75,"","Business Collaboration",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business collaboration").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=interface",
100,75,"","Business Interface",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business interface").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.application;appType=interface2",100,75,"","Business Interface",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business interface").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.location",100,75,
"","Location",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate location").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.business;busType=process",100,75,"","Business Process",null,null,this.getTagsForStencil("mxgraph.archimate","","archimate business process").join(" ")),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.business;busType=function",100,75,"","Business Function",
@@ -3881,11 +3882,11 @@ this.createVertexTemplateEntry(a+"unidentified_code_object;",50,42.5,"","Unident
this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.document",100,100,"","Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+
"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout",100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout",
"").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;",100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon",
-"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,100,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;whiteSpace=wrap;align=center;size=0.24;",100,60,"","Parallelepiped",
-null,null,this.getTagsForStencil("mxgraph.basic","parallelepiped","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout",
-"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic",
-"star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;size=0.24;",100,100,"","Trapezoid",null,null,this.getTagsForStencil("mxgraph.basic","trapezoid","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,
-null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="),
+"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70,"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle",
+"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;whiteSpace=wrap;align=center;size=0.24;",100,60,"","Parallelepiped",null,null,this.getTagsForStencil("mxgraph.basic","parallelepiped","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",
+100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",
+null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic","star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+
+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;size=0.24;",100,100,"","Trapezoid",null,null,this.getTagsForStencil("mxgraph.basic","trapezoid","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="),
this.addDataEntry("bootstrap button bar bright",800,40,"Button Bar (Bright)","5ZdRb5swEMc/DY9FBhNCXkPavmxStUh798IB1gxGxmvIPv0OcBKoSZetpYpUIyT77DP278+dwaFx0TwqVuVfZQLCofcOjZWUuq8VTQxCOD7hiUM3ju8TvB3/4UKv1/WSiiko9TUOfu/wzMQv6C29odYHYQy5LnBZG8+h6zpnidxjg2AjYXUOiWlgT9WOL5qs3Yv7A3dQa6y6Cna4knXKhYilkKqblKZhe7WOWsmfcOwpZYmzrPc517Ct2K6dco+zoM0sFJSG5uJmO5PZ6SPIArQ64JA9T3Tej4hID4TkwLPcuAXGxuq+nZ1cz+iwYuhNk6QWyVgWFSsP/wd0yMtQmUT1d/Cy1APwSVeMfct/t75e8Bbm/hXM50EeWMifQFaI+WNeYdJel3R5gX3VlXYwEuZl9s2QoGQG9M0Y+0CJ1UxKLCwlouDdVTAyKPPWRhOSpATLlZKkXXkL/uBV/MbhYNKwu7DUOGIbquGFvU2BYJo/w2iuKYnM858kx2WdHn5Hyejxd9F4BpmmNWhL4tMurlI9tFT/zmW7bFnWN5r1PjD8vKUdf543UwAuLSmC9z/Jby4Aw08egJGl+lbjomvNd7cagDMF29RhN9dnx8qmDlpjVvlkzGloM1/OxPyYN0fQmdrlruvOnecWU3nOpK6xUC+/r6fsTPCsRJuAVJ8PpC9da+PNeB6Fi3FGstOhRyfUo/+uHjbPf7B9Whv+4P4B"),
this.addEntry("bootstrap button group vertical",function(){var d=new mxCell("",new mxGeometry(0,0,100,150),"html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#dddddd;html=1;whiteSpace=wrap;fillColor=#ffffff;");d.vertex=!0;var b=new mxCell("Edit",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.topButton;rSize=5;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.vertex=
!0;d.insert(b);b=new mxCell("Create",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,30);b.vertex=!0;d.insert(b);var c=new mxCell("Delete",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");
@@ -4219,7 +4220,76 @@ null,null,this.getTagsForStencil("mxgraph.cabinets","surge_protection_3p","cabin
25,25,"","Terminal 4mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_4_6mm2;",2.5,30,"","Terminal 4-6mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4_6mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_4_6mm2_x10;",25,30,"","Terminal 4-6mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_4_6mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+
"terminal_6_25mm2;",5,37.5,"","Terminal 6-25mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_6_25mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_6_25mm2_x10;",50,37.5,"","Terminal 6-25mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_6_25mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_40mm2;",11,50,"","Terminal 40mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_40mm2","cabinet ").join(" ")),
this.createVertexTemplateEntry(a+"terminal_40mm2_x10;",50*2.2,50,"","Terminal 40mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_40mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_50mm2;",12.5,50*1.1,"","Terminal 50mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_50mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_50mm2_x10;",125,50*1.1,"","Terminal 50mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets",
-"terminal_50mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2;",15,70,"","Terminal 75mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2_x10;",150,70,"","Terminal 75mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2_x10","cabinet ").join(" "))];this.addPalette("cabinets",mxResources.get("cabinets"),!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();(function(){Sidebar.prototype.addCitrixPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;aspect=fixed;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeColor=none;outlineConnect=0;shape=mxgraph.citrix.";this.addPaletteFunctions("citrix","Citrix",!1,[this.createVertexTemplateEntry(a+"1u_2u_server;",100,39.1,"","1U 2U Server",null,null,this.getTagsForStencil("mxgraph.citrix","1U 2U Server","").join(" ")),this.createVertexTemplateEntry(a+"access_card;",55.5,75,"","Access Card",
+"terminal_50mm2_x10","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2;",15,70,"","Terminal 75mm2",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"terminal_75mm2_x10;",150,70,"","Terminal 75mm2 x10",null,null,this.getTagsForStencil("mxgraph.cabinets","terminal_75mm2_x10","cabinet ").join(" "))];this.addPalette("cabinets",mxResources.get("cabinets"),!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();(function(){Sidebar.prototype.addCiscoSafePalette=function(){this.addCiscoSafeArchitecturePalette();this.addCiscoSafeCapabilityPalette();this.addCiscoSafeDesignPalette();this.addCiscoSafeThreatPalette()};Sidebar.prototype.addCiscoSafeArchitecturePalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#6ABD46;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.architecture.";this.addPaletteFunctions("cisco_safeArchitecture","Cisco Safe / Architecture",
+!1,[this.createVertexTemplateEntry(a+"aci_controller;",50,50,"","ACI Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","aci controller","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"aci_leaf_switch;",50,50,"","ACI Leaf Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","aci leaf switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"aci_spine_switch;",50,50,"","ACI Spine Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"aci spine switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"adaptive_security_appliance;",50,50,"","Adaptive Security Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","adaptive security appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"automated_system;",50,50,"","Automated System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","automated system","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+
+"blade_server;",50,50,"","Blade Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","blade server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"catalyst_switch;",50,50,"","Catalyst Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","catalyst switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"corporate_device;",50,50,"","Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"corporate device","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"email_security;",50,50,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","email security","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"fabric_switch;",50,50,"","Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","fabric switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"firepower_appliance;",
+50,50,"","Firepower Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","firepower appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"firewall;",50,50,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","firewall","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"generic_appliance;",50,50,"","Generic Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","generic appliance",
+"cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,50,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","intrusion detection","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"l3_switch;",50,50,"","L3 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","l3 switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,50,"","Load Balancer",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","load balancer","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_1kv;",50,50,"","Nexus 1kv",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus 1kv","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_data_center_switch;",50,50,"","Nexus Data Center Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus data center switch","cisco safe architecture").join(" ")),
+this.createVertexTemplateEntry(a+"nexus_fabric_switch;",50,50,"","Nexus Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus fabric switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"nexus_switch;",50,50,"","Nexus Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","nexus switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"phone;",50,50,"","Phone",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"phone","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"router;",50,50,"","Router",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","router","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"secure_server;",50,50,"","Secure Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","secure server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"server;",50,50,"","Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"server","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"stacked_switch;",50,50,"","Stacked Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","stacked switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,50,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","storage","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"switch;",50,50,"","Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"tls_appliance;",50,50,"","TLS Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","tls appliance","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"unified_access_switch;",50,50,"","Unified Access Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","unified access switch","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"web_application_firewall;",
+50,50,"","Web Application Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","web application firewall","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"web_security;",50,50,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","web security","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wide_area_application_engine;",50,50,"","Wide Area Application Engine",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture",
+"wide area application engine","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wireless_access_point;",50,50,"","Wireless Access Point",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","wireless access point","cisco safe architecture").join(" ")),this.createVertexTemplateEntry(a+"wireless_lan_controller;",50,50,"","Wireless LAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.architecture","wireless lan controller","cisco safe architecture").join(" "))])};
+Sidebar.prototype.addCiscoSafeCapabilityPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#28A8E0;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.capability.";this.addPaletteFunctions("cisco_safeCapability","Cisco Safe / Capability",!1,[this.createVertexTemplateEntry(a+"access_control_using_trustsec;",50,50,"","Access Control Using TrustSec",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","access control using trustsec",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"analysis_correlation",50,50,"","Analysis Correlation",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","analysis correlation","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anomaly_detection;",50,50,"","Anomaly Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anomaly detection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_malware;",
+50,50,"","Anti-Malware",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti malware","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_spam;",50,50,"","Anti-Spam",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti spam","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"anti_virus;",50,50,"","Anti-Virus",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","anti virus","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"application;",50,50,"","Application",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","application","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"application_visibility_control;",50,50,"","Application Visibility Control",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","application visibility control","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"client_based_security;",50,50,"","Client Based Security",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","client based security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"cloud_web_security;",50,50,"","Cloud Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","cloud web security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"conference_bridge;",50,50,"","Conference Bridge",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","conference bridge","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"database;",50,50,"","Database",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","database","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"data_loss_prevention;",50,50,"","Data Loss Prevention",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","data loss prevention","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"distributed_denial_of_service_protection;",50,50,"","Distributed Denial of Service Protection",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","distributed denial of service protection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"dns;",50,50,"","DNS",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","dns","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"email_encryption;",50,50,"","Email Encryption",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","email encryption","cisco safe capability").join(" ")),
+this.createVertexTemplateEntry(a+"email_security;",50,50,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","email security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"fabric_switching;",50,50,"","Fabric Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","fabric switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"firewall;",50,50,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"flow_analytics;",50,50,"","Flow Analytics",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","flow analytics","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"identity_authorization;",50,50,"","Identity Authorization",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","identity authorization","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"identity_authorization_alt;",
+50,50,"","Identity Authorization (alternative)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","identity authorization alt alternative","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,50,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","intrusion detection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"intrusion_prevention;",50,50,"","Intrusion Prevention",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"intrusion prevention","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l2_l3_network;",50,50,"","L2 L3 Network",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 l3 network","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l2_l3_network_virtual;",50,50,"","L2 L3 Network (virtual)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 l3 network virtual","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+
+"l2_switching;",50,50,"","L2 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l2 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"l3_switching;",50,50,"","L3 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","l3 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,50,"","Load Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","load balancer",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"logging_reporting;",50,50,"","Logging Reporting",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","logging reporting","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"malware_sandbox;",50,50,"","Malware Sandbox",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","malware sandbox","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"mobile_device_manager;",50,50,
+"","Mobile Device Manager",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","mobile device manager","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"monitoring;",50,50,"","Monitoring",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","monitoring","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"policy_configuration;",50,50,"","Policy Configuration",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","policy configuration",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"posture_assesment;",50,50,"","Posture Assesment",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","posture assesment","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"routing;",50,50,"","Routing",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","routing","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"server_based_security;",50,50,"","Server Based Security",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","server based security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"ssl_tls_offload;",50,50,"","SSL TLS Offload",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","ssl tls offload","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,50,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","storage","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+
+"threat_intelligence;",50,50,"","Threat Intelligence",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","threat intelligence","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"time_synchronization;",50,50,"","Time Synchronization",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","time synchronization","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"user;",50,50,"","User",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"user","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"video;",50,50,"","Video",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","video","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtualized_capability;",50,50,"","Virtualized Capability",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtualized capability","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_firewall;",50,50,"","Virtual Firewall",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_l2_switching;",50,50,"","Virtual L2 Switching",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual l2 switching","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"virtual_private_network;",50,50,"","Virtual Private Network",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","virtual private network vpn",
+"cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"voice;",50,50,"","Voice",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","voice","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"vpn_concentrator;",50,50,"","VPN Concentrator",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","vpn concentrator virtual private network","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"vulnerability_management;",50,50,"","Vulnerability Management",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","vulnerability management","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_application_firewall;",50,50,"","Web Application Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","web application firewall","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_reputation_filtering_dcs;",50,50,"","Web Reputation Filtering DCS",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability",
+"web reputation filtering dcs","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"web_security;",50,50,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","web security","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_connection;",50,50,"","Wireless Connection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless connection","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_intrusion_detection_system;",
+50,50,"","Wireless Intrusion Detection System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless intrusion detection system","cisco safe capability").join(" ")),this.createVertexTemplateEntry(a+"wireless_intrusion_prevention_system;",50,50,"","Wireless Intrusion Prevention System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.capability","wireless intrusion prevention system","cisco safe capability").join(" "))])};Sidebar.prototype.addCiscoSafeDesignPalette=function(){var a=
+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#A153A0;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.design.";this.addPaletteFunctions("cisco_safeDesign","Cisco Safe / Design",!1,[this.createVertexTemplateEntry(a+"access_point;",50,45,"","Access Point",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","access point","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_controller;",50,45,"","ACI Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"aci controller","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_leaf_switch;",50,45,"","ACI Leaf Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","aci leaf switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"aci_spine_switch;",50,45,"","ACI Spine Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","aci spine switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"actor_1;",23.5,50,"","Actor (female)",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","actor female","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"actor_2;",19,50,"","Actor (male)",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","actor male","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"adaptive_security_appliance;",50,45,"","Adaptive Security Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","adaptive security appliance","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"automated_system;",50,45,"","Automated System",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","automated system","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blade_server;",50,45,"","Blade Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","blade server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blank_device;",50,45,"","Blank Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"blank device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"blank_service;",50,45,"","Blank Service",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","blank service","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"call_manager;",50,45,"","Call Manager",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","call manager","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"catalyst_data_center_switch;",50,45,"","Catalyst Data Center Switch",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","catalyst data center switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"catalyst_switch_stack;",50,45,"","Catalyst Switch Stack",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","catalyst switch stack","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"cisco_amp;",50,45,"","Cisco Amp",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco amp amplifier","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"cisco_anyconnect;",50,45,"","Cisco AnyConnect",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco anyconnect","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"cisco_cloud_web_security;",50,45,"","Cisco Cloud Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","cisco cloud web security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"client_firewall;",50,45,"","Client Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"client firewall","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"corporate_device;",50,45,"","Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","corporate device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"email_security;",50,45,"","Email Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","email security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"encryption_offload;",50,45,"","Encryption Offload",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","encryption offload","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"fabric_switch;",50,45,"","Fabric Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","fabric switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"firepower_appliance;",50,45,"","Firepower Appliance",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","firepower appliance","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+
+"firewall;",50,45,"","Firewall",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","firewall","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"intrusion_detection;",50,45,"","Intrusion Detection",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","intrusion detection","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"l2_switch;",50,45,"","L2 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","l2 switch","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"l3_switch;",50,45,"","L3 Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","l3 switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"load_balancer;",50,45,"","Load Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","load balancer","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"mobile_device;",50,45,"","Mobile Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","mobile device",
+"cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_1kv;",50,45,"","Nexus 1kv",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus 1kv","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_data_center_switch;",50,45,"","Nexus Data Center Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus data center switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_fabric_switch;",50,45,"","Nexus Fabric Switch",
+null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus fabric switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"nexus_switch;",50,45,"","Nexus Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","nexus switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"phone;",50,45,"","Phone",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","phone","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"radware;",50,
+45,"","Radware",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","radware","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"router;",50,45,"","Router",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","router","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"server_1;",50,45,"","Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"server_2;",50,45,"",
+"Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"storage;",50,45,"","Storage",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","storage","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"user;",50,50,"","User",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","user","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"users;",50,50,"","Users",null,null,
+this.getTagsForStencil("mxgraph.cisco_safe.design","users","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"virtual_secure_server;",50,45,"","Virtual Secure Server",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","virtual secure server","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vload_balancer;",50,45,"","vLoad Balancer",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vload balancer","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+
+"vwaf_security;",50,45,"","vWAF Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vwaf security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vweb_security;",50,45,"","vWeb Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vweb security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"vwlan_controller;",50,45,"","vWLAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","vwlan controller","cisco safe design").join(" ")),
+this.createVertexTemplateEntry(a+"web_security;",50,45,"","Web Security",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","web security","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wireless_corporate_device;",50,45,"","Wireless Corporate Device",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","wireless corporate device","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wireless_switch;",50,45,"","Wireless Switch",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design",
+"wireless switch","cisco safe design").join(" ")),this.createVertexTemplateEntry(a+"wlan_controller;",50,45,"","WLAN Controller",null,null,this.getTagsForStencil("mxgraph.cisco_safe.design","wlan controller","cisco safe design").join(" "))])};Sidebar.prototype.addCiscoSafeThreatPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;fillColor=#F06650;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;shape=mxgraph.cisco_safe.threat.";this.addPaletteFunctions("cisco_safeThreat","Cisco Safe / Threat",
+!1,[this.createVertexTemplateEntry(a+"threat_a1;",49,50,"","Threat A1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a2;",49,50,"","Threat A2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a3;",49,50,"","Threat A3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_a4;",49,50,"","Threat A4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a5;",49,50,"","Threat A5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a6;",49,50,"","Threat A6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_a7;",49,50,"","Threat A7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_a8;",49,50,"","Threat A8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b1;",31.5,50,"","Threat B1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b2;",31.5,50,"","Threat B2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b3;",31.5,50,"","Threat B3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b4;",31.5,50,"","Threat B4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b5;",31.5,50,"","Threat B5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b6;",31.5,50,"","Threat B6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_b7;",31.5,50,"","Threat B7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_b8;",31.5,50,"","Threat B8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c1;",50,40.5,"","Threat C1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c2;",50,40.5,"","Threat C2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_c3;",50,40.5,"","Threat C3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c4;",50,40.5,"","Threat C4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c5;",50,40.5,"","Threat C5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_c6;",50,40.5,"","Threat C6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c7;",50,40.5,"","Threat C7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_c8;",50,40.5,"","Threat C8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d1;",46.5,50,"","Threat D1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d2;",46.5,50,"","Threat D2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d3;",46.5,50,"","Threat D3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d4;",46.5,50,"","Threat D4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d5;",46.5,50,"","Threat D5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d6;",46.5,50,"","Threat D6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_d7;",46.5,50,"","Threat D7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_d8;",46.5,50,"","Threat D8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e1;",50,47,"","Threat E1",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e2;",50,47,"","Threat E2",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e3;",50,47,"","Threat E3",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e4;",50,47,"","Threat E4",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e5;",50,47,"","Threat E5",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e6;",50,47,"","Threat E6",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),this.createVertexTemplateEntry(a+"threat_e7;",50,47,"","Threat E7",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" ")),
+this.createVertexTemplateEntry(a+"threat_e8;",50,47,"","Threat E8",null,null,this.getTagsForStencil("mxgraph.cisco_safe.threat","threat","cisco safe threat").join(" "))])}})();(function(){Sidebar.prototype.addCitrixPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;aspect=fixed;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeColor=none;outlineConnect=0;shape=mxgraph.citrix.";this.addPaletteFunctions("citrix","Citrix",!1,[this.createVertexTemplateEntry(a+"1u_2u_server;",100,39.1,"","1U 2U Server",null,null,this.getTagsForStencil("mxgraph.citrix","1U 2U Server","").join(" ")),this.createVertexTemplateEntry(a+"access_card;",55.5,75,"","Access Card",
null,null,this.getTagsForStencil("mxgraph.citrix","Access Card","").join(" ")),this.createVertexTemplateEntry(a+"branch_repeater;",100,39,"","Branch Repeater",null,null,this.getTagsForStencil("mxgraph.citrix","Branch Repeater","").join(" ")),this.createVertexTemplateEntry(a+"browser;",47.5,72.5,"","Browser",null,null,this.getTagsForStencil("mxgraph.citrix","Browser","").join(" ")),this.createVertexTemplateEntry(a+"cache_server;",71,97.5,"","Cache Server",null,null,this.getTagsForStencil("mxgraph.citrix",
"Cache Server","").join(" ")),this.createVertexTemplateEntry(a+"calendar;",75,100,"","Calendar",null,null,this.getTagsForStencil("mxgraph.citrix","Calendar","").join(" ")),this.createVertexTemplateEntry(a+"cell_phone;",25,60,"","Cell Phone",null,null,this.getTagsForStencil("mxgraph.citrix","Cell Phone","").join(" ")),this.createVertexTemplateEntry(a+"chassis;",137.5,177.5,"","Chassis",null,null,this.getTagsForStencil("mxgraph.citrix","Chassis","").join(" ")),this.createVertexTemplateEntry(a+"citrix_hdx;",
77.5,41,"","Citrix HDX",null,null,this.getTagsForStencil("mxgraph.citrix","Citrix HDX","").join(" ")),this.createVertexTemplateEntry(a+"citrix_logo;fillColor=#4E4F53;",160,62.5,"","Citrix Logo",null,null,this.getTagsForStencil("mxgraph.citrix","Citrix Logo","").join(" ")),this.createVertexTemplateEntry(a+"cloud;",95,62,"","Cloud",null,null,this.getTagsForStencil("mxgraph.citrix","Cloud","").join(" ")),this.createVertexTemplateEntry(a+"command_center;",75.5,96,"","Command Center",null,null,this.getTagsForStencil("mxgraph.citrix",
@@ -4252,13 +4322,13 @@ null,null,this.getTagsForStencil("mxgraph.citrix","Role Synchronizer","").join("
"XenApp Web","").join(" ")),this.createVertexTemplateEntry(a+"xencenter;",76,89,"","XenCenter",null,null,this.getTagsForStencil("mxgraph.citrix","XenCenter","").join(" ")),this.createVertexTemplateEntry(a+"xenclient;",91,77,"","XenClient",null,null,this.getTagsForStencil("mxgraph.citrix","XenClient","").join(" ")),this.createVertexTemplateEntry(a+"xenclient_synchronizer;fillColor=#CCCCCC;gradientColor=#000000;gradientDirection=south;",76,91,"","XenClient Synchronizer",null,null,this.getTagsForStencil("mxgraph.citrix",
"Synchronizer","").join(" ")),this.createVertexTemplateEntry(a+"xendesktop_server;",75,91,"","XenDesktop Server",null,null,this.getTagsForStencil("mxgraph.citrix","XenDesktop Server","").join(" ")),this.createVertexTemplateEntry(a+"xenmobile;fillColor=#CCCCCC;gradientColor=#000000;gradientDirection=south;",70,89,"","XenMobile",null,null,this.getTagsForStencil("mxgraph.citrix","XenMobile","").join(" ")),this.createVertexTemplateEntry(a+"xenserver;",76.5,90,"","XenServer",null,null,this.getTagsForStencil("mxgraph.citrix",
"XenServer","").join(" "))])}})();(function(){Sidebar.prototype.addEipMessageConstructionPalette=function(a){var e=this,d=[this.createEdgeTemplateEntry("edgeStyle=none;html=1;strokeColor=#808080;endArrow=block;endSize=10;dashed=0;verticalAlign=bottom;strokeWidth=2;",160,0,"","Pipe",null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction pipe").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
-150,90,"","Filter",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction filter").join(" ")),this.addEntry("eip enterprise integration pattern message construction command message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("C",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#FF8080;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Command Message")}),this.addDataEntry("eip enterprise integration pattern message construction correlation identifier",78,30,"Correlation Identifier","5ZZLT8JAEIB/Ta+mDwv1KAicTEw8qMeVDu2GpUO2ixZ/vbPdAVorilExkTZN5rEznf1mtqkXDRfVRItlfo0pKC8aedFQIxonLaohKOWFvky96MoLQ58eLxzv8Qa1118KDYU5JCB0AU9CrcBZnKE0a8UGSDO4ZRW1yTHDQqjRzjrQuCpSsBl90qCS5r4hP1j5LLZakV5qjc9kKLCwkako821gbha0/6uAxNJonMMQFeq6iCjx7b313MnU5OQJyeIKtlW2GJS40lM29ZzJCJ0BY4m7pOpAxjQBXIDRa1qiQQkjn9rZRenUbLtuB5kE5vw+8+gkmCdd5v2/Y35+APMdqUeF03mbDnnHUrVZNYl06I3HF4RwD6ifRMChNygpY+hXvGEe8HXrBGziXaM4pPl5eJMl6H+UxfW2k6XuxXYnB7Un/rw9XeStQRZKZgXJU+IK1ILBDAtzK19sdGL7k4ullem9clnaczCjdu6f9o2HDw3XB9pA9dVOPnPNdgXvKweZ5aZt+8549zr8Ln8LoIap6dLjaX/nHPj1tcnH5QSsN9bN6uubqDcBvdbYBnwMj9CI/n8eZA6I/aPhTDo4B6c8171jzTWpu39Q9z1v/qK+Ag=="),
-this.addEntry("eip enterprise integration pattern message construction document message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("D",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#C7A0FF;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Document Message")}),this.addEntry("eip enterprise integration pattern message construction event message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("E",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#83BEFF;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Event Message")}),this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messExp;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top",
+150,90,"","Filter",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction filter").join(" ")),this.addEntry("eip enterprise integration pattern message construction command message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("C",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#FF8080;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Command Message")}),this.addDataEntry("eip enterprise integration pattern message construction correlation identifier",78,30,"Correlation Identifier","5ZZLT8JAEIB/Ta+mDwv1KAicTEw8qMeVDu2GpUO2ixZ/vbPdAVorilExkTZN5rEznf1mtqkXDRfVRItlfo0pKC8aedFQIxonLaohKOWFvky96MoLQ58eLxzv8Qa1118KDYU5JCB0AU9CrcBZnKE0a8UGSDO4ZRW1yTHDQqjRzjrQuCpSsBl90qCS5r4hP1j5LLZakV5qjc9kKLCwkako821gbha0/6uAxNJonMMQFeq6iCjx7b313MnU5OQJyeIKtlW2GJS40lM29ZzJCJ0BY4m7pOpAxjQBXIDRa1qiQQkjn9rZRenUbLtuB5kE5vw+8+gkmCdd5v2/Y35+APMdqUeF03mbDnnHUrVZNYl06I3HF4RwD6ifRMChNygpY+hXvGEe8HXrBGziXaM4pPl5eJMl6H+UxfW2k6XuxXYnB7Un/rw9XeStQRZKZgXJU+IK1ILBDAtzK19sdGL7k4ullem9clnaczCjdu6f9o2HDw3XB9pA9dVOPnPNdgXvKweZ5aZt+8549zr8Ln8LoIap6dLjaX/nHPj1tcnH5QSsN9bN6uubqDcBvdbYBnwMj9CI/n8eZA6I/aPhTDo4B6c8171jzTWpu39Q9z1v/qK+Ag=="),
+this.addEntry("eip enterprise integration pattern message construction document message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("D",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#C7A0FF;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Document Message")}),this.addEntry("eip enterprise integration pattern message construction event message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("E",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#83BEFF;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Event Message")}),this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messExp;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top",
48,48,"","Message Expiration",null,null,this.getTagsForStencil("mxgraph.eip","","eip enterprise integration pattern message construction message expiration").join(" ")),this.addDataEntry("eip enterprise integration pattern message construction message sequence",60,24,"Message Sequence","5VVdb4MgFP01vKtY4+vKZp+WLNnDnpneKSmKQWp1v34gtKWhXfawNPswMbn33A+45xBAmLTTRtK+eRQVcIQfECZSCGWtdiLAOUoiViF8j5Ik0j9KiivReIlGPZXQqa8UJLZgpHwHFrHAoGbugHInRzDpMcJr6Ko7KcVeu69clFsNNarlLjooKbZABBdyqcUxIUUUHSMvrFKNjiS20zN7N2tg7dlVoarhbJBB7GTpoJWFFJU1uNnScNyl0M26AdGCkrNOkcCpYuN5dzpYtz7muVI9Ip29hF6wTg1e5ycD6ITJ9ct9krVhGxw8bycnaBHisij494iShaKsfogoafKtoqSBKHGgSkhoRYdm0cnwTTmrO22XmhjQYqzfRKcc37nRo6G9sSWUykQZ555seVQUGbkkaLR8h35uO/FRwBGkgglduyCuiDO7qDt7ezeUBzXA6kadY5fU8yT4lOFVwHB47v8Sw67gcLJuT3gWEI7/A+FpfiPCtXt6ye2V4z/0Hw=="),
-this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.retAddr;html=1;verticalLabelPosition=bottom;fillColor=#FFE040;strokeColor=#000000;verticalAlign=top;",78,48,"","Return Address",null,null,this.getTagsForStencil("mxgraph.eip","retAddr","eip enterprise integration pattern message construction return address").join(" "))];this.addPalette("eipMessage Construction","EIP / Message Construction",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};
+this.createVertexTemplateEntry("strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.retAddr;html=1;verticalLabelPosition=bottom;fillColor=#FFE040;strokeColor=#000000;verticalAlign=top;",78,48,"","Return Address",null,null,this.getTagsForStencil("mxgraph.eip","retAddr","eip enterprise integration pattern message construction return address").join(" "))];this.addPalette("eipMessage Construction","EIP / Message Construction",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};
Sidebar.prototype.addEipMessageRoutingPalette=function(a){var e=[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.aggregator;",150,90,"","Aggregator",null,null,this.getTagsForStencil("mxgraph.eip","aggregator","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.composed_message_processor;",
150,90,"","Composed Message Processor",null,null,this.getTagsForStencil("mxgraph.eip","composed_message_processor","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.content_based_router;",150,90,"","Content Based Router",null,null,this.getTagsForStencil("mxgraph.eip","content_based_router","eip enterprise integration pattern message routing ").join(" ")),
this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.dynamic_router;",150,90,"","Dynamic Router",null,null,this.getTagsForStencil("mxgraph.eip","dynamic_router","eip enterprise integration pattern message routing ").join(" ")),this.addDataEntry("eip enterprise integration pattern message routing message broker",120,90,"Message Broker","5ZjJboMwEIafxneDWZJjQ9qcesqhZxcGjGpwZJytT1+DnQUpUZEqmYQiIWb+YcbMZySwEUmqw0rSDXsXGXBEXhFJpBDKWNUhAc6Rj8sMkSXyfaxP5L/diXpdFG+ohFoNSfBNwo7yLRjFCI06cis0Soov+CgzxbTgI7LIaMOgLYC1Q3lZ1NpO9YggtZCLWq3L7zZ7pt2G0U1rS0hVGy05TwQXsitO8jz/TNsyZpSrCO4OHbFPCFLB4W6XnWRbXIGoQMmjvsUmBLHJ2Nsm2sYjIzEoC3YqMjMabYxfnAtdCGrDQrwNlEwb6LFPygHQYNpAbcLctumebzhtvhZoGDgDGk0b6O0X1iHf+F/wPX2yLN/Yd8Z3NjLfFOchnTvmSyJnfOe/84WsgLV1a1HrywLq7EVKsb8oPeRMVXq8pXfGdj05pn5btAerEVuZQm/SFZUFqN6v4QCkEjhV5a5f/S+IPPwkjMiIjLwnYRSMyGjA8uYhGIUjMhqwYnkIRtGIjAYsQh6CUeyMkXYvuxRdrLeJ8QM="),
@@ -4284,16 +4354,16 @@ this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeC
150,90,"","Selective Consumer",null,null,this.getTagsForStencil("mxgraph.eip","selective_consumer","eip enterprise integration pattern messaging endpoint ").join(" ")),this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeColor=#000000;html=1;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.service_activator;",150,90,"","Service Activator",null,null,this.getTagsForStencil("mxgraph.eip","service_activator","eip enterprise integration pattern messaging endpoint ").join(" ")),
this.createVertexTemplateEntry("fillColor=#c0f5a9;dashed=0;strokeWidth=2;strokeColor=#000000;html=1;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.transactional_client;",150,90,"","Transactional Client",null,null,this.getTagsForStencil("mxgraph.eip","transactional_client","eip enterprise integration pattern messaging endpoint ").join(" "))])};Sidebar.prototype.addEipMessagingSystemsPalette=function(a){var e=this,d=[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.content_based_router;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Message Router",null,null,this.getTagsForStencil("mxgraph.eip","content_based_router","eip enterprise integration pattern messaging system ").join(" ")),this.createVertexTemplateEntry("strokeWidth=1;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.messageChannel;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top;",100,20,"","Message Channel",null,null,this.getTagsForStencil("mxgraph.eip","messageChannel","eip enterprise integration pattern messaging system ").join(" ")),
-this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var b=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");b.vertex=!0;var a=new mxCell("",new mxGeometry(85,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-b.geometry.width,b.geometry.height,"Message Endpoint")}),this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var b=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");b.vertex=!0;var a=new mxCell("",new mxGeometry(25,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Message Endpoint")}),this.addDataEntry("eip enterprise integration pattern messaging system message endpoint",400,90,"Message Endpoint","zVXLbsIwEPwa300eFRwhbbm0UiUOPZtkSSycbOQsr3597cRAIkILKhUkiuSd9fgxs46ZH+XbqRZl9o4JKOa/MD/SiNS08m0ESjGPy4T5z8zzuPmY93omO6izvBQaCrqE4DWEtVAraJAGqGinHFCRxiV8yoQyA3jMnySiysAOwE0glEwL047NjKANsMCCZvLLsocmrDJR2raGmGxWKhWhQl0P7sd8EYqR7VbP0srw+jGZNWiSsVBvYg7qAytJEu2EcyTCvNVh7FZCWBrUbczkYHtWnBpyykwBcyC9M102brO2R9gIyDOQaeZoI4eJqonTA/UotWk4tfuV969VfnBb5Rf1czflvX7lHcELG8auG7Z8CXpsCW5gS/D4B+IvlX3Ql58o+m+VHj5+pV8kafCjpMO7lezT7/pCksLMhaDmuHk5ApPTeta4KpKD+lAkY61xY0++wnhZU4SmPVhgAXvMmTJwvHbYcTSjXDmnT1wZcvv2LqzZmN1Nx6UKVzqGzn/VLCYF6hTgBcdDgxIk193Rr/DGhMe7u851rvZv"),
+this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var a=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");a.vertex=!0;var c=new mxCell("",new mxGeometry(85,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+a.geometry.width,a.geometry.height,"Message Endpoint")}),this.addEntry("eip enterprise integration pattern messaging system message endpoint",function(){var a=new mxCell("",new mxGeometry(0,0,150,90),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;");a.vertex=!0;var c=new mxCell("",new mxGeometry(25,25,40,40),"strokeWidth=1;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#ffffff;strokeColor=#000000;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Message Endpoint")}),this.addDataEntry("eip enterprise integration pattern messaging system message endpoint",400,90,"Message Endpoint","zVXLbsIwEPwa300eFRwhbbm0UiUOPZtkSSycbOQsr3597cRAIkILKhUkiuSd9fgxs46ZH+XbqRZl9o4JKOa/MD/SiNS08m0ESjGPy4T5z8zzuPmY93omO6izvBQaCrqE4DWEtVAraJAGqGinHFCRxiV8yoQyA3jMnySiysAOwE0glEwL047NjKANsMCCZvLLsocmrDJR2raGmGxWKhWhQl0P7sd8EYqR7VbP0srw+jGZNWiSsVBvYg7qAytJEu2EcyTCvNVh7FZCWBrUbczkYHtWnBpyykwBcyC9M102brO2R9gIyDOQaeZoI4eJqonTA/UotWk4tfuV969VfnBb5Rf1czflvX7lHcELG8auG7Z8CXpsCW5gS/D4B+IvlX3Ql58o+m+VHj5+pV8kafCjpMO7lezT7/pCksLMhaDmuHk5ApPTeta4KpKD+lAkY61xY0++wnhZU4SmPVhgAXvMmTJwvHbYcTSjXDmnT1wZcvv2LqzZmN1Nx6UKVzqGzn/VLCYF6hTgBcdDgxIk193Rr/DGhMe7u851rvZv"),
this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","5ZVRb4IwEMc/Da8LghJ9nCg+7cmHbY+NHLRZ6ZGjKu7Tr6VVR5RsiZlbMgjJ3f965d8fJQ3itGpXxGr+hDnIIF4GcUqI2kVVm4KUQRSKPIgXQRSF5gmibKA66qphzQiU/k5D5Bp2TG7BKU5o9EF6AfIS1j5F0hxLVEwuz+qccKtysDOGJoNW6JdP8auNHyY2U/kjEe6NoFDZzpw1/NTIdWXWvxiZsNGEb5CiROpMxNPQ3qfKs8g1N5XIKM6wddlj0OCWNl6aOEkzKsFjGV+S6ho9phVgBZoOZgiBZFrs+rOzxqXladwZsgk85+vM43/BPPlTzMdfM79cZY8Uk6JUJt4Y72AIzQtUei3ebffUQuKstrF5r6gbC7oQUg7jPFb8V/H+gDS0g//yAK2992xH+HVxECXXfe0WfpO78SPY6GvwsixJr+3SsLuO83k7oxuJHhv8Jj74dOrSO/BOfpl3Ucxm4eVmvS/vOPkp3iY9n7FdrXcEfwA="),
-this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","vZRNb4MwDIZ/DdeJj25qjyvtetqph23HqBgSLcTIuC3dr19C0naIoU3qNBCS/TqvcR5Qoiyvuw2JRj5jATrK1lGWEyL7qO5y0DpKY1VE2SpK09g+Ufo0UU36atwIAsO/MaTecBB6D17xQssnHQQoKtiGFIklVmiEXl/VJeHeFOA6xjaDTvHrl/jNxXf3LjPFIxEerWDQOGchWnkxSq7t/leJDVsmfIccNVI/RDaP3X2pvKiCpa2kVvEDuykHDFrc0y5IMy+xoAoClmxMqjcGTBvAGphOdgmBFqwOw+6i9Wl1WXeFbIPA+Xvm2c/Mx7sckBJaVcbGOzs7WELLEg1v1Ydzzx0kKRoX2/eqpnWgS6X1NM5zJXyVMB8QQzf5X03QOoaZ3YqwLwmqkjzUbuE3+zd+BDsewyvLxSIew7OVuL/O/cI4yY1Ez4YH7ziFdO7Tv+dt0+v509cGx9Mn"),
-this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
-d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.addEntry("eip enterprise integration pattern messaging system message",function(){var b=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!1);a.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,b,a],28,30,"Message")}),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_translator;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
-150,90,"","Message-Translator",null,null,this.getTagsForStencil("mxgraph.eip","message_translator","eip enterprise integration pattern messaging system ").join(" "))];this.addPalette("eipMessaging Systems","EIP / Messaging Systems",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addEipSystemManagementPalette=function(a){this.addPaletteFunctions("eipSystem Management","EIP / System Management",!1,[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.channel_purger;fillColor=#c0f5a9;strokeColor=#000000;",
+this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.addDataEntry("eip enterprise integration pattern messaging system message",28,48,"Message","vZRNb4MwDIZ/DdeJj25qjyvtetqph23HqBgSLcTIuC3dr19C0naIoU3qNBCS/TqvcR5Qoiyvuw2JRj5jATrK1lGWEyL7qO5y0DpKY1VE2SpK09g+Ufo0UU36atwIAsO/MaTecBB6D17xQssnHQQoKtiGFIklVmiEXl/VJeHeFOA6xjaDTvHrl/jNxXf3LjPFIxEerWDQOGchWnkxSq7t/leJDVsmfIccNVI/RDaP3X2pvKiCpa2kVvEDuykHDFrc0y5IMy+xoAoClmxMqjcGTBvAGphOdgmBFqwOw+6i9Wl1WXeFbIPA+Xvm2c/Mx7sckBJaVcbGOzs7WELLEg1v1Ydzzx0kKRoX2/eqpnWgS6X1NM5zJXyVMB8QQzf5X03QOoaZ3YqwLwmqkjzUbuE3+zd+BDsewyvLxSIew7OVuL/O/cI4yY1Ez4YH7ziFdO7Tv+dt0+v509cGx9Mn"),
+this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");
+d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.addEntry("eip enterprise integration pattern messaging system message",function(){var a=new mxCell("",new mxGeometry(0,0,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=ellipse;fillColor=#808080;strokeColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,18,12,12),"strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;");d.geometry.relative=!0;d.edge=!0;a.insertEdge(d,!1);c.insertEdge(d,!0);return e.createVertexTemplateFromCells([d,a,c],28,30,"Message")}),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.message_translator;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;",
+150,90,"","Message-Translator",null,null,this.getTagsForStencil("mxgraph.eip","message_translator","eip enterprise integration pattern messaging system ").join(" "))];this.addPalette("eipMessaging Systems","EIP / Messaging Systems",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addEipSystemManagementPalette=function(a){this.addPaletteFunctions("eipSystem Management","EIP / System Management",!1,[this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.channel_purger;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Channel Purger",null,null,this.getTagsForStencil("mxgraph.eip","channel_purger","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.control_bus;fillColor=#c0f5a9;strokeColor=#000000;",60,40,"","Control Bus",null,null,this.getTagsForStencil("mxgraph.eip","control_bus","eip enterprise integration pattern system management ").join(" ")),
this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.detour;fillColor=#c0f5a9;strokeColor=#000000;",150,90,"","Detour",null,null,this.getTagsForStencil("mxgraph.eip","detour","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.message_store;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Message Store",null,null,this.getTagsForStencil("mxgraph.eip","message_store","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.smart_proxy;fillColor=#c0f5a9;strokeColor=#000000;",70,90,"","Smart Proxy",null,null,this.getTagsForStencil("mxgraph.eip","smart_proxy","eip enterprise integration pattern system management ").join(" ")),
@@ -4454,7 +4524,7 @@ this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure",
this.createVertexTemplateEntry(t+"2_line_bus;",130,25,"","2-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"3_line_bus;",130,30,"","3-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"4_line_bus;",130,75,"","4-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
"3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"8_line_bus;",130,180,"","8-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"twoLineBusElbow;notch=25;",120,120,"","2-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus elbow","electrical transmission paths bus buses").join(" ")),
this.createVertexTemplateEntry(t+"threeLineBusElbow;notch=30;",120,120,"","3-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"fourLineBusElbow;notch=75;",120,120,"","4-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","4 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+
-"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<z.length;a++)b.appendChild(z[a](b))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
+"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(a){for(var b=0;b<z.length;b++)a.appendChild(z[b](a))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Table")}),this.addEntry("er entity relation table section subsection",function(){var b=new mxCell("Section",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=22;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;fontSize=14;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Section")}),this.addDataEntry("er entity relation table section subsection",160,144,"ER Table 1","7ZjbbqMwEIafhtuVDSHdXBZ60GpTqWr6AgYcsNbYrHE2SZ9+x8a0SUmURCnZdkUOEjMeH2bm44+CF8Tl6l6RqniQGeVecOuhaw9NvCBWUuo327rKVUw593zEMi+48Xwfwdfz7w6FYRuGKqKo0CfN9JuZfwhf0MbzTBJOG2+t19x56yUrORFgRXMp9MyNILDTgvFsStZyYbauNUl/tVZUSMVeIJ5A5jcYHDCs9Iy9mMn+2KzGOI8ll8ruE1Bk3lszZ2ZFt5eiNcx9bPPE71wPZLUVOCW1bk8pOSdVzRJ7bjOxJCpnIpJay9IFtVnebR9qbl8wTjjLBfhS2IuqthZNNngEtqsmVZqu9rbGujb74lpzT2VJtVpD+JJlunDR46aVqKAsL9olRqPGSerGkb/O3dF18LjGH6Ah6NCwEOz3gv7IukAUpDKXkJhmhD/RVBORm9FIy8rVk9N5W3/lDm+uk7bmeKOmTWxkasdSwq+du2RZZlfdBEVIS2JdkZSJfNrsEozeXE9uN+OSsOScyyWYBSxGhTmN1EST5JXhSjKhbSnDCD5Q8Rh9C70QMo3Bxm82fEy40rEUtVaE2a5SAG1JDWxRpmT1DGjRNtvN+yV8x4x/LDP+ScxMdiAToD6IGXWIefx5NivJ5j25o+/HIrPNx4fhcYgAk6aD++hep1IIU5akrRnqMhCcxEBwMQbCDgMKyukj3I9ooMME2MW+uGJcXiHg97gHOsYdOv61PjR0/GfiEJ4tDv20/2qPOJxPwSAOX18cvg/icAlxuPqk4jDZIw7BIA6DOPgYDepwCXWYfFJ1wPjj+z/owiV1AffyfxN3H1oOutCDLuDTHlTuEoZzAbDOjQflLmjrgfpf"),
this.addDataEntry("er entity relation table section subsection",160,112,"ER Table 2","7ZdRb+IwDIB/TV9Pabuy2+Najj2MSdPYHzBtaKNLkyrNDtivPydNRjtAwLFN22lQpNqxndj+atEgzurVjYKmupMF5UH8KyDXAbkK4kxJqTeyVdWrjHIeRIQVQTwOoojgL4gmh8xCa0YaUFTokzyjzvMP8CfaaR5hzmmnbfWaO227ZDUHgVK6kELP3ApBOa8YL6awlk9m61ZD/ttLaSUVe0Z7wMzHISpwWekZezbO0chEY5xnkktl94kpMd+B58xEdHsp2qLvvc8zfKW6g9XAcAqt9qeUnEPTsrk9t3GsQZVMpFJrWTsjn+VkeKiF/eA6cFYK1OW4F1W+Fl024QXKrppUabra2xqr6vfFteaGyppqtUbzJSt05axHXStJRVlZ+RChaxy0naJ88d3RddS4xh+gId6iQcklKsJtHipozC3mpRnwB5prEKVZTbVsXDk5XfjyK3d2cz/vl9yXtLNNTelYDvzaqWtWFDZqnxMhLYhtAzkT5bTbZUQ2qge3m2mJxJALjmnE4wqDUWFOIzVomL8g3EgmtK1kkuKFBc/IjyRIMNMM5XAj42XMlc6kaLUCZptKkbMlNaylhZLNI5JFfbb9xyV5hUx0LDLRSchc7SAmJu8BzMUWMPe3WKzJ7UnE9EsU7iNoQM0OGo4FaUjNxVtBc4gLk7ZL72gCcimEKdPc15BskxGfREYy+igykj2jJHqfURJ+j5IvPkpG+0bJScR8j5J/HyXJJx0ll5/uX4kN9sXnyMfPDf+Ivy0dP7foOBuLM+dDR8d/Nhwuzx4O57bfKnsvzc5o8HL9Fw=="),
@@ -4560,48 +4630,48 @@ this.addDataEntry("gmdl google media design library button dropdown button selec
this.addDataEntry("gmdl google media design library button dropdown button selected editable",100,150,"Dropdown Button (Selected, Editable)","7ZZRT4MwEMc/DY8uQJn66lDngyYmJvpc6QGNhS6l6uan90rLNkARFX1aE5L2endtf/9y4JG4WC8VXeU3koHwyIVHYiWltr1iHYMQXuhz5pFzLwx9fLzw8pPZoJ71V1RBqccEhDbghYpnsBZrqPRGOAOjVQ7G3ffIggqeldhPMD8oNKSy1Hf8zfgGIY6rnK7MQEGizTQXIpZCqjoXSetm3LSST7A3k9TNJmDy1aTDgdsdKA3rT09Ym9zxliAL0GqDLq+c6dx5+JaCnwPP8iZs7oy0soZsG7sDhh3H7GN+pMfvTHEqehC7WJDa3uH9uqHdnJQnVJw5zAVnzKRYVCua8DK7htTsPiAd8tEg0kY0UUcvFFQY9uDwjMYc/gxz5GwKBNX8BVr5f4M++vrqDlzGUpYwCM1SumpOMhoT+RhTO2APWjQFM7fereS4je1iR1Hnhss0rUD3IG+3OYr7/JslI9eFcAAbPYp1ZireLCuYmGl8YcqsvuWdarGrCS2VnHSj1IgG1fBn7jCbzrh1qfv6zKeRp734UdisPqlcxz25YqwHj4r3VEOOf1Wb/rfkkF++Pk6Q7vdhEjlO+nLIZ8XxW3qQY1iO07+Q47Qnxz0oRkt6kOMLOYJgAj1wuPvXte77v8Lv"),
this.addDataEntry("gmdl google media design library button persistent footer button",300,40,"Persistent Footer Buttons","3ZXRTsMgFIafhnsK64y3q25X6oXzAYicDSLtaQBd59NLAbdVXabJ3EVJSM75f/4WvpBAeFV3CytadYcSDOG3hFcW0aeq7iowhjCqJeE3hDEaJmHzI24RXdoKC43/TYClwJswr5CUJDi/NVlwSrR9aeE5fHK20sZUaNBGl6/iCLrzFl/gwIE4ekcJiZsg0tDk/4H10B3dc5TyhheANXi7DUs2WnqVVnCazkUV6LXKsUnWhEv9ehfdEwhFhvAzEP4NyOxpuXy4P4VlePwGG/jC6lPCxj/q9z5ZsNwfQGPF9XTOgy6FUyD/Ao2dhHZV/g+zydiYdUNeF0BYjhRhUdKLMZyOlOHudpyfYWj3b030Bk/RBw=="),this.addDataEntry("gmdl google media design library button persistent footer button fixed",
300,40,"Persistent Footer Buttons (fixed)","7ZXfboMgFMafhnuEtstu69buZn+SdQ9A5rGQoRhgrd3TDwWtrjN1aXcniQnnO5wD/D4TEI2zcq1ZwR9VAhLRe0RjrZT1s6yMQUpEsEgQvUOEYPchshrIRnUWF0xDbscUEF+wY/ITvOIFYw8yCIazoppqeHctl6mQMlZS6TpL03o43VitPqCTgXpUGc4StXcidkHYD7SFcvDMtRQOvAaVgdUHt2QvEsv9Cor9vTAHseWhbBY0Zny8bUuPBNwkQPgdCD0BsnzbbJ6fzmHpXz9XOfxg1Ugqt6/iq6qMSIg70Eh0u1hRpyfMcEgCNA3GlTw0V43GciRnOd7MhzFqkMyKHfTaX8J2NrH9M9uww4sSbmOCy37rpkKlqQF74kV7rlH2zCd7rmRPNMf/4M9i8udK/rT/+iX+uPD4Tvvl3Wf8Gw=="),this.addEntry("gmdl google media design library button floating action button",
-function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;fillColor=#FF4081;strokeColor=none;shadow=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#ffffff;strokeWidth=2;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,
-0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.edit;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",
-function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.star;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),
-this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.heart;strokeColor=none;fillColor=#737373;shadow=0;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.reply;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.users;strokeColor=#ffffff;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.gps;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.share2;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.navigate;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.chat;strokeColor=#737373;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.voice;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,16,16,24),"dashed=0;html=1;shape=mxgraph.gmdl.google;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.video;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.gallery;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.birthday;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.cloud;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.x;strokeColor=#737373;strokeWidth=2;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.bookmark;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.calendar;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(17,20,22,16),"dashed=0;html=1;shape=mxgraph.gmdl.attractions;strokeColor=#ffffff;fillColor=#737373;strokeWidth=1;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(20,18,16,20),"dashed=0;html=1;shape=mxgraph.gmdl.dining;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.education;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.family;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.health;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.office;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.promotions;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.radio;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.recipes;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.sports;strokeColor=none;fillColor=#737373;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var b=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.travel;strokeColor=none;fillColor=#737373;direction=south;shadow=0;");
-a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button mini",function(){var b=new mxCell("",new mxGeometry(0,0,40,40),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");b.vertex=!0;var a=new mxCell("",new mxGeometry(12,12,16,16),
-"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#737373;strokeWidth=2;shadow=0;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],40,40,"Floating Action Button (Mini)")}),this.addDataEntry("gmdl google media design library button toolbar",358,64,"Toolbar","3ZXRboMgFIafhssaBLtut7Vbr5bsbtekHoUMxCDr7NsPhdpaa2bSZlmmMYHD+TmH7zcB0VQ1W8Mq/qozkIg+I5oara0fqSYFKRHBIkN0gwjB7kPkZWI17lZxxQyUdo6AeMGeyU/wER+o7UGGQM1Z1Q4N7NyW61xImWqpTbdK8+5x8doa/QHHlVKXTrMuDBOuk4toqAnGQjPZdxcKTW9BK7Dm4FK+RGa5z6DLRy/jIAoeZA+Jj7Haz4teeqLgBgHEdSj0ZygZqzm06didh1vlttrELYUASzVF62lUqExGO6bAsBGjc3oXVFfd2yvew6HJXHjkOrwgwBFZes3hGAjzM7okGcONA3ADklmxh0H9a8RDC29auM76+ouYDMovnoY76DyvwY4c6w8yy8TkzibuRQZ66j//Zfv+v3vLO7tXMCmhLf4n/FvNMBCPDTxCuNlAPDQwjm930E1Pt5ZPP7/UvgE="),
+function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;fillColor=#FF4081;strokeColor=none;shadow=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#ffffff;strokeWidth=2;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,
+0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.edit;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",
+function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.star;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),
+this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.heart;strokeColor=none;fillColor=#737373;shadow=0;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.reply;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.users;strokeColor=#ffffff;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.gps;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.share2;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.navigate;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.chat;strokeColor=#737373;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.voice;strokeColor=#737373;fillColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,16,16,24),"dashed=0;html=1;shape=mxgraph.gmdl.google;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.video;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.gallery;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,17,24,22),"dashed=0;html=1;shape=mxgraph.gmdl.birthday;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,20,24,16),"dashed=0;html=1;shape=mxgraph.gmdl.cloud;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,20,16,16),"dashed=0;html=1;shape=mxgraph.gmdl.x;strokeColor=#737373;strokeWidth=2;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(22,18,12,20),"dashed=0;html=1;shape=mxgraph.gmdl.bookmark;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.calendar;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(17,20,22,16),"dashed=0;html=1;shape=mxgraph.gmdl.attractions;strokeColor=#ffffff;fillColor=#737373;strokeWidth=1;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(20,18,16,20),"dashed=0;html=1;shape=mxgraph.gmdl.dining;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.education;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.family;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,19,20,18),"dashed=0;html=1;shape=mxgraph.gmdl.health;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.office;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.promotions;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.radio;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.recipes;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.sports;strokeColor=none;fillColor=#737373;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button",function(){var a=new mxCell("",new mxGeometry(0,0,56,56),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(18,18,20,20),"dashed=0;html=1;shape=mxgraph.gmdl.travel;strokeColor=none;fillColor=#737373;direction=south;shadow=0;");
+c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],56,56,"Floating Action Button")}),this.addEntry("gmdl google media design library button floating action button mini",function(){var a=new mxCell("",new mxGeometry(0,0,40,40),"shape=ellipse;dashed=0;fillColor=#ffffff;strokeColor=none;shadow=1;fontSize=13;fontColor=#000000;align=center;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;html=1;aspect=fixed;");a.vertex=!0;var c=new mxCell("",new mxGeometry(12,12,16,16),
+"dashed=0;html=1;shape=mxgraph.gmdl.plus;strokeColor=#737373;strokeWidth=2;shadow=0;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],40,40,"Floating Action Button (Mini)")}),this.addDataEntry("gmdl google media design library button toolbar",358,64,"Toolbar","3ZXRboMgFIafhssaBLtut7Vbr5bsbtekHoUMxCDr7NsPhdpaa2bSZlmmMYHD+TmH7zcB0VQ1W8Mq/qozkIg+I5oara0fqSYFKRHBIkN0gwjB7kPkZWI17lZxxQyUdo6AeMGeyU/wER+o7UGGQM1Z1Q4N7NyW61xImWqpTbdK8+5x8doa/QHHlVKXTrMuDBOuk4toqAnGQjPZdxcKTW9BK7Dm4FK+RGa5z6DLRy/jIAoeZA+Jj7Haz4teeqLgBgHEdSj0ZygZqzm06didh1vlttrELYUASzVF62lUqExGO6bAsBGjc3oXVFfd2yvew6HJXHjkOrwgwBFZes3hGAjzM7okGcONA3ADklmxh0H9a8RDC29auM76+ouYDMovnoY76DyvwY4c6w8yy8TkzibuRQZ66j//Zfv+v3vLO7tXMCmhLf4n/FvNMBCPDTxCuNlAPDQwjm930E1Pt5ZPP7/UvgE="),
this.addDataEntry("gmdl google media design library button floating action button",50,156,"Floating action buttons","3ZZPb4MgGMY/Dcc2iH/mrtO1pyW77UwmChkWg6zVbz8Uamu1m5m2h5KYwCMv8P54IAA3yqutxAV9EwnhwH0FbiSFUKaWVxHhHCDIEuDGACGoP4A2V/467V9YYEl2akoAMgF7zL+JUYxQqppboaS4aKo6kBWlrr2USoovEgkupNZ3YteIKeP8KAHkxk7sxl7TmeJEHLTo6EYmccL00i5i7SKIVKS6mkgr2Sy2ROREyVp3sQGhCTiwRFGjeCZzSAnLqOpruDTtrBvnxEhXLKZxZO7fyBJcUtJ0hzo5qnJu0z+izKus2fF1lid8/SmKegBVEwzaMiTb6Sbiw2aMpnJEv3KEa9+E1BftM7IOGpJ1AqNJwrFie9Kbfgy3XcG7YHph3fSroDf7KuwPINK0JGqwW10akzbQezDPW1Y+vNsR8Bc+AoVsTDAN8lz7e/PtH97O/s+3t39wK/tvNh4MnTvY39Jx4NDxfjDcm6M2x/FPCzu+Grvx07b839rBfGuP4FvK2v3baglr6+bppWS6nz+kfgA="),
this.addDataEntry("gmdl google media design library button related actions",200,40,"Related actions","3VbRboMgFP0aHtsgWtu9zm19WrK3PZNxFTIsBlhr/34o1NbqMpO1zTaNyb2He4R77nkAxVlZrzWt+LNiIFH8iOJMK2V9VNYZSIkIFgzFD4gQ7D5Enr5YjdpVXFENGzuFQDxhS+UHeMQDxu5lAAynVRM6oqiMi+6N1eodMiWVdvhGbRowF1IeIETivH2aYk6Z2jkwckmhKRPuaGfccAjQFuovG2mh0MUaVAlW713JTjDLfUXie8UcRMFtH6PG50XHPKrigiDMuEjx9yIxajg05di1w20pQ8MH8cq6aGY8L0om50y9DVQ8lexMymX7dozX0DCZKhwZFy4Q8HzhKfuz/ETYKBkKG6Ue0yCpFVvobT+mdjjBixLuYN32s2Vv99mq/wOV5wbsYFhdG5Pml/x5kwfCCg9Gcy3PLy7seVNpoMwR3DRv6P3k595Pr+f9u+t7P/0v3o/S25l/eWnzj9p+XNfO8ZM0S3+1v1cX97dLj5cjX356d/oE"),
this.addDataEntry("gmdl google media design library button floating action button",50,456,"Floating action buttons","5ZZNj4MgEIZ/DcdtEPp1ru32tMne9mzCKGSxGKCt/vtFQVtXu9tkN16UmDAvM8PwMAcQjfPyqJOCvykGEtEDorFWyvpZXsYgJSJYMET3iBDsfkReH6xGzSouEg0n+0wA8QGXRJ7BK14wtpJBYInhULtjRHfc5q7GfeSmhidF7ZKXWV3+IsuZXJwN6HrNavUJsZLKWfuTOjnHXSqkbCVE6BbXwydi6hqyulxMuOK/xYYyQVsoHx61kcI5j6BysLpyLiFg6wOuglnulaVngzmIjNu+lhhvZ12eG0U3CSDHodLZQa2ChSdjvJwr42g9HeTVXCF39CaAvJ4rZEqmg7z5HXIL0wWKwsCTCNPmmwBh1cIYQluth9Ba7S/Qtv/cmeWAqQO4aUa38hGORZ7Ftfmx4/Bi1eu5zr7DF43gazUNMrHiAr3tx5iGCt6VcIV127/0O7412wQqTQ3YwZV0xxi7JWfenofe/f71+AU=")];
-this.addPalette("gmdlButtons","GMDL / Buttons",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLCardsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library card card",342,356,"Card","5VZdb5swFP01PDbiu91jPhtp2VY107pXDy7BmrGRcUqyX7/r4ISkQEsXtD0sURT7+Nr3+pzDFZY3zXb3kuTpJxEDs7y55U2lEKoaZbspMGa5No0tb2a5ro0/y110rDqHVTsnErjqs8GtNjwTtoUKqYBC7ZkBipTkeighwiMnCWVsKpiQh1UvOXwQL5QUP+G4wgUHDaYkFiXOHZyYVCAV7DrLPUCm1nsQGSi5x5CSxiqtIjzf1JgC3aRmmxeEFUiKCtic9ta3x4EhoJ0M791ktF76BUOTmf4iXqZUwTonkT6gRMn7cuL+GSfOhwE48RucfCR8Q9ChiH4jjIEuZU0SImmDLbyUZklfj0aEjRndcFz5IZQSmWZKcLWmv3Q0ko90IjmUb1aQ6Cs4YQ3h1K5nE3PA7CZAUEKBZzwZNno7rYPVvXlsRkFgG/7eItoPKkwCI4o+w0XKa8gPGuSvREQUxAiqUiuQiq0sNOliiyW6tki0GvuYH2ShXAemoDEdAFIDS6ycER4Xx/jPUJoI/HsiDHAFa7NHo1GXpG1e7lbv0XDVouiZBRy/VcwKWR75/gf63obv1NdkfRCUqzplYF/uEElSgGr44VRrL4uEVzXwY5tua2MDkDxIV75t3HC9HD/Ou5x5bijXzM+68WIxDjy/tuFXkRsnvmJpE/Gyj2U0jnX2CTFAhLyAPBZhSutt2PBVLm98v+HWO7ulGfmDmPWUblC33jW0nH9/WH35j9TcXSr3l8V9I/s1WuO0fm2tws/fan8D"),
+this.addPalette("gmdlButtons","GMDL / Buttons",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLCardsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library card card",342,356,"Card","5VZdb5swFP01PDbiu91jPhtp2VY107pXDy7BmrGRcUqyX7/r4ISkQEsXtD0sURT7+Nr3+pzDFZY3zXb3kuTpJxEDs7y55U2lEKoaZbspMGa5No0tb2a5ro0/y110rDqHVTsnErjqs8GtNjwTtoUKqYBC7ZkBipTkeighwiMnCWVsKpiQh1UvOXwQL5QUP+G4wgUHDaYkFiXOHZyYVCAV7DrLPUCm1nsQGSi5x5CSxiqtIjzf1JgC3aRmmxeEFUiKCtic9ta3x4EhoJ0M791ktF76BUOTmf4iXqZUwTonkT6gRMn7cuL+GSfOhwE48RucfCR8Q9ChiH4jjIEuZU0SImmDLbyUZklfj0aEjRndcFz5IZQSmWZKcLWmv3Q0ko90IjmUb1aQ6Cs4YQ3h1K5nE3PA7CZAUEKBZzwZNno7rYPVvXlsRkFgG/7eItoPKkwCI4o+w0XKa8gPGuSvREQUxAiqUiuQiq0sNOliiyW6tki0GvuYH2ShXAemoDEdAFIDS6ycER4Xx/jPUJoI/HsiDHAFa7NHo1GXpG1e7lbv0XDVouiZBRy/VcwKWR75/gf63obv1NdkfRCUqzplYF/uEElSgGr44VRrL4uEVzXwY5tua2MDkDxIV75t3HC9HD/Ou5x5bijXzM+68WIxDjy/tuFXkRsnvmJpE/Gyj2U0jnX2CTFAhLyAPBZhSutt2PBVLm98v+HWO7ulGfmDmPWUblC33jW0nH9/WH35j9TcXSr3l8V9I/s1WuO0fm2tws/fan8D"),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card Collection","7Zlbb5swFIB/DY+JbG4hj7n0Mq3dqrZa9zY5wQRUgyNDmmS/fjaYBGLISAJrVY0oUnywsX0+nwsnmjEJNzcMLf176mKiGVeaMWGUJtmvcDPBhGg6CFzNmGq6DvhX069r7sL0LlgihqOkyQA9G/CGyApnkkwQJ1siBS6KfSy6A80Yxz5aCjnDc/78sRcQMqGEsrSr4aWX6JYw+orzOxGN+JixnAqzBG9ql5uK5FpvMA1xwra8yzpwEz/rYVhONszHwcKXw2xTLhzFmWCxG7vfPf8hFVCtDENRBuRrGRngJJ0gEiwi0cxWd6gj07JGtlmnI49GSaHzdXqJzks0D6LFo9yxuRc90yUXQDn2Sa4R5O3gt2hCg7cZjnnrRWoSNiWin0dENzMZwwQlwRsuPf8SSuaZRzbcLISZ9RehS/oJXf6aIabi0afG0LEvOsJGtcLKA7bSOvtW1i6o07RVbcJTtSnnf6ABX9Zu8t5QL03fG5SfQD0vxolCY7eLRoAsBdAzQ2+YpIwYRuFJ5lRtJmVoNhhMnXHlES8YgdDK3wwss6aeMBdBOZgjMpL2HAauKxacd73DnoAz0As2T1JZp3ZlDS47CduyebZK3m7DNJcMe5iraY7jhvh3YaeR3q1qvR8xyFxXJYO0WzHI/DG5PTodUBm0QSXGiM19BUhR+0UqElTWObdH/UJEjT0orPKg7QDr5dlAl8ScNoiFiC2C6DHzosKZ3qcC3s05NXPjz3fpWnpU1cdmkttc2V1nFoZ9IUqJzoEdoBuqwY+HFB1AfmzAaMXVy2MFinhjhtHc5z6ubbJ7wZgmCQ1FPHMaetLxVHy4fO0HCX7igU5MvuZTHwmdh4FyJqc9jIrFUFxIYMWJsZseGee8I6MDs/50NE08IVDYfluFM8wk3gOOfBvJsTSimJ4X1CHTigMNgX1rT9VSoQzT6/xkv0a/e19rqd622ki7Sv8hVCi8iMPqY55jCrsaC7vSRC5iQKE2cTdeRS4SG/kSExS5ms6nARU3VGuUFKvsoR5Y/pqWnusyxEPq783JAq34UqOLdBKq1Ymn29HjVR2kom4rc/2RZShvzuA4Xdmj1opzHzfnaDA7eAtvCSdUUDpAJWm284rolNMbS+8CrFppufr5cPf9P9pu0f4Ttmp95iuKFohRyqU/ECFY7P8JeYgFrSc/Hz3JOYzhenUMaDmj3oUFe9gwLEDn1LjQOH6r5aFmp+CEehBIr9ZLnrU2W6lC02klsvbMLt4wYSulmhmavzYuCRS5nFkXgMcLA6Cf1x6P1QaqijktVVcHZf/aRXEVNqjm5Kz4yGAZ4w9F6PMDalC8OerS3pPO4LPh4c39n6lZ9+J/rX8A"),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card Collection","3Vpdb6M4FP01eUyE+e5jk6adlaazo+ms5nFFwQloDEbGaZL99WuDnQAGhgToV6oq+MbG5hzfc69tZsYqPjwQLw0fcQDRzFjPjBXBmBZX8WEFEZrpWhTMjLuZrmvsf6bft/wK8l+11CMwoX0a6EWDFw/tYGEpDBk9ImEIvCyEvLo2M5ZZ6KXcTqDP7r/cRAitMMIkr2ps8g+vRgn+DeUvCU5Ym6XoChIKD63DzU1irA8Qx5CSI6uyjwIaFjUMyy2ahTDahqKZbYqBe1lh2J7anp+eXQgAmsEwFDAAG8utoV2EiYeibcKLxejqGK104FrLNow2OKGlyvf5h1dOPT9Ktj/EE5tn00+cMgMQbZ/EGDVZjv7jRWCwMoEZK/0SSIK+jOjXMaKbhY1A5NHoBVbuP4Ql88opGx+23M0W2zhAC4rTf589MmiqGs3AVBschRcurKJcgs20VdTApaiJ/r/jiA3r1Pn8Rq90P3eqd8CbTQapgvrpKXoRYSlEPPLnj3dZ5F/kMc2eUHWb9Q1Y282zuDTPOSB/8qHCYeb8XpzgyPfQrXDZOAoCPmBZ9SvccF4cveTWKLdN6jqWM2wSHKseOCrp9hjelxK4gQwmH2Y96bfvtTUfdT/crWbcO3xRYlXxRXsUX5S3ka7oTsCKMwYrGfSIHyqEMPT1O8u2lzVWBFFFZemP+kCKeosnaBLPcQiby4A/JWPuGIzFHtlGyY9CRbmYPuYGVs2tGJaYUhxz1TNV1zqR2+iHrN8A74XSqtpbWL5IEqZOKoCjjyKNLpiA0huF0n8SFMURZSSewqKWMDTrTDOkOIP7kNV9YqGHm/eM5o5gVg9dz4LiepwqB8dS1si5ss/F8wRxr08U3T9zKrP0SuquXUhp30QRaAohX6OMwoTZKOaTAe8I+9p4L5gw5Hl3DNSMZvwq4aR56HkX8+I+hAlkz19cEnGJGb8JPNVms4iXF5fwW800ypzIXL9sa8jszY5J8rpEWpcS2eybljWBbwKgzoW/nn6uvzHbt79/tTHWmiDW11ZVGjWFsbqfaR2sSQ/2GSGQDCTtWGlQDqBiZ6BK4UB5PVSCm4yf8q7jMnrt1sVVEVQsGswLwqruWK7dK6wOiZgy17fUFKk5glr2CMqq7pQ87VJI4nwL651Ht15ogx4JSlcwG4SuusNxjzOaRxwa8nDzHeKUoftewswgRGuq3zfIDAJY3bkYVTr0qkxIhF1VJJZ3/G/YhmkLrrLFjalKv9202u0ShpaFEqhP93GUfZQ9humU3XXA2r59LWU3gRq7J1R2dSfhi4f8I+ZJ8513zD6HuttvqO7qyn+NUMRl/QHvUMAf8GMJewuYbyHs6hL8Awt7C64fV9h1dUH+roT9dgls69VSdst2+gm7YbXz19czdHX9+3E9o5hHwz2jC9jXdYxr17IXHKBp+ef6TaHuydwzRzGFbeAW0dycYku+4fz/Ch959vzfTWcop3cj2ni58iCljRjRQlvIc9quw5SmsDHSSbRT6X2Sg+g+rwRIrljLKM3gu2Lo8xPUY8HdKWlvyY7z2ehhxfMLZkX18vtn/wM="),
this.addDataEntry("gmdl google media design library card card collection varied layouts",358,642,"Card collection with varied layouts","7Vtdb5swFP01PKbCGEjyuLRL97BK1TZpj5MTnGCVxMiwNt2vnw12woeTEWIoTUdVKVxsMPfce3x841jwdrO7ZygOH2iAIwt+tuAtozTNP212tziKLMcmgQXvLMex+b/lzI9cBdlVO0YMb9MmHZy8wzOKfuPckhuS9DWShgAlIRbNbQvOkhDFws7wkt9/tiJRdEsjyrKmcJUdolnK6BNWV7Z0y/vM5KMwS/Hu6HAzkxzrPaYbnLJX3uSFBGmYt4DeJO8WYrIOZTfflQNHSW5Y7/se3p5/kA7QOwPWnAH4WD5B+yyfoIist+I0H13VR9CG8+n8mI9WdJsWGs+zQzSO0ZJs19/kG7sH0w8acwOQfb/LMdrqnPwRpwDyc4YTfvZTehI0RcRph4jj5jaGI5SSZ1y6/yUouS1DdrNbizS7WW+C6Cal8a8FYheFKtQ7ptzhVWbhjZefF9zm+nWvgXO9Jp//SAkf1v7ho6lTevxoXL4DXa0SnNa8vn+LRkB4NSDuSLKk3Gtn5Ys+DypJM/fAzBPA6MK4EOjCI/9KojxjRiIlBMJkiaJPMmc3JAjEmFXTr3glgBk7hbyOMlunueONL4uC13IKGkXdN5F+McMrzN20xEnDCNhPLY387un9fiIZla9KyegbSUZ1G5WLkw5QGZtAJcGILcMaIEXvF1GRQOWNVT46F0LUmD2Bjj3NADZSM36XiE1qiD0yPFqhhXgnfqOkBYAbxNZk+y3nVUGvD5mBN/NLhhlNU7pRJFjJtNmd+DuWlvy5AX0pEK+OaIuE7GpodiGfr2h2Px6vIGwUm1d4t07/ueWLioPOhQ2ERth5AjqIqqkJHjASRqfXAi216OQkr4MaSehnV2AEv5HXBYDANoFgyJlcs/Y4ndrF9YMmu6fZUVlXNKb76aV0rwHSFN0Dz+ue7wEwAeyC0ieenk/Xha1mKpd1i8uxtSsrIZVgZsFtW0cp66+QO7UxssUrbeFtqd2GDLg77QPveqlojp4pIym2xAoJAgEyoyjgjVJGYrNqDpYMcpFqVModBH9Fyr2E/B2/c4UmLC98sCXBBvxTaq+i5Kriz530Ie/2YQl9z69H5niqCU2VzUNUfMBIPayd5DvYVWGyNyUIjlTfjkpBLbLDloL1AlsLZIcnBfOI/dBa0EgRbZBa8HJw378YNFOMey9icNCI96MG67W8GU7SghJEhEVka7imp5+B/8vARjJwV4nHq5OFb1gJrC1N+lOF5xYI358qdK60QAg+fIVQjesaVeGQK0b9qEIF5kdRhUNGvBdVqNlO1tsM3F4A9ld/Gzf8us6/EPQuVVbrzWhn7H2ys6O9JjqNQ0MQ3IkREEZuJxOnkULZAi2fdAyq3ftSxKUlQzqn1832jVNdmmhIUrdrydAWwnGZI7vYQdhkM5nCivckcYIHhdD1A9SglHWS0t4SnfG1wcNPD78MyJsXfzjwFw=="),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card collection","5Vptk6I4EP41ftSCAKIfR+dmb6tu9652rbraT1dRoqQGCAVx1Pv110mAAQMzKLA7emztaJp0XvrpTvqJGVnL8PgpwbH/hXkkGFm/jaxlwhhX38LjkgTBCBnUG1mPI4QM+D9CTw1vTfnWiHFCIt5GASmFFxzsiZIoQcpPQSbwcOoTUd0YWYvUx7GQJ2QD7S+2NAiWLGCJrGpt5SOq8YQ9k/xNxCLQWWRdkYSTY+NwpSgb6yfCQsKTE1Q5UI/7qoblzJSaT+jOz9SmdjZwnCrBrtB9nT18yQxQbwxLM4YJY3mwjItsggO6i0RRje7cRobhzqeLJhttWcRLlZ/kIyrHeEOj3bdsxvaraMViEJiZ7vdsjEZepv+KomlBOSEplP7OLGm2RQRdhwiylSwhAeb0hVTa74KSfaXLhsedCLPJLvSCCWfxP2ucdHJVq94wVYVTFoUTR5VLZrOnutXMS62W9f8XozCsovPxHFW6H7vVFth2mxKuWb2YRSsgHA2IJwJWF4PHHkkuCpr6YDiPnPl0NhPo1PlyyduR8X4kqbAZi7gQMNMNDh6ywA2p54kx51X/IFuBjotKwR1I2aAB5LjdXOFUjcNeoZ/2EYNxQrYEzLQhaWsPsJGEv5XdnXq7vxGRua0qETntJSLzZvKAnA2AitsHKgAKBJevIVI2fxMsSiOPStQRqNYLqVm3kPYD23jqDI/brA/cYBgcFqufGkqtEXKGAyiP2SEBmvcBUIiTHY2+qf1ObHtfpACqzSqCBeOchWJzsltn2PCGyEd17rFDtiuqffL33O5m7dY55C6GXNTLNjYzB8DVNN4H9m3Gs3gU/zqlkfM2sVUys1uz2rk9BdO8uktl5LFno5ua0VcJfgHue256sBqvyc/WWYCc5WfIruE8Z1ngXD7XB0EDVuUUwjF0eGyjnxgYAg39BOArOYDgB0ue4WNJ+aktMA2J8zkwYn7nwBjyuVVgzg8f+kFGP454xCdFr+KYwOS9CZRWPoG/nIQxSbmEicpmEryTZOxAwQLI2EceDWlE5S6FjO1eDANsa6z3QovLVg40EluH6ILvk0jW5Kx4nbI998cEp1x0/FnoHWDKMG/RIn5h+wSvA1Fz4+NoJ77gyCvUVzh6FsRQyneYRpMmxzr4lBPhREJ8gC00l32vyjI/E44yPQt+u8Y/OSspFdusoZFCc1BHtHJvKTvibNaLI5rGIGuEfuTysFx9/vMryMyOi0PdQdXZ2mAvncfFQ4l8b8DaJKngXzSTjaMrXqeKQgm9eU2OY/cD3tgZZBnRj2kK8PRs5zLwZkOBNwhydet/R+SOVacYFsheDl3aspBsKbwFClLwThvpzLOelOSm+5CkpMUxzuCkRDnb/4mV6IcwECSQanHKorbL5C9kJk2A3TI10Y9dnvaR6OU1Y10QvPE77mI/g5/8YngGIShIPz0BMiLT+4P6SKE58QHmFzSBbTOuAJiEOY4RY1GZKKRCY002WKqGTDbkUaA10YarKRR8ZH+XFKKFr9weh0D6qc/dcIgmwO6HROQpyN2RiMuhu3EWUXPJRcOvK4u4Jc6Q56jvUYa+8qQhGMPVV2IuunzRLQF6Gwc9zupB6GmNtAfZ4fSDlisia403z3VxUkRQEy5X/vaufKeR6BkTVP0BvPb397prEz1dZHKra+IQ95ja3GbJsQJNGqfkQyF0/wBdfiLycdBx7w0eKL7eT1bVy9eX/wM="),
this.addDataEntry("gmdl google media design library card card collection",358,642,"Card collection","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"),
-this.addEntry("gmdl google media design library card card",function(){var b=new mxCell("",new mxGeometry(0,0,344,254),"shape=rect;fillColor=#BDBDBD;strokeColor=#BDBDBD;shadow=1;");b.vertex=!0;var a=new mxCell("Greyhound divisively hello couldly wonderfully marginally far upon excluding.",new mxGeometry(0,172,344,82),"shape=rect;strokeColor=none;fillColor=#ffffff;;whiteSpace=wrap;align=left;spacingLeft=16;fontColor=#666666;fontSize=14;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
+this.addEntry("gmdl google media design library card card",function(){var a=new mxCell("",new mxGeometry(0,0,344,254),"shape=rect;fillColor=#BDBDBD;strokeColor=#BDBDBD;shadow=1;");a.vertex=!0;var c=new mxCell("Greyhound divisively hello couldly wonderfully marginally far upon excluding.",new mxGeometry(0,172,344,82),"shape=rect;strokeColor=none;fillColor=#ffffff;;whiteSpace=wrap;align=left;spacingLeft=16;fontColor=#666666;fontSize=14;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
300,230,"Card")}),this.addDataEntry("gmdl google media design library card card",342,378,"Card","3Zhtb5swEIB/DR9Tgc1bPzYkrSbtTWulfXaDAWsORsYkYb9+h3GaEohCG9JpIy9wZ59tnjt8NhaO1rsHSYrsi4gpt/DSwpEUQrVX611EObeQzWILLyyEbPhZ6P5EqaNL7YJImqsxBqg12BBe0VbTKkpVc6MoM1I0l5KuoMl5wjiPBBdSl+L5ovmAvlRS/KKvSqg+mpKMxGILSgcE0x+Viu5OjlmrzIAfqFhTJWuosmWxytoa2DUDzShLM2OGg7BVkrJVpC+2BwRwYSgME8FvJnL6zo9YJfoAvaQl+01/mtsZjQW9D0vQhoAtKSeKbWin/UtQueNRgSErStqjlYt8ANStPsZiwWexuHafivtWKqaH74JBx8jej8drLequuG9AJElJVQ/qyzBHcfZ6nJ+YAsLHsAGSmg4awl6fGpqGmv8B1PwetcfqOaMkPsUtEbm6YhB+IE98DZ5Bj+eDpHUmqhyI2jHbsBJugNf6DjkXcF6JisdasxV5TGVScS2tiUxZTlohIRL+q0LkcKK7Fa9ilqc308+68N1mTNHHgqyahraQdUFHOEtzEDlNdLtQCv1/1tLC8fuB4esD9E1IsBXhd6YFJYpDA0+NsHBsY/8IE34j40ONHyYMdB+XJADjdeSZYDqXEBw0QZ4MPyBPvstjbt9jL4uUaRNv3TE4R90NL3vUTW8z98h5kzzctxd6cziP36MgitBYyuEbKe/XH5351L1GVp/hazB37PPQY1JmtKlvtwtp7YH1Lm02DDfpOuY3kNHkWH/MPbwMvbH+uB32x66zTq47S8FX3nHCgYnHv3zecZzrhKo/ny+W/2Co+l1HXClUR+wTz4eqpAVk/LFbAG8Zjt8wntgx/u1Y7W8m76KnT9++Thqxx8uTO3Tvof2yw3ThDCxDLon0rsHJuA8GNl7YnyTuZ46HupG/T7rTRn5/kzuhC3GwiHDfhWHkeF70/7sw8Kb3IIiH12dt9ddv1/4A"),
this.addDataEntry("gmdl google media design library card card",344,420,"Card","7Znvj5sgGMf/Gl9uQdRqX27edluyX0kv2WvufKxkVAxy13Z//ShibYfm7K69VDLaJvDgg/D9WB4BL0hXm1tBquIrz4B5wQcvSAXnssmtNikw5mFEMy+48TBG6ufhjwO1vq5FFRFQyjEOuHF4IuwRGktjqOWWGUNdkGqXFfCgmnyfU8ZSzrjQtUGuk7LXUvBfcFADOu1qCpLxtTL6qmDuB0LCZrDP2mQ6fAt8BVJs1SVrmsmiuSIIw8atALosjFtoBotI3RiWe99OApUxKvQrEoxXRDnSqgZr8CUvwVZqrtNYCfCzEoSoRwFjE8CIpE9w1HyfKuYOPzhVN8ao7U/UeGyPi20DPM9rkJao+26O0jm0dL6jUin8t9hKJHk+0XAQ2arh86g2ewXVIku1xeN9ASQb0i3npbzgQ/iKegaX0HN28vw35q8+00nZBdT0N/w0evl7y6dWrdFT4gAK44DeIt83Yzmgk/g2nNb2r3AMjRhdgEbsCg0cJfHkaSSu0IhQlEyextwVGnHUjmXCNHzkCo4ucGz3sxdq386mTMh3hVAXTBwjdPri80oJdQHGMUInLIavm1AXdBwjZC+jJ0qoJw6FKJz+e5tvL9knSqgnDrlByJlNgJ445AYhZzYGeuKQG4TszYJ36d3n799O43R4bDB00KC+64JKWFTkYdfQWpBK2Qijy1IVGeS6XVVLy+UXXbpRYdLaCo31x9gXpoN+W1b0Wz/76XjJo7A9cnj2SCM5C/M389kloNt7Ev+hXxH0tp2XQFfF7jSyufzwsPIP"),
this.addDataEntry("gmdl google media design library card card",344,162,"Card","5ZfbjpswEIafhstKYAeSXCbOQZV220obqdduGIJVByPjZEOfvgYMIWtQQbtIVUsUYY9n8Mz3Y1s4mJxve0nT+FmEwB28dTCRQqiqdb4R4NxBLgsdvHEQcvXfQbueUa8cdVMqIVFDAlAVcKX8ApWlMmQq58aQxTQtmhKO+pHriHFOBBeyHMVReWl7pqT4Ca0RKK9iJKaheNVGT3fMfCAV3HpzLk0m4T2IMyiZa5dXFqq48sCzWRUWAzvFdVhgsqdZZTg1sXcEumEodBPBo4n0V97HSkLGfsF3U85gLKgbS/4Q8CdIs0Vlk8CpYld4CO4CZyb8JpjOo5ntU/2cOkREUQbKIt3kOQj+zIK/OiomkmIeCVTf8Mj3c4fnG4ItlRKRlAKJRLWct8RbLgNtFyk9MlWUil3j9qIVK8Rq+iYD7z3SmYBGlJZ4Oo9pXnDfYnxgSpfylqsuRz3WjlwbWVBeBd8CWXI6iLSmVCBhR8pXnJ0SbTyzMORwd32CSNW+H7siWhgbtA9rwB25BoayDSy2L5cfMdBwAF0PDaX7d8NFY+F2bzC1Rh+6v8wtffYS8lhcEq2QG7Iry3TGPC9L4lwMkQ3bsmFS/P5L2QJ/AtkW9rFADp+/fhl3Mtd7fs8B8UbDBfF8n1ibvb1kJzm6566tEA7ep9DtYf9vznE0gWDLKQUL1uvNtmOvXKGdj/5BwRYTKKa794+Myr39DfIb"),
@@ -4621,11 +4691,11 @@ this.addDataEntry("gmdl google media design library card card",342,146,"Card","7
this.addDataEntry("gmdl google media design library card card",300,176,"Card","7VbbbqMwEP0aHiv5Qmjz2NBtVKl7kZofcMMQrBqMjJsm+/XrW5oQhwZt07eOhITPzPGYcxhEQvN6M1esrX7KAkRCfyQ0V1Jqf1dvchAiIYgXCb1LCEHmSsj9QBa7LGqZgkaPIRBPWDPxCh5ZcC3AQBUo8MlOb0VIFqyrwFJRQmddxVqLK1iaXrOSC5FLIZUrpaULW6aVfIGDDLjwGxTyzYDY0mWjD4qQi4A/8b+2EUl363Aim1+D0nzJxK3gq8ZgWrZ265YtebOaSa1lvTuvxx6htNLgbA8tLOcOTwzCwjbCVc2CPKYHbAYldlDQdw6yBq22puSNF7ryFTQNQlfAV9WOdp15kHUeWL1z946Zm2DaaQNpZODT67P+yEPzJDrWe+qirzemI/SueVEIGC/5KEXJWUVJmsWKhpcdKRBM8zX09j+lcmjxR3LTmaCtr5hM+wxZlh3oyJX3g40yKo2Mipz5eKCeXUQD1cgGPilrn3AgMsanXtsd+L8qh3ZXmNx4TpAdZ18g+ySS/TZfPPz+ZTB81oCjUTgp/NBn72i+UhdH84Q/adx2yLgbFPtGL2Nb37OrFH2Badmwaeen5tu02LRpdnnXzHL/n+LLD39j/gE="),
this.addDataEntry("gmdl google media design library card card",300,224,"Card","7VbbbqMwEP0aHiv5QlDz2NCLKnW3lZofcMMQrDUYGTdN9uvXtyYhhgb18rYjIcGZOR5zjgeR0Lze3inWVr9kASKhNwnNlZTa39XbHIRICOJFQq8TQpC5EnI7ksUui1qmoNFTCMQTNky8gkeWXAswUAUKfLLTOxGSBesqsFSU0EVXsdbiClam16LkQuRSSOVKaenClmkl/8BRBlz4BQr5ZkBs6bLRR0XIRcCf+V/biKTvz2FHNr8BpfmKiSvB143BtGzt0i1b8Wa9kFrL+n2/HnuA0kqDswO0tJxrPDMIC8sIV7UI8pgesB2V2EFB3zuQNWi1MyVvvNCVr6BpELoCvq4CjZBLD7LOA+s99+CYuQmmDRtIIwOfX1/0Rx6aN9Gx3nMXfb0xnaB3zYtCwHTJJylKzipK0mxAUX/YkQLBNN9Ab/0hlUOLJ8lNZ4J2vmI27zNkWXagI1f2G5tkVBoZFTnz8UC9uIgGqpENfFHWPuFIZDwbOLZ78LMqh3YXOAvnP8iOsx+QfRbJfpUv7x9/GwyfNeBkFAaFH/vsncxX6uJknvAXjduNGXeJYt/o99jW9+wiRT9gWjZu2vmp+W9abNo8+37XzOPhP8WXH//G/AM="),
this.addDataEntry("gmdl google media design library card card",342,272,"Card","zVXbboMwDP2aPLaCBLo+j219mrRfSIchqAGjkLXw9wtJemGlaqXSqZaQkmM7ds7BCmFJ2a4Ur8UnpiAJeycsUYjarco2ASkJDYqUsDdCaWA+Qj8ueEPrDWquoNK3JFCXsOXyBxzigEZ30gON4HW/VPBtjnzNCikTlKisl2XWDN5ohRs48YC13iN4ijsDhmbj64HS0F7s2UK+4RVgCVp1JmRXpFq4CBb5RgUUufBp9MWDvHFAfsg9UmAWnoVxRti9jKytnTFSYQW33p9evT+NgpH770EFkutiC4MCY6T4Gl9YmNI02He0cBndcLs/ALOsAX3G6aHRm2iOrtOc8kZAHx64n8hyXrZ5PyzzvEzlXABX+hLTf2RZWLtTgWHCqR4jcoTLSdSYxWwgB1s+QI54CjnWiJuSq81TKBJGIwMyzXzM4nCgyPIRA7KYQhEFteyeQo5/HJCQxffrYbbHV9iFnz7Svw==")];
-this.addPalette("gmdlCards","GMDL / Cards",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLChipsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library chip chip",170,32,"Chip with text and icon","rZRfT4MwEMA/TR+3sHZMXx3T+aCJiSY+N3BAY2lJ203mp7cthY0wHWaWkPTuen/6uwNEkqrZKlqXzzIDjsg9IomS0rS7qkmAc4QjliGyQRhH9kX44QfrwlujmioQZooDbh32lO+g1bwp2EtldY9UaBCtXZsDD3Zd0tptFaQ2w5qq9JV9OUUcWVEbJT8gkdyGIBshhbWsc8Z5p0KYgF9Wr+ROZOAqWTjXmqZMFE+Qu8rx0jlKYUL0BXHJOCuEFVJ7O7DR1qF6UAaaHwl4Vbj+FmQFRh3skU+WmTKcuGkpRSWwogxuJLChupWL3vXI024C0vN4yQjviGdGdekZeHwBbtUUbiTmRZXx+U77u05Bu/JrKhh8EUzH4BwXBZwatodB+GtgLS/D6vhYR1ZrmEjlLnaPmx9d+6nd5KxxzK/CNHQ4hK9tHrfy6XStxhA73WSIIf+LZLasPvmsgxbSz26HEWSeazCjJvS3mNSX+D+GuBn1yjYm96u3vAdmeGpnlr92Jh6gGfflTFtWf55iKx7/1i3c05/5Nw=="),
-this.addEntry("gmdl google media design library chip chip",function(){var b=new mxCell("ANZ Bank",new mxGeometry(0,0,170,32),"shape=rect;arcSize=50;strokeColor=none;fillColor=#eeeeee;rounded=1;spacingLeft=24;fontSize=13;align=center;");b.vertex=!0;var a=new mxCell("A",new mxGeometry(0,0,32,32),"shape=ellipse;strokeColor=none;fillColor=#009587;fontColor=#ffffff;fontSize=14;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,
+this.addPalette("gmdlCards","GMDL / Cards",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLChipsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library chip chip",170,32,"Chip with text and icon","rZRfT4MwEMA/TR+3sHZMXx3T+aCJiSY+N3BAY2lJ203mp7cthY0wHWaWkPTuen/6uwNEkqrZKlqXzzIDjsg9IomS0rS7qkmAc4QjliGyQRhH9kX44QfrwlujmioQZooDbh32lO+g1bwp2EtldY9UaBCtXZsDD3Zd0tptFaQ2w5qq9JV9OUUcWVEbJT8gkdyGIBshhbWsc8Z5p0KYgF9Wr+ROZOAqWTjXmqZMFE+Qu8rx0jlKYUL0BXHJOCuEFVJ7O7DR1qF6UAaaHwl4Vbj+FmQFRh3skU+WmTKcuGkpRSWwogxuJLChupWL3vXI024C0vN4yQjviGdGdekZeHwBbtUUbiTmRZXx+U77u05Bu/JrKhh8EUzH4BwXBZwatodB+GtgLS/D6vhYR1ZrmEjlLnaPmx9d+6nd5KxxzK/CNHQ4hK9tHrfy6XStxhA73WSIIf+LZLasPvmsgxbSz26HEWSeazCjJvS3mNSX+D+GuBn1yjYm96u3vAdmeGpnlr92Jh6gGfflTFtWf55iKx7/1i3c05/5Nw=="),
+this.addEntry("gmdl google media design library chip chip",function(){var a=new mxCell("ANZ Bank",new mxGeometry(0,0,170,32),"shape=rect;arcSize=50;strokeColor=none;fillColor=#eeeeee;rounded=1;spacingLeft=24;fontSize=13;align=center;");a.vertex=!0;var c=new mxCell("A",new mxGeometry(0,0,32,32),"shape=ellipse;strokeColor=none;fillColor=#009587;fontColor=#ffffff;fontSize=14;");c.geometry.relative=!0;c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,
"Chip with text and icon")}),this.addDataEntry("gmdl google media design library chip list style",358,642,"List Style","5Vldj5s6EP01qE8b2YYk5HE3u+1WaquqrdTHKzcMwY2DETibpL++HgNJCCQhG6iqXqTVwthjhjnnjD/iuNPl5l3Kk+ijCkA67pPjTlOldH633ExBSocRETjuo8MYMX8Oe3uildpWkvAUYt3GgeUOL1yuILfkhkxvZWEIeBYBdieO+5BFPEF7CjMz/kMopJwqqVLb1Q3thd10qhZQtsQqNj4Pxasg1bA5Ga41FbG+A7UEnW5Nl7UIdJT3cId+7haBmEeF28grAudZbpjvfPdfb26KBDQnw60lg5pY7l1yXU5UrL+KX2ihrnnmUsxjbM6jPc7ZlFF/+HAqZzjYQee39sLOCZ+JeP6lyIC3N31TCb65DKSIGeNMITNhfS8ySdsiwl6HCPNyWwqSa/EClfFvQcl7JWWXmznKbDBfBnKgVfLfD57eRFW3OTFVh22hwsEwfz5ImzeqZ41em7Xi/Z+VMGHtXn43YZXX342rI6gwzEDXsr77ilZADGtATNUyURlcJZdm2lc18jShTyO3kcIHamPksmByddwd6lJCqPcdPtinxzHrWR7D8W1Ab6sq6xTYURcKK9Nagbc+R5RYts73sDnfZ3RGm3Q26kRnpQZKmfk9oDHuAo0M4qCl2HYA3QJH6yJYfk1l6mDdFEH3CB1Ke4DHr8HzTd1QAA0AYK8zwJytgobZtSo4sdf1VdCO1WsVvHG6K5D1+wB2Ugc2hReTUkaeeWwEVUP5CFiezgpMhqSl9nbQp2oVB5YxtIYK8xpWma1Q8q+vneXi9xA1txt9jsmRPEc9oEhJF+VzlcHJteIRhCN7IfxZYnnwGIoNjt4OosllITVUzNJ2y7q6rI4HmbqXJlJGPoHM1P+D7qw/ujPi/wm+v3ZH3zXfW232W+z2+2J7fbP/WZqybkyhrfE6AowEYIFLpwvcP6bn9XP65Xn4z27fO5qZabkG65bk9TOAZ+Ew42ck5VKk9XvT/HOVYShrHmskJNFmYUZmEcwWOFaMUSG0JAOEWoQYtlphInhgGzFRScEKHQn8t0pmammQ2XNjYG6/4wAm6Xm/eJF3UKFNKg/yx1VSxvCJJxzdPmAmyArHXcRqfRDEGwxAigWULnO1C3cNb2w2ltw2G15A+mJAUnE2uIaoXhuFF6Z1JDR8NaREz7UpFMaGxBMzLu8L6mpcVZ4g8mkS55bnknp989ojpBti+5M+iF0/U2lXva84TCH26rygbCsOF2HwO0Hhzutjx007OQD5wU2dOXcAcgqXVx6M0PNbcTI4OqxoXP94dai6OpIcV1c/fZxI0hZnJSVWxlMkGfxVCP37ANVPSy7NWH8POuN/DR7zuP+lMe9++EPkbw=="),
this.addDataEntry("gmdl google media design library chip list style",358,642,"List Style","5Vpdb6M4FP01aJ4aGUMIeWzSznSl2dnRzkjzWLnBCWwAI3CaZH/92gaSgE3Ch2k1XaSqibGdm3POvb73BsNaRocvKUr8P4mHQ8N6NKxlSgjNX0WHJQ5DA4LAM6wHA0LA/gz4ueGuKe6CBKU4pm0WwHzBKwp3OB/JBzJ6DIsBD2U+5tOBYS0yHyV8PMUrtv9iHYThkoQkFVOttbj4NJqSLS7vxCRmaxbFR+GU4kOjuWKosPULJhGm6ZFN2Qce9fMZ1tTNl/k42PjFMscuDEdZPrA5rT1/e/aiAEANhiWBYTJb7i3QDRMS0x/Bv3zEtNh7FAabmN/Ora1jtoSmO100YcY3u5j8WVx8coJWQbz5u0DAPg/9JAn/5NKQwmZuZ4ozZtavAkmzLSOwHyPQzsdSHCIavOLK/kNYsntKNjpsuJtNNpEXTihJnl9QOkiqlhqY6oJj4YWTaf7+AjbbkVEzu6JWfP53EjCzTh9+N4eVj7+bVXcg63WGqYT66Vu0ImIqEbEkUUIy3Mld1LKv+sjj3Hx0LKWEL7wNgtsOk3vH3aVfhnhNzxO+incPMziye0xnw4g+Vr1MK7GODg8rYa3QK58RJZet8Z6q8b7iZ6bKzxwtflb6QOlm7ghszHSwkeHYa+lsJ4KG0NE6CJbfpnJ0QD1B0KqxY5oj0ONK9PwkAwIgIwCL6woxV6MgU7YUBefi6h4FxV6jRsGBx13BrDsGsXOZ2BS/MkgheEIxcyiJ5RqxKF0VnExBS987UZ+SXewJxZgSK9BWZJmtWHK7x84y+b1kzdLjnzNQc09nBBZNoCN87jLcmCvWKHTExenPEqGDh3Vw4Lu3o2h+25EUEbMcG5JXl9HxAqn7kFkKwTccZuT/IXc4ntwhcN9C730ret16b1Xst6j2x1K7XOx/D1lYZ0NrEeOpj7klGG956nRD+3V5dj/Tb5/Db1u+azqZzTIH0ytyuQfwFBiQrWMuZZlc1n+w2//sMm7KHsWUCxJQlpiBlY9XW75XzK3i1IIMc6qDNTeb7DgQyBM3OVBJoQrqB/zfLlmRiDFz1saEvfzFN2Cg5/PibT6BrAWoyMvf7pLShm8oQXzZV44E2PF9tzHZXxjxiRsQBltcLtmQk7l7/EmgESFxm+kCp6+MJBJnky5Ctdt4eDG09wOKfzBR8pV7FijYGBdesELhfSFdyrPKBiE3izgfeSqlN7aubQD0CNudjyFsuafSLnp3aKacC3Amcya6SxpGiC5wbsssmK6ePtfUqRyp7hj1t9m3HdKBEwAWrmjitjs2G4ruW6jPdJybWtoRffKLdtA4nXM+S9EesvS0h8x6hTOKPuUOxJJFebTihsQoktuxDMD6WaBoGpzjhNQ0qEf+F0IpiaS0ZTrVRJstkabUd1mrDtK3XPZTUfY/+4YN8AFFSYgnLAdog6o9CNX8POXb/sXnUg6GA8ZD2XpDmGHfspxtEyQZHqWX2YRP+2amonqEA/ONUzMT1mJJjQUtsQTKPYAe0f2gqoBOR1zPvn+OYyM51UTAkahRpIJuMwetZfxu1fagROEsYevjnYeKn/HzCN4jgFtte+lAEb+jwPNCPCReX6fPVQSg0eK1ll/d30/orny2/fY6l2tFX/wu8Uw/mNBNG7yh0t+k3OOX9qr7WFlwsxPiDtN6KW57FHFrKTNf0Gp79RmEJl765ijXE0gwqT0voPwJQtUu0fRU0KwalsZ4KEjxe7hE3K1c/j0Z+vgEyQVuI0FNTyi8Gzuzj0YPe3t+2Deffvks8H8=")];
-this.addPalette("gmdlChips","GMDL / Chips",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLDialogsPalette=function(a){var e=[this.addDataEntry("gmdl google media design library dialog dialog persistent footer",280,472,"Dialog with persistent footer button","5ZhdU6MwFIZ/DZd1QigfvVSsvem6ndEZr2NJS2ZTwoSo7f76TUJAaMCtCnXWxXGmnHzAed5zThIcL97tFxzl6Q+WYOp4c8eLOWOi/LXbx5hSBwKSON61AyGQ/w686Wl1dSvIEceZOGUALAc8I/qES0tpKMSBGkOCihSr7sDxrooU5crO8VrOf7UhlMaMMq67eht9qW6Cs1+40YL1VU6QsBdpdOWNeTjmAu97HdAm8/YLzHZY8IPs8kISkRonotJJkGKyTc2waWhcQUVp2NZjX3nIHwZJNx7PwrNgbCvJQPBAJjfEgiUdUVyUS2SN6CUl20y27EiSUO1+jtYk2yr/A8WPZeKO/FaDIajuzWwKEMeFbH0wrp6MDH4MWWBsHFMkyDNuzf8ZjFML453kgqhmJ197K1+rh6QBtsQb0YTWCK0IqL82TNd9HXrPcmkJzk7Tey9N84gVI/LJEBzaolQj2GZTYGHRr1/sJEF8S5D5fi27KJ97hGjS9VuRDPtl+rpYHoj+bAz6gZ0OeP3EiTicWk8emRBs183dmK5Ml2u/IzX6Uui8GvnDaOTCMUQKLZEiAC/cvbTNL1fvLFfNxPnavJgOxDwcg3lkMV+honhhPPnoQvvGugHALIiif7UwQXcMAWaWAE4Yf7Qo1RUI/DUx6s3P99HH80fQpxL9rf16tUWnJMP1Vryip9bqjC3RozpqaJbWVn0k7mYAuAB+aEY1pZhG40kxyhbKde1VPJUnGwWjp2YdHZ5sZajSZcUKIghTGcVLFnWmLY/a62qHTApSnV6fq4rq6oqLQF9HC9pUxQl7yhJ9QtTxZDJ6wDTtyFL4ydDYt6c5VAE3StLah2wTKSh5RtlaooOA5UrT4r+PmbroaKWHLPbniyJ/lHpjf4uIL2/j+bJveW4i9zr2nX3LbW8gDFD93RYoexkIfVukKRxEpIkbtGWaVBMPK5P9rSP+eXs7j++/k07RiDpVcw8pk7x9/aZadm9+cv0D"),
+this.addPalette("gmdlChips","GMDL / Chips",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLDialogsPalette=function(a){var e=[this.addDataEntry("gmdl google media design library dialog dialog persistent footer",280,472,"Dialog with persistent footer button","5ZhdU6MwFIZ/DZd1QigfvVSsvem6ndEZr2NJS2ZTwoSo7f76TUJAaMCtCnXWxXGmnHzAed5zThIcL97tFxzl6Q+WYOp4c8eLOWOi/LXbx5hSBwKSON61AyGQ/w686Wl1dSvIEceZOGUALAc8I/qES0tpKMSBGkOCihSr7sDxrooU5crO8VrOf7UhlMaMMq67eht9qW6Cs1+40YL1VU6QsBdpdOWNeTjmAu97HdAm8/YLzHZY8IPs8kISkRonotJJkGKyTc2waWhcQUVp2NZjX3nIHwZJNx7PwrNgbCvJQPBAJjfEgiUdUVyUS2SN6CUl20y27EiSUO1+jtYk2yr/A8WPZeKO/FaDIajuzWwKEMeFbH0wrp6MDH4MWWBsHFMkyDNuzf8ZjFML453kgqhmJ197K1+rh6QBtsQb0YTWCK0IqL82TNd9HXrPcmkJzk7Tey9N84gVI/LJEBzaolQj2GZTYGHRr1/sJEF8S5D5fi27KJ97hGjS9VuRDPtl+rpYHoj+bAz6gZ0OeP3EiTicWk8emRBs183dmK5Ml2u/IzX6Uui8GvnDaOTCMUQKLZEiAC/cvbTNL1fvLFfNxPnavJgOxDwcg3lkMV+honhhPPnoQvvGugHALIiif7UwQXcMAWaWAE4Yf7Qo1RUI/DUx6s3P99HH80fQpxL9rf16tUWnJMP1Vryip9bqjC3RozpqaJbWVn0k7mYAuAB+aEY1pZhG40kxyhbKde1VPJUnGwWjp2YdHZ5sZajSZcUKIghTGcVLFnWmLY/a62qHTApSnV6fq4rq6oqLQF9HC9pUxQl7yhJ9QtTxZDJ6wDTtyFL4ydDYt6c5VAE3StLah2wTKSh5RtlaooOA5UrT4r+PmbroaKWHLPbniyJ/lHpjf4uIL2/j+bJveW4i9zr2nX3LbW8gDFD93RYoexkIfVukKRxEpIkbtGWaVBMPK5P9rSP+eXs7j++/k07RiDpVcw8pk7x9/aZadm9+cv0D"),
this.addDataEntry("gmdl google media design library dialog scrollable dialog persistent footer",280,345,"Scrollable dialog with persistent footer button","3Zjfb6owFMf/Gh5dShHER2XOF6/XZEv23EmF5lZqSjf1/vW3hYKYwuYcdbnDmMBpz2nP50t/4XjR9jDnaJf+YjGmjjdzvIgzJsq77SHClDoQkNjx7h0Igfw78KGj1C1KwQ5xnIlLHGDp8IboKy4tpSEXR6oNMcpTrKoDx5vmKdopO8drGX+6IZRGjDJeVPU2xaWqCc7+4EYJLq4yQMz20ujKB9045gIfOhMoTLr3c8y2WPCjrLInsUh1EmGZJEgxSVLt5g390ojy0pDUvice8kYjacfjGXjmjCWSDATPZPBADFgyEcVFpUTWiE4oSTJZsiVxTIv0d2hNskTlHyh+LBOP5K9yhqB61tEUII5zWfqsU70YGbwOWaBtHFMkyBs+i/8VjEMD46PkgmjBTnY7kd3qIKmBLfBGNKE1Xq0QqN85TNc9uT6xnbQEN6fpfZambmLFiGwZguO5KJUH22xyLAz6dccuEsQ3BJkd1rKKyrlDiCZd/+xNht0yfd+73BP9sQ36gTkc8PqVE3G8dD55YUKwbTt3bZrqKvd+y9DoGkK31cjvRyMX2hBpZIgUAnjnHqRtNll9crpqDpzvHRfDnpiPbDAPDeYrlOd7xuNrF9p31g0AxkEY/q8TE3RtCDA2BHBG0bWTUj0DgQ8HRr35+Tn6eL4FfSrR39uvV1t0SjJcb8UremqtztgCvaijRsHS2Kpb4q4dwB3wR9qrKcUwtCeFlS2U69qXoj41WZfieBbjRsIM/MCGMOaZNposo9miax5rLtBeywLdNS91rj09aPORLCO/ZWmHX1NFNz1wq/FSyVQF7lcm82wd/V4uZ9HTT9IptKhTFbtPmeTj6eNTWb35beof"),
this.addDataEntry("gmdl google media design library dialog message dialog",480,480,"Message dialog","1Zhdc6IwFIZ/DZc6gSjqZau2N91OZ9qZvY4QIbuBMBCr7q/fhCQoBC1WmNnFcUZOvsj7nJNzxIHL5PCcoyz+wUJMHbh24DJnjKtfyWGJKXU8QEIHrhzPA+LreE8XWt2yFWQoxynvMsBTAz4R3WFlUYaCH6k2hKiIsewOHPhYxCiT9hwHYv7HLaF0ySjLy65wW16yG8/Zb3zWgstLTRCyvTC64kYvjnOODxc3UJr00z9jlmCeH0WXPQl5rHpM5mqTIMYkinnDiApliKqxJz3EDy1JuzzQkucV74UhwUWBInyTVnKbJED0gZIoFeaEhCEtJclQQNJIauJLTVnK38kfOdKF5l4vIUXLcSFaf+rtuw0KKUvxVQBIL0/xlndF4H0XgbLlmCJOPnFt/nuwTL7ptckhkpE2jpKQjg+VTEZLr004v7y6KgXblaoPOOrIHE/V/ZmO7sSW0dg6y6jXf2NEPFa1+AhOasuPZvUZ2HZbYG5hqHbRiczUIvPBLDZCQH7y+5fSEU++f6b9HMhPS0zooR8sExa/NSiGdGwI7iOiCfhgAAK+ReB9t/klj6ALGC5oa+KhHZI5kMAVaP8BARdMB0Aw6+N40lmjfkK5V4/2ljzQb1wcawO+YuRPe2E08odgNLcYPViQGgn8q2ShJadog+kbKwgnTCbaQKiK87MC4KXRgctTrMrLVndTL2wY5yypB6wHTiH6qNtXI2gHZZXFGhVbUF4tQd3JTWY3uonXkt36SW4m8RifMdP26jOLPuIacY6COCk17L/+uJXIwgbSE5FZo9qYDEHEBX0gyeiu+BdgDFj8uUYpgwMuhsDh2sXH+nXVtfJo/tNpnGHeejZ/OqtJVPUHrv21sg7Ve7JfaxHfElIDpEJTwi8aFPtIjeL29L5BdT9/HfEX"),
this.addDataEntry("gmdl google media design library dialog dialog",280,273,"Dialog","7ZZRb9owEMc/TbQnKifpgD4WCmzSJk2j056t+JJYc+zINgns0+8cmxAI1VC77WmWIPbd/e+s+12kROmy2m80rcvPioGI0lWULrVS1u+q/RKEiBLCWZQ+RUlC8Bcl6xe8ceclNdUg7S2CxAsaKnbgLd8MoGGjVCHgncGtUBm1XEncGtANzzBw7WXGHkSQMWpKcElJlC5MSWtn15DhLRY5F2KphNJdaJp3y4VZrX7A0SOVBK9lqsVz7JRK2i3/6XLFD+E8yES65UQ1zbgsnlWNjskULW3JLWzR7LQt9vcU5ZK5ECp4IfEgIHe3bEBbnlHxGMzWJVuE/qAP9i/2uDOFBm9AVWD1AUNazmwZ+jz3HEgJvCiDLJml3kiNNxS99oQMN4HadYLpiOAnsD3BrqKoXY26djQZWNAVlzAge4f755I7dwVUmo60ZK5VqEMuh0rtLkaBUUvxYdWgFN6VQAPO3ZbdQ6pTZewX/uudlJj4bjRA2F97QXw6Jv7QrdcS12Aw9feAJe4tH45Q4luJJ68jHk+DUYPATjZwVuDaGIQaXxSXjurBR8zIuULluXHUL8amv9lNk3Q/mqSnj9vHzdfV6hZY6RhWsprN18klLPJbVuTK21hxxlz1/q3NkAXo4yXC1d7K71xwODsN2F5Dez9/G9lQetKPSKg+OSb+o6zfj1j/B/2PQc//Amc8nr4dfPjw0+IX"),
@@ -4695,8 +4765,8 @@ this.addDataEntry("gmdl google media design library menu scrollable menu",272,42
this.addDataEntry("gmdl google media design library menu cascading menu",604,590,"Cascading menu","7VvRbqs4EP0aHoswTkjuY5O7e7VSd1VttNpnEpxg1eDIkHvb/fo12NDAQEoDTtVCpKrBYIPPmTP2zBALr6PnH8I/hn/ygDAL/2bhteA8Vd+i5zVhzHIdGlj4u+W6jvyz3N9bzqL8rHP0BYnTLh1c1eGnz05EtaiGJH1huuFIBI1ISoQ8jHksW1eBn4QkG8GRB0noH7NLBdnJW672lLE1Z1zkvfE+/2SXpYI/kbMzJP+oAQL+SzYieaCfh4iUPLfOKW/SE/pBuHw68SIvKTogT3X5RYM0VG0YLVVbSOgh1MPMsL7QT1TDoRzrFTL5RaPWjCAGCK44CwCKcjoZOtnE6M5n94weYnkmokHAchCO/o7GhwJTdfRA9tmjyvlIXHmcbuh/2XBoLo8FSeTRv3qKnaFzm6F7EyptF4IwP6U/SWX8PvDNIHxXW2D0fMiEZB+igNk7HkV+LC9ZMX9L2CNPaEp5hrlQ0yq5eKidLznxNUksp6Gduzo1nYjAl21YdXjRGrbnwKKRC1lC72VJ3/+RU/lY5c3vZtXb39Vkwvf7hKSA5XIWnYifA+L/SCXgu9Erp8bJS3WYQTnwIAfjEN985OJbAOL/iQMiGJX8Tvpr0t9yZoCGJaRhHPpbjFx/3wDxm1TQJzkAPx3CSYKNEkSuCSqQA7i4Z3LQ1Sak++z/vI2OurR2EqdMpt21VRfjMOL61ldcjgc51HFkb3WhYqBCXgX+w5KKoMBO0pMmO0GP6aSvZn15SxNUwBSDPY5FDr2RpvjyqxyCuZHNaTtp8IIGXTPuEGZZLHc9EhWOPdGCYKYFMF8wmweAl3K1txUV6rnpKEQ1N5E8QTB78ugLP5dGgW7ybjdXt/FXt5c7uc/p1Dwj+MMkxjAeTUZifnxgUAh6hFqFw8s/2cg0K4Eo3xZzkSHb0UV5PV3UfHjpFB4KL6seam6CSZgHecgzUU5h/S0qqjFReqlRqQs7JlJTCKYo/jpFWyKkdlyH0eT9O7gvCf7MxJLtwpzEQ464w4+Zg5mWlXzspYl41YWpA4D2194uzVwTMUgBYxdc9asE7bi2vmQw8KsE7tKrLH+lr32LirJjn9p4w7sFG5rvTAaWfzWaXrg9LPdWLqEzhjD0RTZqzemOCMEb1pkbiv3f+Wk7GXIrDUbKjQ31/vUpSXlk4XvZjGzokYfno23P/jl5MlOTaqjPA2auS9aFZPdUI0F3Vottgb/btPyWkW43Zlqi2kuptqZNzawfUfoBcXUhv1uYoA3GscPQdvOMRBt3Y8lINBToAZPGg4CPjQLMVANxQ7U9CCyV6ckyPluy54IoKIpcqsk1qVf4eyVDeKC1Z2GEIRj/Vhny95n3mgj6qGJe8XAj9k1mohQMw229PS4T0bYN3134/Nbec4dltMqGYfzeau0fnzYqg2gN8xn0ZUaoWkdetsPc+RcoMLruVj65wmRb3r240mIVuRcttsyF3yRbhGGEPGxUfIbf33o+OYD1NwJ7wVftcQam12CCfQPhYlvumQiEMQyEKzX2wr7LbePYDf2GST0Mo91JK+/TilF6YAjbLB29n5+Uc7M87AwGwcgesiQxGuUMQY88fP29tbr8/OfY/wM=")];
this.addPalette("gmdlMenus","GMDL / Menus",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLMiscPalette=function(a){var e=this,d=[this.createVertexTemplateEntry("shape=rect;fillColor=#eeeeee;strokeColor=none;",358,642,"","Background (Light)",null,null,this.getTagsForStencil("mxgraph.gmdl","background","gmdl google media design library misc ").join(" ")),this.createVertexTemplateEntry("shape=rect;fillColor=#333333;strokeColor=none;",
358,642,"","Background (Dark)",null,null,this.getTagsForStencil("mxgraph.gmdl","background","gmdl google media design library misc ").join(" ")),this.addDataEntry("gmdl google media design library misc keyboard",358,224,"Keyboard","1dvLcpswFAbgp2GbQRLXpU2arLrqomsCsqHmViCJnaevuCi1OXhKYw9njmcyYwvkwGfQ0Y+xIYL8+FyHVfK9jGVmiG+GCOqybIdn+TGQWWZwM40N8Whwbqo/gz9dWcr6pWYV1rJol3TgQ4e3MHuVQ8vQ0LSnbGyIwyaR3eqmIbZNElZdey0j9f7bXZplQZmVdb+q4I7gwutWa+vyIPWSoixUn23YVH2vx1167N5wO/5vWbfyeHX7+6Zx459lmcu2PqlV3tO4TYY1hO0N3RKZ7pOxG+fW0Bg2Q8P+s+9fDvVkFJnXEUDnN+BR295LlEV7JvHSP8b2H+lHt7LaIrHt9jaNwmyTpftCNeZpHGe9ztgQqT2X9VIdPq+jO4yf5kmbDC/P7UxIp9tukbOA3DspOcvBkrOBnCQl55lYcg6Qq0nJMWZh0bmArqVFZ3lYdB6gO9Gi89CKhA/oXknRcYZWJZgJ7FJadjZanWAM2JW07Dy0QqFnlGd2FSk7wdAqBYNxIiRlp6cJI51rr0cH80RDis5haHQwUMSk6HwbjQ4mih0pOqanWAh2MFLsadk5As0OZoqElp2PVylgqPhFyk7NULDsOAwVB1p2Dlqt4DBUZLTsfLRaoefgZ3YfpOwmszumL0WuYQdDxZGU3WR6t6odTBURKbvp/G5VPJgr3mjhTSZ4q+LBZPFCC28yw1sVD0aLghTedIq3Kh7MFjktPAexYMBwwRbi+f3jEo+Zq+Pxid1qdAJmC06KznbQ6GC0EKTofBONDiYLixQd4xaaHUwWNi0720Ozg8nCoWXn41UKGCxcUnafnzWCHcwVHi07B69WwFjh07Lz8WoFTBUmKTvB8WoFDBWAbvYe7Py47+4bf9jncfbQJOmu052983pym/aGbdyNf6eDbhJlBbxsrPfn8vbs2+EsGCm+APcSRoemCiOJgCfYZLQT8LDTxeRcT39BeJMeTBWGeGKLo8Xc1QC2/nWoyWUo113tvLVgtjB4cIMewvcWk0mea62nB9PFAyk7cB3KNdfDg/EC2OnBTvVMq2bp6GYFW3uzvdPoZk5qqjNzcs6MbrrtJiEYIr5QG6JERgcgp5h2/eNzyc9xh/hSuOEDvD6q/XMSzOaqwj1qKgwQV4+s8TdgSw4rEViuFaj2unwt4h6ddV2Hk1fcqRaY0zMSDmdMHxgXkxH7v+HUy78/0uuXXfyG7w8="),
-this.addEntry("gmdl google media design library misc snackbar",function(){var b=new mxCell("Archived",new mxGeometry(0,0,358,48),"shape=rect;strokeColor=none;fillColor=#333333;fontColor=#FFFFFF;align=left;spacing=16;fontSize=13;spacingLeft=8;");b.vertex=!0;var a=new mxCell("UNDO",new mxGeometry(1,0,88,48),"text;verticalAlign=middle;align=center;fontColor=#EEFF41;fontSize=14;resizeHeight=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(-88,0);a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-358,48,"Snackbar")})];this.addPalette("gmdlMisc","GMDL / Misc",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLPickersPalette=function(a){var e=[this.addDataEntry("gmdl google media design library picker date picker portrait",328,484,"Date picker (portrait)","7Zxdc6IwFIZ/DZfdSQgiXHbtx8VutzvTzvSa1SjMojCQ1rq/fhNBiz3YVsuJe5jVqSMhATyPoed9OeiI0fz5uojy+CabyNQRl44YFVmmqnfz55FMU8dlycQRF47rMv3nuFd71vL1WpZHhVyojwxwqwFPUfooq5aqoVSrtG4o4yg3bws51pv8Ok3SdJSlWbFeK6brh24vVZH9lo01cv0wa+Joki11I9cL9f5koeTz3mNeN9UHfC2zuVTFSndZJhMVVz2EG1TDYpnM4nqYF3hVY1RWDbPt2JcQ6Dd1FNojIkBE7uNHx9Xj2Hle6FcuDgwRY6EfBKY9W6j3Q7fIFiZqUZrMFnoxlVOzzTKPxsliZqLo15u6S/6YnQqhl01Ak3GUntejfmVKZXO9opCl7vZQR+7DBNzjCIR+1VbINFLJk9zZ/meoeICKBjEEIPRHUi3RmCeTienymsDV+vES3fss1yv8N8PNB3rZ7OfWdFEr3TRkxwdaHPlVZ0iBHrScEPxUbT/O8cH2LszzsGC7rDETxjpossD8TntdRLrew88s0Tt22Wp3ZmxGZNNpKRUgsz2uD8HyASx9ikpMjy5mxzHAuGgDtu5QHwfvHGA9gH3hnl+fmxtM9fyhBXXYNgNnfZ6BW4DBQAwBQGqTMgD87g4G1zqDGiQDZp6op8IQLep6miKEPQRhv6ES9rdPYJtokSHBGUBxTw6FG2xODqRRcIDigRwKzw3DHqCAUpverBgMGe8BCqjxr8ihGHLm9QAFFPZksqVG2spa/ldQS6A4lP68cxRbCWJJElpHE6CggULfpYrGDoetN9ItB6jNoRlMhMPJRAcSGii7PfJobIsQJDRQmg/Io7EtSnDQuFCq++TR2BYpSGigdD/c0X8Pzc6lSQtobIsWJDRQygfkZ43tTBkJDZT2IVU0ljj4KBygrt/YwvRAnC5VxmHTIvTpK33ruTIOG6j0N8YxYTbWk2UcNlD9v1ELpscmeWlo7CsHay37OprptprsNdNOCPoecyFB1j3Beo9nG2WCSxSaBpy+a2A9ycZhA10DTt82sJ5lo7AR0DbgZH0DOyAEQwEBTYIj6v7+ERAnS7OR2ECXgNO3CWyn2UhsoE3AyfoEJ0uzkdi01fqTZ2PblEZiA62DHhQJ2E6Ykdi0FAnQtw5sJ8xIbKB1QLdywBIIlCInARV/D+oErCfMOGyg4u9BoYD1hBmFjQcVfw8qBawnzDhsoAmAUCrQ+4QZhw00AXpQK2A9YcZhA00AusUCp0uYcdhAE0CQNQEsgUApPfeg4h+d/xhdft8H4/XN4PsqznbuQTY3ZyzjRMk73WqGLosod5r3JbODOXd8DbQesNpZapAdtlwMHXR0MZT7u1dDzzYb7hY1NBBuv/3HvIs5RMQcIlDWiy+/JlR1b/7Y0F8="),
+this.addEntry("gmdl google media design library misc snackbar",function(){var a=new mxCell("Archived",new mxGeometry(0,0,358,48),"shape=rect;strokeColor=none;fillColor=#333333;fontColor=#FFFFFF;align=left;spacing=16;fontSize=13;spacingLeft=8;");a.vertex=!0;var c=new mxCell("UNDO",new mxGeometry(1,0,88,48),"text;verticalAlign=middle;align=center;fontColor=#EEFF41;fontSize=14;resizeHeight=1;");c.geometry.relative=!0;c.geometry.offset=new mxPoint(-88,0);c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+358,48,"Snackbar")})];this.addPalette("gmdlMisc","GMDL / Misc",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLPickersPalette=function(a){var e=[this.addDataEntry("gmdl google media design library picker date picker portrait",328,484,"Date picker (portrait)","7Zxdc6IwFIZ/DZfdSQgiXHbtx8VutzvTzvSa1SjMojCQ1rq/fhNBiz3YVsuJe5jVqSMhATyPoed9OeiI0fz5uojy+CabyNQRl44YFVmmqnfz55FMU8dlycQRF47rMv3nuFd71vL1WpZHhVyojwxwqwFPUfooq5aqoVSrtG4o4yg3bws51pv8Ok3SdJSlWbFeK6brh24vVZH9lo01cv0wa+Joki11I9cL9f5koeTz3mNeN9UHfC2zuVTFSndZJhMVVz2EG1TDYpnM4nqYF3hVY1RWDbPt2JcQ6Dd1FNojIkBE7uNHx9Xj2Hle6FcuDgwRY6EfBKY9W6j3Q7fIFiZqUZrMFnoxlVOzzTKPxsliZqLo15u6S/6YnQqhl01Ak3GUntejfmVKZXO9opCl7vZQR+7DBNzjCIR+1VbINFLJk9zZ/meoeICKBjEEIPRHUi3RmCeTienymsDV+vES3fss1yv8N8PNB3rZ7OfWdFEr3TRkxwdaHPlVZ0iBHrScEPxUbT/O8cH2LszzsGC7rDETxjpossD8TntdRLrew88s0Tt22Wp3ZmxGZNNpKRUgsz2uD8HyASx9ikpMjy5mxzHAuGgDtu5QHwfvHGA9gH3hnl+fmxtM9fyhBXXYNgNnfZ6BW4DBQAwBQGqTMgD87g4G1zqDGiQDZp6op8IQLep6miKEPQRhv6ES9rdPYJtokSHBGUBxTw6FG2xODqRRcIDigRwKzw3DHqCAUpverBgMGe8BCqjxr8ihGHLm9QAFFPZksqVG2spa/ldQS6A4lP68cxRbCWJJElpHE6CggULfpYrGDoetN9ItB6jNoRlMhMPJRAcSGii7PfJobIsQJDRQmg/Io7EtSnDQuFCq++TR2BYpSGigdD/c0X8Pzc6lSQtobIsWJDRQygfkZ43tTBkJDZT2IVU0ljj4KBygrt/YwvRAnC5VxmHTIvTpK33ruTIOG6j0N8YxYTbWk2UcNlD9v1ELpscmeWlo7CsHay37OprptprsNdNOCPoecyFB1j3Beo9nG2WCSxSaBpy+a2A9ycZhA10DTt82sJ5lo7AR0DbgZH0DOyAEQwEBTYIj6v7+ERAnS7OR2ECXgNO3CWyn2UhsoE3AyfoEJ0uzkdi01fqTZ2PblEZiA62DHhQJ2E6Ykdi0FAnQtw5sJ8xIbKB1QLdywBIIlCInARV/D+oErCfMOGyg4u9BoYD1hBmFjQcVfw8qBawnzDhsoAmAUCrQ+4QZhw00AXpQK2A9YcZhA00AusUCp0uYcdhAE0CQNQEsgUApPfeg4h+d/xhdft8H4/XN4PsqznbuQTY3ZyzjRMk73WqGLosod5r3JbODOXd8DbQesNpZapAdtlwMHXR0MZT7u1dDzzYb7hY1NBBuv/3HvIs5RMQcIlDWiy+/JlR1b/7Y0F8="),
this.addDataEntry("gmdl google media design library picker date picker portrait dark",328,484,"Date picker (portrait, dark)","7Zxdc5pAFIZ/DZfp7LKIcJnSJBdtms4kM7mmugpTFAZIjP313QVU9GCqlrPmOCWTDOwH4Puw5LycRUsEs7e7PMyi+3QsE0vcWCLI07Ss12ZvgUwSy2bx2BJfLNtm6teyb/fU8qqWZWEu5+UhHey6w2uYvMi6pC4oymXSFBRRmOnVXI7ULj9P4iQJ0iTNq1rh2PpHlRdlnv6SrRpZLbomCsfpQhVytdEcT+alfNt7zlVRc8J3Mp3JMl+qJot4XEZ1C2F7dbdIxtOo6eZ4Tl0YFnXBdN13I4FaaVToVkQARZ6iF8tW/dh1lqu/XBwp0aBadHk6L1vlk2oB0s3TuVYtTOLpXG0mcqL3WWThKJ5PtYpus6vH+Lc+qBBqWwsaj8Lkuun1My3LdKYqclmoZs+NcgcTsE8j4Lt1WS6TsIxf5db+/4WKA6goEEMAQn2kskONWTwe6ya7BG6rZaPuU5qpCvddubkmqY/zoJuUS1U0ZKcLLU681BmS0IOOG4KblOuPc7rYm8v9cLFt1hoJIyWazDGvaacPpZsj/EhjdWCbLbdHxqpHOpkUsgRk1ud1ECwXwFK3qFi36GN0nAKMiy5gVYPmPHjvAJsO7BN33Obe3GKqxg8tqMOuETi95BG4BugNxBAApDYoPcDv8WhwnSOoRXJULai3Qh9NdTVMEWT3gez3VGR//wa2UosMCc4AiidyKGxvdXMgjYIDFM/kUDi2718ACmi16Y2KwZDxC0ABPf4tORRDzpwLQAGNPZloqRW2so7/FdQCKA6tP+8dxdqCXAoKDwUFNPY2FRRmdF8/++hXd+i94cPeD6r72UwEEgpoox1yKEybCCQU0FoPyKEwbSJwUNjQWrvkUJg2EUgooLU+/on731B4LPgcOJdjIpBQQGvtkRsVpiNXJBTQWvtUUBjS3UXRHfro1WPYjy/8+UJXHBYdRpqekzYeu+KwgE569SCWEAvjwSsOC+iu35lLpfrGWaHV35lOtY6JOqdNncxwPZFtd7JCLwRdh9mQIOufYHPEq5VTwCUKTTqn59KNB8E4LKBL5/RsuvEoGIWFgDadk/HpZoQXDEV4aMpPmAd37kFgOgxGYgFdOadny02HwUgsoC3nZHz52cJgJBZdc9nJsTD9EBeJBbTqBJPepgNYJBYdSW96Vt10AIvEAlp1OplwQ8KjTMIR0FETzHsbD2BxWEBHTTDxbTyARWHhQEdNMPNtPIDFYQFNNkLq++ICWBwW0GQTzH0bD2BxWECTTSf5fb4AFocFNNmCjMk2JDzK1GUHOurg+ntw822f+LsvD++bAbX1zqp+KXURxaV8VKW66yIPM6v9His7mmvPOb+mw3Jrq0V22JH8G/SU/OPudvbvarXjflFDw/7w9T/mbcw+ImYfgbLa3Hz7TN28/eU0fwA="),
this.addDataEntry("gmdl google media design library picker date picker landscape",512,304,"Date picker (landscape)","7Zxbb9owFMc/TR47+ZLrY0cvD1vXSa205wgMiRYIStJS9ulnE0OBY1pgsdeTjaoScexc/r/EnPPnBI8Ppi+3VTrP7sqRKDx+7fFBVZZN+276MhBF4TGSjzx+5TFG5L/Hbg6spau1ZJ5WYtYcM4C1A57T4km0LW1D3SwL3VBn6Vy9rcRQbvLzOC+KQVmU1WotH69esr1uqvKn2FojVi+1JktH5UI2Urmg9yeqRrwcPOZVkz7gW1FORVMtZZdFPmqytkdA9YFmIp9kehgnftuY1m3DZDP2VQL5RqtgVoQDRR6zJ4/JcaE8KUrkOVzOK9mD8hOlIiQJ41i1l7PmfQln5Uyplxb5ZCYXCzFW26zn6TCfTZSaod7UQ/5L7ZRzuayEzYdpcalHNeX8ddCjWrii/rEY2LsYaBhbwuADDFLxCCguD78xnPY0H41Ul32pb1avfUXCN3WlgVxW+7lXXZqlbIrUVVCJWnb4ocU4+trm54nqt/cxqUSRNvmz2Nn+nwgdGGaAsGg2p3O+2P6V+jtNbEa2LvmhFE1U50t94PrVA8gnzkI9i2zPLMSh+CEQX84tuerRxdV+DgDKTQBWHfRxUHtAfJZEAAjzDVO9NSKR6XaY/BO3Q0LWH35/63aIgfgPJ6tuvHa3MMRE/bmeVEzRCjtRRb3T72Uuj4WRpd5MuDuiHI9r0QDVN4d6FIgEgLhDB8I4mfimeOUDg6AEkHhERyKQkx9+EhSQ+IGOREgjODmhIwGTVnz3RERJgp8ETJZv0JGIid+DzwmYL+MLneIkhp8T2EInChNq2jmJTS7hKDEzkvETa2TWDki3ZGC2zdCTMaYbFslQQmyggWk3dFexoTEnICE2NDAp99GjMWck6NDAND1Aj8acomBDw2DeHqJHY85Z0KGBifzpTvt7aHa+63MRoBmTGHRoYGYfo79rXMfOltDAVD9Bj8Z58LzeTrdoYO6/to0Rs3EePdthY3AD8NsBzsNnO2ygH7C2lhGzcR4/22EDDYE36q3k2HxeKxqHSq6MpVVnM91UbO0z7YRgFAQA4FrkLgHqHV6sfTG7QKGNQPH7CM7DbjtsoI9A8RsJzuNuK2w4NBIofifBeeAd+jbYQCfhjKK9j8bGeeBthw2DbPB7Cc4DbztsoJdA8ZsJzgNvO2xMhffo2Th3ru2wgWZCH2oLXMfQdtgYigsYfjauY2g7bKCZ0IPyAucxdGKjXIpDX6AH9QXOY2g7bKAv0IMCA+cxtBU2PvQFelBh4DyGtsMG+gIWSgx6H0PbYQN9gT7UGLiOoe2wgb5AD4oMnMfQdthAX4Dj9wVcx9CbuaZbNtAXGFx+G1x/PcRn/3nvQ8VrO08qqwc/FlneiAfZqoYuqnTrxyV0j9PQd/zdqR6w3FnaIhsZHmYOTn2Y+eC3qGRn7xeBjTIsH9oM91/+Y97FnFjEnFigLBdff/Gn7b79g0C/AQ=="),
this.addDataEntry("gmdl google media design library picker date picker landscape dark",512,304,"Date picker (landscape, dark)","7Zxdb5swFIZ/DZed/MFHuOzox8XWdVIr9RolTkAjIQLaNPv1s8FJkxynTTLs9nSjqgTGBvM+xpwXm3g8mT5fV+k8uylHovD4pceTqiybbm36nIii8BjJRx6/8Bgj8t9jV3v20nYvmaeVmDWHFGBdgae0eBRdSpdQN8tCJ9RZOlerlRjKQ34d50WRlEVZtXu5z9SfTK+bqvwlNvaIdlF7snRULmQilRv6fKJqxPPeOrdJusLXopyKplrKLIt81GRdjoDqimYin2S6GCd+l5jWXcJkXfZFArmiVTArwoEi99mjx2S5UF4UJfIazueVzEH5kVIF7aLSy1mzkT5uFyDhrJwp9dIin8zkZiHG6pj1PB3ms4lSM9SHust/q5NyLreVsPkwLc51qaacvxS6VxsX1D8UA3sTAw0HljD4AINUPAKKy+o3hsue5qORyrIr9VW77CoSvqorVcjUeW5VlmYpkyLVCipRywwPWoyD2zY/TVS/u49JJYq0yZ/E1vH/RujA0AOERbO+nNPFfmnXh4vNyEaTH0rRRHW61Hvary5AvnAW6l5ks2chDsUPgfiyb8lVjj5a+ykAKDcBaDPoelB7QHwWRwCIery4IxKZbofJP3E7xGT18Huv22EAxL87WnVj293AMGwX152KKVphR6qoT/qzzGVdGFnqw4TbJcrxuBYNUH1d1YNAxADEDToQxs7EN8UrHxgEJYDEPToSgbQJ+ElQQOIBHYmQRrBzQkcCmlZ890RESYyfBDTLV+hIDIj/CZ4T0C/jC50G8QA+J7CFThQaato7ibWXcEnCj62RWL3x6JcEdNcMHQmjnbBIghJiAwW01fDt6UdHYTYUITYU0GT76FCYHQU6FNBmB+hQmC0FNhQM+uwQHQqzp0CHAhrt49+Ev4ViQJKvie/aVKBDAZ32AN1d4TqWtYQCWu0YHQrnwezqOP2igF579ZoWEQvn0awdFga3jc9uOw9n7bCAfnv1qhYRC+fxrB0W0HC/Ml9Jls3ntVJ/Z8rSOkwyTk06meF60tjuvIJeCEZBAACuRO4ToD7h2eo9k12g0LZTfL7deVhshwX07RSfcXceF1thwaFxp/icu/PAOPRtsIDO/YRJbO/NwnlgbIcFgyzweXfngbEdFtC7U3zm3XlgbIeFaWI5OhbO3/TaYQHNO8axctcxrR0WhsFyho+F65jWDgto3hEOlzuPaWMb03k49N0Ix8udx7R2WEDfjXDA3HlMa4WFD303whFz5zGtHRbQd1sYMv90Ma0dFtB3Yxwzdx3T2mEBfTfCQXPnMa0dFtB3c3y+23VMu+47+mUBfXdy/iO5/L6Px+73wfsmU2192ao+XV1keSPuZKoquqjSjR8j0DmOQ93zWKEusNza2iAbGT5+DY79+HXvqCHZOvtZYGPakA9t/e23/5i3MccWMccWKMvNl1+I6bJv/oDMHw=="),
@@ -4708,32 +4778,32 @@ this.addDataEntry("gmdl google media design library picker year picker light",32
this.addDataEntry("gmdl google media design library picker year picker dark",328,484,"Year picker (dark)","7ZjLbuIwFIafJstKviQhWdK008VcOhKVZp0hhlhj4shxC8zTzzE2lDSXIS3pKiBQ/NvHdv7P6HDi0WSze1BpmX+XGRMevfdooqTU9mqzS5gQHkE88+idRwiCj0e+dPTiQy8qU8UKfUkAsQEvqXhmVrFCpffCCVWeluZSsSVMebviQiRSSHXopT4xb9ArreQfduwpZMGMmKeZ3EIbQ8MtxZRmu87tHiS31wcmN0yrPQzZ8kzndgQlkQ3LGV/nLsyPfCumlRXWp9jXu4cLZ0C7GbRhxlP+7BGIQ/NSwTemA90JDi+jy0Kf6avDq8u1VPB1AU3BVmbOqkyXvFgbF0M31YL/NYtSCm1jKF+mYu6ifkut5QY6wGb9aGL1HuQZAkmxCiJ/OTMvhkLeByUOraaYSDV/YbX5PwLKb4ACNrMGG2NAi0EbnmVmSDcUa/iTLKEj7CWAj3CvYzR95+lHIxkdtBntDzb6eKCXcKNM9Tj/1tnPPa9+NNBGt8RPyWFlgvb1Y3+MkKtVxXTD9tPGLiIRtpEIJhK9JLDvj4Bi1oYinFD0o4jJCCii6ySC/6GIUHKb+HUUJP50FMHQfNqO4pQurooibkMRTb+KfhSj5AqM2ljEE4teFnSUZIFxCwtXlE0sOlmMki1ws9pN5j+S+29dNM69pD1poVYwmL//25xrtgDVhG6huq8VEWgw6IXb2kfx1QP2tdYZ2hlqST5Da4w3ZN3SNzhEtdVvgjGyEW7W8o9fJ8x1zPGImOMRKEPz9cmYHX7+4Owf"),
this.addDataEntry("gmdl google media design library picker date picker landscape light",512,304,"Date picker (landscape, light)","7ZhNb6MwEIZ/DceubAwEjlnS9rDbdqVU2rMVnGCtg5Fxm2R//Y7BSSCQJrRB2gNEkZjxjD/exwYNDonX20dF8/RJJkw45N4hsZJSV3frbcyEcFzEE4fMHNdF8HfchzOtuGxFOVUs09ckuFXCOxVvrPJUjkLvhHUUKc3NrWIL6PL7kgsRSyFV2UqW5QX+Qiv5h9VaWHmZlpQmcgNODIYdjynNtmfnXLrshB+ZXDOtdhCy4YlOqwgf24mmjK9Sm0aQVzlpUTlWh9yjBHBjVehWhLQUeU3fHBfyAlgURrCGaa4gApOeUiEUBWFo/DLTlyXMZGbUo4KvMjAFW5o+i5wueLYyaga2qzn/awYlBGwjLF9QMbVZWubHpFdjzLB3LQb3IgYchANh8FoYQPFJS3GYvu5Y9poniQk5lfqhvE4VCT7UFftgm3FeTIjegWtidoFiBQT8tmJcvbfJ50T1qnOMFBNU83fW6P8rQvtdQnu9hd5v0wUslKm28t7M/DqU/aSMZ/amTUDfiBvarJqyxPM6tmswkLJBl7L+qOx5Ze2ovySHybho1+xmnyGXy4LpFonDXK+CM+mCE4xw+sKZuAPACW/z8L8Ep/FCtnDc6H+As/d9EQ5G4QB0oi464Xh0etPxhzg7GHXhiUY8vfGEQxwejDvw2CJtxNMDz6FEuC2edkEcT5/j+5/nANXlJR+8YhoFhykfNinXbA5ek7pRtFan2Yh+7Od2ajciahN2DauGdoLaZP2+NcoJWTv0HQ5QY/S7fce3Rd2u9F9+jJibmKMBMUcDUAbz+PGsCq9/W/sH"),
this.addDataEntry("gmdl google media design library picker date picker landscape dark",512,304,"Date picker (landscape, dark)","7ZhLb+IwEMc/TY5d+ZGEcKTp47CPrkSlPVvEEGtNHDlugf30O04MTUigpCVSDzFCiscz9vj/s0ETj8br7aNmefpTJVx69N6jsVbKVE/rbcyl9AgSiUfvPEIQfD3ycGIUl6MoZ5pn5pIAUgW8MvnCK0tlKMxOOkORstw+ar6AKW+XQspYSaXLUeoT+wF7YbT6y2sjvGx2JGWJ2oARQ8etx7Xh25M5lyaX8CNXa270Dlw2IjFp5RFgl2jKxSp1YRT5lZEVlWF1iH2TAB6cCt2K0JYiz+mLRyAuhE1hBHuY5Ro8MO0pVVA2a1eZqdmXZWtJmKnMqsekWGXQlXxp5yxythDZyqoZuqnm4p9dlFLoW2HFgsmZizIqfwt6tp077F+KgbyLAYfRQBj8FgZQfNJSHNI3HdteiySxLsdSP5TtWJHwrK7YIrPrPFkXswPTxJ4CzQtw+OPEuPhs04+J6lf3GGkumRGvvDH/Z4QOuoT2ewu9P6YL2CjXZw75sbIflPHE2XQB6BslkYuqKUt9v+O4hgMpG3YpG4zKnlbWrfpbCUiGoF1zmn2EWi4LblokDrleBGfSBScc4fSFMyEDwImu8+P/HpwIxbex34RDpl8Bzt72STgYRQPQmXbRicar05tOMMTdwagLz3TE0xtPNMTlwbgDjyvSRjw98BxKhOviaRfE8exXfP/jFKC6vPTMX0yj4LDlwyYVhs/BakM3mtXqNOfRj/3cpXYloi5g1+jV0E5Qm2zQt0Y5IuuWvsEhaqx+s5/4uqjblf7T9xFzE/N0QMzTAShD9+3lWeVef7f2Hw==")];
-this.addPalette("gmdlPickers","GMDL / Pickers",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLSelectionControlsPalette=function(a){var e=this,d=[this.addEntry("gmdl google media design library selection control checkbox on hover light dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],
-16,16,"Checkbox (on, hover))")}),this.addEntry("gmdl google media design library selection control checkbox on focused pressed light dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, focused or pressed))")}),
-this.addEntry("gmdl google media design library selection control checkbox on disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused light",function(){var b=new mxCell("",new mxGeometry(0,
-0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox off hover light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, hover, light))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],
-48,48,"Checkbox (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused light",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled dark",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,
-16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off hover dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],
-16,16,"Checkbox (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, focused or pressed, dark))")}),
-this.addEntry("gmdl google media design library selection control checkbox off disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Checkbox (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,
-0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Checkbox (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button on hover light dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, hover))")}),this.addEntry("gmdl google media design library selection control radio button on focused pressed light dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, focused or pressed))")}),this.addEntry("gmdl google media design library selection control radio button on disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused light",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button off hover light",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, hover, light))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",
-new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled light",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused light",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused dark",
-function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button off hover dark",function(){var b=
-new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",
-new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, focused or pressed, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled dark",function(){var b=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
-b.vertex=!0;return e.createVertexTemplateFromCells([b],16,16,"Radio button (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused dark",function(){var b=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");b.vertex=!0;var a=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");a.vertex=!0;b.insert(a);
-return e.createVertexTemplateFromCells([b],48,48,"Radio button (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control switch on light",function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#0E9D57;");b.vertex=!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (on, light)")}),this.addEntry("gmdl google media design library selection control switch on dark",
-function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#80CBC4;");b.vertex=!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (on, dark)")}),this.addEntry("gmdl google media design library selection control switch off light dark",function(){var b=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=off;strokeColor=none;fillColor=#0E9D57;");b.vertex=
-!0;return e.createVertexTemplateFromCells([b],36,20,"Switch (off)")})];this.addPalette("gmdlSelection Controls","GMDL / Selection Controls",a||!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))};Sidebar.prototype.addGMDLSlidersPalette=function(a){var e=[this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl",
+this.addPalette("gmdlPickers","GMDL / Pickers",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLSelectionControlsPalette=function(a){var e=this,d=[this.addEntry("gmdl google media design library selection control checkbox on hover light dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],
+16,16,"Checkbox (on, hover))")}),this.addEntry("gmdl google media design library selection control checkbox on focused pressed light dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#009587;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, focused or pressed))")}),
+this.addEntry("gmdl google media design library selection control checkbox on disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused light",function(){var a=new mxCell("",new mxGeometry(0,
+0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#B0B0B0;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox off hover light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, hover, light))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],
+48,48,"Checkbox (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused light",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled dark",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox on disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,
+16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=none;fillColor=#676767;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off hover dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],
+16,16,"Checkbox (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off focused pressed dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, focused or pressed, dark))")}),
+this.addEntry("gmdl google media design library selection control checkbox off disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Checkbox (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control checkbox off disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,
+0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.checkbox;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Checkbox (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button on hover light dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, hover))")}),this.addEntry("gmdl google media design library selection control radio button on focused pressed light dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#009587;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#009587;fillColor=#009587;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, focused or pressed))")}),this.addEntry("gmdl google media design library selection control radio button on disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused light",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=#B0B0B0;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button off hover light",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, hover, light))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",
+new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, focused or pressed, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled light",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, disabled, light))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused light",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#B0B0B0;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, disabled, focused, light))")}),this.addEntry("gmdl google media design library selection control radio button on disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (on, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button on disabled focused dark",
+function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#B0B0B0;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#676767;fillColor=#676767;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (on, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control radio button off hover dark",function(){var a=
+new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;aspect=fixed;");a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, hover, dark))")}),this.addEntry("gmdl google media design library selection control radio button off focused pressed dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",
+new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#ffffff;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, focused or pressed, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled dark",function(){var a=new mxCell("",new mxGeometry(0,0,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;aspect=fixed;");
+a.vertex=!0;return e.createVertexTemplateFromCells([a],16,16,"Radio button (off, disabled, dark))")}),this.addEntry("gmdl google media design library selection control radio button off disabled focused dark",function(){var a=new mxCell("",new mxGeometry(0,0,48,48),"shape=ellipse;strokeColor=none;fillColor=#666666;opacity=10;");a.vertex=!0;var c=new mxCell("",new mxGeometry(16,16,16,16),"dashed=0;shape=mxgraph.gmdl.radiobutton;strokeColor=#666666;fillColor=none;strokeWidth=2;");c.vertex=!0;a.insert(c);
+return e.createVertexTemplateFromCells([a],48,48,"Radio button (off, disabled, focused, dark))")}),this.addEntry("gmdl google media design library selection control switch on light",function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#0E9D57;");a.vertex=!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (on, light)")}),this.addEntry("gmdl google media design library selection control switch on dark",
+function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=on;strokeColor=none;fillColor=#80CBC4;");a.vertex=!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (on, dark)")}),this.addEntry("gmdl google media design library selection control switch off light dark",function(){var a=new mxCell("",new mxGeometry(0,0,36,20),"dashed=0;shape=mxgraph.gmdl.switch;aspect=fixed;switchState=off;strokeColor=none;fillColor=#0E9D57;");a.vertex=
+!0;return e.createVertexTemplateFromCells([a],36,20,"Switch (off)")})];this.addPalette("gmdlSelection Controls","GMDL / Selection Controls",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<d.length;b++)a.appendChild(d[b](a))}))};Sidebar.prototype.addGMDLSlidersPalette=function(a){var e=[this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl",
"slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=50;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=10;shadow=0;",200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=100;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=10;shadow=0;",
200,10,"","Slider (normal)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider normal","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=30;shadow=0;",200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=50;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=30;shadow=0;",
200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.sliderFocused;barPos=100;strokeColor=#3F51B5;opacity=100;strokeWidth=2;fillColor=#3F51B5;handleSize=30;shadow=0;",200,30,"","Slider (focused)",null,null,this.getTagsForStencil("mxgraph.gmdl","slider focused","gmdl google media design library slider ").join(" ")),this.createVertexTemplateEntry("dashed=0;shape=mxgraph.gmdl.slider2;barPos=0;strokeColor=#bbbbbb;opacity=100;strokeWidth=2;fillColor=#ffffff;handleSize=20;shadow=0;",
@@ -4774,26 +4844,26 @@ this.addDataEntry("gmdl google media design library tab desktop tab bar",758,152
this.addDataEntry("gmdl google media design library tab desktop tab bar overflow",758,152,"Desktop tab bar with overflow","7Zldb5swFIZ/DZetwIZALksS2krrUrVdu1sUDFhzMAK3S/brZ/PVEGCFxDBtaqRI4djnYN7nHGM7Clxsd9eJG4d31ENEgSsFLhJKWf5ru1sgQhSgYk+BSwUAlX8V4HS0almrGrsJilgfB5A7vLnkFeWW3JCyPSkMnpuGSHRXFWinoRsLe4I2PL7tY0IWlNAk6wr97CO6sYT+QGVLRCPuYxe3QglDu87hZqZirNeIbhFL9rzLT+yxMO9hGlbuFiIchKWbUQzcTXNDUPm+Pz3/UQjQLgaUKoaqXqm23iVGglL8C70Uj6X1lQecJg8sniRBxGX4DdXinyOZfqJk210gcv4y2HrkctcQict3ZS+d1axqKZUCfZWC7UrVHQ5000BLVg2VrbjfPcV8GNXNLoCZu+yLAEcRqO+niDVkr0bdi4TxMYmjfB0i+WFuDynnwRRgCwVVDgVjXqcAR6Aw60+B4EzGv5/4elNySXk/12qKH0eQorjZUPzeDRC3MMy45EMm8NaJujGr24ul3jqB55abUkZh8mnEHrlR8FOL64NgTvYRd47dDY6CJxrzhjk3CMZ445IrgoOI25hosd3iiiCfvXt9ya6WZu8MOfElooEzC3FffxlJTQNLxosoTpCPuE4blPZMh2rF00t480PhQUsxajMp1ViGKYtRHYHCvEHh9ml1xy3rr6sGD64Uq9cIn5K7a+S4JLbY80Soqio2XGeUnMliX3M4nCbVWRONbklBM7NqaC7KsFLZlK/RJpynl/V0cETgtZi4mHhaS/0XeWmmPgUwrRPYzcNqwnr6H5ABS50CWXM/XSBz1t8ePokNIQat2RTEmpv+ktjt82eNDSKmz8EUxJpnDgWxx9vvn8CGADPmkyw8ehxNfLw2f43bNsvV+tvDYhOHqWCU0leh3qkb6A5CdYdOXi20ZB0j6UflBcdYwms9jjDO3UQ7mmNbzrQVIwXB8UJ9jCMkrXmicUK5pMhNNuEfS6blTG/Mijkk1FYkcna5F6ZRQzTKNleTctrAx8FwFEx61NCJxBiPCLCkE+GX7/+R5d0P/0L7DQ=="),
this.addDataEntry("gmdl google media design library tab desktop tab bar overflow",758,152,"Desktop tab bar with overflow","7Zldb5swFIZ/DZetwIZALksS2krrUrVdu1sUDFhzMAK3S/brZ/PVEGCFxDBtaqRI4djnYN7nHGM7Clxsd9eJG4d31ENEgSsFLhJKWf5ru1sgQhSgYk+BSwUAlX8V4HS0almrGrsJilgfB5A7vLnkFeWW3JCyPSkMnpuGSHRXFWinoRsLe4I2PL7tY0IWlNAk6wr97CO6sYT+QGVLRCPuYxe3QglDu87hZqZirNeIbhFL9rzLT+yxMO9hGlbuFiIchKWbUQzcTXNDUPm+Pz3/UQjQLgaUKoaqXqm23iVGglL8C70Uj6X1lQecJg8sniRBxGX4DdXinyOZfqJk210gcv4y2HrkctcQict3ZS+d1axqKZUCfZWC7UrVHQ5000BLVg2VrbjfPcV8GNXNLoCZu+yLAEcRqO+niDVkr0bdi4TxMYmjfB0i+WFuDynnwRRgCwVVDgVjXqcAR6Aw60+B4EzGv5/4elNySXk/12qKH0eQorjZUPzeDRC3MMy45EMm8NaJujGr24ul3jqB55abUkZh8mnEHrlR8FOL64NgTvYRd47dDY6CJxrzhjk3CMZ445IrgoOI25hosd3iiiCfvXt9ya6WZu8MOfElooEzC3FffxlJTQNLxosoTpCPuE4blPZMh2rF00t480PhQUsxajMp1ViGKYtRHYHCvEHh9ml1xy3rr6sGD64Uq9cIn5K7a+S4JLbY80Soqio2XGeUnMliX3M4nCbVWRONbklBM7NqaC7KsFLZlK/RJpynl/V0cETgtZi4mHhaS/0XeWmmPgUwrRPYzcNqwnr6H5ABS50CWXM/XSBz1t8ePokNIQat2RTEmpv+ktjt82eNDSKmz8EUxJpnDgWxx9vvn8CGADPmkyw8ehxNfLw2f43bNsvV+tvDYhOHqWCU0leh3qkb6A5CdYdOXi20ZB0j6UflBcdYwms9jjDO3UQ7mmNbzrQVIwXB8UJ9jCMkrXmicUK5pMhNNuEfS6blTG/Mijkk1FYkcna5F6ZRQzTKNleTctrAx8FwFEx61NCJxBiPCLCkE+GX7/+R5d0P/0L7DQ==")];
this.addPalette("gmdlTabs","GMDL / Tabs",a||!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addGMDLTextFieldsPalette=function(a){var e=this,d=[this.addDataEntry("gmdl google media design library text field single line text field",346,360,"Single-line text field","7Zhbb5swFMc/yx54bORLSsnjcqsq9TJt1frsBgNWDI6M1yb79LPBJBCHNllCtVUBheBjH1/+Pzi28fAoXV5LskjuREi5hyceHkkhVHmXLkeUcw8BFnp47CEE9M9D05ZcWOSCBZE0U/s4oNLhhfBftLSUhlytuDWEJE+oKQ48PMwTsjB2SWe6/mHEOB8JLmRRFEfFYYopKea0lkOLo6wgFK/aCHXCNk6losvWARQm2/trKlKq5EoXeWWhSsoSuO+XbgllcWLdsF+OHJC8NMRr340e+sZKslse7MgzFGKeEjk3FYchDb84eumxGGnMqNiM8K+cxZnOSVkY8kKBBZmxLDYS+EZCkakf7LdxRrBK29pMWtJc5z7Z0e6tGvo71SrRJOVEsRfaqP8YJfuOkvckpW3iWY1uaaTqOtUeqACYs6kfxBvXR7HQFv/DBcSHCmib+CaYbhmBVVkiCJoeIopyqhzB1x3bi8GlwwAC3V0wJqtc/4lIX25mGgoYSUrSNjh1xf3GA43a0VWPNHBRguL4X0lBeNkBKv/9uFyFYs4yug65dfEycUuezZRSpNpD8mlltw6gB/q+7XSdBOy7JNCJSPRBBySuHBJTwUMqz6GrDYPvd4AhaJ2JTeh6Jq08ztGqAWeAO4AzeD9a7VxFpsvYrHx7cRrynpKMZDGnTqzKRBHgttaaV8Cc+6oevBmsoBOnIHARXB5HwLZ1UcX2ikgXQKruH0zkPJlYLAh2sQKD0OHyfXL38HOyT/TCO3YHW8EJ4mA6RdtTCXhrO0KsYaZZ6FntOF4rr+V9Gux4nw7ea+wmdbG90TsNKXdnPBnfPH4STk2HD6VWhUEYgEbrHWF0d/Djh/vP8rr9AxgHHVDUyc0XsLJ4/QPZHw=="),
-this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var b=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field hover light dark",
-function(){var b=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (hover)")}),this.addEntry("gmdl google media design library text field single line text field press light dark",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;opacity=50;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (press)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (focus, light)")}),this.addEntry("gmdl google media design library text field single line text field normal light",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field error light",function(){var b=new mxCell("Input text",
-new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");a.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (error, light)")}),
-this.addEntry("gmdl google media design library text field single line text field disabled",function(){var b=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#B3B3B3;dashed=1;dashPattern=1 4;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (disabled)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
-function(){var b=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (focus, dark)")}),this.addEntry("gmdl google media design library text field single line text field normal dark",function(){var b=
-new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field error dark",function(){var b=new mxCell("Input text",
-new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");a.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (error, dark)")}),
+this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var a=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field hover light dark",
+function(){var a=new mxCell("Hint text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (hover)")}),this.addEntry("gmdl google media design library text field single line text field press light dark",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;opacity=50;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (press)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (focus, light)")}),this.addEntry("gmdl google media design library text field single line text field normal light",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#eeeeee;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field error light",function(){var a=new mxCell("Input text",
+new mxGeometry(0,0,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");c.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (error, light)")}),
+this.addEntry("gmdl google media design library text field single line text field disabled",function(){var a=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#B3B3B3;dashed=1;dashPattern=1 4;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (disabled)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
+function(){var a=new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#0C8CF2;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (focus, dark)")}),this.addEntry("gmdl google media design library text field single line text field normal dark",function(){var a=
+new mxCell("Input text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#cccccc;opacity=50;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field error dark",function(){var a=new mxCell("Input text",
+new mxGeometry(0,0,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#ff0000;");c.vertex=!0;var d=new mxCell("Username or Password is incorrect",new mxGeometry(0,30,346,25),"text;fontColor=#ff0000;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (error, dark)")}),
this.addDataEntry("gmdl google media design library text field single line text field icon normal light",346,35,"Single-line text field with icon (normal, light)","1ZbfT4MwEMf/Gh5dSjtQH3X+eNFo4oPPddygsVBSqjL/enu0zjG6jUyNkYWkvfbo3ee+3IjYrGyvNa+LW5WBjNhlxGZaKeNGZTsDKSNKRBaxi4hSYu+IXm1ZjbtVUnMNlRnjQJ3DK5cv4CzO0Jil9Iam4DUONcztI88bo9UzzJRU2horVdm184WQcsPkHwzaQLs1uM7kI7sGVYLRS7vlTWSmcDvY1EdUgMgL78YSZ+ONm+cr169U7cBnG86c7c88400BuJ1g3h5D2eZYrUleZnJiQEJduIT3gokoS7trLB0aprP0hZ14Cmu04nQIyyuAaJDciFfoHRci6E+8V8IGsjruKCZ9F7VYNGAGyFeBjqrCdFCF+w7nZiksJhTfQlUmhBPtD+IdN8c4R7BizuWZFHmFRRNZJkcVyZvwvLuaz4XB9BPyzZJ5h2QaqNhJQN9ke3XG6js5UN9SrKn50QcaW0ulbvgTdqhu1gdpa3GZ4u9nOXnp0ZDQA9g2FXoItnSA7VY9Cfn3ilQ/rkaa0AHXU/I7ajw+UI1GC17lHahd+tvTbTOBf15CIfhGvWCy4wCmOwHGPZUG+3EAZ/K9dtx+tuP+O3LEfqE7n/zjHrJS9/YmEhL7AT3ETr8+2Bzl9e+5Dw=="),
this.addDataEntry("gmdl google media design library text field single line text field icon focus light",342,35,"Single-line text field with icon (focus, light)","zZZRb4IwEMc/DY+a0gpzj0OnLzNZsoc9d+OEZoWaUh3u06+lnVMpypxLBiEp1x69+92fg4BMinou6SpfiBR4QO4DMpFCKDsq6glwHmDE0oBMA4yRvgI865gNm1m0ohJK1ccBW4cN5WuwFmuo1JY7Q5XTlRlKeNWPTColxRtMBBdSG0tR6rlkyTg/MrkHg1RQdwbXmFxkcxAFKLnVS95ZqnK7goxcRDmwLHduJLI2Wtn7bOf6naoeuGz9mZPzmae0ysEsRyZvh6GoM1OtYVakfKiAwyq3CZ8FE2ASzm6T2bQvHeyns3WFHToKe7TCuA3LKQBJ4FSxDRxs5yPodnwUTAey224QokMXsVxWoFrId4H2qsKoVYU4Qq1CaEhGektRqj2YqDmc/Yl9mMUaAEkMVvZK+R1nWWlKxtKU9yrRT7TbUR3nEI08xRl7pIy6C9FXytGFUuZsT7jPLlCdU1KKB/pimtE0bFG7loqPODmVYZ+mPdiOxXgJtriFbSFemCbWT35Jc/5T+eEIt0Deor+R382F8lOS0TJryJwSnL+Txs2h7SkzHyYmDOlKrE2y/QDGJwGGB7L09loPzuh3rbb+arWHL8WA/EHnHV+zaYTnm8Z9bM4rq7u7a/jEfkHT0LffP2OW8v6/2ic="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal light",342,35,"Single-line text field with icon (normal, light)","3ZZNU4MwEIZ/Dcd2QtKgHrV+XHTGGQ+e07KFjIF0Qlqpv96ExFoktFjtQWGYSTZZsvvs2y0RmRb1nWLL/EGmICJyE5GpklK7UVFPQYgII55G5DrCGJknwrc9q3GzipZMQamHOGDnsGZiBc7iDJXeCG+ocra0QwVz88qrSiv5AlMppDLGUpZm7WrBhfhi8i8GpaHuDa4x+cjuQBag1cZseeWpzt0OMvER5cCz3LsR6myscvNs6/qZqhn4bMOZk8OZp6zKwW5HNm+PoagzW61xVqRirEHAMncJHwQTYZI011A6OExn4ws79hR2aMVJF5ZXAFIgmOZraB0XIuhPfJTcBLI9bhSjtotcLCrQHeTbQAdVYdKpQkLRiFI6ik3pOxUxtKwGF7LUO1RRc3n7E3+zm2NL2fLlcyYuBc9KWzuepmJQrb4j4p4yeQc6CVTpPKBp1F+RoZqmR2pa8B0FP/tAY2Mp5T2b2a7UzNrUDPibxN6/y8nLDYfEHcD2VZXHYEs62B7kjBti/0B+mOIOyAt0GvmdHSk/rTgrs4bMPsEdaKkpt/9QXFrSlVzZZIcBTPYCjFuyDDbdAE76s55bf/Tc9o9iRE7Qgs//cNPYqru/a4TEfkTTMNPPrzJHefej7R0="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal dark",342,35,"Single-line text field with icon (normal, dark)","1ZZRT8IwEMc/zR4lXcsAHwWVF01IfPC5sGNr7Nalqzr89LZrRcY6mAgxNiFpr7317nf/HQvILKvmkhbpo4iBB+QuIDMphLKzrJoB5wFGLA7IbYAx0r8A33fshvUuKqiEXPVxwNbhjfJXsBZrKNWGO0OZ0sJMJaz0I6elkuIFZoILqY25yPXedM043zO5B4NUUHUGV5tcZHMQGSi50UfeWaxSe4IMXUQpsCR1biSyNlradbJ1/U5VT1y2/szJ8cxjWqZgjiOTt8OQVYmp1iDJYj5QwKFIbcJHwQSYrOrRlw7209m4wg4chR1a4agNyykASeBUsTdoXOcj6G5cCKYD2V53FaKmi1ivS1At5NtAe1Vh2KrCosa5XwqNyYhvLXK1g3NcD2d/Yh/msEZApgYsW1F+w1mSm6KxOOa9ivQT9XbUxzlEQ095Jh4xo+5S9BVzdKKYOduR7rMLNNSWXDzQpWlH9apJTYOP6nFeTk5n2KdqD7Z9OZ6CbdTC9iiWjP+9/ERBV0wZIhE6D2Uc4RbXa3QZNY5PVKOSjOZJDeqQ/o601piZfyomDPhSvJpk+wEcHQQYNlTqbb4enNHvem/11Xub78gVuUArnvzjHrJVd3cT8Yn9hB6il99fZ5by7sfbJw=="),
this.addDataEntry("gmdl google media design library text field single line text field icon focus dark",342,35,"Single-line text field with icon (focus, dark)","zZZRb4IwEMc/DY+a0opuj0OnL1uyZA977uSAZoWaUjfcp19LO6dSlDlN1oSkXHv07nd/DgIyLeqFpKv8USTAA3IfkKkUQtlZUU+B8wAjlgRkFmCM9BXgecdq2KyiFZVQqj4O2Dq8U74Ga7GGSm24M1Q5XZmphKV+ZFwpKd5gKriQ2liKUq/FKeP8wOQeDFJB3RlcY3KRLUAUoORGb/lgicrtDjJyEeXAsty5kcjaaGXvs63rT6p64rL1Z05OZ57QKgezHZm8HYaizky1hlmR8KECDqvcJnwSTIBJOL+N57O+dLCfzsYVdugo7NAKx21YTgFIAqeKvcPecT6C7sQnwXQg2+MGIdp3EWlagWoh3wbaqwqjVhXGEWoVQkMy0ktFqXZgps1w9mf2aTZrACQ2WNmS8jvOstKUjCUJ71Wi32i3ozrOIRp5inPjkTLqLkRfKUdnSpmzHeG+uEB1TnEpHuiraUazsEXtUio+4ORUhn2a9mA7FOM52MYtbI/ilWli/eQ3acY/lR+OcAvkLbqO/CZnyk9JRsusIXNMcP5OumyGtifMfJiYMKQrsTbJ9gM4Pgow3JOlt9d6cEZ/a7X1d6vdfykG5Aqd9+aSTSM83TSiZlxY3d1dwyf2M5qGvv35GbOUd//VvgA="),
this.addDataEntry("gmdl google media design library text field single line text field icon normal dark",342,35,"Single-line text field with icon (normal, dark)","3ZZNU8MgEIZ/TY7tEChVj7Z+XHTGGQ+eabNJGEnoENTUXy8EbJuG2FjtQZnpDCxs2H32zTYRmRf1rWKr/F4mICJyHZG5klK7WVHPQYgII55E5CrCGJlfhG96duNmF62YglIPccDO4ZWJF3AWZ6j0WnhDlbOVnSpYmkfOKq3kM8ylkMoYS1mavVnKhdgz+QeD0lD3BteYfGS3IAvQam2OvPFE5+4EmfiIcuBZ7t0IdTZWuXW2cd2maiY+23Dm5HDmCatysMeRzdtjKOrMVmucFYkYaxCwyl3CB8FEmCybMZQODtNZ+8KOPYUdWvG0C8srACkQTPNXaF0XIuhvfJDcBLK5bhSjtotM0wp0B/km0EFVmHSqMKVoRCkdxab0nYoYWlaDqSz1DtW0Gd7+yN/tYUOCzCxfvmTiUvCstLXjSSIG1eo7Iu4pk3egk0CVzgOaRv0VGappeqSmBd9R8JMPNDaWUt6xhe1KzapNzYCnzfhdTl5uOCTuALZ9VR6DbdrBdi8X3BD7B/LDFHdAXqDTyO/sSPlpxVmZNWS+EtyBlppw+w/FpSVdyReb7DCA0y8Bxi1ZBptuACf9Wc+tP3tu+6UYkRO04PM/3DQ26u7vGiGxH9E0zHL7VeYo7360fQA="),
-this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;opacity=80;");a.vertex=!0;return e.createVertexTemplateFromCells([b,a],346,35,"Single-line text field (normal)")}),
-this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");
-d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#cccccc;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");
-a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#eeeeee;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");
+this.addEntry("gmdl google media design library text field single line text field normal light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#808080;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,25,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;opacity=80;");c.vertex=!0;return e.createVertexTemplateFromCells([a,c],346,35,"Single-line text field (normal)")}),
+this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");
+d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#cccccc;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#000000;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");
+c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#eeeeee;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");
a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;dashed=1;dashPattern=1 4;opacity=80;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");d.vertex=!0;return e.createVertexTemplateFromCells([a,
c,d],346,55,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#cccccc;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",
@@ -4956,7 +5026,7 @@ e+"").join(" ")),this.createVertexTemplateEntry(c+"iKeybNumb;",174,100,"","iPhon
12,12,"","Circle",null,null,this.getTagsForStencil("mxgraph.ios7.misc","circle",e+"").join(" ")),this.createVertexTemplateEntry(d+"pageControl;fillColor=#222222;strokeColor=#aaaaaa;",50,5,"","Page control",null,null,this.getTagsForStencil(b,"pageControl",e+"").join(" ")),this.createVertexTemplateEntry("html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=2;shape=mxgraph.ios7.misc.current_location;strokeColor=#ffffff;fillColor=#0080F0",60,
60,"","Current Location",null,null,this.getTagsForStencil("mxgraph.ios7.misc","current_location",e+"").join(" ")),this.createVertexTemplateEntry("html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=2;shape=mxgraph.ios7.misc.expand;fillColor=#c0c0c0;",24,6,"","Expand",null,null,this.getTagsForStencil("mxgraph.ios7.misc","expand",e+"").join(" ")),this.addDataEntry(e+"volume control",160,14,"Volume Control","vVVdb8IgFP01fbTBVqvPuunTEpM97HFhchUyWhqgWvfrd1to/WjdjHEjacI9cLmcc4AG8Twtl5rm/EUxkEH8HMRzrZR1vbScg5RBRAQL4qcgigh+QbS4MjqsR0lONWT2loTIJeyoLMAhDjD2ID1gOM2rroY1LjkzVqtPmCupNIKZynBsthFSXkB+YdAWyqubqyG/syWoFKw+4JS9YJb7GYkjQDiILW/SRg6jxsXbNvVIFTuebT/z+HbmabmtDAqFMpMwFWYd7pQsUnhnap9dsA+iOKnbNalu0iXq1+XgLQ3HLuVEp6Sr0tRBGiS1YgdnxfqU8/VWSuA22mKDC63VZmPAdpRud3mT+KMHiF/k/yn9ecIPRjRns++83muFLz5o1mmsmfyBNePfreE2xeynYavzm6dfI5zitcCAYMCo4cB80OdoIUIjBQN0afZB9UpVVBLScRC9JcmULJDXTOV0LWylwZCQ7hlY1A1xTjMm4VV8VUVRusccgGnX8WHP5bvjicLw+PA7507/C98="),
this.addDataEntry(e+"picker",175,160,"Picker","7ZZta8IwEMc/Td5Km9i6vV3dZLDBYC/2OqxXE5Y2kkSt+/S7mtQHtEx8gg0Vofe/u9z1/6tQwrKyHhk+Ea86B0XYI2GZ0dr5q7LOQClCI5kTNiSURvgj9KkjGy+z0YQbqNwhDdQ3zLiagle8YN1CBUG4EtcaxoQ9WGf0F3zI3IlWETzXcwwiDHJuBeQhwMykOaGsx83d9aS2g6ns8epTaIP5MBiMg7pz+aUUNh+BLsGZBZbMwwZNxSDxbQLkWLRtqb/riFsvjFe9ay/wItix3xq2Y82zgxKV+FoWFbpy7/K7KYmTEGdaNTmcynjUfFE3YLFqc+ZB5tLjzGXhETGguJMz2Dr/FMP7XYZf7Zn8J4aHEW9a4mQaLbaPaTt0UVhwO4BWix3ELOlixi7MDIG9yArs79To8rOauo9nIZVq9UpXsLMi/avQ0/4FoKdd0Pu3P+oZmN2nF2A26GKW3JidgVlM706HhuH6zc+Xb74Y/gA=")];
-this.addPalette("ios7ui","iOS UI",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))}})();(function(){Sidebar.prototype.addLeanMappingPalette=function(){var a=mxConstants.STYLE_STROKEWIDTH+"=2;html=1;shape=mxgraph.lean_mapping.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=2;shape=mxgraph.lean_mapping.",d=this,b=[this.createVertexTemplateEntry(e+"boat_shipment;align=center;",100,100,"","Boat Shipment",null,null,this.getTagsForStencil("mxgraph.lean_mapping","boat_shipment","value stream lean mapping ").join(" ")),this.addDataEntry("value stream lean mapping data box",
+this.addPalette("ios7ui","iOS UI",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))}})();(function(){Sidebar.prototype.addLeanMappingPalette=function(){var a=mxConstants.STYLE_STROKEWIDTH+"=2;html=1;shape=mxgraph.lean_mapping.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=2;shape=mxgraph.lean_mapping.",d=this,b=[this.createVertexTemplateEntry(e+"boat_shipment;align=center;",100,100,"","Boat Shipment",null,null,this.getTagsForStencil("mxgraph.lean_mapping","boat_shipment","value stream lean mapping ").join(" ")),this.addDataEntry("value stream lean mapping data box",
60,100,"Data Box","1ZVfT8MgFMU/Da9LB7Pude10LxofNPFxuRZWiLQQirP10wstczbd4p9osz00uT2XA/f8HgCRtKhXBjS/VZRJRK4QSY1StquKOmVSIhwJisgSYRy5D+HrI91p2400GFba7xhwZ9iCfGGd0gmVbWQQKmvUM3sU1HInYEQSbgs36HLqyoqD9uuKOvcZJpJBuS5Aa1HmEwoW1k+q7lvCicxYVh+dupXCyCumCmZN45a8hilcN+6CRZyJnO9cURCh6oT8w7pn4IqA4TASMkDiLQ87Op/RuATu5GSjSnsv3rw490w0ZC7+DdvYAMyHFRnIhRR56WkJSv0eP8aCf4UF/wGV2UEqd6dMpemnHwHSxQBSAjbjZwBpNh6keABpsQUhzwBSPB6ky6/v5RODM/83OO53/yC2vd57+Q4="),this.createVertexTemplateEntry(a+"outside_sources;whiteSpace=wrap;align=center;",
100,70,'<table cellpadding="5" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr><td height="50%"></td></tr><tr><td align="center" height="50%">XYZ Corp</td></tr></table>',"Customer/Supplier",null,null,this.getTagsForStencil("mxgraph.lean_mapping","outside_sources","value stream lean mapping ").join(" ")),this.addEntry("value stream lean mapping dedicated process manufacturing",function(){var b=new mxCell("\nDescription",new mxGeometry(0,0,100,70),a+"manufacturing_process;fontSize=12;verticalAlign=middle;html=1;align=center;whiteSpace=wrap;");
b.vertex=!0;var e=new mxCell("Process",new mxGeometry(0,0,100,13),"text;fontSize=12;spacingLeft=2;verticalAlign=top;html=1;align=center;spacingTop=-5;resizeWidth=1;");e.vertex=!0;b.insert(e);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Dedicated Process")}),this.createVertexTemplateEntry(a+"manufacturing_process_shared;spacingTop=-5;align=center;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;",100,70,"Process","Shared Process",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
@@ -4965,8 +5035,8 @@ null,null,this.getTagsForStencil("mxgraph.lean_mapping","push_arrow","value stre
"fifo_lane;overflow=fill;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;align=center;",100,50,'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr><td height="0%">MAX=XX</td></tr><tr><td align="center" height="100%"></td></tr></table>',"FIFO Lane",null,null,this.getTagsForStencil("mxgraph.lean_mapping","fifo_lane","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"buffer_or_safety_stock;",40,100,"","Safety Stock",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
"buffer_or_safety_stock","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","truck_shipment","value stream lean mapping ").join(" "),function(){var b=new mxCell("",new mxGeometry(0,0,100,100),a+"truck_shipment;");b.vertex=!0;var e=new mxCell("2x per\nWeek",new mxGeometry(0,0,60,80),"text;fontSize=12;verticalAlign=middle;html=1;align=center;whiteSpace=wrap;");e.vertex=!0;b.insert(e);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,
"Truck Shipment")}),this.createVertexTemplateEntry(a+"schedule;whiteSpace=wrap;align=center;",100,70,"Production\nControl","Production Control",null,null,this.getTagsForStencil("mxgraph.lean_mapping","schedule","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"schedule;whiteSpace=wrap;align=center;",100,70,"Other\nInformation","Other Information",null,null,this.getTagsForStencil("mxgraph.lean_mapping","schedule","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+
-"go_see_production_scheduling;",92,60,"","Go See Production Scheduling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","go_see_production_scheduling","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","kaizen_lightening_burst","value stream lean mapping ").join(" "),function(){var b=new mxCell("",new mxGeometry(0,0,90,40),e+"kaizen_lightening_burst;");b.vertex=!0;var a=new mxCell("",new mxGeometry(8,8,74,24),"rect;fillColor=#000000;strokeColor=none;");
-a.vertex=!0;b.insert(a);return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Kaizen Lightening Burst")}),this.createVertexTemplateEntry(e+"kanban_post;",50,100,"","Kanban Post",null,null,this.getTagsForStencil("mxgraph.lean_mapping","kanban_post","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"load_leveling;",100,30,"","Load Leveling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","load_leveling","value stream lean mapping ").join(" ")),
+"go_see_production_scheduling;",92,60,"","Go See Production Scheduling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","go_see_production_scheduling","value stream lean mapping ").join(" ")),this.addEntry(this.getTagsForStencil("mxgraph.lean_mapping","kaizen_lightening_burst","value stream lean mapping ").join(" "),function(){var a=new mxCell("",new mxGeometry(0,0,90,40),e+"kaizen_lightening_burst;");a.vertex=!0;var b=new mxCell("",new mxGeometry(8,8,74,24),"rect;fillColor=#000000;strokeColor=none;");
+b.vertex=!0;a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Kaizen Lightening Burst")}),this.createVertexTemplateEntry(e+"kanban_post;",50,100,"","Kanban Post",null,null,this.getTagsForStencil("mxgraph.lean_mapping","kanban_post","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"load_leveling;",100,30,"","Load Leveling",null,null,this.getTagsForStencil("mxgraph.lean_mapping","load_leveling","value stream lean mapping ").join(" ")),
this.createVertexTemplateEntry(e+"move_by_forklift;",92,100,"","Move by Forklift",null,null,this.getTagsForStencil("mxgraph.lean_mapping","move_by_forklift","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"mrp_erp;whiteSpace=wrap;",70,100,"","MRP/ERP",null,null,this.getTagsForStencil("mxgraph.lean_mapping","mrp_erp","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"operator;",100,84,"","Operator",null,null,this.getTagsForStencil("mxgraph.lean_mapping",
"operator","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"quality_problem;fontSize=24;fontStyle=1;whiteSpace=wrap;align=center;",80,100,"Q","Quality Problem",null,null,this.getTagsForStencil("mxgraph.lean_mapping","quality_problem","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(e+"verbal;",50,100,"","Verbal Information",null,null,this.getTagsForStencil("mxgraph.lean_mapping","verbal","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+
"fifo_sequence_flow;fontStyle=0;fontSize=20;align=center;",100,50,"FIFO","FIFO Sequence",null,null,this.getTagsForStencil("mxgraph.lean_mapping","fifo_sequence_flow","value stream lean mapping ").join(" ")),this.createVertexTemplateEntry(a+"production_kanban;overflow=fill;",100,100,'<p style="font-size:2em;margin-right:35px;margin-top:13px;text-align:right">P</p>',"Production Kanban",null,null,this.getTagsForStencil("mxgraph.lean_mapping","production_kanban","value stream lean mapping ").join(" ")),
@@ -4987,55 +5057,55 @@ e.geometry.relative=!0;e.geometry.offset=new mxPoint(0,-50);e.vertex=!0;b.insert
150,50,"ON","On-off button",null,null,this.getTagsForStencil("mxgraph.mockup.buttons","onOffButton","mockup button on off").join(" "))];this.addPalette("mockupButtons","Mockup Buttons",!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))};Sidebar.prototype.addMockupContainersPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+
"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=mxConstants.STYLE_STROKECOLOR+"=#666666;",b=mxConstants.STYLE_FILLCOLOR+"=#ffffff;",c=this,h=[this.createVertexTemplateEntry(a+"containers.videoPlayer;"+d+"strokeColor2=#008cff;strokeColor3=#c4c4c4;textColor=#666666;"+b+"fillColor2=#008cff;barHeight=30;barPos=20;",300,200,"","Video Player",null,null,this.getTagsForStencil("mxgraph.mockup.containers","videoPlayer",
"mockup container ").join(" ")),this.addDataEntry("mockup container accordion",100,220,"Accordion","1VZdb4IwFP01fZwprbo96zaflizZw54buEBjoaStCvv1u0BFnLKYbS5IQtJ77kdvzz00EL7MypURRfqiI1CEPxG+NFq7dpWVS1CKMCojwh8JYxRfwp4HvEHjpYUwkLtLElibsBVqAy3SAtZVygPWGb2Gdxm5FIGA8IVNRaR3aFA0ImFTiLwhlExyXIe4PRgEUpepQ1ZRl8zKpD7uJNPhelNMQp07IXMwdmIMhNj1wrzJD/AVY6nUUittmmZ43Dx1taarnmfePOjxJwLjoBxkpYE8JSvQGThTYcjOn7KOoC1zNAWZpD5tTycVtgWSLvdAMi48z+c55yecr4zeFAgFYyMf3d4M7r19jvImzjcdfBlarnM4mZcHDVis3j/dRcNjPxzevMUMKOHkFo7q/2ag08GBju5rutZA+8kjn6rf4lVL3JnR6rjMPkPHsQV3ooKusYuEMRsUBr8tYXTX7nfCwDhKH8Lz13PnuUl1zNgV1DEfVMf0ttQxxmujOkr4J5nc/cUtgubh/68N7/8efgI="),
-this.addEntry("mockup container accordion",function(){var b=new mxCell("",new mxGeometry(0,0,100,220),e+"containers.rrect;rSize=0;fillColor=#ffffff;strokeColor=#666666;");b.vertex=!0;var a=new mxCell("Group 1",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);a=new mxCell("Group 2",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,26);a.vertex=!0;b.insert(a);a=new mxCell("Group 3",new mxGeometry(0,0,100,26),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;fontStyle=1;fillColor=#008cff;strokeColor=#008cff;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,52);a.vertex=!0;b.insert(a);a=new mxCell("Group 4",new mxGeometry(0,1,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,-26);a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Accordion")}),this.addEntry("mockup container browser window",function(){var b=new mxCell("",new mxGeometry(0,0,550,380),e+"containers.browserWindow;rSize=0;fillColor=#ffffff;strokeColor=#666666;mainText=,;recursiveResize=0;");b.vertex=!0;var a=new mxCell("Page 1",
-new mxGeometry(60,12,110,26),e+"containers.anchor;fontSize=17;fontColor=#666666;align=left;");a.vertex=!0;b.insert(a);a=new mxCell("https://www.draw.io",new mxGeometry(130,60,250,26),e+"containers.anchor;rSize=0;fontSize=17;fontColor=#666666;align=left;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Browser Window")}),this.createVertexTemplateEntry(a+"containers.userMale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Male",null,null,this.getTagsForStencil("mxgraph.mockup.containers",
-"userMale","mockup container ").join(" ")),this.createVertexTemplateEntry(a+"containers.userFemale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Female",null,null,this.getTagsForStencil("mxgraph.mockup.containers","userFemale","mockup container ").join(" ")),this.addEntry("mockup container group",function(){var b=new mxCell("",new mxGeometry(0,0,150,200),"shape=mxgraph.mockup.containers.marginRect;rectMarginTop=10;strokeColor=#666666;fillColor=#ffffff;strokeWidth=1;dashed=0;rounded=1;arcSize=5;recursiveResize=0;");
-b.vertex=!0;var a=new mxCell("Group",new mxGeometry(5,0,90,30),"shape=rect;strokeColor=none;fillColor=#008cff;strokeWidth=1;dashed=0;rounded=1;arcSize=20;fontColor=#ffffff;fontSize=17;spacing=2;spacingTop=-2;align=left;autosize=1;spacingLeft=4;resizeWidth=0;resizeHeight=0;perimeter=none;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],150,200,"Group")}),this.createVertexTemplateEntry(e+"containers.window;align=left;verticalAlign=top;spacingLeft=8;strokeColor2=#008cff;strokeColor3=#c4c4c4;fontColor=#666666;"+
-b+"mainText=;fontSize=17;labelBackgroundColor=none;",550,380,"Window Title","Window",null,null,this.getTagsForStencil("mxgraph.mockup.containers","window","mockup container ").join(" ")),this.addEntry("mockup container horizontal tab bar",function(){var b=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginTop=32;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");b.vertex=!0;var a=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(10,0);a.vertex=!0;b.insert(a);a=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(75,0);a.vertex=!0;b.insert(a);a=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(140,0);a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,0,400,7),e+"containers.topButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;gradientColor=none;resizeWidth=1;movable=0;deletable=1;");a.vertex=!0;a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,25);b.insert(a);return c.createVertexTemplateFromCells([b],400,200,"Horizontal Tab Bar")}),this.addEntry("mockup container vertical tab bar",
-function(){var b=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginLeft=67;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");b.vertex=!0;var a=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,10);a.vertex=!0;b.insert(a);a=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");
-a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,40);a.vertex=!0;b.insert(a);a=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(0,70);a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,0,7,200),e+"containers.leftButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;resizeHeight=1;movable=0;deletable=0;");a.geometry.relative=
-!0;a.geometry.offset=new mxPoint(60,0);a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],400,200,"Vertical Tab Bar")}),this.addDataEntry("mockup container dialog box",250,140,"Dialog Box","7ZZNj5swEIZ/jY+LwA7Z7bFL2j20VStlpZ5dGMBag5FxEtJf3wE7CeGjok0rraoSRbLHnvF4ntcGwqKiedK8yj+pBCRh7wiLtFLGtoomAikJ9UVC2IZQ6uOf0Pczo0E36ldcQ2mWOFDrsOdyB9ayVQWgJYGU76QhdE0oC3zCHhPBpcp6BgON8ax/bY7S+ddGqxf4KhKToyHAeXXOE3XATheF1zkkrsOlyEpsx5gtaDTkppAXr6oNWTRZWx2vUPHLrvJiVRouStC1pzXEuMlHvRXfwUW0q0dKKt2lw9bdgyMpOs7ZXYDgHvt70EbEXL51uRlVofWQCwPbisftvAMm1HoKKXsR0+5pc8BposyeW8cNo2hxRcbI0MyC6kyO0hMgBaOPOOXgKtnCCi1MPweR5Se3lTPy2hqys++FOzYc+mkZsJEMNo62/ywMon1dlIfM5tjOq+GUk4TUXJB97HqbhwHcUpXQZgA1rtnf8yKu9Pe4MmfTILkRe7iKfwvr1Yj1mK6jgo6iqmGqkr7/EHdq76rCv8kzm3HherwXVYxNV+za4eiuNy+0/X49J8pJf7Wcbv0vSmBa58XvaHi1/F0wOH0qTWswIx7nbSxCFI4QRbyM8e3weo/hz67YkXjiVftbcK06Ad1yzpqTTgbkgpFs3kzJJvwzslkNZMPYX5DNeiSbzx/+S+YGydz/a5LB7uXb0k7vf3r+AA=="),
+this.addEntry("mockup container accordion",function(){var a=new mxCell("",new mxGeometry(0,0,100,220),e+"containers.rrect;rSize=0;fillColor=#ffffff;strokeColor=#666666;");a.vertex=!0;var b=new mxCell("Group 1",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.vertex=!0;a.insert(b);b=new mxCell("Group 2",new mxGeometry(0,0,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,26);b.vertex=!0;a.insert(b);b=new mxCell("Group 3",new mxGeometry(0,0,100,26),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;fontStyle=1;fillColor=#008cff;strokeColor=#008cff;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,52);b.vertex=!0;a.insert(b);b=new mxCell("Group 4",new mxGeometry(0,1,100,26),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;fontStyle=1;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,-26);b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Accordion")}),this.addEntry("mockup container browser window",function(){var a=new mxCell("",new mxGeometry(0,0,550,380),e+"containers.browserWindow;rSize=0;fillColor=#ffffff;strokeColor=#666666;mainText=,;recursiveResize=0;");a.vertex=!0;var b=new mxCell("Page 1",
+new mxGeometry(60,12,110,26),e+"containers.anchor;fontSize=17;fontColor=#666666;align=left;");b.vertex=!0;a.insert(b);b=new mxCell("https://www.draw.io",new mxGeometry(130,60,250,26),e+"containers.anchor;rSize=0;fontSize=17;fontColor=#666666;align=left;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Browser Window")}),this.createVertexTemplateEntry(a+"containers.userMale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Male",null,null,this.getTagsForStencil("mxgraph.mockup.containers",
+"userMale","mockup container ").join(" ")),this.createVertexTemplateEntry(a+"containers.userFemale;"+d+"strokeColor2=#008cff;"+b,100,100,"","User, Female",null,null,this.getTagsForStencil("mxgraph.mockup.containers","userFemale","mockup container ").join(" ")),this.addEntry("mockup container group",function(){var a=new mxCell("",new mxGeometry(0,0,150,200),"shape=mxgraph.mockup.containers.marginRect;rectMarginTop=10;strokeColor=#666666;fillColor=#ffffff;strokeWidth=1;dashed=0;rounded=1;arcSize=5;recursiveResize=0;");
+a.vertex=!0;var b=new mxCell("Group",new mxGeometry(5,0,90,30),"shape=rect;strokeColor=none;fillColor=#008cff;strokeWidth=1;dashed=0;rounded=1;arcSize=20;fontColor=#ffffff;fontSize=17;spacing=2;spacingTop=-2;align=left;autosize=1;spacingLeft=4;resizeWidth=0;resizeHeight=0;perimeter=none;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],150,200,"Group")}),this.createVertexTemplateEntry(e+"containers.window;align=left;verticalAlign=top;spacingLeft=8;strokeColor2=#008cff;strokeColor3=#c4c4c4;fontColor=#666666;"+
+b+"mainText=;fontSize=17;labelBackgroundColor=none;",550,380,"Window Title","Window",null,null,this.getTagsForStencil("mxgraph.mockup.containers","window","mockup container ").join(" ")),this.addEntry("mockup container horizontal tab bar",function(){var a=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginTop=32;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");a.vertex=!0;var b=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(10,0);b.vertex=!0;a.insert(b);b=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(75,0);b.vertex=!0;a.insert(b);b=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;gradientColor=none;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(140,0);b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,400,7),e+"containers.topButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;gradientColor=none;resizeWidth=1;movable=0;deletable=1;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,25);a.insert(b);return c.createVertexTemplateFromCells([a],400,200,"Horizontal Tab Bar")}),this.addEntry("mockup container vertical tab bar",
+function(){var a=new mxCell("",new mxGeometry(0,0,400,200),e+"containers.marginRect2;rectMarginLeft=67;strokeColor=#666666;fillColor=#ffffff;gradientColor=none;");a.vertex=!0;var b=new mxCell("Tab 1",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,10);b.vertex=!0;a.insert(b);b=new mxCell("Tab 2",new mxGeometry(0,0,60,25),e+"containers.rrect;rSize=0;fontSize=17;fontColor=#ffffff;strokeColor=#008cff;fillColor=#008cff;");
+b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,40);b.vertex=!0;a.insert(b);b=new mxCell("Tab 3",new mxGeometry(0,0,60,25),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"containers.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,70);b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,7,200),e+"containers.leftButton;rSize=5;strokeColor=#008cff;fillColor=#008cff;resizeHeight=1;movable=0;deletable=0;");b.geometry.relative=
+!0;b.geometry.offset=new mxPoint(60,0);b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],400,200,"Vertical Tab Bar")}),this.addDataEntry("mockup container dialog box",250,140,"Dialog Box","7ZZNj5swEIZ/jY+LwA7Z7bFL2j20VStlpZ5dGMBag5FxEtJf3wE7CeGjok0rraoSRbLHnvF4ntcGwqKiedK8yj+pBCRh7wiLtFLGtoomAikJ9UVC2IZQ6uOf0Pczo0E36ldcQ2mWOFDrsOdyB9ayVQWgJYGU76QhdE0oC3zCHhPBpcp6BgON8ax/bY7S+ddGqxf4KhKToyHAeXXOE3XATheF1zkkrsOlyEpsx5gtaDTkppAXr6oNWTRZWx2vUPHLrvJiVRouStC1pzXEuMlHvRXfwUW0q0dKKt2lw9bdgyMpOs7ZXYDgHvt70EbEXL51uRlVofWQCwPbisftvAMm1HoKKXsR0+5pc8BposyeW8cNo2hxRcbI0MyC6kyO0hMgBaOPOOXgKtnCCi1MPweR5Se3lTPy2hqys++FOzYc+mkZsJEMNo62/ywMon1dlIfM5tjOq+GUk4TUXJB97HqbhwHcUpXQZgA1rtnf8yKu9Pe4MmfTILkRe7iKfwvr1Yj1mK6jgo6iqmGqkr7/EHdq76rCv8kzm3HherwXVYxNV+za4eiuNy+0/X49J8pJf7Wcbv0vSmBa58XvaHi1/F0wOH0qTWswIx7nbSxCFI4QRbyM8e3weo/hz67YkXjiVftbcK06Ad1yzpqTTgbkgpFs3kzJJvwzslkNZMPYX5DNeiSbzx/+S+YGydz/a5LB7uXb0k7vf3r+AA=="),
this.addDataEntry("mockup container dialog box",250,160,"Dialog Box","zZZRb5swEMc/jR+LwC5pX9dk68NWtVIq7dmDA6wajGwnIf30O8AECFClyx5KFMn3x3c+3+9sQdg6rx41L7MnFYMk7Dtha62UbUd5tQYpCfVFTNiGUOrjn9AfC2+D5q1fcg2FvcSBtg57LnfQKluVAyoxJHwnLaErQlngE/aQgzE8hYFiobJeG8DYo3QBjNXqDX6L2GYoBDjPZDxWBzRqp5ibDGJncCnSAscRpgsahczmsvcq65B5ldbl8XIVve1KL1KF5aIAbTytIcJdPuiteAcXsV19raTSTTps1Tz4JkHHJd0FCO7Q3oO2IuLym8vNqhLVQyYsbEse1fMOmFDtKaQcREyap84Bp4kifa0dN4yi4qqMkaFaJNVIDtMjIAarjzjl4CpZ0wpbmn4GIs06t5UTuWmF9OTbg8eBYz/fB2zSB08dbv9VWGT7tTCfQ1uCu9wOXU4SEtsz+9VYm/sP6GowuPBw4xfRpf9GlzlNg+RW7GEU/xritxPiU8QODTqK0sBcOX3/Puqrwv/IE6BB9QpVwBj6RRVj8xUbOxzdLeeFrT2s50w56WfL6dZ/UQLTOi1+Q8PR8jfB2RlUSWLATnictnERonCC6PnnFz6HH12yk8aJbuvfTON85qK95uBVZ41zHAUYtFEw20fh/+mj7u7u+oix6/sIzf4Dop0+/L74Cw==")];
-this.addPalette("mockupContainers","Mockup Containers",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))};Sidebar.prototype.addMockupFormsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",
+this.addPalette("mockupContainers","Mockup Containers",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupFormsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",
d=mxConstants.STYLE_STROKECOLOR+"=#999999;",b=mxConstants.STYLE_FILLCOLOR+"=#ffffff;",c=this,h=[this.createVertexTemplateEntry(e+"forms.rrect;rSize=0;fillColor=#eeeeee;strokeColor=#999999;gradientColor=#cccccc;align=left;spacingLeft=4;fontSize=17;fontColor=#666666;labelPosition=right;",15,15,"Option 1","Checkbox",null,null,this.getTagsForStencil("mxgraph.mockup.forms","checkbox","mockup form ").join(" ")),this.addDataEntry("mockup form checkbox checkboxes",150,120,"Checkboxes","7VZNb8IwDP01uValKV9XYOOyadN22DmkbhuRNlUSoOzXL00yvtZOSGgMabOEFD/32Yn9GorwtKjnklT5o0iAI3yH8FQKod2qqKfAOYpCliA8Q1EUmh+K7juiPRsNKyKh1OcQIkdYE74ChzhA6S33gNJSLOGNJTo3QA/hicpJIjbGCY2TEJVD4h3CWVaaNTXlQRog1wXfs6omZVFnzXGDQtDlqgpSIQsVSAnUbHgiX9k7+GSu8FRwIe1O8NiaiaSM8wM8tdawga6kYmt4AbXP448IUkPd2SYL+R7NQRSg5dY8svHHbp7ou1aGObAs/6T5/oZEOSDbcfddNwvf+PYh4C9DeKo0E6XBerczjpOmg7Vvx2QSJ8yUPohRawdb45A2hVRFKCuzB+vN4qacKLWv3ht6/yDRwJrBOVkAfxaK2Y7hmXTDOW/qUfvUPWHkCFvnDYO+84800SKJ/uWKiLsVcUMv6F9XBL6mJPrdksC/IwmaA10uRH2iCtncvWTBO1RCrLWpJLbWrpLdcC9VSRiOqP2vuJpKBtdUyaBbJfH/xXErF8f4ByVh3P3no40dfV1+AA=="),
this.createVertexTemplateEntry("shape=ellipse;fillColor=#eeeeee;strokeColor=#999999;gradientColor=#cccccc;html=1;align=left;spacingLeft=4;fontSize=17;fontColor=#666666;labelPosition=right;shadow=0;",15,15,"Setting 1","Radiobutton",null,null,this.getTagsForStencil("mxgraph.mockup.forms","radiobutton radio button","mockup form ").join(" ")),this.addDataEntry("mockup form radiobutton radio button group",150,120,"Radiobutton Group","7ZbJboMwEIafhmtEcMhyTdrm0kpVc+jZhQlYMRjZztan72A7C4Eg1LQ5ZSQkzwwztv/PLB6ZZbu5pEX6JmLgHnn2yEwKoe0o282Acy/wWeyRJy8IfLy84OVKtm+yfkEl5LpLQWALNpSvwUZsQOk9dwGlpVjBJ4t1ioG+R6YqpbHYouOjE1OVQuwcylmS4zjC6UFiINUZP1UVZctsl5Tb7WUiWq2L3lLITPWkhAgXPJUL9g2umZ14JriQZiVkYgwzS8b5WXxprKyGaC0V28AHqFMft0WQGnZXZTIhp9EcRAZa7vGWrdt2eUdopfRTYEl6KHP6+lTZQHKsPamOAyd8MwRSg7AArVmeYLBf5+F0xB6sUHAh2oU0YKxVTKQRM9ThLBcZq+I7oOWwLEGpgka4wlfjPQ3KmUWu3UL6I+ef9RwawzinX8DfhWKaibKhtGp2wxQ0Y3IFY1uwt96oF1q/ArGBYXg7wkELwoZH6oGwG0JyT4ZhC0NyG0NqrInhwFgzw6Pef8jQ98eReVfejeHwngyHHb5nNXAXsI5IqrBykUOVRSepwlapSPW413Sa1GWa3K7SqOWkDx5vq9+e9Mk/nnR0T3+FJlf5afwB"),
this.createVertexTemplateEntry(a+"forms.colorPicker;chosenColor=#aaddff;fillColor=#ffffff;",40,40,"","Color Picker",null,null,this.getTagsForStencil("mxgraph.mockup.forms","colorPicker","mockup form ").join(" ")),this.createVertexTemplateEntry(e+"forms.comboBox;"+d+mxConstants.STYLE_FILLCOLOR+"=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666;fontSize=17;spacingLeft=3;",150,30,"Option 1","Combo Box",null,null,this.getTagsForStencil("mxgraph.mockup.forms","comboBox","mockup form ").join(" ")),
-this.createVertexTemplateEntry(e+"forms.spinner;"+d+"spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#aaddff;fontSize=17;fontColor=#666666;mainText=;html=1;overflow=fill;",150,60,'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;"><tr><td style="width:85%">100</td><td style="width:15%"></td></tr></table>',"Spinner",null,null,this.getTagsForStencil("mxgraph.mockup.forms","spinner","mockup form ").join(" ")),this.addEntry("mockup form menu bar",function(){var b=new mxCell("",
-new mxGeometry(0,0,498,30),e+"forms.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("File",new mxGeometry(0,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Edit",new mxGeometry(83,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Options",
-new mxGeometry(166,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Tools",new mxGeometry(249,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Window",new mxGeometry(332,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("Help",new mxGeometry(415,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Menu Bar")}),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;",150,30,"","Horizontal Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms",
+this.createVertexTemplateEntry(e+"forms.spinner;"+d+"spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#aaddff;fontSize=17;fontColor=#666666;mainText=;html=1;overflow=fill;",150,60,'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;"><tr><td style="width:85%">100</td><td style="width:15%"></td></tr></table>',"Spinner",null,null,this.getTagsForStencil("mxgraph.mockup.forms","spinner","mockup form ").join(" ")),this.addEntry("mockup form menu bar",function(){var a=new mxCell("",
+new mxGeometry(0,0,498,30),e+"forms.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("File",new mxGeometry(0,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Edit",new mxGeometry(83,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Options",
+new mxGeometry(166,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Tools",new mxGeometry(249,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Window",new mxGeometry(332,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("Help",new mxGeometry(415,0,83,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"forms.rrect;rSize=0;fontSize=17;fontColor=#666666;");b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Menu Bar")}),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;",150,30,"","Horizontal Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms",
"horSlider","mockup form horizontal").join(" ")),this.createVertexTemplateEntry(a+"forms.horSlider;"+d+b+"sliderStyle=basic;sliderPos=20;handleStyle=circle;fillColor2=#ddeeff;direction=north;",30,150,"","Vertical Slider",null,null,this.getTagsForStencil("mxgraph.mockup.forms","horSlider","mockup form vertical").join(" ")),this.addDataEntry("mockup form list box",150,200,"List Box","7ZZdS8MwFIZ/TW9HlmzO3W7qEBQEBa9De9oG06YkUTd/vadJ3FprZX7MOVigkPMmJx/vEw6N2LxYLjSv8muVgIzYecTmWinre8VyDlJGlIgkYmcRpQS/iF70jA7dKKm4htJuk0B9whOXj+AVLxi7kkEwVqsHuBeJzVEYRmxmcp6oZwwIBgk3OSQh4FJkJfZj3B40Crkt5Carqpcslll93UGh4ofHapAqXZiB1hDjgWf6VrxAWMxvPFdSaXcSNnUNR1IhZUNPXUM9XAa0hWWvIU4KbixAFWD1Cqc8hwvWM8beNJKDyPKQRkkQufFCts7d+IudYPHHdrOO3XfCotGH4LkqbUMn5DR2ntd6WGA4+YSNBoOzmlfaihb9Hi0WNA2SW/EErfV/QnDUIXhpoUBluB+IvIzz2usuhzavE9caO0lIa/im4rEosysXnY3/HBT9KqiwxY0SuDMlqzbvtwyVpgZsB+z6YFuxHvex3lORPLL2WHbB+qSPNfs/xfnXsL+r0UkC4Gp0u/qXqoRDfSOTXbyRSd8bGR3rwR5ZT3+BNYabn24/vflP/go="),
this.createVertexTemplateEntry(e+"forms.pwField;"+d+"mainText=;align=left;fillColor=#ffffff;fontColor=#666666;fontSize=17;spacingLeft=3;",150,30,"********","Password Field",null,null,this.getTagsForStencil("mxgraph.mockup.forms","pwField","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"forms.splitter;fillColor=#ffffff;"+d,350,10,"","Horizontal Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"forms.splitter;fillColor=#ffffff;"+
-d+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",10,350,"","Vertical Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.addEntry("mockup form wedge bar",function(){var b=new mxCell("Tab 1",new mxGeometry(10,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("Tab 2",new mxGeometry(85,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#ffffff;align=left;spacingLeft=5;strokeColor=#008cff;fillColor=#008cff;");
-a.vertex=!0;var d=new mxCell("Tab 3",new mxGeometry(160,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");d.vertex=!0;return c.createVertexTemplateFromCells([b,a,d],230,30,"Wedge Bar")}),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_1;",136,31,"","Formatting Toolbar 1",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_1","mockup form ").join(" ")),this.createVertexTemplateEntry(a+
+d+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",10,350,"","Vertical Splitter",null,null,this.getTagsForStencil("mxgraph.mockup.forms","splitter","mockup form ").join(" ")),this.addEntry("mockup form wedge bar",function(){var a=new mxCell("Tab 1",new mxGeometry(10,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("Tab 2",new mxGeometry(85,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#ffffff;align=left;spacingLeft=5;strokeColor=#008cff;fillColor=#008cff;");
+b.vertex=!0;var d=new mxCell("Tab 3",new mxGeometry(160,0,70,30),e+"forms.uRect;fontSize=17;fontColor=#666666;align=left;spacingLeft=5;strokeColor=#666666;fillColor=#ffffff;");d.vertex=!0;return c.createVertexTemplateFromCells([a,b,d],230,30,"Wedge Bar")}),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_1;",136,31,"","Formatting Toolbar 1",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_1","mockup form ").join(" ")),this.createVertexTemplateEntry(a+
"menus_and_buttons.font_style_selector_2;",235,31,"","Formatting Toolbar 2",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_2","mockup form ").join(" ")),this.createVertexTemplateEntry(a+"menus_and_buttons.font_style_selector_3;",176,38,"","Formatting Toolbar 3",null,null,this.getTagsForStencil("mxgraph.mockup.menus_and_buttons","font_style_selector_3","mockup form ").join(" ")),this.createVertexTemplateEntry(e+"forms.searchBox;"+d+"mainText=;fillColor=#ffffff;strokeColor2=#008cff;fontColor=#666666;fontSize=17;align=left;spacingLeft=3;",
150,30,"Search","Search Box",null,null,this.getTagsForStencil("mxgraph.mockup.forms","searchBox","mockup form ").join(" ")),this.addDataEntry("mockup form sign in",200,300,"Sign In","7Vhtb9owEP41+TIJ5DgkLR8HG6jShpBQtc8uubysTowct8B+/RzHQILDFmm4TScsRYrPOft8z3N3sR1vmu3mnGyS7ywE6nhfHW/KGRPVW7abAqUORmnoeF8cjJF8HDy7MOqqUbQhHHLRRQFXCq+EvkAlqQSF2FMtKARnz/AjDUUiBa7jTYqEhGwrO0h2QlIkEOoOoWmcy/e1XB64FCQioyetTTlltovL7Q4ztn5+2QwjxrNiyDmspcETvkp/gZ6sWnjKKOPKEm+smhyJUkpr8kg1KdebAS5gd9EhSqS9MQeWgeB7+clWb7B0CqqchhJI40SreQchKSpBfNQ9+Ve+aBe3u9sz3L0qHYbRQ/4+fif5OindOIlYLrTvXaz7NRcHqtVWohApvKCQSg0jN2Sd5vE3Na6M64QK/isqbhsqmt6IAyUifYXG/G1I6SWWLJUrY3QwSE+zb3YPE7AoKkAYQB/t7IT9qEOoaahomkNbAIQhgCJ6kxu4CbiJybUQuG9BwLWCgGcDAd9A4LGQ0YLRgmRS8PkWgv0JwZENAgQGAX6yJA8ZfIii140OTfB9q/nAb6ODb4MOgQ063Bl0WJKi2DIe3pJBr5LB2LeA/r2B/ifdbtmg59nAdW0QYmwQYvUwX5Q/54t+MMI3GJEz9aN4RobjeejsnBQET0+VvJZcgkNfb+5fGbFvKNT40fbz6F0nXeAmPQZHKl6VHwcS1ggyYzxmpSGnwjHrd+Eo04fiwB8TBTojxejqieMiTdrTiJWyMnCtHPRc1+CJyYkenvQuQ/J2577B2Aoi5jXXArZSUJ3/+hyv3Qo7+j/j884KGVou4ao6/7i81fkPVeevUeZl93TdXn1ev43/DQ=="),
this.addDataEntry("mockup form calendar date",160,175,"Calendar","7Zxdc6IwFIZ/DbdOPkDktu62V529cGd6zUoUp2CcSLe6v37Dh7bm0K2dLjk2kRlnIBCF9wnkvMmRgE/L3Z1KN/m9zEQR8O8Bnyopq3at3E1FUQSMrLKAfwsYI/oTsNs39tJmL9mkSqyrcyqwtsLvtHgSbUlbsK32RVewrZR8FA+rrMp1AQ34zTZPM/msN4jeyNJtLrJuIy1Wy7Ven+ufF0oX5FVZvNTa1F9Z7pb15Y5KOX982owWUpXbkVJirk/4Rs1Wf+qDorpC88NTWUjVnAlPmkXvWayK4lX5oll0eXcxQlVi96YgTVGnxp2QpajUXh/y3F1gfcS4FY3kYrXMD9XiqC1Mt23B8lj3RV+90kncLzcHcv+YV/KXlooRRmiII366nue1ljcLua769D5LV9ava1eBd5Lu281Ju/VadNIjetd6P6V52NPEx0V1vCzsph7+u6mfIiFkMm+ael3efQE9HDfrroT+H2STd4ixaBhgUR+w5RXYu8Aoi5GQjQGye+nus4yePsv6dB7oWRYDnX8+uaszR9N5AnR+EO7qHKHpnMD2nLurc4ym8+GJ9UroW+Wu0Ame0BQIPUvdFZridYUUWteZw30hxesMKXStFEdoMxInH4nEB4wAQ4swoJ29kCEbNBgcDwa0qtxzGBEeDGhCkcbTLgZGjAcDOtXIcxgJHgxoZ8eewzADV5s0oOmNfaeB14Uz6IwnvtM4hTG2CAO658RzGBwPBjTYh5bhLY0Ij0aPCffdhcd4NKALP4xHeUsjwaMBbTj13YebAa5NHNCIY2W2XA4OxH4cWnHquxc3bo6JRRrQi1PfzbiZG2aRBvTi1HczHqHR4NCLU9/NeIxHA5px6rsbT/BoQDfOfHfjZoxrEwe049dJcbx+nPfMivvux42bgxKLOKAh935inCPigIbc+9nYGBEHNOTez8cmiDigI79OyGJ2HtCTX6dkEXuPELpy72dlzdvDYjZuCG05990ImneHTRzQl3PfjWCEiMOxXHXjn+5ZJsT5/3T/WARsk5JjSewDUjIDY5uUHMtuH5ASiJdtYnIs731ITJiBgmMZ8UNiMihZTAcO4WDAlx6aGZCSeS/ZpORYCv2AlMxY3CKlCA4cfOlxHIuxuE1KjuXcW4zFbVKCwwxfOxnfZjBuk5Nrafo2o3GbnHpGIC7ZNS0WRC+Q0/HVh6enyiC544vIBggqhpuN0JsvL8Ns9p28K/Mv"),
this.addDataEntry("mockup form calendar date",400,300,"Email","7VhLU9swEP41vmacOLyOJQEu9FLa6VnI61igF3qQ0F/fXcmGdJzMtAOmh8QzcbyrfX6fV05cVAu1uXHMtl9NDbKoropq4YwJ+UptFiBlMStFXVTLYjYr8VPMrvesTtNqaZkDHf7GYZYdnpmMkDXXzqis9OFFdkofnHmEn6IOLSqmRXXpW1abNQolCjXzLdSdwKRYabzmWAI4VLRByTcvSyHVZkUtT5Thj9FOGuOUnzDNW+O2IjixagN5WcaFXn3L4nKGqsbosDCSzLG+6jQdqO/aARdgsxeSpOrwuAGjILgXNFl37eHqSUatbKHLSV7nWcd8llevnm/44kUH8W64qwHcD6bVxbx8yHjw/4W9c8AJ6kZIuYVrkw7UuzvxC7ok+7Dvk0totli7TdKyIk3qZMv1Ih3vpG3zJ2VbLFZj0Tgf0HgX7x8IwYMcnJce7gEDYxFwMiDgxgEE7PU4Pu8bn/1cjjZNpwMyv5uDHqSz4VY2FvZnA+wbhzgeH0gfPlE7SB1tos4HrC4WBz1R0/Lznk0XA/CPE/QhE7SLxNFGaFoOaLw89CGaf95zaTo9TtFIU7SDxfGmaPh+4dY4UGRifaTvOnWNxIpAyTBFMcO4JTfaI/QQIq2yWljhBU+/8EuQorPyyDDFIKWIXhkSAyibYgrNRS3qqCl0pJNk95ifrEOfmyTFVppRGimeIpvg1Q9aBy1USk4mIgvPqGQqZ3+KwuOXNkhgJCPYgOMisCCMppRSMsVNnzcbYxt9NSmdsMmRTiz1rbAL0yOA5QSqZ5lTsRioXuFiqrsHT1A2B9ZBC7oGl7BMymcjo8WCIJWecCvBexI53tJvFCRQIp6auBKMzDSVn281VERHZVxtONgAMTOWcDWcM+DJg0crahayd0LAOiNqulEzW5mJVBiP0rKMIQVpGiSX5Bo8uGynjMwFswy9SBD7Vx6jmhzkpkDbgeBMfulCBGNRu25FgDsMQ5nXWPQH7fpnw6fuvNy1X/T/yv9hwyjodWP/rjOt/fEq9Dc=")];
-this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(b){for(var a=0;a<h.length;a++)b.appendChild(h[a](b))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=
+this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKEWIDTH+"=1;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",d=
mxConstants.STYLE_FILLCOLOR+"=#ffffff;",b=mxConstants.STYLE_STROKECOLOR+"=none;",c=this,h=[this.createVertexTemplateEntry(a+"graphics.barChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,"","Bar Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","barChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.columnChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,
"","Column Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","columnChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.lineChart;"+d+b+"strokeColor2=#666666;strokeColor3=#008cff;strokeColor4=#dddddd;",400,200,"","Line Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","lineChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.pieChart;"+mxConstants.STYLE_STROKECOLOR+"=#008cff;parts=10,20,35;partColors=#e0e0e0,#d0d0d0,#c0c0c0,#b0b0b0,#a0a0a0;strokeWidth=2;",
200,200,"","Pie Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","pieChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.simpleIcon;strokeColor=#999999;fillColor=#ffffff;",50,50,"","Icon Placeholder",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","simpleIcon","mockup graphics icon placeholder").join(" ")),this.addDataEntry("mockup graphics icon grid placeholder",200,200,"Icon Grid","7ZdRa8MgEMc/ja8licu6Pm7pVgYb7G3PNrFRqjWobdNvv4vadYUVRpv5ZCDg/e9OzvuRCyJcyX6hScfeVUMFws8IV1op61eyr6gQqMh4g/AcFUUGLypeLnhz5806ounG/iWh8Ak7IrbUK14w9iCCsKPa8pqIN7Kk4kMZbrnagGuprFUS4SfDSKP2oGRgNMQw2gSDCN4OoTVUQzUIzEo44jyH5XHbxxBjVTfsZbVa00/eWBbiYPduqET27dCliVT1ettNnMFrMzFcdoK+1kNNIb1SQmlXPJ65BzwrLsQPfeUe0MP5oRjaX+yhk0IDF1RJavUBQvahTPCWvs0Zo7xl9lwjxtvtd+YJCCwCk9/54MTnej4hYVr6jAi47hKum3HlRxAReJWJ1/W8DtE/r/uEa7RpGJ/eNNEbbzjGx/eQ8N08K2P+22aJ19jDMia+PEv8Rh+X/wgQzNO13fnObvVf"),
this.createVertexTemplateEntry(a+"graphics.bubbleChart;"+d+b+"strokeColor2=none;strokeColor3=#666666;fillColor2=#008cff;fillColor3=#dddddd;",400,200,"","Bubble Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","bubbleChart","mockup graphics bubble chart").join(" ")),this.addDataEntry("mockup graphics gauge",100,100,"Gauge","zZXdT8IwEMD/mr6S0jqVRxnKiya8GJ/LemwN3bp0BcZ/760tXwKRGEGbLblv7n49MsLTsh1bURdvRoIm/Jnw1BrjglS2KWhNGFWS8BFhjOJL2MsZb997aS0sVO6SBBYSlkIvIFiCoXFrHQ1LsE5lQr+KKeiJaZRTpkLX1DhnSsKHTSGkWaGFoiJFU4CMitAq70Iz7AYsGgpX4oijPoqbsk8xxpm6q+WsmcOHkq6IcVi97jop27yj1CtNNl/UPa+orOnlYpGjfzhTWqdGG+u75jN/thX3PAN/0OMzcSA0s6SLxG5CYBMip1MpsQZLUZYSYCMPBlnma/sKnkvISLuHDysAqfd/ktLHkBBp4+jQnr0xb4rXNQZTgrNrDFlFKF0EDbdKC1B54b4YRWiG5dvc3QKgEHfg9D7wo31IJ+8kwcYTkoyOduPkdf1gGb67ZFFlRQdzODOV2wN778+lYNlpsDEBJ/QZ66hGmnvYkxPU2S9AvzuCTv+e9KaIhpm7Mnh6AP4huRn45Aj89k/0H9DbMO012fNbsUd191XzvoOP3ic="),
-this.createVertexTemplateEntry(a+"graphics.plotChart;"+d+mxConstants.STYLE_STROKECOLOR+"=none;strokeColor2=#aaaaaa;strokeColor3=#666666;fillColor2=#99aaff,#0022ff,#008cff;",400,200,"","Plot Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","plotChart","mockup graphics plot chart").join(" ")),this.addEntry("mockup graphics gantt chart",function(){var b=new mxCell("",new mxGeometry(0,0,600,300),e+"graphics.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");b.vertex=!0;var a=new mxCell("#",
-new mxGeometry(0,0,20,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task",new mxGeometry(20,0,40,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Start",new mxGeometry(60,0,130,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=
-!0;b.insert(a);a=new mxCell("Effort",new mxGeometry(190,0,50,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014",new mxGeometry(240,0,210,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("27//10//2014",new mxGeometry(450,0,150,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("M",new mxGeometry(240,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(270,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("W",new mxGeometry(300,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(330,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("F",new mxGeometry(360,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("S",new mxGeometry(390,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("S",new mxGeometry(420,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("M",new mxGeometry(450,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(480,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("W",new mxGeometry(510,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("T",new mxGeometry(540,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("F",new mxGeometry(570,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(0,40,240,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(240,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(300,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(360,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(420,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(480,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
-e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(540,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("1",new mxGeometry(0,40,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 1",new mxGeometry(20,40,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",
-new mxGeometry(60,40,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,40,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("2",new mxGeometry(0,60,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 2",new mxGeometry(20,60,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,60,130,20),e+"graphics.anchor;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,60,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("3",new mxGeometry(0,80,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 3",new mxGeometry(20,80,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,80,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",
-new mxGeometry(190,80,50,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("4",new mxGeometry(0,100,20,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("Task 4",new mxGeometry(20,100,40,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,100,130,20),e+"graphics.anchor;fontColor=#666666;");a.vertex=!0;b.insert(a);a=new mxCell("40h",new mxGeometry(190,100,50,20),e+"graphics.anchor;fontColor=#666666;");
-a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(250,45,130,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(250,65,40,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(280,85,100,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(340,105,70,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");
-a.vertex=!0;b.insert(a);return c.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Gantt Chart")}),this.createVertexTemplateEntry(a+"misc.map;",250,250,"","Map",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","map","mockup graphics ").join(" "))];this.addPalette("mockupGraphics","Mockup Graphics",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupMarkupPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
+this.createVertexTemplateEntry(a+"graphics.plotChart;"+d+mxConstants.STYLE_STROKECOLOR+"=none;strokeColor2=#aaaaaa;strokeColor3=#666666;fillColor2=#99aaff,#0022ff,#008cff;",400,200,"","Plot Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","plotChart","mockup graphics plot chart").join(" ")),this.addEntry("mockup graphics gantt chart",function(){var a=new mxCell("",new mxGeometry(0,0,600,300),e+"graphics.rrect;rSize=0;strokeColor=#999999;fillColor=#ffffff;");a.vertex=!0;var b=new mxCell("#",
+new mxGeometry(0,0,20,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task",new mxGeometry(20,0,40,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Start",new mxGeometry(60,0,130,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=
+!0;a.insert(b);b=new mxCell("Effort",new mxGeometry(190,0,50,40),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014",new mxGeometry(240,0,210,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("27//10//2014",new mxGeometry(450,0,150,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("M",new mxGeometry(240,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(270,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("W",new mxGeometry(300,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(330,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("F",new mxGeometry(360,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("S",new mxGeometry(390,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("S",new mxGeometry(420,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("M",new mxGeometry(450,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(480,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("W",new mxGeometry(510,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("T",new mxGeometry(540,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("F",new mxGeometry(570,20,30,20),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,40,240,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(240,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(300,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(360,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(420,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(480,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+
+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(540,40,60,260),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;"+e+"graphics.rrect;rSize=0;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("1",new mxGeometry(0,40,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 1",new mxGeometry(20,40,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",
+new mxGeometry(60,40,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,40,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("2",new mxGeometry(0,60,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 2",new mxGeometry(20,60,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,60,130,20),e+"graphics.anchor;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,60,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("3",new mxGeometry(0,80,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 3",new mxGeometry(20,80,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,80,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",
+new mxGeometry(190,80,50,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("4",new mxGeometry(0,100,20,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("Task 4",new mxGeometry(20,100,40,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("20//10//2014 8:00 AM",new mxGeometry(60,100,130,20),e+"graphics.anchor;fontColor=#666666;");b.vertex=!0;a.insert(b);b=new mxCell("40h",new mxGeometry(190,100,50,20),e+"graphics.anchor;fontColor=#666666;");
+b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(250,45,130,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(250,65,40,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(280,85,100,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(340,105,70,10),e+"graphics.rrect;rSize=0;strokeColor=none;fillColor=#aaddff;");
+b.vertex=!0;a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Gantt Chart")}),this.createVertexTemplateEntry(a+"misc.map;",250,250,"","Map",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","map","mockup graphics ").join(" "))];this.addPalette("mockupGraphics","Mockup Graphics",!1,mxUtils.bind(this,function(a){for(var b=0;b<h.length;b++)a.appendChild(h[b](a))}))};Sidebar.prototype.addMockupMarkupPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
"=bottom;shadow=0;dashed=0;align=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.",e=mxConstants.STYLE_STROKECOLOR+"=#999999;",d=mxConstants.STYLE_STROKECOLOR+"=none;";this.addPaletteFunctions("mockupMarkup","Mockup Markup",!1,[this.createVertexTemplateEntry(a+"markup.curlyBrace;"+e,100,20,"","Horizontal Curly Brace",null,null,this.getTagsForStencil("mxgraph.mockup.markup","curlyBrace","horizontal").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+
"=right;"+mxConstants.STYLE_ALIGN+"=left;strokeWidth=1;"+mxConstants.STYLE_SHAPE+"=mxgraph.mockup.markup.curlyBrace;html=1;shadow=0;dashed=0;"+e+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",20,100,"","Vertical Curly Brace",null,null,this.getTagsForStencil("mxgraph.mockup.markup","curlyBrace","vertical").join(" ")),this.createVertexTemplateEntry(a+"markup.line;"+e,100,20,"","Horizontal Line",null,null,this.getTagsForStencil("mxgraph.mockup.markup","line","horizontal").join(" ")),
this.createVertexTemplateEntry(a+"markup.line;"+e+mxConstants.STYLE_DIRECTION+"="+mxConstants.DIRECTION_NORTH+";",20,100,"","Vertical Line",null,null,this.getTagsForStencil("mxgraph.mockup.markup","line","vertical").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"=mxgraph.mockup.markup.scratchOut;shadow=0;dashed=0;html=1;"+e+"strokeWidth=4;",200,100,"","Scratch Out",null,null,this.getTagsForStencil("mxgraph.mockup.markup","scratchOut","scratch out").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+
@@ -6457,11 +6527,11 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav
StorageFile.prototype.saveFile=function(a,e,d,b){if(this.isEditable()){var g=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=d&&d()}))}catch(k){null!=b&&b(k)}});this.isRenamable()&&"."==a.charAt(0)&&null!=b?b({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(d){this.isRenamable()&&this.getTitle()!=a&&null!=d?this.ui.confirm(mxResources.get("replaceIt",
[a]),g,b):g()}))}else null!=d&&d()};StorageFile.prototype.rename=function(a,e,d){var b=this.getTitle();b!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(g){var k=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(b,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(b,e)}),d)});null!=g?this.ui.confirm(mxResources.get("replaceIt",[a]),k,d):k()})):e()};
StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,e,d){StorageFile.call(this,a,e,d)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};
-StorageLibrary.prototype.isRenamable=function(a,e,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,e,d){StorageFile.call(this,a,e,d);a=d;e=a.lastIndexOf("/");0<=e&&(a=a.substring(e+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,e,d){return!1};UrlLibrary.prototype.saveAs=function(a,e,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,e,d){function b(b,t,q,m,v,u){function g(){mxEvent.addListener(x,"click",null!=u?u:function(){q!=App.MODE_GOOGLE||a.isDriveDomain()?q==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(q,c.checked);e()})):(a.setMode(q,c.checked),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}var x=document.createElement("a");x.style.overflow="hidden";x.style.display=
-mxClient.IS_QUIRKS?"inline":"inline-block";x.className="geBaseButton";x.style.boxSizing="border-box";x.style.fontSize="11px";x.style.position="relative";x.style.margin="4px";x.style.padding="8px 10px 12px 10px";x.style.width="88px";x.style.height="100px";x.style.whiteSpace="nowrap";x.setAttribute("title",t);mxClient.IS_QUIRKS&&(x.style.cssFloat="left",x.style.zoom="1");var y=document.createElement("div");y.style.textOverflow="ellipsis";y.style.overflow="hidden";if(null!=b){var w=document.createElement("img");
-w.setAttribute("src",b);w.setAttribute("border","0");w.setAttribute("align","absmiddle");w.style.width="60px";w.style.height="60px";w.style.paddingBottom="6px";x.appendChild(w)}else y.style.paddingTop="5px",y.style.whiteSpace="normal",mxClient.IS_IOS?(x.style.padding="0px 10px 20px 10px",x.style.top="6px"):mxClient.IS_FF&&(y.style.paddingTop="0px",y.style.marginTop="-2px");x.appendChild(y);mxUtils.write(y,t);if(null!=v)for(b=0;b<v.length;b++)mxUtils.br(y),mxUtils.write(y,v[b]);if(null!=m&&null==a[m]){w.style.visibility=
-"hidden";mxUtils.setOpacity(y,10);var k=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});k.spin(x);var n=window.setTimeout(function(){null==a[m]&&(k.stop(),x.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(n),mxUtils.setOpacity(y,100),w.style.visibility="",k.stop(),g(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else g();
-p.appendChild(x);++f>=d&&(mxUtils.br(p),f=0)}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=a.addLanguageMenu(g,!0);null!=k&&(k.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){k=document.createElement("a");k.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage");k.setAttribute("title",mxResources.get("help"));k.setAttribute("target",
+StorageLibrary.prototype.isRenamable=function(a,e,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,e,d){StorageFile.call(this,a,e,d);a=d;e=a.lastIndexOf("/");0<=e&&(a=a.substring(e+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,e,d){return!1};UrlLibrary.prototype.saveAs=function(a,e,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,e,d){function b(b,t,q,m,v,u){function g(){mxEvent.addListener(y,"click",null!=u?u:function(){q!=App.MODE_GOOGLE||a.isDriveDomain()?q==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(q,c.checked);e()})):(a.setMode(q,c.checked),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}var y=document.createElement("a");y.style.overflow="hidden";y.style.display=
+mxClient.IS_QUIRKS?"inline":"inline-block";y.className="geBaseButton";y.style.boxSizing="border-box";y.style.fontSize="11px";y.style.position="relative";y.style.margin="4px";y.style.padding="8px 10px 12px 10px";y.style.width="88px";y.style.height="100px";y.style.whiteSpace="nowrap";y.setAttribute("title",t);mxClient.IS_QUIRKS&&(y.style.cssFloat="left",y.style.zoom="1");var z=document.createElement("div");z.style.textOverflow="ellipsis";z.style.overflow="hidden";if(null!=b){var w=document.createElement("img");
+w.setAttribute("src",b);w.setAttribute("border","0");w.setAttribute("align","absmiddle");w.style.width="60px";w.style.height="60px";w.style.paddingBottom="6px";y.appendChild(w)}else z.style.paddingTop="5px",z.style.whiteSpace="normal",mxClient.IS_IOS?(y.style.padding="0px 10px 20px 10px",y.style.top="6px"):mxClient.IS_FF&&(z.style.paddingTop="0px",z.style.marginTop="-2px");y.appendChild(z);mxUtils.write(z,t);if(null!=v)for(b=0;b<v.length;b++)mxUtils.br(z),mxUtils.write(z,v[b]);if(null!=m&&null==a[m]){w.style.visibility=
+"hidden";mxUtils.setOpacity(z,10);var k=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});k.spin(y);var n=window.setTimeout(function(){null==a[m]&&(k.stop(),y.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(n),mxUtils.setOpacity(z,100),w.style.visibility="",k.stop(),g(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else g();
+p.appendChild(y);++f>=d&&(mxUtils.br(p),f=0)}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=a.addLanguageMenu(g,!0);null!=k&&(k.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){k=document.createElement("a");k.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage");k.setAttribute("title",mxResources.get("help"));k.setAttribute("target",
"_blank");k.style.position="absolute";k.style.textDecoration="none";k.style.cursor="pointer";k.style.fontSize="12px";k.style.bottom="28px";k.style.left="26px";k.style.color="gray";var n=document.createElement("img");n.setAttribute("border","0");n.setAttribute("valign","bottom");n.setAttribute("src",Editor.helpImage);n.style.marginRight="2px";k.appendChild(n);mxUtils.write(k,mxResources.get("help"));g.appendChild(k)}var l=document.createElement("div");l.style.position="absolute";l.style.cursor="pointer";
l.style.fontSize="12px";l.style.bottom="28px";l.style.color="gray";mxUtils.write(l,mxResources.get("decideLater"));a.isOfflineApp()?l.style.right="20px":(mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0)"),l.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)l.style.marginLeft=-Math.round(l.clientWidth/2)+"px"};g.appendChild(l);mxEvent.addListener(l,"click",function(){a.hideDialog();var c=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,
null,null,null,null,null,!0);Editor.useLocalStorage=c});var p=document.createElement("div");mxClient.IS_QUIRKS&&(p.style.whiteSpace="nowrap",p.style.cssFloat="left");p.style.border="1px solid #d3d3d3";p.style.borderWidth="1px 0px 1px 0px";p.style.padding="12px 0px 12px 0px";var c=document.createElement("input");c.setAttribute("type","checkbox");c.setAttribute("checked","checked");c.defaultChecked=!0;var f=0,h=document.createElement("p"),k=document.createElement("p");k.style.fontSize="16pt";k.style.padding=
@@ -6495,15 +6565,15 @@ mxClient.IS_CHROMEAPP)){if(51200>e.length){var f=mxUtils.button("",function(){tr
" max)");f.style.verticalAlign="bottom";f.style.paddingTop="4px";f.style.minWidth="46px";f.className="geBtn";n.appendChild(f)}7168>e.length&&(f=mxUtils.button("",function(){try{var c="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(l.value);a.openLink(c)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}),c=document.createElement("img"),c.setAttribute("src",Editor.tweetImage),c.setAttribute("width",
"18"),c.setAttribute("height","18"),c.setAttribute("border","0"),c.style.marginBottom="5px",f.appendChild(c),f.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),f.style.verticalAlign="bottom",f.style.paddingTop="4px",f.style.minWidth="46px",f.className="geBtn",n.appendChild(f))}c=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});n.appendChild(c);f=mxUtils.button(mxResources.get("copy"),function(){l.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||
mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?c.className="geBtn gePrimaryBtn":(n.appendChild(f),f.className="geBtn gePrimaryBtn",c.className="geBtn"):(n.appendChild(p),c.className="geBtn",p.className="geBtn gePrimaryBtn");b.appendChild(n);this.container=b};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(a,e){function d(){var a=null!=A.getTitle()?A.getTitle():this.defaultFilename;if(z.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<D.length&&(b+="&s="+D);""!=t.value&&"0"!=t.value&&(b+="&border="+t.value);""!=h.value&&(b+="&height="+h.value);b+="&pan="+(u.checked?"1":"0");b+="&zoom="+(w.checked?"1":"0");b+="&fit="+(v.checked?"1":"0");b+="&resize="+
-(m.checked?"1":"0");b+="&x0="+Number(f.value);b+="&y0="+p;g.mathEnabled&&(b+="&math=1");y.checked?b+="&edit=_blank":x.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));c.value=b}else A.constructor==DriveFile||A.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=A.getHash().substring(1),b=A.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
+var GoogleSitesDialog=function(a,e){function d(){var a=null!=x.getTitle()?x.getTitle():this.defaultFilename;if(F.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<D.length&&(b+="&s="+D);""!=t.value&&"0"!=t.value&&(b+="&border="+t.value);""!=h.value&&(b+="&height="+h.value);b+="&pan="+(u.checked?"1":"0");b+="&zoom="+(w.checked?"1":"0");b+="&fit="+(v.checked?"1":"0");b+="&resize="+
+(m.checked?"1":"0");b+="&x0="+Number(f.value);b+="&y0="+p;g.mathEnabled&&(b+="&math=1");z.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));c.value=b}else x.constructor==DriveFile||x.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=x.getHash().substring(1),b=x.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
encodeURIComponent(a)),""!=h.value&&(a=parseInt(h.value)+parseInt(f.value),b+="&height="+a),c.value=b):c.value=""}var b=document.createElement("div"),g=a.editor.graph,k=g.getGraphBounds(),n=g.view.scale,l=Math.floor(k.x/n-g.view.translate.x),p=Math.floor(k.y/n-g.view.translate.y);mxUtils.write(b,mxResources.get("googleGadget")+":");mxUtils.br(b);var c=document.createElement("input");c.setAttribute("type","text");c.style.marginBottom="8px";c.style.marginTop="2px";c.style.width="410px";b.appendChild(c);
mxUtils.br(b);this.init=function(){c.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?c.select():document.execCommand("selectAll",!1,null)};mxUtils.write(b,mxResources.get("top")+":");var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","4");f.style.marginRight="16px";f.style.marginLeft="4px";f.value=l;b.appendChild(f);mxUtils.write(b,mxResources.get("height")+":");var h=document.createElement("input");h.setAttribute("type",
"text");h.setAttribute("size","4");h.style.marginLeft="4px";h.value=Math.ceil(k.height/n);b.appendChild(h);mxUtils.br(b);k=document.createElement("hr");k.setAttribute("size","1");k.style.marginBottom="16px";k.style.marginTop="16px";b.appendChild(k);mxUtils.write(b,mxResources.get("publicDiagramUrl")+":");mxUtils.br(b);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=e||"";
b.appendChild(q);mxUtils.br(b);mxUtils.write(b,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.setAttribute("size","3");t.style.marginBottom="8px";t.style.marginLeft="4px";t.value="0";b.appendChild(t);mxUtils.br(b);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";b.appendChild(u);mxUtils.write(b,mxResources.get("pan")+" ");var w=document.createElement("input");
-w.setAttribute("type","checkbox");w.setAttribute("checked","checked");w.defaultChecked=!0;w.style.marginLeft="8px";b.appendChild(w);mxUtils.write(b,mxResources.get("zoom")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft="8px";x.setAttribute("title",window.location.href);b.appendChild(x);mxUtils.write(b,mxResources.get("edit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";b.appendChild(y);mxUtils.write(b,
-mxResources.get("asNew")+" ");mxUtils.br(b);var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("checked","checked");m.defaultChecked=!0;m.style.marginLeft="16px";b.appendChild(m);mxUtils.write(b,mxResources.get("resize")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";b.appendChild(v);mxUtils.write(b,mxResources.get("fit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft=
-"8px";b.appendChild(z);mxUtils.write(b,mxResources.get("embed")+" ");var D=a.getBasenames().join(";"),A=a.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(q,"change",d);d();
+w.setAttribute("type","checkbox");w.setAttribute("checked","checked");w.defaultChecked=!0;w.style.marginLeft="8px";b.appendChild(w);mxUtils.write(b,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);b.appendChild(y);mxUtils.write(b,mxResources.get("edit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";b.appendChild(z);mxUtils.write(b,
+mxResources.get("asNew")+" ");mxUtils.br(b);var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("checked","checked");m.defaultChecked=!0;m.style.marginLeft="16px";b.appendChild(m);mxUtils.write(b,mxResources.get("resize")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";b.appendChild(v);mxUtils.write(b,mxResources.get("fit")+" ");var F=document.createElement("input");F.setAttribute("type","checkbox");F.style.marginLeft=
+"8px";b.appendChild(F);mxUtils.write(b,mxResources.get("embed")+" ");var D=a.getBasenames().join(";"),x=a.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(F,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(t,"change",d);mxEvent.addListener(q,"change",d);d();
mxEvent.addListener(c,"click",function(){c.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?c.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(){a.hideDialog()});n.className="geBtn gePrimaryBtn";k.appendChild(n);b.appendChild(k);this.container=b},CreateGraphDialog=function(a,e,d){var b=document.createElement("div");b.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);b.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(a,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",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(f.node,"touchstart",function(f){c.fireEvent(new mxEventObject("pointerdown","event",f,"state",a))})};k.getAllConnectionConstraints=function(){return null};k.connectionHandler.marker.highlight.keepOnTop=
@@ -6534,8 +6604,8 @@ l.vertex=!0;m=sb.cloneCell(l,0<n?"PK":"");m.connectable=!1;m.style="shape=partia
b=h.view,m=h.getGraphBounds(),h.setSelectionCells(h.importCells(e,Math.ceil(Math.max(0,m.x/b.scale-b.translate.x)+4*h.gridSize),Math.ceil(Math.max(0,(m.y+m.height)/b.scale-b.translate.y)+4*h.gridSize))),h.scrollCellToVisible(h.getSelectionCell()))}else if("list"==f){if(0<b.length){h=a.editor.graph;v=new mxCell(b[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");
v.vertex=!0;m=h.getPreferredSizeForCell(v);null!=m&&v.geometry.width<m.width+10&&(v.geometry.width=m.width+10);l=[v];if(1<b.length)for(k=1;k<b.length;k++)"--"==b[k]?(m=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),m.vertex=!0,v.geometry.height+=m.geometry.height,v.insert(m),l.push(m)):0<b[k].length&&";"!=b[k].charAt(0)&&(q=new mxCell(b[k],
new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),q.vertex=!0,m=h.getPreferredSizeForCell(q),null!=m&&q.geometry.width<m.width&&(q.geometry.width=m.width),v.geometry.width=Math.max(v.geometry.width,q.geometry.width),v.geometry.height+=q.geometry.height,v.insert(q),l.push(q));h.getModel().beginUpdate();try{v=h.importCells([v],g.x,g.y)[0],h.fireEvent(new mxEventObject("cellsInserted",
-"cells",[v].concat(v.children)))}finally{h.getModel().endUpdate()}h.setSelectionCell(v);h.scrollCellToVisible(h.getSelectionCell())}}else{for(var l=function(a){var c=p[a];null==c&&(c=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),c.vertex=!0,p[a]=c,e.push(c));return c},p={},e=[],k=0;k<b.length;k++)if(";"!=b[k].charAt(0)){var C=b[k].split("->");2<=C.length&&(q=l(C[0]),n=l(C[C.length-1]),C=new mxCell(2<C.length?C[1]:"",new mxGeometry),C.edge=!0,q.insertEdge(C,!0),n.insertEdge(C,!1),
-e.push(C))}if(0<e.length){b=document.createElement("div");b.style.visibility="hidden";document.body.appendChild(b);h=new Graph(b);h.getModel().beginUpdate();try{e=h.importCells(e);for(k=0;k<e.length;k++)h.getModel().isVertex(e[k])&&(m=h.getPreferredSizeForCell(e[k]),e[k].geometry.width=Math.max(e[k].geometry.width,m.width),e[k].geometry.height=Math.max(e[k].geometry.height,m.height));v=new mxFastOrganicLayout(h);v.disableEdgeStyle=!1;v.forceConstant=120;v.execute(h.getDefaultParent())}finally{h.getModel().endUpdate()}h.clearCellOverlays();
+"cells",[v].concat(v.children)))}finally{h.getModel().endUpdate()}h.setSelectionCell(v);h.scrollCellToVisible(h.getSelectionCell())}}else{for(var l=function(a){var c=p[a];null==c&&(c=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),c.vertex=!0,p[a]=c,e.push(c));return c},p={},e=[],k=0;k<b.length;k++)if(";"!=b[k].charAt(0)){var H=b[k].split("->");2<=H.length&&(q=l(H[0]),n=l(H[H.length-1]),H=new mxCell(2<H.length?H[1]:"",new mxGeometry),H.edge=!0,q.insertEdge(H,!0),n.insertEdge(H,!1),
+e.push(H))}if(0<e.length){b=document.createElement("div");b.style.visibility="hidden";document.body.appendChild(b);h=new Graph(b);h.getModel().beginUpdate();try{e=h.importCells(e);for(k=0;k<e.length;k++)h.getModel().isVertex(e[k])&&(m=h.getPreferredSizeForCell(e[k]),e[k].geometry.width=Math.max(e[k].geometry.width,m.width),e[k].geometry.height=Math.max(e[k].geometry.height,m.height));v=new mxFastOrganicLayout(h);v.disableEdgeStyle=!1;v.forceConstant=120;v.execute(h.getDefaultParent())}finally{h.getModel().endUpdate()}h.clearCellOverlays();
l=[];a.editor.graph.getModel().beginUpdate();try{l=a.editor.graph.importCells(h.getModel().getChildren(h.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",l))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(l[0]);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());h.destroy();b.parentNode.removeChild(b)}}}function b(){return"list"==l.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":
"table"==l.value?"CREATE TABLE Persons\n(\nPersonID int NOT NULL PRIMARY KEY,\nLastName varchar(255),\nFirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);":"plantUmlPng"==l.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":"plantUmlSvg"==l.value||"plantUmlTxt"==l.value?
"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var g=a.editor.graph.getFreeInsertPoint(),k=document.createElement("div");k.style.textAlign="right";var n=document.createElement("textarea");n.style.resize="none";n.style.width="100%";n.style.height="354px";n.style.marginBottom="16px";
@@ -6543,36 +6613,36 @@ var l=document.createElement("select"),p=document.createElement("option");p.setA
"plantUmlSvg");mxUtils.write(p,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");var c=document.createElement("option");c.setAttribute("value","plantUmlPng");mxUtils.write(c,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var f=document.createElement("option");f.setAttribute("value","plantUmlTxt");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&(l.appendChild(p),l.appendChild(c),
l.appendChild(f));var h=b();n.value=h;k.appendChild(n);this.init=function(){n.focus()};Graph.fileSupport&&(n.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),n.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){n.value=a.target.result};c.readAsText(a)}},!1));k.appendChild(l);mxEvent.addListener(l,"change",function(){var a=b();if(0==n.value.length||
n.value==h)h=a,n.value=h});p=mxUtils.button(mxResources.get("close"),function(){n.value==h?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});p.className="geBtn";a.editor.cancelFirst&&k.appendChild(p);c=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();d(n.value,l.value)});k.appendChild(c);c.className="geBtn gePrimaryBtn";a.editor.cancelFirst||k.appendChild(p);this.container=k},NewDialog=function(a,e,d,b,g,k,n,l,p,c,f,h,q,t,u){function w(){for(var a=
-!0;H<N.length&&(a||0!=mxUtils.mod(H,30));)a=N[H++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick),a=!1}function x(){if(M)a.hideDialog(),t(M,R,G.value);else if(b)d||a.hideDialog(),b(T,G.value);else{var c=G.value;null!=c&&0<c.length&&a.pickFolder(a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_TRELLO||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null,function(b){a.createFile(c,T,null!=S&&0<S.length?S:null,null,function(){a.hideDialog()},
-null,b)})}}function y(a,c,b,f,m){null!=P&&(P.style.backgroundColor="transparent",P.style.border="1px solid transparent");E.removeAttribute("disabled");T=c;S=b;P=a;M=f;R=m;P.style.backgroundColor=l;P.style.border=p}function m(a,c,b,f,m,h,d,e){var t=document.createElement("div");t.className="geTemplate";t.style.height=Y+"px";t.style.width=U+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=h)t.style.backgroundImage="url("+h+")",t.style.backgroundSize="contain",t.style.backgroundPosition=
-"center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(c){y(t,null,null,a,d)}),mxEvent.addListener(t,"dblclick",function(a){x()});else if(null!=a&&0<a.length){a.substring(0,a.length-4);t.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";var v=!1;mxEvent.addListener(t,"click",function(b){E.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";
-t.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(y(t,a.getText(),c),v&&x())}))});mxEvent.addListener(t,"dblclick",function(a){v=!0})}else t.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(b)+"</td></tr></table>",m&&y(t),null!=e?mxEvent.addListener(t,"click",e):(mxEvent.addListener(t,"click",function(a){y(t)}),mxEvent.addListener(t,"dblclick",function(a){x()}));
+!0;C<R.length&&(a||0!=mxUtils.mod(C,30));)a=R[C++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick),a=!1}function y(){if(M)a.hideDialog(),t(M,W,G.value);else if(b)d||a.hideDialog(),b(Y,G.value);else{var c=G.value;null!=c&&0<c.length&&a.pickFolder(a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_TRELLO||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null,function(b){a.createFile(c,Y,null!=S&&0<S.length?S:null,null,function(){a.hideDialog()},
+null,b)})}}function z(a,c,b,f,m){null!=N&&(N.style.backgroundColor="transparent",N.style.border="1px solid transparent");E.removeAttribute("disabled");Y=c;S=b;N=a;M=f;W=m;N.style.backgroundColor=l;N.style.border=p}function m(a,c,b,f,m,h,d,e){var t=document.createElement("div");t.className="geTemplate";t.style.height=Z+"px";t.style.width=J+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=h)t.style.backgroundImage="url("+h+")",t.style.backgroundSize="contain",t.style.backgroundPosition=
+"center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(c){z(t,null,null,a,d)}),mxEvent.addListener(t,"dblclick",function(a){y()});else if(null!=a&&0<a.length){a.substring(0,a.length-4);t.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";var v=!1;mxEvent.addListener(t,"click",function(b){E.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";
+t.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(z(t,a.getText(),c),v&&y())}))});mxEvent.addListener(t,"dblclick",function(a){v=!0})}else t.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(b)+"</td></tr></table>",m&&z(t),null!=e?mxEvent.addListener(t,"click",e):(mxEvent.addListener(t,"click",function(a){z(t)}),mxEvent.addListener(t,"dblclick",function(a){y()}));
I.appendChild(t)}function v(){mxEvent.addListener(I,"scroll",function(a){I.scrollTop+I.clientHeight>=I.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,b;for(b in V){var f=document.createElement("div"),m=mxResources.get(b),h=V[b];null==m&&(m=b.substring(0,1).toUpperCase()+b.substring(1));18<m.length&&(m=m.substring(0,18)+"&hellip;");f.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";f.setAttribute("title",m+" ("+
-h.length+")");mxUtils.write(f,f.getAttribute("title"));null!=c&&(f.style.padding=c);J.appendChild(f);null==a&&(a=f,a.style.backgroundColor=n);(function(c,b){mxEvent.addListener(f,"click",function(){a!=b&&(a.style.backgroundColor="",a=b,a.style.backgroundColor=n,I.scrollTop=0,I.innerHTML="",H=0,N=V[c],B=null,w())})})(b,f)}w()}d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";l=null!=l?l:"#e6eff8";p=null!=p?p:"1px solid #ccd9ea";f=null!=f?f:TEMPLATE_PATH+"/index.xml";var z=document.createElement("div");
-z.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";d&&z.appendChild(D);var A=document.createElement("img");A.setAttribute("border","0");A.setAttribute("align","absmiddle");A.style.width="40px";A.style.height="40px";A.style.marginRight="10px";A.style.paddingBottom="4px";A.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":
-a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!e&&d&&D.appendChild(A);d&&mxUtils.write(D,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");A=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?A=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?A=a.dropbox.extension:
-a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?A=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?A=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(A=a.trello.extension);var G=document.createElement("input");G.setAttribute("value",a.defaultFilename+A);G.style.marginRight="20px";G.style.marginLeft="10px";G.style.width=e?"220px":"430px";this.init=function(){d&&(G.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?G.select():document.execCommand("selectAll",
-!1,null))};d&&D.appendChild(G);var D=!1,H=0,E=mxUtils.button(mxResources.get("create"),function(){x()});E.className="geBtn gePrimaryBtn";if(h||q){var C=[],B=null,L=function(a){E.setAttribute("disabled","disabled");for(var c=0;c<C.length;c++)C[c].className=c==a?"geBtn gePrimaryBtn":"geBtn"},D=!0,A=document.createElement("div");A.style.whiteSpace="nowrap";A.style.height="30px";z.appendChild(A);var F=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){J.style.display="";I.style.left=
-"160px";L(0);I.scrollTop=0;I.innerHTML="";H=0;B!=N&&(N=B,w(),B=null)});C.push(F);A.appendChild(F);var K=function(a){J.style.display="none";I.style.left="30px";L(a?-1:1);null==B&&(B=N);I.scrollTop=0;I.innerHTML="";var c=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});c.spin(I);H=0;var b=function(a,b){c.stop();N=a;b?I.innerHTML=b:0==a.length?I.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(I.innerHTML=
-"",w())};a?q(O.value,b):h(b)};h&&(F=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){K()}),A.appendChild(F),C.push(F));if(q){F=document.createElement("span");F.style.marginLeft="10px";F.innerHTML=mxResources.get("search")+":";A.appendChild(F);var O=document.createElement("input");O.style.marginRight="10px";O.style.marginLeft="10px";O.style.width="220px";mxEvent.addListener(O,"keypress",function(a){13==a.keyCode&&K(!0)});A.appendChild(O);F=mxUtils.button(mxResources.get("search"),
-function(){K(!0)});F.className="geBtn";A.appendChild(F)}L(0)}var S=null,T=null,P=null,M=null,R=null,I=document.createElement("div");I.style.border="1px solid #d3d3d3";I.style.position="absolute";I.style.left="160px";I.style.right="34px";D=(d?72:40)+(D?30:0);I.style.top=D+"px";I.style.bottom="68px";I.style.margin="6px 0 0 -1px";I.style.padding="6px";I.style.overflow="auto";var J=document.createElement("div");J.style.cssText="position:absolute;left:30px;width:128px;top:"+D+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";
-var Y=140,U=140,V={},X=1;V.basic=[{title:"blankDiagram",select:!0}];var N=V.basic;if(!e){z.appendChild(J);z.appendChild(I);var Q=!1;mxUtils.get(f,function(a){if(!Q){Q=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var c=a.getAttribute("url");if(null!=c){var b=c.indexOf("/"),c=c.substring(0,b),b=V[c];null==b&&(X++,b=[],V[c]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url")})}}a=
-a.nextSibling}v()}})}mxEvent.addListener(G,"keypress",function(a){13==a.keyCode&&x()});f=document.createElement("div");f.style.marginTop=e?"4px":"16px";f.style.textAlign="right";f.style.position="absolute";f.style.left="40px";f.style.bottom="24px";f.style.right="40px";D=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});D.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(D);e||a.isOffline()||!d||null!=b||g||(A=mxUtils.button(mxResources.get("help"),
-function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),A.className="geBtn",f.appendChild(A));e||"1"==urlParams.embed||g||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var c=new FilenameDialog(a,"",mxResources.get("create"),function(c){null!=c&&0<c.length&&(c=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(G.value)+"&create="+encodeURIComponent(c)),null==a.getCurrentFile()?window.location.href=c:window.openWindow(c))},
-mxResources.get("url"));a.showDialog(c.container,300,80,!0,!0);c.init()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var c=document.createElement("input");c.setAttribute("multiple","multiple");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(b){a.openFiles(c.files,!0)});c.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(E);a.editor.cancelFirst||null!=b||g&&null==k||f.appendChild(D);z.appendChild(f);
-this.container=z},CreateDialog=function(a,e,d,b,g,k,n,l,p,c,f,h,q,t,u){function w(c,b,f,m){function t(){mxEvent.addListener(d,"click",function(){var c=f;if(n){var b=v.value,m=b.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>m){var c=null!=c?c:A.value,h="";c==App.MODE_GOOGLE?h=a.drive.extension:c==App.MODE_GITHUB?h=a.gitHub.extension:c==App.MODE_TRELLO?h=a.trello.extension:c==App.MODE_DROPBOX?h=a.dropbox.extension:c==App.MODE_ONEDRIVE?h=a.oneDrive.extension:c==App.MODE_DEVICE&&(h=".xml");0<=m&&(b=b.substring(0,
-m));v.value=b+h}}x(f)})}var d=document.createElement("a");d.style.overflow="hidden";var q=document.createElement("img");q.src=c;q.setAttribute("border","0");q.setAttribute("align","absmiddle");q.style.width="60px";q.style.height="60px";q.style.paddingBottom="6px";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.className="geBaseButton";d.style.position="relative";d.style.margin="4px";d.style.padding="8px 8px 10px 8px";d.style.whiteSpace="nowrap";d.appendChild(q);mxClient.IS_QUIRKS&&(d.style.cssFloat=
-"left",d.style.zoom="1");d.style.color="gray";d.style.fontSize="11px";var g=document.createElement("div");d.appendChild(g);mxUtils.write(g,b);if(null!=m&&null==a[m]){q.style.visibility="hidden";mxUtils.setOpacity(g,10);var u=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});u.spin(d);var y=window.setTimeout(function(){null==a[m]&&(u.stop(),d.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=a[m]&&(window.clearTimeout(y),mxUtils.setOpacity(g,100),q.style.visibility="",u.stop(),t())}))}else t();z.appendChild(d);++D==h&&(mxUtils.br(z),D=0)}function x(c){var b=v.value;if(null==c||null!=b&&0<b.length)a.hideDialog(),d(b,c)}n=null!=n?n:!0;l=null!=l?l:!0;h=null!=h?h:4;var y=document.createElement("div");null==b&&a.addLanguageMenu(y);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop="0px";m.style.marginBottom="24px";y.appendChild(m);
-mxUtils.write(y,mxResources.get("filename")+":");var v=document.createElement("input");v.setAttribute("value",e);v.style.width="280px";v.style.marginLeft="10px";v.style.marginBottom="20px";this.init=function(){v.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?v.select():document.execCommand("selectAll",!1,null)};y.appendChild(v);null!=q&&null!=t&&"image/"==t.substring(0,6)&&(v.style.width="160px",g=null,"image/svg+xml"==t&&mxClient.IS_SVG?(g=document.createElement("div"),
-g.innerHTML=mxUtils.trim(q),q=g.getElementsByTagName("svg")[0],t=parseInt(q.getAttribute("width")),u=parseInt(q.getAttribute("height")),q.setAttribute("viewBox","0 0 "+t+" "+u),q.setAttribute("width","120px"),q.setAttribute("height","80px")):(g=document.createElement("img"),g.setAttribute("src","data:"+t+(u?";base64,":";utf8,")+q)),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%)"),
-y.appendChild(g),p&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){x("_blank")})));mxUtils.br(y);var z=document.createElement("div");z.style.textAlign="center";var D=0;z.style.marginTop="6px";y.appendChild(z);var A=document.createElement("select");A.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(g,mxResources.get("googleDrive")),A.appendChild(g),
-w(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(g,mxResources.get("oneDrive")),A.appendChild(g),a.mode==App.MODE_ONEDRIVE&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(g=document.createElement("option"),
-g.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(g,mxResources.get("dropbox")),A.appendChild(g),a.mode==App.MODE_DROPBOX&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITHUB),mxUtils.write(g,mxResources.get("github")),A.appendChild(g),w(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&&
-(g=document.createElement("option"),g.setAttribute("value",App.MODE_TRELLO),mxUtils.write(g,mxResources.get("trello")),A.appendChild(g),w(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)g=document.createElement("option"),g.setAttribute("value",App.MODE_DEVICE),mxUtils.write(g,mxResources.get("device")),A.appendChild(g),a.mode!=App.MODE_DEVICE&&l||g.setAttribute("selected",
-"selected"),f&&w(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),A.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected","selected"),w(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");l.style.marginTop="26px";l.style.textAlign="right";
-null!=c&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(c)}),g.className="geBtn",l.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=b?b():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&l.appendChild(g);null==b&&(q=mxUtils.button(mxResources.get("decideLater"),function(){x(null)}),q.className="geBtn",l.appendChild(q));p&&(p=mxUtils.button(mxResources.get("openInNewWindow"),function(){x("_blank")}),
-p.className="geBtn",l.appendChild(p));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){x(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",l.appendChild(k));a.editor.cancelFirst||l.appendChild(g);mxEvent.addListener(v,"keypress",function(c){13==c.keyCode?x(App.MODE_DEVICE):27==c.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});y.appendChild(l);this.container=y},PopupDialog=function(a,e,d,b,g){g=null!=g?g:!0;var k=document.createElement("div");
+h.length+")");mxUtils.write(f,f.getAttribute("title"));null!=c&&(f.style.padding=c);Q.appendChild(f);null==a&&(a=f,a.style.backgroundColor=n);(function(c,b){mxEvent.addListener(f,"click",function(){a!=b&&(a.style.backgroundColor="",a=b,a.style.backgroundColor=n,I.scrollTop=0,I.innerHTML="",C=0,R=V[c],A=null,w())})})(b,f)}w()}d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";l=null!=l?l:"#e6eff8";p=null!=p?p:"1px solid #ccd9ea";f=null!=f?f:TEMPLATE_PATH+"/index.xml";var F=document.createElement("div");
+F.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";d&&F.appendChild(D);var x=document.createElement("img");x.setAttribute("border","0");x.setAttribute("align","absmiddle");x.style.width="40px";x.style.height="40px";x.style.marginRight="10px";x.style.paddingBottom="4px";x.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":
+a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!e&&d&&D.appendChild(x);d&&mxUtils.write(D,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");x=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?x=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?x=a.dropbox.extension:
+a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?x=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?x=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(x=a.trello.extension);var G=document.createElement("input");G.setAttribute("value",a.defaultFilename+x);G.style.marginRight="20px";G.style.marginLeft="10px";G.style.width=e?"220px":"430px";this.init=function(){d&&(G.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?G.select():document.execCommand("selectAll",
+!1,null))};d&&D.appendChild(G);var D=!1,C=0,E=mxUtils.button(mxResources.get("create"),function(){E.setAttribute("disabled","disabled");y();E.removeAttribute("disabled")});E.className="geBtn gePrimaryBtn";if(h||q){var H=[],A=null,K=function(a){E.setAttribute("disabled","disabled");for(var c=0;c<H.length;c++)H[c].className=c==a?"geBtn gePrimaryBtn":"geBtn"},D=!0,x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";F.appendChild(x);var B=mxUtils.button(mxResources.get("Templates",
+null,"Templates"),function(){Q.style.display="";I.style.left="160px";K(0);I.scrollTop=0;I.innerHTML="";C=0;A!=R&&(R=A,w(),A=null)});H.push(B);x.appendChild(B);var L=function(a){Q.style.display="none";I.style.left="30px";K(a?-1:1);null==A&&(A=R);I.scrollTop=0;I.innerHTML="";var c=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});c.spin(I);C=0;var b=function(a,b){c.stop();R=a;b?I.innerHTML=b:0==a.length?I.innerHTML=
+mxResources.get("noDiagrams",null,"No Diagrams Found"):(I.innerHTML="",w())};a?q(O.value,b):h(b)};h&&(B=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){L()}),x.appendChild(B),H.push(B));if(q){B=document.createElement("span");B.style.marginLeft="10px";B.innerHTML=mxResources.get("search")+":";x.appendChild(B);var O=document.createElement("input");O.style.marginRight="10px";O.style.marginLeft="10px";O.style.width="220px";mxEvent.addListener(O,"keypress",function(a){13==a.keyCode&&
+L(!0)});x.appendChild(O);B=mxUtils.button(mxResources.get("search"),function(){L(!0)});B.className="geBtn";x.appendChild(B)}K(0)}var S=null,Y=null,N=null,M=null,W=null,I=document.createElement("div");I.style.border="1px solid #d3d3d3";I.style.position="absolute";I.style.left="160px";I.style.right="34px";D=(d?72:40)+(D?30:0);I.style.top=D+"px";I.style.bottom="68px";I.style.margin="6px 0 0 -1px";I.style.padding="6px";I.style.overflow="auto";var Q=document.createElement("div");Q.style.cssText="position:absolute;left:30px;width:128px;top:"+
+D+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Z=140,J=140,V={},T=1;V.basic=[{title:"blankDiagram",select:!0}];var R=V.basic;if(!e){F.appendChild(Q);F.appendChild(I);var U=!1;mxUtils.get(f,function(a){if(!U){U=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var c=a.getAttribute("url");if(null!=c){var b=c.indexOf("/"),c=c.substring(0,b),b=V[c];null==b&&(T++,b=[],V[c]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),
+title:a.getAttribute("title"),tooltip:a.getAttribute("url")})}}a=a.nextSibling}v()}})}mxEvent.addListener(G,"keypress",function(a){13==a.keyCode&&y()});f=document.createElement("div");f.style.marginTop=e?"4px":"16px";f.style.textAlign="right";f.style.position="absolute";f.style.left="40px";f.style.bottom="24px";f.style.right="40px";D=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});D.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(D);e||a.isOffline()||
+!d||null!=b||g||(x=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),x.className="geBtn",f.appendChild(x));e||"1"==urlParams.embed||g||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var c=new FilenameDialog(a,"",mxResources.get("create"),function(c){null!=c&&0<c.length&&(c=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(G.value)+"&create="+encodeURIComponent(c)),null==a.getCurrentFile()?
+window.location.href=c:window.openWindow(c))},mxResources.get("url"));a.showDialog(c.container,300,80,!0,!0);c.init()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var c=document.createElement("input");c.setAttribute("multiple","multiple");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(b){a.openFiles(c.files,!0)});c.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(E);a.editor.cancelFirst||null!=
+b||g&&null==k||f.appendChild(D);F.appendChild(f);this.container=F},CreateDialog=function(a,e,d,b,g,k,n,l,p,c,f,h,q,t,u){function w(c,b,f,m){function t(){mxEvent.addListener(d,"click",function(){var c=f;if(n){var b=v.value,m=b.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>m){var c=null!=c?c:x.value,h="";c==App.MODE_GOOGLE?h=a.drive.extension:c==App.MODE_GITHUB?h=a.gitHub.extension:c==App.MODE_TRELLO?h=a.trello.extension:c==App.MODE_DROPBOX?h=a.dropbox.extension:c==App.MODE_ONEDRIVE?h=a.oneDrive.extension:
+c==App.MODE_DEVICE&&(h=".xml");0<=m&&(b=b.substring(0,m));v.value=b+h}}y(f)})}var d=document.createElement("a");d.style.overflow="hidden";var q=document.createElement("img");q.src=c;q.setAttribute("border","0");q.setAttribute("align","absmiddle");q.style.width="60px";q.style.height="60px";q.style.paddingBottom="6px";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.className="geBaseButton";d.style.position="relative";d.style.margin="4px";d.style.padding="8px 8px 10px 8px";d.style.whiteSpace=
+"nowrap";d.appendChild(q);mxClient.IS_QUIRKS&&(d.style.cssFloat="left",d.style.zoom="1");d.style.color="gray";d.style.fontSize="11px";var g=document.createElement("div");d.appendChild(g);mxUtils.write(g,b);if(null!=m&&null==a[m]){q.style.visibility="hidden";mxUtils.setOpacity(g,10);var u=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});u.spin(d);var z=window.setTimeout(function(){null==a[m]&&(u.stop(),d.style.display=
+"none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(z),mxUtils.setOpacity(g,100),q.style.visibility="",u.stop(),t())}))}else t();F.appendChild(d);++D==h&&(mxUtils.br(F),D=0)}function y(c){var b=v.value;if(null==c||null!=b&&0<b.length)a.hideDialog(),d(b,c)}n=null!=n?n:!0;l=null!=l?l:!0;h=null!=h?h:4;var z=document.createElement("div");null==b&&a.addLanguageMenu(z);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop=
+"0px";m.style.marginBottom="24px";z.appendChild(m);mxUtils.write(z,mxResources.get("filename")+":");var v=document.createElement("input");v.setAttribute("value",e);v.style.width="280px";v.style.marginLeft="10px";v.style.marginBottom="20px";this.init=function(){v.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?v.select():document.execCommand("selectAll",!1,null)};z.appendChild(v);null!=q&&null!=t&&"image/"==t.substring(0,6)&&(v.style.width="160px",g=null,"image/svg+xml"==
+t&&mxClient.IS_SVG?(g=document.createElement("div"),g.innerHTML=mxUtils.trim(q),q=g.getElementsByTagName("svg")[0],t=parseInt(q.getAttribute("width")),u=parseInt(q.getAttribute("height")),q.setAttribute("viewBox","0 0 "+t+" "+u),q.setAttribute("width","120px"),q.setAttribute("height","80px")):(g=document.createElement("img"),g.setAttribute("src","data:"+t+(u?";base64,":";utf8,")+q)),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%)"),z.appendChild(g),p&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){y("_blank")})));mxUtils.br(z);var F=document.createElement("div");F.style.textAlign="center";var D=0;F.style.marginTop="6px";z.appendChild(F);var x=document.createElement("select");x.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GOOGLE),
+mxUtils.write(g,mxResources.get("googleDrive")),x.appendChild(g),w(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(g,mxResources.get("oneDrive")),x.appendChild(g),a.mode==App.MODE_ONEDRIVE&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),
+"function"===typeof window.DropboxClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(g,mxResources.get("dropbox")),x.appendChild(g),a.mode==App.MODE_DROPBOX&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITHUB),mxUtils.write(g,mxResources.get("github")),x.appendChild(g),w(IMAGE_PATH+"/github-logo.svg",
+mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_TRELLO),mxUtils.write(g,mxResources.get("trello")),x.appendChild(g),w(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)g=document.createElement("option"),g.setAttribute("value",App.MODE_DEVICE),mxUtils.write(g,mxResources.get("device")),
+x.appendChild(g),a.mode!=App.MODE_DEVICE&&l||g.setAttribute("selected","selected"),f&&w(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),x.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected","selected"),w(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");
+l.style.marginTop="26px";l.style.textAlign="right";null!=c&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(c)}),g.className="geBtn",l.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=b?b():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&l.appendChild(g);null==b&&(q=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),q.className="geBtn",l.appendChild(q));p&&(p=mxUtils.button(mxResources.get("openInNewWindow"),
+function(){y("_blank")}),p.className="geBtn",l.appendChild(p));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){y(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",l.appendChild(k));a.editor.cancelFirst||l.appendChild(g);mxEvent.addListener(v,"keypress",function(c){13==c.keyCode?y(App.MODE_DEVICE):27==c.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});z.appendChild(l);this.container=z},PopupDialog=function(a,e,d,b,g){g=null!=g?g:!0;var k=document.createElement("div");
k.style.textAlign="left";mxUtils.write(k,mxResources.get("fileOpenLocation"));mxUtils.br(k);mxUtils.br(k);var n=mxUtils.button(mxResources.get("openInThisWindow"),function(){g&&a.hideDialog();null!=b&&b()});n.className="geBtn";n.style.marginBottom="8px";n.style.width="280px";k.appendChild(n);mxUtils.br(k);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){g&&a.hideDialog();null!=d&&d();a.openLink(e)});l.className="geBtn gePrimaryBtn";l.style.width=n.style.width;k.appendChild(l);mxUtils.br(k);
mxUtils.br(k);mxUtils.write(k,mxResources.get("allowPopups"));this.container=k},ImageDialog=function(a,e,d,b,g,k){k=null!=k?k:!0;var n=a.editor.graph,l=document.createElement("div");mxUtils.write(l,e);e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var p=document.createElement("input");p.setAttribute("value",
d);p.setAttribute("type","text");p.setAttribute("spellcheck","false");p.setAttribute("autocorrect","off");p.setAttribute("autocomplete","off");p.setAttribute("autocapitalize","off");p.style.marginTop="6px";p.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";p.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";p.style.backgroundRepeat="no-repeat";p.style.backgroundPosition="100% 50%";p.style.paddingRight="14px";d=document.createElement("div");d.setAttribute("title",
@@ -6587,20 +6657,20 @@ typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(q=m
(q=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var c=gapi.auth.getToken().access_token,c=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(c).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=c.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),
q.className="geBtn",d.appendChild(q)));mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&f(p.value)});q=mxUtils.button(mxResources.get("apply"),function(){f(p.value)});q.className="geBtn gePrimaryBtn";d.appendChild(q);a.editor.cancelFirst||d.appendChild(e);Graph.fileSupport&&(d.style.marginTop="120px",l.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",l.style.backgroundPosition="center 65%",l.style.backgroundRepeat="no-repeat",e=document.createElement("div"),e.style.position=
"absolute",e.style.width="420px",e.style.top="58%",e.style.textAlign="center",e.style.fontSize="18px",e.style.color="#a0c3ff",mxUtils.write(e,mxResources.get("dragImagesHere")),l.appendChild(e));l.appendChild(d);this.container=l},LinkDialog=function(a,e,d,b,g){function k(a,c,b){b=mxUtils.button("",b);b.className="geBtn";b.setAttribute("title",c);c=document.createElement("img");c.style.height="26px";c.style.width="26px";c.setAttribute("src",a);b.style.minWidth="42px";b.style.verticalAlign="middle";
-b.appendChild(c);x.appendChild(b)}var n=document.createElement("div");mxUtils.write(n,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var p=document.createElement("input");p.setAttribute("placeholder",mxResources.get("dragUrlsHere"));p.setAttribute("type","text");
+b.appendChild(c);y.appendChild(b)}var n=document.createElement("div");mxUtils.write(n,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var p=document.createElement("input");p.setAttribute("placeholder",mxResources.get("dragUrlsHere"));p.setAttribute("type","text");
p.style.marginTop="6px";p.style.width="400px";p.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";p.style.backgroundRepeat="no-repeat";p.style.backgroundPosition="100% 50%";p.style.paddingRight="14px";var c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){p.value="";p.focus()});var f=document.createElement("input");f.style.cssText="margin-right:8px;margin-bottom:8px;";f.setAttribute("value","url");f.setAttribute("type","radio");f.setAttribute("name","current-linkdialog");var h=document.createElement("input");h.style.cssText="margin-right:8px;margin-bottom:8px;";h.setAttribute("value","url");h.setAttribute("type","radio");h.setAttribute("name",
"current-linkdialog");var q=document.createElement("select");q.style.width="380px";if(g&&null!=a.pages){null!=e&&a.editor.graph.isPageLink(e)?(h.setAttribute("checked","checked"),h.defaultChecked=!0):(p.setAttribute("value",e),f.setAttribute("checked","checked"),f.defaultChecked=!0);p.style.width="380px";l.appendChild(f);l.appendChild(p);l.appendChild(c);mxUtils.br(l);l.appendChild(h);g=!1;for(c=0;c<a.pages.length;c++){var t=document.createElement("option");mxUtils.write(t,a.pages[c].getName()||mxResources.get("pageWithNumber",
[c+1]));t.setAttribute("value","data:page/id,"+a.pages[c].getId());e==t.getAttribute("value")&&(t.setAttribute("selected","selected"),g=!0);q.appendChild(t)}if(!g&&h.checked){var u=document.createElement("option");mxUtils.write(u,mxResources.get("pageNotFound"));u.setAttribute("disabled","disabled");u.setAttribute("selected","selected");u.setAttribute("value","pageNotFound");q.appendChild(u);mxEvent.addListener(q,"change",function(){null==u.parentNode||u.selected||u.parentNode.removeChild(u)})}l.appendChild(q)}else p.setAttribute("value",
e),l.appendChild(p),l.appendChild(c);n.appendChild(l);var w=mxUtils.button(d,function(){a.hideDialog();b(h.checked?"pageNotFound"!==q.value?q.value:e:p.value,LinkDialog.selectedDocs)});w.style.verticalAlign="middle";w.className="geBtn gePrimaryBtn";this.init=function(){h.checked?q.focus():(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(q,"focus",function(){f.removeAttribute("checked");
h.setAttribute("checked","checked");h.checked=!0});mxEvent.addListener(p,"focus",function(){h.removeAttribute("checked");f.setAttribute("checked","checked");f.checked=!0});if(Graph.fileSupport){var c=n.parentNode,b=null;mxEvent.addListener(c,"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(f){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=a.highlightElement(c));f.stopPropagation();
-f.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(p.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var x=document.createElement("div");x.style.marginTop="20px";x.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
-d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&x.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var c=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(c=DriveClient.prototype.oldAppHostname,c="https://"+c+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?
+f.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(p.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");y.style.marginTop="20px";y.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&y.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var c=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(c=DriveClient.prototype.oldAppHostname,c="https://"+c+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?
(c=DriveClient.prototype.newAppHostname,c="https://"+c+"/#G"+a.docs[0].id):"application/vnd.google-apps.folder"==a.docs[0].mimeType&&(c="https://drive.google.com/#folders/"+a.docs[0].id);p.value=c;p.focus()}else LinkDialog.selectedDocs=null;p.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&k(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,
function(){a.spinner.stop();if(null==a.linkPicker){var c=gapi.auth.getToken().access_token,b=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),f=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),h=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),c=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(c).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(b).addView(f).addView(h).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);
"1"==urlParams.photos&&c.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=c.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&k(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){p.value=a[0].link;p.focus()}})});null!=
a.oneDrive&&k(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,c){p.value=c.value[0].webUrl;p.focus()})});null!=a.gitHub&&k(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var c=a[0],b=a[1],f=a[2];a=a.slice(3,a.length).join("/");p.value="https://github.com/"+c+"/"+b+"/blob/"+f+"/"+a;p.focus()}})});mxEvent.addListener(p,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),
-b(h.checked?q.value:p.value,LinkDialog.selectedDocs))});x.appendChild(w);a.editor.cancelFirst||x.appendChild(d);n.appendChild(x);this.container=n},AboutDialog=function(a){var e=document.createElement("div");e.style.marginTop="6px";e.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
+b(h.checked?q.value:p.value,LinkDialog.selectedDocs))});y.appendChild(w);a.editor.cancelFirst||y.appendChild(d);n.appendChild(y);this.container=n},AboutDialog=function(a){var e=document.createElement("div");e.style.marginTop="6px";e.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
(d.setAttribute("width","176"),d.setAttribute("height","219"),d.style.width="170px",d.style.height="219px",d.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));e.appendChild(d);mxUtils.br(e);d=document.createElement("small");d.innerHTML="v "+EditorUi.VERSION;d.style.color="#505050";e.appendChild(d);mxUtils.br(e);mxUtils.br(e);d=document.createElement("small");d.style.color="#505050";d.innerHTML='&copy; 2005-2018 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.';
e.appendChild(d);mxEvent.addListener(e,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=e},FeedbackDialog=function(a){var e=document.createElement("div"),d=document.createElement("div");mxUtils.write(d,mxResources.get("sendYourFeedbackToDrawIo"));d.style.fontSize="18px";d.style.marginBottom="18px";e.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");e.appendChild(d);var b=document.createElement("input");
b.setAttribute("type","text");b.style.marginTop="6px";b.style.width="600px";var g=mxUtils.button(mxResources.get("sendMessage"),function(){var c=(n.checked?"\nDiagram:\n"+a.getFileData():"")+"\nBrowser:\n"+navigator.userAgent;c.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(b.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+
@@ -6610,36 +6680,36 @@ mxEvent.addListener(b,"change",function(){0<b.value.length&&0<k.test(b.value)?g.
e.appendChild(p);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(d.appendChild(l),d.appendChild(g)):(d.appendChild(g),d.appendChild(l));e.appendChild(d);this.container=e};FeedbackDialog.maxAttachmentSize=1E6;
var RevisionDialog=function(a,e,d){var b=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));b.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.width="170px";k.style.height="378px";b.appendChild(k);var n=document.createElement("div");n.style.position="absolute";n.style.border="1px solid lightGray";n.style.left="199px";n.style.width="470px";n.style.height=
"376px";n.style.overflow="hidden";mxEvent.disableContextMenu(n);b.appendChild(n);var l=new Graph(n);l.setEnabled(!1);l.setPanning(!0);l.panningHandler.ignoreCell=!0;l.panningHandler.useLeftButtonForPanning=!0;l.minFitScale=null;l.maxFitScale=null;l.centerZoom=!0;var p=0,c=null,f=0,h=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=c&&null!=c[f]?c[f].getAttribute("name"):"pagenumber"==a?f+1:h.apply(this,arguments)};l.getLinkForCell=function(){return null};Editor.MathJaxRender&&
-l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(c,b){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var q=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),t=a.getCurrentFile(),u=null,w=null,x=null,y=null,m=mxUtils.button("",function(){null!=x&&l.zoomIn()});m.className="geSprite geSprite-zoomin";m.setAttribute("title",mxResources.get("zoomIn"));
-m.style.outline="none";m.style.border="none";m.style.margin="2px";m.setAttribute("disabled","disabled");mxUtils.setOpacity(m,20);var v=mxUtils.button("",function(){null!=x&&l.zoomOut()});v.className="geSprite geSprite-zoomout";v.setAttribute("title",mxResources.get("zoomOut"));v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var z=mxUtils.button("",function(){null!=x&&(l.maxFitScale=8,l.fit(8),l.center())});z.className=
-"geSprite geSprite-fit";z.setAttribute("title",mxResources.get("fit"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var D=mxUtils.button("",function(){null!=x&&(l.zoomActual(),l.center())});D.className="geSprite geSprite-actualsize";D.setAttribute("title",mxResources.get("actualSize"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var A=
-document.createElement("div");A.style.position="absolute";A.style.textAlign="right";A.style.color="gray";A.style.marginTop="10px";A.style.backgroundColor="transparent";A.style.top="440px";A.style.right="32px";A.style.maxWidth="380px";A.style.cursor="default";var G=mxUtils.button(mxResources.get("download"),function(){if(null!=x){var c=a.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():a.defaultFilename,b=mxUtils.getXml(x.documentElement);a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):
-(b="undefined"===typeof pako?"&xml="+encodeURIComponent(b):"&data="+encodeURIComponent(a.editor.graph.compress(b)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml"+b)).simulate(document,"_blank"))}});G.className="geBtn";G.setAttribute("disabled","disabled");var H=mxUtils.button(mxResources.get("restore"),function(){null!=x&&null!=y&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(y):a.spinner.spin(document.body,mxResources.get("restoring"))&&t.save(!0,function(c){a.spinner.stop();
-a.replaceFileData(y);a.hideDialog()},function(c){a.spinner.stop();a.editor.setStatus("");a.handleError(c,null!=c?mxResources.get("errorSavingFile"):null)})})});H.className="geBtn";H.setAttribute("disabled","disabled");var E=document.createElement("select");E.setAttribute("disabled","disabled");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";E.style.display="none";var C=null;mxEvent.addListener(E,"change",function(a){null!=
-C&&(C(a),mxEvent.consume(a))});var B=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=x&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(x.documentElement)),window.openWindow(a.getUrl()))});B.className="geBtn";B.setAttribute("disabled","disabled");null!=d&&(B.style.display="none");var L=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});L.className="geBtn gePrimaryBtn";L.setAttribute("disabled",
-"disabled");null!=d&&(L.style.display="none",H.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var F=document.createElement("div");F.className="geToolbarContainer";F.style.backgroundColor="transparent";F.style.padding="2px";F.style.border="none";F.style.left="199px";F.style.top="442px";var K=null;if(null!=e&&0<e.length){n.style.cursor="move";var O=document.createElement("table");O.style.border=
-"1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var S=document.createElement("tbody"),T=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(p=mxUtils.indexOf(a.pages,a.currentPage));for(var P=e.length-1;0<=P;P--){var M=function(b){var h=new Date(b.modifiedDate),d=null;if(0<=h.getTime()){var g=function(b){q.stop();var e=mxUtils.parseXml(b),g=a.editor.extractGraphModel(e.documentElement,!0);if(null!=g){var u=function(c){null!=c&&(c=
-k(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c},k=function(a){var c=a.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c="#ffffff";n.style.backgroundColor=c;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};E.style.display="none";E.innerHTML="";x=e;y=b;c=parseSelectFunction=null;f=0;if("mxfile"==g.nodeName){e=g.getElementsByTagName("diagram");c=[];for(b=0;b<e.length;b++)c.push(e[b]);
-f=Math.min(p,c.length-1);0<c.length&&u(c[f]);if(1<c.length)for(E.removeAttribute("disabled"),E.style.display="",b=0;b<c.length;b++)e=document.createElement("option"),mxUtils.write(e,c[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),e.setAttribute("value",b),b==f&&e.setAttribute("selected","selected"),E.appendChild(e);C=function(){f=p=parseInt(E.value);u(c[p])}}else k(g);A.innerHTML="";mxUtils.write(A,h.toLocaleDateString()+" "+h.toLocaleTimeString());A.setAttribute("title",d.getAttribute("title"));
-m.removeAttribute("disabled");v.removeAttribute("disabled");z.removeAttribute("disabled");D.removeAttribute("disabled");null!=t&&t.isRestricted()||(a.editor.graph.isEnabled()&&H.removeAttribute("disabled"),G.removeAttribute("disabled"),L.removeAttribute("disabled"),B.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(z,60);mxUtils.setOpacity(D,60)}else E.style.display="none",E.innerHTML="",A.innerHTML="",mxUtils.write(A,mxResources.get("errorLoadingFile"))},
-d=document.createElement("tr");d.style.borderBottom="1px solid lightGray";d.style.fontSize="12px";d.style.cursor="pointer";var k=document.createElement("td");k.style.padding="6px";k.style.whiteSpace="nowrap";b==e[e.length-1]?mxUtils.write(k,mxResources.get("current")):h.toDateString()===T?mxUtils.write(k,h.toLocaleTimeString()):mxUtils.write(k,h.toLocaleDateString()+" "+h.toLocaleTimeString());d.appendChild(k);d.setAttribute("title",h.toLocaleDateString()+" "+h.toLocaleTimeString()+" "+a.formatFileSize(parseInt(b.fileSize))+
-(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=b&&(q.stop(),null!=u&&(u.style.backgroundColor=""),w=b,u=d,u.style.backgroundColor="#ebf2f9",y=x=null,A.removeAttribute("title"),A.innerHTML=mxResources.get("loading")+"...",n.style.backgroundColor="#ffffff",l.getModel().clear(),H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),D.setAttribute("disabled",
-"disabled"),z.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(z,20),mxUtils.setOpacity(D,20),q.spin(n),b.getXml(function(a){w==b&&g(a)},function(a){q.stop();E.style.display="none";E.innerHTML="";A.innerHTML="";mxUtils.write(A,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){L.click();
-window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);S.appendChild(d)}return d}(e[P]);null!=M&&P==e.length-1&&(K=M)}O.appendChild(S);k.appendChild(O)}else null==t||null==a.drive&&t.constructor==window.DriveFile||null==a.dropbox&&t.constructor==window.DropboxFile?(n.style.display="none",F.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(n.style.display="none",F.style.display="none",mxUtils.write(k,
-mxResources.get("noRevisions")));this.init=function(){null!=K&&K.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";F.appendChild(E);F.appendChild(m);F.appendChild(v);F.appendChild(D);F.appendChild(z);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(G),g.appendChild(B),g.appendChild(H),g.appendChild(L)):(g.appendChild(G),g.appendChild(B),g.appendChild(H),g.appendChild(L),g.appendChild(k));b.appendChild(g);b.appendChild(F);b.appendChild(A);this.container=
+l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(c,b){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var q=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),t=a.getCurrentFile(),u=null,w=null,y=null,z=null,m=mxUtils.button("",function(){null!=y&&l.zoomIn()});m.className="geSprite geSprite-zoomin";m.setAttribute("title",mxResources.get("zoomIn"));
+m.style.outline="none";m.style.border="none";m.style.margin="2px";m.setAttribute("disabled","disabled");mxUtils.setOpacity(m,20);var v=mxUtils.button("",function(){null!=y&&l.zoomOut()});v.className="geSprite geSprite-zoomout";v.setAttribute("title",mxResources.get("zoomOut"));v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var F=mxUtils.button("",function(){null!=y&&(l.maxFitScale=8,l.fit(8),l.center())});F.className=
+"geSprite geSprite-fit";F.setAttribute("title",mxResources.get("fit"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var D=mxUtils.button("",function(){null!=y&&(l.zoomActual(),l.center())});D.className="geSprite geSprite-actualsize";D.setAttribute("title",mxResources.get("actualSize"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var x=
+document.createElement("div");x.style.position="absolute";x.style.textAlign="right";x.style.color="gray";x.style.marginTop="10px";x.style.backgroundColor="transparent";x.style.top="440px";x.style.right="32px";x.style.maxWidth="380px";x.style.cursor="default";var G=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var c=a.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():a.defaultFilename,b=mxUtils.getXml(y.documentElement);a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):
+(b="undefined"===typeof pako?"&xml="+encodeURIComponent(b):"&data="+encodeURIComponent(a.editor.graph.compress(b)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml"+b)).simulate(document,"_blank"))}});G.className="geBtn";G.setAttribute("disabled","disabled");var C=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=z&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(z):a.spinner.spin(document.body,mxResources.get("restoring"))&&t.save(!0,function(c){a.spinner.stop();
+a.replaceFileData(z);a.hideDialog()},function(c){a.spinner.stop();a.editor.setStatus("");a.handleError(c,null!=c?mxResources.get("errorSavingFile"):null)})})});C.className="geBtn";C.setAttribute("disabled","disabled");var E=document.createElement("select");E.setAttribute("disabled","disabled");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";E.style.display="none";var H=null;mxEvent.addListener(E,"change",function(a){null!=
+H&&(H(a),mxEvent.consume(a))});var A=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),window.openWindow(a.getUrl()))});A.className="geBtn";A.setAttribute("disabled","disabled");null!=d&&(A.style.display="none");var K=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});K.className="geBtn gePrimaryBtn";K.setAttribute("disabled",
+"disabled");null!=d&&(K.style.display="none",C.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var B=document.createElement("div");B.className="geToolbarContainer";B.style.backgroundColor="transparent";B.style.padding="2px";B.style.border="none";B.style.left="199px";B.style.top="442px";var L=null;if(null!=e&&0<e.length){n.style.cursor="move";var O=document.createElement("table");O.style.border=
+"1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var S=document.createElement("tbody"),Y=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(p=mxUtils.indexOf(a.pages,a.currentPage));for(var N=e.length-1;0<=N;N--){var M=function(b){var h=new Date(b.modifiedDate),d=null;if(0<=h.getTime()){var g=function(b){q.stop();var e=mxUtils.parseXml(b),g=a.editor.extractGraphModel(e.documentElement,!0);if(null!=g){var u=function(c){null!=c&&(c=
+k(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c},k=function(a){var c=a.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c="#ffffff";n.style.backgroundColor=c;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};E.style.display="none";E.innerHTML="";y=e;z=b;c=parseSelectFunction=null;f=0;if("mxfile"==g.nodeName){e=g.getElementsByTagName("diagram");c=[];for(b=0;b<e.length;b++)c.push(e[b]);
+f=Math.min(p,c.length-1);0<c.length&&u(c[f]);if(1<c.length)for(E.removeAttribute("disabled"),E.style.display="",b=0;b<c.length;b++)e=document.createElement("option"),mxUtils.write(e,c[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),e.setAttribute("value",b),b==f&&e.setAttribute("selected","selected"),E.appendChild(e);H=function(){f=p=parseInt(E.value);u(c[p])}}else k(g);x.innerHTML="";mxUtils.write(x,h.toLocaleDateString()+" "+h.toLocaleTimeString());x.setAttribute("title",d.getAttribute("title"));
+m.removeAttribute("disabled");v.removeAttribute("disabled");F.removeAttribute("disabled");D.removeAttribute("disabled");null!=t&&t.isRestricted()||(a.editor.graph.isEnabled()&&C.removeAttribute("disabled"),G.removeAttribute("disabled"),K.removeAttribute("disabled"),A.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(D,60)}else E.style.display="none",E.innerHTML="",x.innerHTML="",mxUtils.write(x,mxResources.get("errorLoadingFile"))},
+d=document.createElement("tr");d.style.borderBottom="1px solid lightGray";d.style.fontSize="12px";d.style.cursor="pointer";var k=document.createElement("td");k.style.padding="6px";k.style.whiteSpace="nowrap";b==e[e.length-1]?mxUtils.write(k,mxResources.get("current")):h.toDateString()===Y?mxUtils.write(k,h.toLocaleTimeString()):mxUtils.write(k,h.toLocaleDateString()+" "+h.toLocaleTimeString());d.appendChild(k);d.setAttribute("title",h.toLocaleDateString()+" "+h.toLocaleTimeString()+" "+a.formatFileSize(parseInt(b.fileSize))+
+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=b&&(q.stop(),null!=u&&(u.style.backgroundColor=""),w=b,u=d,u.style.backgroundColor="#ebf2f9",z=y=null,x.removeAttribute("title"),x.innerHTML=mxResources.get("loading")+"...",n.style.backgroundColor="#ffffff",l.getModel().clear(),C.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),D.setAttribute("disabled",
+"disabled"),F.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(D,20),q.spin(n),b.getXml(function(a){w==b&&g(a)},function(a){q.stop();E.style.display="none";E.innerHTML="";x.innerHTML="";mxUtils.write(x,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){K.click();
+window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);S.appendChild(d)}return d}(e[N]);null!=M&&N==e.length-1&&(L=M)}O.appendChild(S);k.appendChild(O)}else null==t||null==a.drive&&t.constructor==window.DriveFile||null==a.dropbox&&t.constructor==window.DropboxFile?(n.style.display="none",B.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(n.style.display="none",B.style.display="none",mxUtils.write(k,
+mxResources.get("noRevisions")));this.init=function(){null!=L&&L.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";B.appendChild(E);B.appendChild(m);B.appendChild(v);B.appendChild(D);B.appendChild(F);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(G),g.appendChild(A),g.appendChild(C),g.appendChild(K)):(g.appendChild(G),g.appendChild(A),g.appendChild(C),g.appendChild(K),g.appendChild(k));b.appendChild(g);b.appendChild(B);b.appendChild(x);this.container=
b},DraftDialog=function(a,e,d,b,g,k,n,l){var p=document.createElement("div"),c=document.createElement("div");c.style.marginTop="0px";c.style.whiteSpace="nowrap";c.style.overflow="auto";mxUtils.write(c,e);p.appendChild(c);var f=document.createElement("div");f.style.position="absolute";f.style.border="1px solid lightGray";f.style.marginTop="10px";f.style.width="640px";f.style.top="46px";f.style.bottom="74px";f.style.overflow="hidden";mxEvent.disableContextMenu(f);p.appendChild(f);var h=new Graph(f);
h.setEnabled(!1);h.setPanning(!0);h.panningHandler.ignoreCell=!0;h.panningHandler.useLeftButtonForPanning=!0;h.minFitScale=null;h.maxFitScale=null;h.centerZoom=!0;e=mxUtils.parseXml(d);var q=a.editor.extractGraphModel(e.documentElement,!0),t=0,u=null,w=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a&&null!=u&&null!=u[t]?u[t].getAttribute("name"):"pagenumber"==a?t+1:w.apply(this,arguments)};h.getLinkForCell=function(){return null};e=mxUtils.button("",function(){h.zoomIn()});e.className=
"geSprite geSprite-zoomin";e.setAttribute("title",mxResources.get("zoomIn"));e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);d=mxUtils.button("",function(){h.zoomOut()});d.className="geSprite geSprite-zoomout";d.setAttribute("title",mxResources.get("zoomOut"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);c=mxUtils.button("",function(){h.maxFitScale=8;h.fit(8);h.center()});c.className="geSprite geSprite-fit";c.setAttribute("title",
-mxResources.get("fit"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);var x=mxUtils.button("",function(){h.zoomActual();h.center()});x.className="geSprite geSprite-actualsize";x.setAttribute("title",mxResources.get("actualSize"));x.style.outline="none";x.style.border="none";x.style.margin="2px";mxUtils.setOpacity(x,60);g=mxUtils.button(n||mxResources.get("discard"),g);g.className="geBtn";var y=document.createElement("select");y.style.maxWidth="80px";y.style.position=
-"relative";y.style.top="-2px";y.style.verticalAlign="bottom";y.style.marginRight="6px";y.style.display="none";b=mxUtils.button(k||mxResources.get("edit"),b);b.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.position="absolute";k.style.bottom="30px";k.style.width="640px";k.style.textAlign="right";n=document.createElement("div");n.className="geToolbarContainer";n.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";
-this.init=function(){function c(a){if(null!=a){var c=a.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c="#ffffff";f.style.backgroundColor=c;(new mxCodec(a.ownerDocument)).decode(a,h.getModel());h.maxFitScale=1;h.fit(8);h.center()}}function b(b){null!=b&&(b=c(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b}mxEvent.addListener(y,"change",function(a){t=parseInt(y.value);b(u[t]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram");
-u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&b(u[t]);if(1<u.length)for(y.style.display="",e=0;e<u.length;e++)d=document.createElement("option"),mxUtils.write(d,u[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),d.setAttribute("value",e),e==t&&d.setAttribute("selected","selected"),y.appendChild(d)}else c(q)};n.appendChild(y);n.appendChild(e);n.appendChild(d);n.appendChild(x);n.appendChild(c);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className=
+mxResources.get("fit"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);var y=mxUtils.button("",function(){h.zoomActual();h.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);g=mxUtils.button(n||mxResources.get("discard"),g);g.className="geBtn";var z=document.createElement("select");z.style.maxWidth="80px";z.style.position=
+"relative";z.style.top="-2px";z.style.verticalAlign="bottom";z.style.marginRight="6px";z.style.display="none";b=mxUtils.button(k||mxResources.get("edit"),b);b.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.position="absolute";k.style.bottom="30px";k.style.width="640px";k.style.textAlign="right";n=document.createElement("div");n.className="geToolbarContainer";n.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";
+this.init=function(){function c(a){if(null!=a){var c=a.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c="#ffffff";f.style.backgroundColor=c;(new mxCodec(a.ownerDocument)).decode(a,h.getModel());h.maxFitScale=1;h.fit(8);h.center()}}function b(b){null!=b&&(b=c(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b}mxEvent.addListener(z,"change",function(a){t=parseInt(z.value);b(u[t]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram");
+u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&b(u[t]);if(1<u.length)for(z.style.display="",e=0;e<u.length;e++)d=document.createElement("option"),mxUtils.write(d,u[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),d.setAttribute("value",e),e==t&&d.setAttribute("selected","selected"),z.appendChild(d)}else c(q)};n.appendChild(z);n.appendChild(e);n.appendChild(d);n.appendChild(y);n.appendChild(c);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className=
"geBtn";l=null!=l?mxUtils.button(mxResources.get("ignore"),l):null;null!=l&&(l.className="geBtn");a.editor.cancelFirst?(k.appendChild(e),null!=l&&k.appendChild(l),k.appendChild(g),k.appendChild(b)):(k.appendChild(b),k.appendChild(g),null!=l&&k.appendChild(l),k.appendChild(e));p.appendChild(k);p.appendChild(n);this.container=p},FindWindow=function(a,e,d,b,g){function k(a,c,b){if("object"===typeof c.value&&null!=c.value.attributes){c=c.value.attributes;for(var f=0;f<c.length;f++)if("label"!=c[f].nodeName){var h=
mxUtils.trim(c[f].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&h.substring(0,b.length)===b||null!=a&&a.test(h))return!0}}return!1}function n(){var a=p.model.getDescendants(p.model.getRoot()),b=q.value.toLowerCase(),h=t.checked?new RegExp(b):null,d=null;c!=b&&(c=b,f=null);var e=null==f;if(0<b.length)for(var g=0;g<a.length;g++){var n=p.view.getState(a[g]);if(null!=n&&null!=n.cell.value&&(e||null==d)&&(p.model.isVertex(n.cell)||p.model.isEdge(n.cell))&&(p.isHtmlLabel(n.cell)?
(u.innerHTML=p.getLabel(n.cell),label=mxUtils.extractTextWithWhitespace([u])):label=p.getLabel(n.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==h&&(label.substring(0,b.length)===b||k(h,n.cell,b))||null!=h&&(h.test(label)||k(h,n.cell,b))))if(e){d=n;break}else null==d&&(d=n);e=e||n==f}null!=d?(f=d,p.scrollCellToVisible(f.cell),p.isEnabled()?p.setSelectionCell(f.cell):p.highlightCell(f.cell)):p.isEnabled()&&p.clearSelection();return 0==b.length||null!=d}
var l=a.actions.get("find"),p=a.editor.graph,c=null,f=null,h=document.createElement("div");h.style.userSelect="none";h.style.overflow="hidden";h.style.padding="10px";h.style.height="100%";var q=document.createElement("input");q.setAttribute("placeholder",mxResources.get("find"));q.setAttribute("type","text");q.style.marginTop="4px";q.style.marginBottom="6px";q.style.width="200px";q.style.fontSize="12px";q.style.borderRadius="4px";q.style.padding="6px";h.appendChild(q);mxUtils.br(h);var t=document.createElement("input");
t.setAttribute("type","checkbox");t.style.marginRight="4px";h.appendChild(t);mxUtils.write(h,mxResources.get("regularExpression"));var u=document.createElement("div");mxUtils.br(h);var w=mxUtils.button(mxResources.get("reset"),function(){q.value="";q.style.backgroundColor="";c=f=null;q.focus()});w.setAttribute("title",mxResources.get("reset"));w.style.marginTop="6px";w.style.marginRight="4px";w.className="geBtn";h.appendChild(w);w=mxUtils.button(mxResources.get("find"),function(){try{q.style.backgroundColor=
-n()?"":"#ffcfcf"}catch(x){a.handleError(x)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";h.appendChild(w);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(c!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=n()?"":"#ffcfcf"}catch(y){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(c){70==c.keyCode&&
+n()?"":"#ffcfcf"}catch(y){a.handleError(y)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";h.appendChild(w);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(c!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=n()?"":"#ffcfcf"}catch(z){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(c){70==c.keyCode&&
a.keyHandler.isControlDown(c)&&!mxEvent.isShiftDown(c)&&(l.funct(),mxEvent.consume(c))});this.window=new mxWindow(mxResources.get("find"),h,e,d,b,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.isVisible()?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):p.container.focus()}))},
TagsWindow=function(a,e,d,b,g){function k(a){a=null!=a?a:l.model.getDescendants(l.model.getRoot());for(var c=f.value.split(" "),b=[],h=0;h<a.length;h++)if(l.model.isVertex(a[h])||l.model.isEdge(a[h])){var d=null!=a[h].value&&"object"==typeof a[h].value?mxUtils.trim(a[h].value.getAttribute(p)||""):"",m=!0;if(0<d.length)for(var d=d.toLowerCase().split(" "),e=0;e<c.length&&m;e++)var t=mxUtils.trim(c[e]).toLowerCase(),m=m&&(0==t.length||0<=mxUtils.indexOf(d,t));else m=0==mxUtils.trim(f.value).length;
m&&b.push(a[h])}return b}function n(a,c){l.model.beginUpdate();try{for(var b=0;b<a.length;b++)l.model.setVisible(a[b],c)}finally{l.model.endUpdate()}}var l=a.editor.graph,p="tags",c=document.createElement("div");c.style.userSelect="none";c.style.overflow="hidden";c.style.padding="10px";c.style.height="100%";var f=document.createElement("input");f.setAttribute("placeholder",mxResources.get("allTags"));f.setAttribute("type","text");f.style.marginTop="4px";f.style.width="260px";f.style.fontSize="12px";
@@ -6656,9 +6726,9 @@ e.style.position="absolute";e.style.top="0px";e.style.left="0px";e.style.lineHei
b.imageCallback?b.imageCallback(k):null!=b.image?k.innerHTML='<img border="0" src="'+b.image+'"/>':(k.innerHTML="<br>",mxUtils.write(k,mxResources.get("noPreview"))),null!=n&&(n.style.backgroundColor=""),n=f,n.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(f,"click",d);mxEvent.addListener(f,"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});l.push(function(){return m.checked?b.id:null});0==c&&0==h&&d()})(b.entries[h])})(d[c]);
b.style.padding="30px";b.appendChild(e);b.appendChild(g);b.appendChild(k);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=e.style.width,d.style.paddingTop="12px");var f=document.createElement("input");f.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)e=
document.createElement("span"),e.style.paddingRight="20px",e.appendChild(f),mxUtils.write(e," "+mxResources.get("rememberThisSetting")),f.checked=!0,f.defaultChecked=!0,mxEvent.addListener(e,"click",function(a){mxEvent.getSource(a)!=f&&(f.checked=!f.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(e.style.position="relative",e.style.top="-6px"),d.appendChild(e);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";var h=mxUtils.button(mxResources.get("apply"),
-function(){a.hideDialog();for(var c=[],b=0;b<l.length;b++){var h=l[b].apply(this,arguments);null!=h&&c.push(h)}a.sidebar.showEntries(c.join(";"),f.checked,!0)});h.className="geBtn gePrimaryBtn"}else{var q=document.createElement("table"),t=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";var u=document.createElement("tr");q.style.width="100%";e=document.createElement("td");var h=document.createElement("td"),w=document.createElement("td"),x=mxUtils.bind(this,function(c,
+function(){a.hideDialog();for(var c=[],b=0;b<l.length;b++){var h=l[b].apply(this,arguments);null!=h&&c.push(h)}a.sidebar.showEntries(c.join(";"),f.checked,!0)});h.className="geBtn gePrimaryBtn"}else{var q=document.createElement("table"),t=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";var u=document.createElement("tr");q.style.width="100%";e=document.createElement("td");var h=document.createElement("td"),w=document.createElement("td"),y=mxUtils.bind(this,function(c,
b,f){var h=document.createElement("input");h.type="checkbox";q.appendChild(h);h.checked=a.sidebar.isEntryVisible(f);var m=document.createElement("span");mxUtils.write(m,b);b=document.createElement("div");b.style.display="block";b.appendChild(h);b.appendChild(m);mxEvent.addListener(m,"click",function(a){h.checked=!h.checked;mxEvent.consume(a)});c.appendChild(b);return function(){return h.checked?f:null}});u.appendChild(e);u.appendChild(h);u.appendChild(w);t.appendChild(u);q.appendChild(t);for(var l=
-[],y=0,c=0;c<d.length;c++)for(t=0;t<d[c].entries.length;t++)y++;for(var m=[e,h,w],v=0,c=0;c<d.length;c++)(function(a){for(var c=0;c<a.entries.length;c++){var b=a.entries[c];l.push(x(m[Math.floor(v/(y/3))],b.title,b.id));v++}})(d[c]);b.appendChild(q);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";f=document.createElement("input");isLocalStorage&&(f.setAttribute("type","checkbox"),f.checked=!0,f.defaultChecked=!0,d.appendChild(f),e=document.createElement("span"),
+[],z=0,c=0;c<d.length;c++)for(t=0;t<d[c].entries.length;t++)z++;for(var m=[e,h,w],v=0,c=0;c<d.length;c++)(function(a){for(var c=0;c<a.entries.length;c++){var b=a.entries[c];l.push(y(m[Math.floor(v/(z/3))],b.title,b.id));v++}})(d[c]);b.appendChild(q);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";f=document.createElement("input");isLocalStorage&&(f.setAttribute("type","checkbox"),f.checked=!0,f.defaultChecked=!0,d.appendChild(f),e=document.createElement("span"),
mxUtils.write(e," "+mxResources.get("rememberThisSetting")),d.appendChild(e),mxEvent.addListener(e,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)}));b.appendChild(d);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";h=mxUtils.button(mxResources.get("apply"),function(){for(var c=["search"],b=0;b<l.length;b++){var h=l[b].apply(this,arguments);null!=h&&c.push(h)}a.sidebar.showEntries(0<c.length?c.join(";"):"",f.checked);a.hideDialog()});h.className=
"geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(e),d.appendChild(h)):(d.appendChild(h),d.appendChild(e));b.appendChild(d);this.container=b},PluginsDialog=function(a){function e(){if(0==g.length)b.innerHTML=mxResources.get("noPlugins");else{b.innerHTML="";for(var c=0;c<g.length;c++){var h=document.createElement("span");h.style.whiteSpace="nowrap";var d=document.createElement("span");d.className="geSprite geSprite-delete";
d.style.position="relative";d.style.cursor="pointer";d.style.top="5px";d.style.marginRight="4px";d.style.display="inline-block";h.appendChild(d);mxUtils.write(h,g[c]);b.appendChild(h);mxUtils.br(b);mxEvent.addListener(d,"click",function(c){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+g[c]+'"?',function(){g.splice(c,1);e()})}}(c))}}}var d=document.createElement("div"),b=document.createElement("div");b.style.height="120px";b.style.overflow="auto";var g=mxSettings.getPlugins().slice();
@@ -6668,41 +6738,41 @@ p.className="geBtn";a.isOffline()&&!mxClient.IS_CHROMEAPP&&(p.style.display="non
n=document.createElement("tr"),l=document.createElement("td");l.style.whiteSpace="nowrap";l.setAttribute("colspan","2");mxUtils.write(l,mxResources.get("loading")+"...");n.appendChild(l);k.appendChild(n);var n=document.createElement("tr"),p=document.createElement("td"),c=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(p,mxResources.get("left")+":");var f=document.createElement("input");f.setAttribute("type","text");f.style.width="100px";f.value="0";this.init=function(){f.focus();
f.select()};c.appendChild(f);n.appendChild(p);n.appendChild(c);k.appendChild(n);n=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";c.appendChild(h);n.appendChild(p);n.appendChild(c);k.appendChild(n);n=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("right")+
":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";c.appendChild(q);n.appendChild(p);n.appendChild(c);k.appendChild(n);n=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("bottom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value="0";c.appendChild(t);n.appendChild(p);n.appendChild(c);k.appendChild(n);n=document.createElement("tr");
-p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("circle")+":");n.appendChild(p);var u=document.createElement("input");u.setAttribute("type","checkbox");c.appendChild(u);n.appendChild(c);k.appendChild(n);g.appendChild(k);b.appendChild(g);var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,x=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=document.createElement("canvas"),b=c.getContext("2d"),e=w.width,
-g=w.height,x=parseInt(f.value),k=parseInt(h.value),e=Math.max(1,e-x-parseInt(q.value)),g=Math.max(1,g-k-parseInt(t.value));c.width=e;c.height=g;u.checked&&(b.fillStyle="#000000",b.arc(e/2,g/2,Math.min(e/2,g/2),0,2*Math.PI),b.fill(),b.globalCompositeOperation="source-in");b.drawImage(w,x,k,e,g,0,0,e,g);d(c.toDataURL())});x.setAttribute("disabled","disabled");w.onload=function(){x.removeAttribute("disabled");l.innerHTML="";mxUtils.write(l,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+
-": "+w.height)};w.src=e;mxEvent.addListener(b,"keypress",function(a){13==a.keyCode&&x.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(g),e.appendChild(x)):(e.appendChild(x),e.appendChild(g));b.appendChild(e);this.container=b},EditGeometryDialog=function(a,e){var d=a.editor.graph,b=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),n=document.createElement("tbody"),
+p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("circle")+":");n.appendChild(p);var u=document.createElement("input");u.setAttribute("type","checkbox");c.appendChild(u);n.appendChild(c);k.appendChild(n);g.appendChild(k);b.appendChild(g);var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=document.createElement("canvas"),b=c.getContext("2d"),e=w.width,
+g=w.height,y=parseInt(f.value),k=parseInt(h.value),e=Math.max(1,e-y-parseInt(q.value)),g=Math.max(1,g-k-parseInt(t.value));c.width=e;c.height=g;u.checked&&(b.fillStyle="#000000",b.arc(e/2,g/2,Math.min(e/2,g/2),0,2*Math.PI),b.fill(),b.globalCompositeOperation="source-in");b.drawImage(w,y,k,e,g,0,0,e,g);d(c.toDataURL())});y.setAttribute("disabled","disabled");w.onload=function(){y.removeAttribute("disabled");l.innerHTML="";mxUtils.write(l,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+
+": "+w.height)};w.src=e;mxEvent.addListener(b,"keypress",function(a){13==a.keyCode&&y.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(g),e.appendChild(y)):(e.appendChild(y),e.appendChild(g));b.appendChild(e);this.container=b},EditGeometryDialog=function(a,e){var d=a.editor.graph,b=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),n=document.createElement("tbody"),
l=document.createElement("tr"),p=document.createElement("td"),c=document.createElement("td");k.style.paddingLeft="6px";mxUtils.write(p,mxResources.get("left")+":");var f=document.createElement("input");f.setAttribute("type","text");f.style.width="100px";f.value=null!=b?b.x:"";this.init=function(){f.focus();f.select()};c.appendChild(f);l.appendChild(p);l.appendChild(c);n.appendChild(l);l=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("top")+
":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value=null!=b?b.y:"";c.appendChild(h);l.appendChild(p);l.appendChild(c);n.appendChild(l);l=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("width")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=b?b.width:"";c.appendChild(q);l.appendChild(p);l.appendChild(c);n.appendChild(l);
l=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("height")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=b?b.height:"";c.appendChild(t);l.appendChild(p);l.appendChild(c);n.appendChild(l);l=document.createElement("tr");p=document.createElement("td");c=document.createElement("td");mxUtils.write(p,mxResources.get("rotation")+":");var u=document.createElement("input");
u.setAttribute("type","text");u.style.width="100px";u.value=1==e.length?mxUtils.getValue(d.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";c.appendChild(u);l.appendChild(p);l.appendChild(c);n.appendChild(l);k.appendChild(n);g.appendChild(k);var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var c=0;c<e.length;c++){var b=d.getCellGeometry(e[c]);null!=b&&(b=b.clone(),d.isCellMovable(e[c])&&
(0<mxUtils.trim(f.value).length&&(b.x=Number(f.value)),0<mxUtils.trim(h.value).length&&(b.y=Number(h.value))),d.isCellResizable(e[c])&&(0<mxUtils.trim(q.value).length&&(b.width=Number(q.value)),0<mxUtils.trim(t.value).length&&(b.height=Number(t.value))),d.getModel().setGeometry(e[c],b));0<mxUtils.trim(u.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(u.value),[e[c]])}}finally{d.getModel().endUpdate()}});mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&w.click()});k=document.createElement("div");
-k.style.marginTop="20px";k.style.textAlign="right";a.editor.cancelFirst?(k.appendChild(b),k.appendChild(w)):(k.appendChild(w),k.appendChild(b));g.appendChild(k);this.container=g},LibraryDialog=function(a,e,d,b,g,k){function n(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var c=null;if(null!=a)for(var b=t.firstChild,c=0;null!=b&&b!=a;)b=b.nextSibling,c++;return c}function l(c,b,h,d,e,g,q,k,y){try{if(null==b||"image/"==b.substring(0,6))if(null==c&&
-null!=q||null==w[c]){var B=function(){C.innerHTML="";C.style.cursor="pointer";C.style.whiteSpace="nowrap";C.style.textOverflow="ellipsis";mxUtils.write(C,null!=H.title&&0<H.title.length?H.title:mxResources.get("untitled"));C.style.color=null==H.title||0==H.title.length?"#d0d0d0":""};t.style.backgroundImage="";u.style.display="none";var D=e,p=g;if(e>a.maxImageSize||g>a.maxImageSize){var A=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,g));e*=A;g*=A}D>p?(p=Math.round(100*
-p/D),D=100):(D=Math.round(100*D/p),p=100);var F=document.createElement("div");F.setAttribute("draggable","true");F.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";F.style.position="relative";F.style.cursor="move";mxUtils.setPrefixedStyle(F.style,"transition","transform .1s ease-in-out");if(null!=c){var L=document.createElement("img");L.setAttribute("src",v.convert(c));L.style.width=D+"px";L.style.height=p+"px";L.style.margin="10px";L.style.paddingBottom=Math.floor((100-p)/2)+"px";L.style.paddingLeft=
-Math.floor((100-D)/2)+"px";F.appendChild(L)}else if(null!=q){var K=a.stringToCells(a.editor.graph.decompress(q.xml));0<K.length&&(a.sidebar.createThumb(K,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",F.firstChild.style.cursor="")}var G=document.createElement("img");G.setAttribute("src",Editor.closeImage);G.setAttribute("border","0");G.setAttribute("title",mxResources.get("delete"));G.setAttribute("align","top");G.style.paddingTop="4px";G.style.marginLeft=
-"-22px";G.style.cursor="pointer";mxEvent.addListener(G,"dragstart",function(a){mxEvent.consume(a)});null==c&&null!=q&&(G.style.position="relative");(function(a,c,b){mxEvent.addListener(G,"click",function(h){w[c]=null;for(var m=0;m<f.length;m++)if(null!=f[m].data&&f[m].data==c||null!=f[m].xml&&null!=b&&f[m].xml==b.xml){f.splice(m,1);break}F.parentNode.removeChild(a);0==f.length&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(G,
-"dblclick",function(a){mxEvent.consume(a)})})(F,c,q);F.appendChild(G);F.style.marginBottom="30px";var C=document.createElement("div");C.style.position="absolute";C.style.boxSizing="border-box";C.style.bottom="-18px";C.style.left="10px";C.style.right="10px";C.style.backgroundColor="#ffffff";C.style.overflow="hidden";C.style.textAlign="center";var H=null;null!=c?(H={data:c,w:e,h:g,title:y},null!=k&&(H.aspect=k),w[c]=L,f.push(H)):null!=q&&(q.aspect="fixed",f.push(q),H=q);mxEvent.addListener(C,"keydown",
-function(a){13==a.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(a))});B();F.appendChild(C);mxEvent.addListener(C,"mousedown",function(a){"true"!=C.getAttribute("contentEditable")&&mxEvent.consume(a)});K=function(c){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var b=new FilenameDialog(a,H.title||"",mxResources.get("ok"),function(a){null!=a&&(H.title=a,B())},mxResources.get("enterValue"));a.showDialog(b.container,300,80,!0,!0);b.init();
-mxEvent.consume(c)}else if("true"!=C.getAttribute("contentEditable")){null!=m&&(m(),m=null);if(null==H.title||0==H.title.length)C.innerHTML="";C.style.textOverflow="";C.style.whiteSpace="";C.style.cursor="text";C.style.color="";C.setAttribute("contentEditable","true");C.focus();document.execCommand("selectAll",!1,null);m=function(){C.removeAttribute("contentEditable");C.style.cursor="pointer";H.title=C.innerHTML;B()};mxEvent.consume(c)}};mxEvent.addListener(C,"click",K);mxEvent.addListener(F,"dblclick",
-K);t.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==c&&null!=q&&(G.style.visibility="hidden",C.style.visibility="hidden");mxClient.IS_FF&&null!=q.xml&&a.dataTransfer.setData("Text",q.xml);x=n(a);mxClient.IS_GC&&(F.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(F.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(F,30);G.style.visibility="";C.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==G.style.visibility&&(G.style.visibility=
-"",C.style.visibility="");x=null;mxUtils.setOpacity(F,100);mxUtils.setPrefixedStyle(F.style,"transform",null)})}else z||(z=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),D=mxUtils.parseXml(c),"mxlibrary"==D.documentElement.nodeName){p=JSON.parse(mxUtils.getTextContent(D.documentElement));if(null!=p&&0<p.length)for(var E=0;E<p.length;E++)null!=p[E].xml?l(null,null,0,0,0,0,p[E]):l(p[E].data,null,0,0,p[E].w,p[E].h,null,"fixed",p[E].title);e=!0}else if("mxfile"==
-D.documentElement.nodeName){for(var O=D.documentElement.getElementsByTagName("diagram"),E=0;E<O.length;E++){var p=mxUtils.getTextContent(O[E]),K=a.stringToCells(a.editor.graph.decompress(p)),Q=a.editor.graph.getBoundingBoxFromGeometry(K);l(null,null,0,0,0,0,{xml:p,w:Q.width,h:Q.height})}e=!0}}catch(Z){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Z){}return null}function p(a){a.dataTransfer.dropEffect=null!=x?"move":"copy";a.stopPropagation();a.preventDefault()}
-function c(c){c.stopPropagation();c.preventDefault();z=!1;y=n(c);if(null!=x)null!=y&&y<t.children.length?(f.splice(y>x?y-1:y,0,f.splice(x,1)[0]),t.insertBefore(t.children[x],t.children[y])):(f.push(f.splice(x,1)[0]),t.appendChild(t.children[x]));else if(0<c.dataTransfer.files.length)a.importFiles(c.dataTransfer.files,0,0,a.maxImageSize,D(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var b=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(b)||
+k.style.marginTop="20px";k.style.textAlign="right";a.editor.cancelFirst?(k.appendChild(b),k.appendChild(w)):(k.appendChild(w),k.appendChild(b));g.appendChild(k);this.container=g},LibraryDialog=function(a,e,d,b,g,k){function n(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var c=null;if(null!=a)for(var b=t.firstChild,c=0;null!=b&&b!=a;)b=b.nextSibling,c++;return c}function l(c,b,h,d,e,g,q,k,z){try{if(null==b||"image/"==b.substring(0,6))if(null==c&&
+null!=q||null==w[c]){var A=function(){C.innerHTML="";C.style.cursor="pointer";C.style.whiteSpace="nowrap";C.style.textOverflow="ellipsis";mxUtils.write(C,null!=H.title&&0<H.title.length?H.title:mxResources.get("untitled"));C.style.color=null==H.title||0==H.title.length?"#d0d0d0":""};t.style.backgroundImage="";u.style.display="none";var D=e,p=g;if(e>a.maxImageSize||g>a.maxImageSize){var x=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,g));e*=x;g*=x}D>p?(p=Math.round(100*
+p/D),D=100):(D=Math.round(100*D/p),p=100);var B=document.createElement("div");B.setAttribute("draggable","true");B.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";B.style.position="relative";B.style.cursor="move";mxUtils.setPrefixedStyle(B.style,"transition","transform .1s ease-in-out");if(null!=c){var K=document.createElement("img");K.setAttribute("src",v.convert(c));K.style.width=D+"px";K.style.height=p+"px";K.style.margin="10px";K.style.paddingBottom=Math.floor((100-p)/2)+"px";K.style.paddingLeft=
+Math.floor((100-D)/2)+"px";B.appendChild(K)}else if(null!=q){var L=a.stringToCells(a.editor.graph.decompress(q.xml));0<L.length&&(a.sidebar.createThumb(L,100,100,B,null,!0,!1),B.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",B.firstChild.style.cursor="")}var G=document.createElement("img");G.setAttribute("src",Editor.closeImage);G.setAttribute("border","0");G.setAttribute("title",mxResources.get("delete"));G.setAttribute("align","top");G.style.paddingTop="4px";G.style.marginLeft=
+"-22px";G.style.cursor="pointer";mxEvent.addListener(G,"dragstart",function(a){mxEvent.consume(a)});null==c&&null!=q&&(G.style.position="relative");(function(a,c,b){mxEvent.addListener(G,"click",function(h){w[c]=null;for(var m=0;m<f.length;m++)if(null!=f[m].data&&f[m].data==c||null!=f[m].xml&&null!=b&&f[m].xml==b.xml){f.splice(m,1);break}B.parentNode.removeChild(a);0==f.length&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(G,
+"dblclick",function(a){mxEvent.consume(a)})})(B,c,q);B.appendChild(G);B.style.marginBottom="30px";var C=document.createElement("div");C.style.position="absolute";C.style.boxSizing="border-box";C.style.bottom="-18px";C.style.left="10px";C.style.right="10px";C.style.backgroundColor="#ffffff";C.style.overflow="hidden";C.style.textAlign="center";var H=null;null!=c?(H={data:c,w:e,h:g,title:z},null!=k&&(H.aspect=k),w[c]=K,f.push(H)):null!=q&&(q.aspect="fixed",f.push(q),H=q);mxEvent.addListener(C,"keydown",
+function(a){13==a.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(a))});A();B.appendChild(C);mxEvent.addListener(C,"mousedown",function(a){"true"!=C.getAttribute("contentEditable")&&mxEvent.consume(a)});L=function(c){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var b=new FilenameDialog(a,H.title||"",mxResources.get("ok"),function(a){null!=a&&(H.title=a,A())},mxResources.get("enterValue"));a.showDialog(b.container,300,80,!0,!0);b.init();
+mxEvent.consume(c)}else if("true"!=C.getAttribute("contentEditable")){null!=m&&(m(),m=null);if(null==H.title||0==H.title.length)C.innerHTML="";C.style.textOverflow="";C.style.whiteSpace="";C.style.cursor="text";C.style.color="";C.setAttribute("contentEditable","true");C.focus();document.execCommand("selectAll",!1,null);m=function(){C.removeAttribute("contentEditable");C.style.cursor="pointer";H.title=C.innerHTML;A()};mxEvent.consume(c)}};mxEvent.addListener(C,"click",L);mxEvent.addListener(B,"dblclick",
+L);t.appendChild(B);mxEvent.addListener(B,"dragstart",function(a){null==c&&null!=q&&(G.style.visibility="hidden",C.style.visibility="hidden");mxClient.IS_FF&&null!=q.xml&&a.dataTransfer.setData("Text",q.xml);y=n(a);mxClient.IS_GC&&(B.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(B.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(B,30);G.style.visibility="";C.style.visibility=""},0)});mxEvent.addListener(B,"dragend",function(a){"hidden"==G.style.visibility&&(G.style.visibility=
+"",C.style.visibility="");y=null;mxUtils.setOpacity(B,100);mxUtils.setPrefixedStyle(B.style,"transform",null)})}else F||(F=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),D=mxUtils.parseXml(c),"mxlibrary"==D.documentElement.nodeName){p=JSON.parse(mxUtils.getTextContent(D.documentElement));if(null!=p&&0<p.length)for(var E=0;E<p.length;E++)null!=p[E].xml?l(null,null,0,0,0,0,p[E]):l(p[E].data,null,0,0,p[E].w,p[E].h,null,"fixed",p[E].title);e=!0}else if("mxfile"==
+D.documentElement.nodeName){for(var O=D.documentElement.getElementsByTagName("diagram"),E=0;E<O.length;E++){var p=mxUtils.getTextContent(O[E]),L=a.stringToCells(a.editor.graph.decompress(p)),U=a.editor.graph.getBoundingBoxFromGeometry(L);l(null,null,0,0,0,0,{xml:p,w:U.width,h:U.height})}e=!0}}catch(X){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(X){}return null}function p(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}
+function c(c){c.stopPropagation();c.preventDefault();F=!1;z=n(c);if(null!=y)null!=z&&z<t.children.length?(f.splice(z>y?z-1:z,0,f.splice(y,1)[0]),t.insertBefore(t.children[y],t.children[z])):(f.push(f.splice(y,1)[0]),t.appendChild(t.children[y]));else if(0<c.dataTransfer.files.length)a.importFiles(c.dataTransfer.files,0,0,a.maxImageSize,D(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var b=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(b)||
/(\.png)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.svg)($|\?)/i.test(b))&&a.loadImage(b,function(a){l(b,null,0,0,a.width,a.height);t.scrollTop=t.scrollHeight})}c.stopPropagation();c.preventDefault()}var f=[];d=document.createElement("div");d.style.height="100%";var h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.height="40px";d.appendChild(h);mxUtils.write(h,mxResources.get("filename")+":");null==e&&(e=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",
e);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==g||g.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};h.appendChild(q);var t=document.createElement("div");t.style.borderWidth="1px 0px 1px 0px";t.style.borderColor="#d3d3d3";t.style.borderStyle="solid";t.style.marginTop="6px";
-t.style.overflow="auto";t.style.height="340px";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";0==f.length&&Graph.fileSupport&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var u=document.createElement("div");u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));d.appendChild(u);var w={},x=null,y=null,m=null;
-e=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(a))};mxEvent.addListener(t,"mousedown",e);mxEvent.addListener(t,"pointerdown",e);mxEvent.addListener(t,"touchstart",e);var v=new mxUrlConverter,z=!1;if(null!=b)for(e=0;e<b.length;e++)h=b[e],l(h.data,null,0,0,h.w,h.h,h,h.aspect,h.title);mxEvent.addListener(t,"dragleave",function(a){u.style.cursor="";for(var c=mxEvent.getSource(a);null!=c;){if(c==t||c==u){a.stopPropagation();a.preventDefault();
+t.style.overflow="auto";t.style.height="340px";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";0==f.length&&Graph.fileSupport&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var u=document.createElement("div");u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));d.appendChild(u);var w={},y=null,z=null,m=null;
+e=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(a))};mxEvent.addListener(t,"mousedown",e);mxEvent.addListener(t,"pointerdown",e);mxEvent.addListener(t,"touchstart",e);var v=new mxUrlConverter,F=!1;if(null!=b)for(e=0;e<b.length;e++)h=b[e],l(h.data,null,0,0,h.w,h.h,h,h.aspect,h.title);mxEvent.addListener(t,"dragleave",function(a){u.style.cursor="";for(var c=mxEvent.getSource(a);null!=c;){if(c==t||c==u){a.stopPropagation();a.preventDefault();
break}c=c.parentNode}});var D=function(c){return function(b,f,h,m,d,e,g,q,v){null!=v&&(/(\.vsdx)($|\?)/i.test(v.name)||/(\.vssx)($|\?)/i.test(v.name))?a.importVisio(v,mxUtils.bind(this,function(b){a.spinner.stop();l(b,f,h,m,d,e,g,"fixed",mxEvent.isAltDown(c)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=v&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(b,v.name)?a.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(a.spinner.stop(),200<=b.status&&299>=
b.status&&(l(b.responseText,f,h,m,d,e,g,"fixed",mxEvent.isAltDown(c)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight))})):(l(b,f,h,m,d,e,g,"fixed",mxEvent.isAltDown(c)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight)}};mxEvent.addListener(t,"dragover",p);mxEvent.addListener(t,"drop",c);mxEvent.addListener(u,"dragover",p);mxEvent.addListener(u,"drop",c);d.appendChild(t);b=document.createElement("div");b.style.textAlign="right";
b.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";a.editor.cancelFirst&&b.appendChild(e);h=mxUtils.button(mxResources.get("export"),function(){var c=a.createLibraryDataFromImages(f),b=q.value;/(\.xml)$/i.test(b)||(b+=".xml");a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml&xml="+encodeURIComponent(c))).simulate(document,
-"_blank")});h.setAttribute("id","btnDownload");h.className="geBtn";b.appendChild(h);var A=document.createElement("input");A.setAttribute("multiple","multiple");A.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(A,"change",function(c){z=!1;a.importFiles(A.files,0,0,a.maxImageSize,function(a,b,f,h,m,d,e,g,t){D(c)(a,b,f,h,m,d,e,g,t);A.value=""});t.scrollTop=t.scrollHeight}),h=mxUtils.button(mxResources.get("import"),function(){null!=m&&(m(),m=null);A.click()}),h.setAttribute("id",
-"btnAddImage"),h.className="geBtn",b.appendChild(h));h=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=m&&(m(),m=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,c,b){z=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var f=a.indexOf(",");0<f&&(a=a.substring(0,f)+";base64,"+a.substring(f+1))}l(a,null,0,0,c,b);t.scrollTop=t.scrollHeight}})});h.setAttribute("id","btnAddImageUrl");h.className="geBtn";b.appendChild(h);this.saveBtnClickHandler=function(c,b,f,h){a.saveLibrary(c,
+"_blank")});h.setAttribute("id","btnDownload");h.className="geBtn";b.appendChild(h);var x=document.createElement("input");x.setAttribute("multiple","multiple");x.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(x,"change",function(c){F=!1;a.importFiles(x.files,0,0,a.maxImageSize,function(a,b,f,h,m,d,e,g,t){D(c)(a,b,f,h,m,d,e,g,t);x.value=""});t.scrollTop=t.scrollHeight}),h=mxUtils.button(mxResources.get("import"),function(){null!=m&&(m(),m=null);x.click()}),h.setAttribute("id",
+"btnAddImage"),h.className="geBtn",b.appendChild(h));h=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=m&&(m(),m=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,c,b){F=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var f=a.indexOf(",");0<f&&(a=a.substring(0,f)+";base64,"+a.substring(f+1))}l(a,null,0,0,c,b);t.scrollTop=t.scrollHeight}})});h.setAttribute("id","btnAddImageUrl");h.className="geBtn";b.appendChild(h);this.saveBtnClickHandler=function(c,b,f,h){a.saveLibrary(c,
b,f,h)};h=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=m&&(m(),m=null);this.saveBtnClickHandler(q.value,f,g,k)}));h.setAttribute("id","btnSave");h.className="geBtn gePrimaryBtn";b.appendChild(h);a.editor.cancelFirst||b.appendChild(e);d.appendChild(b);this.container=d},EditShapeDialog=function(a,e,d,b,g){b=null!=b?b:300;g=null!=g?g:120;var k,n,l=document.createElement("table"),p=document.createElement("tbody");l.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);p.appendChild(k);k=document.createElement("tr");n=document.createElement("td");var c=document.createElement("textarea");c.style.outline="none";c.style.resize="none";c.style.width=b-200+"px";c.style.height=g+"px";this.textarea=c;this.init=function(){c.focus();c.scrollTop=0};n.appendChild(c);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";d.style.marginBottom="16px";mxEvent.disableContextMenu(d);n.appendChild(d);var f=new Graph(d);f.setEnabled(!1);var h=a.editor.graph.cloneCells([e])[0];f.addCells([h]);d=f.view.getState(h);var q="";null!=d.shape&&null!=d.shape.stencil&&(q=mxUtils.getPrettyXml(d.shape.stencil.desc));mxUtils.write(c,q||"");d=f.getGraphBounds();g=Math.min(160/d.width,(g-40)/d.height);f.view.scaleAndTranslate(g,
20/g-d.x,20/g-d.y);k.appendChild(n);p.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.setAttribute("colspan","2");n.style.paddingTop="2px";n.style.whiteSpace="nowrap";n.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";a.editor.cancelFirst&&n.appendChild(g);a.isOffline()||(d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),
d.className="geBtn",n.appendChild(d));var t=function(b,f,h){var d=c.value,m=mxUtils.parseXml(d),d=mxUtils.getPrettyXml(m.documentElement),m=m.documentElement.getElementsByTagName("parsererror");if(null!=m&&0<m.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(h&&a.hideDialog(),m=!b.model.contains(f),!h||m||d!=q){d=a.editor.graph.compress(d);b.getModel().beginUpdate();try{if(m){var e=a.editor.graph.getInsertPoint();f.geometry.x=e.x;
-f.geometry.y=e.y;b.addCell(f)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+d+")",[f])}catch(z){throw z;}finally{b.getModel().endUpdate()}m&&b.setSelectionCell(f)}};d=mxUtils.button(mxResources.get("preview"),function(){t(f,h,!1)});d.className="geBtn";n.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){t(a.editor.graph,e,!0)});d.className="geBtn gePrimaryBtn";n.appendChild(d);a.editor.cancelFirst||n.appendChild(g);k.appendChild(n);p.appendChild(k);l.appendChild(p);this.container=
+f.geometry.y=e.y;b.addCell(f)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+d+")",[f])}catch(F){throw F;}finally{b.getModel().endUpdate()}m&&b.setSelectionCell(f)}};d=mxUtils.button(mxResources.get("preview"),function(){t(f,h,!1)});d.className="geBtn";n.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){t(a.editor.graph,e,!0)});d.className="geBtn gePrimaryBtn";n.appendChild(d);a.editor.cancelFirst||n.appendChild(g);k.appendChild(n);p.appendChild(k);l.appendChild(p);this.container=
l},CustomDialog=function(a,e,d,b,g,k,n,l){var p=document.createElement("div");p.appendChild(e);e=document.createElement("div");e.style.marginTop="16px";e.style.textAlign="right";null!=n&&e.appendChild(n);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b()});n.className="geBtn";l&&(n.style.display="none");a.editor.cancelFirst&&e.appendChild(n);a.isOffline()||null==k||(l=mxUtils.button(mxResources.get("help"),function(){a.openLink(k)}),l.className="geBtn",e.appendChild(l));
g=mxUtils.button(g||mxResources.get("ok"),function(){a.hideDialog();null!=d&&d()});e.appendChild(g);g.className="geBtn gePrimaryBtn";a.editor.cancelFirst||e.appendChild(n);p.appendChild(e);this.cancelBtn=n;this.okButton=g;this.container=p};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
@@ -6710,7 +6780,7 @@ IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,R
IMAGE_PATH+"/spin.gif";Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=":
IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
IMAGE_PATH+"/img-lo-res.png";Editor.cameraLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/BJREFUWAnFl0uIjWEYx885buPSuGwmSYwtwsY1ikKSNYNclmQnadgrZSPlsnBLSlaGBdNYKY0Vdi4L4zYzIqxGxmXG//d+7//0+uY7nWMiT/2/53mf+3v7vnNKpf9M5UbrDw8Pj4m+wzmeT1FBUS6Xf+YNox6reMONukijMXUTM3NmI75PyXcJPwRWg5kS7xysDLNmfEUxpx2rceNE50IlYjyRklcLf0prY+x4BTqfmx3ZUHQaO9ISGngYq38V/1EH+ECPa+QaK1u1kVBQirDMChiS3CTeIkwWvghtwhKBpZ8g1CO2B99FynVU/KowSRgQ3mlrBsVZ1awmQlS0SGbfXglfBPbdRGMm5O8RXg2P835pDCvzWjghTHETcLpZLHwS8kTCtBEK1SN83Egam8YxyVZqc+Do5qkwS+gT9grNwkUBG6cbsG/gs3BTuC/0ChCxq4QtwgzBMdwUZBPyN4Ftfi4sYPZHktbOSRlIuutRP5jYj0ueZp88xyYcS/zZoiLyQT1IA/cTj7eSlwnrhI+JnkQbCwo2Sx/2M7VJt17wdhVtgxvrpoFnAuSAbJQ97biZAlKxBfD9wgOhV+BgIR/AZtJ4kwD5PGSj7OmmekjWEy0oAQHAS3+KpBpzXqYK3UItopHpSRMno2N+cm7gDYnfRCcr3QBqriMHLJDkeyhFfiG5aVbK+8rhtP9M6QcIEJHX5Fp9NMAyQlYiu+OOJNlODCIXyka/P23bncTdiC7OydC1+v1Bsb+5r84DK8S3Rdmf5cRUFW3bXtWUSt1Rdk6G4SyJV2o1YId+vNUxr+x5yCJiapFtcxQzLjrxboGcMxvFJwEOKnLwjIbkx/sdSmeSaUY++SwTAxV+4DJT7RVwkbk46gNCsifIItuy0e9PF33Cb4homhN5YRyzL5q5V2VNkv98kqgoGTo3YF9CnMM5Y5rItFfvBSi9JulVXOgI+VwIntkt+SaZ6weQfcovJf7zpTfl86P/wAF7Fz18NeKwmvAWCaX0Z/uMHQr42ZxvR/Rxcw5xM+9J/CJq8w2gduDhmDgso/QrBH47dEXQ1IqczyHpIOfIRtnTtV7SwO1oKXKkU3fbToFGSDHtMWcaH1WBuVYnDbRFi99iqSMySdzxXckrazUh23KBVYGIcfNBkTxca0e4ATJ0KukGYVBgr/MnlhPOtQq/ksUfCbzh+EFCjtnCUoHfjhA/OsiTv2HcEvJMELp0VakZDliTmriTdPivxU4VmEhtPrGV+KJhO7ZKt0doFZh1fgZSBWIW2AGEHwg3BUWOnKtH+suqdw07tYMfglCrWPD5mw9qVYuniaXkT0OtWaSuo5LJTY1RBf+roF9X5+y/5qU+DAAAAABJRU5ErkJggg==";
-Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node width. Possible value are px or auto. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value are px or auto. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=
a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(a.css));var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(c,b)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=
a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(c=document.createElement("style"),c.setAttribute("type",
@@ -6725,7 +6795,7 @@ null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(b=a.getElem
null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;d.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,c){a=null!=a?a:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var b=Editor.prototype.init;Editor.prototype.init=function(){b.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,
-c){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var f=document.getElementsByTagName("script");if(null!=f&&0<f.length){var h=document.createElement("script");h.type="text/javascript";h.src=a;f[0].parentNode.appendChild(h)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+c){this.graph.mathEnabled&&"hidden"!=this.graph.container.style.visibility&&Editor.MathJaxRender(this.graph.container)}))};var f=document.getElementsByTagName("script");if(null!=f&&0<f.length){var h=document.createElement("script");h.type="text/javascript";h.src=a;f[0].parentNode.appendChild(h)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,f,h){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==f?c.push(f.replace(/\\"/g,'"')):void 0!==h&&c.push(h);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var g=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
var k=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}if(null!=window.StyleFormatPanel){var n=Format.prototype.init;Format.prototype.init=function(){n.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
l.apply(this,arguments):this.clear()};var p=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=p.apply(this,arguments);if(mxClient.IS_SVG){var c=this.editorUi,b=c.editor.graph,f=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var f=new ChangePageSetup(c);f.ignoreColor=!0;f.ignoreImage=!0;f.shadowVisible=a;b.model.execute(f)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",
@@ -6760,26 +6830,26 @@ mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegist
[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.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.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(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var u=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,f,h,d,e,g,t,q){if(null!=b&&null==mxMarker.markers[b]){var m=this.getPackageForType(b);null!=m&&mxStencilRegistry.getStencil(m)}return u.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){l.value=Math.max(1,
-Math.min(g,Math.max(parseInt(l.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(l.value),parseInt(n.value))))}function f(c){function b(c,b,h){var m=c.getGraphBounds(),d=0,e=0,g=Z.get(),q=1/c.pageScale,t=y.checked;if(t)var q=parseInt(N.value),u=parseInt(Q.value),q=Math.min(g.height*u/(m.height/c.view.scale),g.width*q/(m.width/c.view.scale));else q=parseInt(p.value)/(100*c.pageScale),isNaN(q)&&(f=1/c.pageScale,p.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*
+Math.min(g,Math.max(parseInt(l.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(l.value),parseInt(n.value))))}function f(c){function b(c,b,h){var m=c.getGraphBounds(),d=0,e=0,g=X.get(),q=1/c.pageScale,t=z.checked;if(t)var q=parseInt(R.value),u=parseInt(U.value),q=Math.min(g.height*u/(m.height/c.view.scale),g.width*q/(m.width/c.view.scale));else q=parseInt(p.value)/(100*c.pageScale),isNaN(q)&&(f=1/c.pageScale,p.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*
f);g.height=Math.ceil(g.height*f);q*=f;!t&&c.pageVisible?(m=c.getPageLayout(),d-=m.x*g.width,e-=m.y*g.height):t=!0;if(null==b){b=PrintDialog.createPrintPreview(c,q,g,0,d,e,t);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var k=b.writeHead;b.writeHead=function(c){k.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage=
-function(a,c,b,f,h,m){var d=v.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:d.className="geDisableMathJax";return d}}b.open(null,null,h,!0)}else{g=c.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;b.autoOrigin=t;b.appendGraph(c,q,d,e,h,!0)}return b}var f=parseInt(W.value)/100;isNaN(f)&&(f=1,W.value="100 %");var f=.75*f,m=n.value,e=l.value,d=!u.checked,g=null;d&&(d=m==t&&e==t);if(!d&&null!=a.pages&&a.pages.length){var q=0,d=a.pages.length-1;u.checked||
-(q=parseInt(m)-1,d=parseInt(e)-1);for(var v=q;v<=d;v++){var k=a.pages[v],m=k==a.currentPage?h:null;if(null==m){var m=a.createTemporaryGraph(h.getStylesheet()),e=!0,q=!1,w=null,x=null;null==k.viewState&&null==k.mapping&&null==k.root&&a.updatePageRoot(k);null!=k.viewState?(e=k.viewState.pageVisible,q=k.viewState.mathEnabled,w=k.viewState.background,x=k.viewState.backgroundImage):null!=k.mapping&&null!=k.mapping.diagramMap&&(q="0"!=k.mapping.diagramMap.get("mathEnabled"),w=k.mapping.diagramMap.get("background"),
-x=k.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);m.background=w;m.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;m.pageVisible=e;m.mathEnabled=q;var B=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?v+1:B.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(k);m.model.setRoot(k.root)}g=b(m,g,v!=d);m!=h&&m.container.parentNode.removeChild(m.container)}}else g=b(h);g.mathEnabled&&
+function(a,c,b,f,h,m){var d=v.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:d.className="geDisableMathJax";return d}}b.open(null,null,h,!0)}else{g=c.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;b.autoOrigin=t;b.appendGraph(c,q,d,e,h,!0)}return b}var f=parseInt(P.value)/100;isNaN(f)&&(f=1,P.value="100 %");var f=.75*f,m=n.value,e=l.value,d=!u.checked,g=null;d&&(d=m==t&&e==t);if(!d&&null!=a.pages&&a.pages.length){var q=0,d=a.pages.length-1;u.checked||
+(q=parseInt(m)-1,d=parseInt(e)-1);for(var v=q;v<=d;v++){var k=a.pages[v],m=k==a.currentPage?h:null;if(null==m){var m=a.createTemporaryGraph(h.getStylesheet()),e=!0,q=!1,w=null,y=null;null==k.viewState&&null==k.mapping&&null==k.root&&a.updatePageRoot(k);null!=k.viewState?(e=k.viewState.pageVisible,q=k.viewState.mathEnabled,w=k.viewState.background,y=k.viewState.backgroundImage):null!=k.mapping&&null!=k.mapping.diagramMap&&(q="0"!=k.mapping.diagramMap.get("mathEnabled"),w=k.mapping.diagramMap.get("background"),
+y=k.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);m.background=w;m.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;m.pageVisible=e;m.mathEnabled=q;var A=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?v+1:A.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(k);m.model.setRoot(k.root)}g=b(m,g,v!=d);m!=h&&m.container.parentNode.removeChild(m.container)}}else g=b(h);g.mathEnabled&&
(d=g.wnd.document,d.writeln('<script type="text/x-mathjax-config">'),d.writeln("MathJax.Hub.Config({"),d.writeln('messageStyle: "none",'),d.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),d.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),d.writeln("TeX: {"),d.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),d.writeln("},"),d.writeln("tex2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("},"),
d.writeln("asciimath2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("}"),d.writeln("});"),c&&(d.writeln("MathJax.Hub.Queue(function () {"),d.writeln("window.print();"),d.writeln("});")),d.writeln("\x3c/script>"),d.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));g.closeDocument();!g.mathEnabled&&c&&PrintDialog.printPreview(g)}var h=a.editor.graph,d=document.createElement("div"),e=document.createElement("h3");
e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,c||mxResources.get("print"));d.appendChild(e);var g=1,t=1,q=document.createElement("div");q.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","all");u.setAttribute("type","radio");u.setAttribute("name","pages-printdialog");q.appendChild(u);e=document.createElement("span");
mxUtils.write(e,mxResources.get("printAllPages"));q.appendChild(e);mxUtils.br(q);var k=u.cloneNode(!0);u.setAttribute("checked","checked");k.setAttribute("value","range");q.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");q.appendChild(e);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";q.appendChild(n);e=document.createElement("span");
mxUtils.write(e,mxResources.get("to"));q.appendChild(e);var l=n.cloneNode(!0);q.appendChild(l);mxEvent.addListener(n,"focus",function(){k.checked=!0});mxEvent.addListener(l,"focus",function(){k.checked=!0});mxEvent.addListener(n,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){t=e+1;n.value=t;l.value=t;break}n.setAttribute("max",g);l.setAttribute("max",g);1<g&&d.appendChild(q);var w=document.createElement("div");
-w.style.marginBottom="10px";var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");w.appendChild(x);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));w.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){x.checked=!0});
-d.appendChild(w);var q=q.cloneNode(!1),y=x.cloneNode(!0);y.setAttribute("value","fit");x.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(y);q.appendChild(e);w=document.createElement("table");w.style.display="inline-block";var P=document.createElement("tbody"),M=document.createElement("tr"),R=M.cloneNode(!0),I=document.createElement("td"),J=I.cloneNode(!0),Y=I.cloneNode(!0),U=I.cloneNode(!0),
-V=I.cloneNode(!0),X=I.cloneNode(!0);I.style.textAlign="right";U.style.textAlign="right";mxUtils.write(I,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";J.appendChild(N);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Y.appendChild(e);mxUtils.write(U,mxResources.get("fitToBy"));var Q=N.cloneNode(!0);V.appendChild(Q);
-mxEvent.addListener(N,"focus",function(){y.checked=!0});mxEvent.addListener(Q,"focus",function(){y.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));X.appendChild(e);M.appendChild(I);M.appendChild(J);M.appendChild(Y);R.appendChild(U);R.appendChild(V);R.appendChild(X);P.appendChild(M);P.appendChild(R);w.appendChild(P);q.appendChild(w);d.appendChild(q);q=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
-"12px";mxUtils.write(e,mxResources.get("paperSize"));q.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Z=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);q.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));q.appendChild(e);var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";q.appendChild(W);
+w.style.marginBottom="10px";var y=document.createElement("input");y.style.marginRight="8px";y.setAttribute("value","adjust");y.setAttribute("type","radio");y.setAttribute("name","printZoom");w.appendChild(y);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));w.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){y.checked=!0});
+d.appendChild(w);var q=q.cloneNode(!1),z=y.cloneNode(!0);z.setAttribute("value","fit");y.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(z);q.appendChild(e);w=document.createElement("table");w.style.display="inline-block";var N=document.createElement("tbody"),M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0),
+V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U);
+mxEvent.addListener(R,"focus",function(){z.checked=!0});mxEvent.addListener(U,"focus",function(){z.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);w.appendChild(N);q.appendChild(w);d.appendChild(q);q=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
+"12px";mxUtils.write(e,mxResources.get("paperSize"));q.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);q.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));q.appendChild(e);var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";q.appendChild(P);
d.appendChild(q);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&e.appendChild(q);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){h.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),w.className="geBtn",e.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
f(!1)}),w.className="geBtn",e.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();f(!0)});w.className="geBtn gePrimaryBtn";e.appendChild(w);a.editor.cancelFirst||e.appendChild(q);d.appendChild(e);this.container=d};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),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)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=
this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.4.7";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.4.8";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";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.sidebarFooterHeight=36;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.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(t){}try{var b=document.createElement("canvas"),h=new Image;h.onload=function(){try{b.getContext("2d").drawImage(h,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
@@ -6808,8 +6878,8 @@ e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128
c;this.pages=[];for(c=0;c<a.length;c++){var b=new DiagramPage(a[c]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[c+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];c=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=c&&(this.fileNode=c.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(c.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(c);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,h,e,d,g){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
var c=this.getBaseFilename(),f=c+"."+a;if("xml"==a){var t='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,d));this.saveData(f,a,t,"text/xml")}else if("html"==a)t=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,t,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,
-function(c,b){try{var f=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(c,a,e,b);this.editor.graph.pageVisible=f;return h}catch(C){this.handleError(C)}}));else{var m=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var k=this.editor.graph.background;
-k==mxConstants.NONE&&(k=null);var u=this.editor.graph.getSvg(k,null,null,null,null,e);h&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();q('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),e)}}catch(A){this.handleError(A)}};
+function(c,b){try{var f=this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(c,a,e,b);this.editor.graph.pageVisible=f;return h}catch(H){this.handleError(H)}}));else{var m=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var k=this.editor.graph.background;
+k==mxConstants.NONE&&(k=null);var u=this.editor.graph.getSvg(k,null,null,null,null,e);h&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();q('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),e)}}catch(x){this.handleError(x)}};
EditorUi.prototype.createDownloadRequest=function(a,b,h,e){var c=this.editor.graph.getGraphBounds();h=this.getFileData(!0,null,null,null,h,"xmlpng"!=b);var f="";if(c.width*c.height>MAX_AREA||h.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};c="0";if("xmlpng"==b&&(c="1",b="png",null!=this.pages&&null!=this.currentPage))for(var d=0;d<this.pages.length;d++)if(this.pages[d]==this.currentPage){f="&from="+d;break}return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&base64="+e+"&embedXml="+
c+"&xml="+encodeURIComponent(h)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){var c=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();
this.editor.graph.model.clear();this.editor.undoManager.clear();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.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();
@@ -6826,19 +6896,19 @@ function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElemen
b)for(var d=0;d<b.length;d++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));
return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[d]);h=null!=h&&0<h.length?h:a.getTitle();var g=this.sidebar.addPalette(a.getHash(),h,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var k=g.parentNode.previousSibling;h=k.getAttribute("title");null!=h&&0<h.length&&".scratchpad"!=a.title&&k.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+h);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top=
"5px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");k.style.position="relative";var v=document.createElement("img");v.setAttribute("src",Dialog.prototype.closeImage);v.setAttribute("title",mxResources.get("close"));v.setAttribute("align","top");v.setAttribute("border","0");v.className="geButton";v.style.marginRight="1px";v.style.marginTop="-1px";m.appendChild(v);var n=null;mxEvent.addListener(v,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=
-mxUtils.bind(this,function(){this.closeLibrary(a)});null!=n?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var l=this.editor.graph,p=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),g,b,a,a.getMode());mxEvent.consume(c)}),H=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=v.cloneNode(!1),
+mxUtils.bind(this,function(){this.closeLibrary(a)});null!=n?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var l=this.editor.graph,p=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),g,b,a,a.getMode());mxEvent.consume(c)}),C=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=v.cloneNode(!1),
p.setAttribute("src",Editor.spinImage),p.setAttribute("title",mxResources.get("saving")),p.style.cursor="default",p.style.marginRight="2px",p.style.marginTop="-2px",m.insertBefore(p,m.firstChild),k.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),k.style.paddingRight=18*m.childNodes.length+"px")})):null==n&&(n=v.cloneNode(!1),n.setAttribute("src",IMAGE_PATH+"/download.png"),n.setAttribute("title",
mxResources.get("save")),m.insertBefore(n,m.firstChild),mxEvent.addListener(n,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==n||a.isModified()||(k.style.paddingRight=18*m.childNodes.length+"px",n.parentNode.removeChild(n),n=null)});mxEvent.consume(c)})),k.style.paddingRight=18*m.childNodes.length+"px")}),E=mxUtils.bind(this,function(a,c,h,e){a=l.cloneCells(mxUtils.sortCells(l.model.getTopmostCells(a)));for(var d=
-0;d<a.length;d++){var m=l.getCellGeometry(a[d]);null!=m&&m.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);H(h);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),C=mxUtils.bind(this,function(a){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(a),
+0;d<a.length;d++){var m=l.getCellGeometry(a[d]);null!=m&&m.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);C(h);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),H=mxUtils.bind(this,function(a){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(a),
l.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=l.getSelectionCells(),c=l.view.getBounds(b),f=l.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=l.view.translate.x;c.y-=l.view.translate.y;E(b,c)}mxEvent.consume(a)});g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility=
"hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",g.style.cursor="copy",l.panningManager.stop(),l.autoScroll=!1,null!=l.graphHandler.guide&&l.graphHandler.guide.setVisible(!1),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler&&(g.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),
-g.style.cursor="default",this.sidebar.showTooltips=!0,l.panningManager.stop(),l.graphHandler.reset(),l.isMouseDown=!1,l.autoScroll=!0,C(a),mxEvent.consume(a))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility="visible",g.style.border="3px solid transparent",g.style.cursor="",l.autoScroll=!0,null!=l.graphHandler.guide&&l.graphHandler.guide.setVisible(!0),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility=
+g.style.cursor="default",this.sidebar.showTooltips=!0,l.panningManager.stop(),l.graphHandler.reset(),l.isMouseDown=!1,l.autoScroll=!0,H(a),mxEvent.consume(a))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(a){l.isMouseDown&&null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility="visible",g.style.border="3px solid transparent",g.style.cursor="",l.autoScroll=!0,null!=l.graphHandler.guide&&l.graphHandler.guide.setVisible(!0),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility=
"visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(a){g.style.border="3px solid transparent";g.style.cursor="";null!=f&&(f.style.border=
"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,h,d,m,q,t,k,v,n){if(null!=c&&"image/"==h.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,q,t),c)],c[0].vertex=!0,E(c,new mxRectangle(0,0,q,t),a,mxEvent.isAltDown(a)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&
-0<b.length&&(f.parentNode.removeChild(f),f=null);else{var u=!1,l=mxUtils.bind(this,function(c,h){if(null!=c&&"text/xml"==h){var d=mxUtils.parseXml(c);if("mxlibrary"==d.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(d.documentElement));e(m,g);b=b.concat(m);H(a);this.spinner.stop();u=!0}catch(W){}else if("mxfile"==d.documentElement.nodeName)try{for(var q=d.documentElement.getElementsByTagName("diagram"),d=0;d<q.length;d++){var m=mxUtils.getTextContent(q[d]),k=this.stringToCells(this.editor.graph.decompress(m)),
-t=this.editor.graph.getBoundingBoxFromGeometry(k);E(k,new mxRectangle(0,0,t.width,t.height),a)}u=!0}catch(W){null!=window.console&&console.log("error in drop handler:",W)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=n&&null!=k&&(/(\.vsdx)($|\?)/i.test(k)||/(\.vssx)($|\?)/i.test(k))?this.importVisio(n,function(a){l(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
+0<b.length&&(f.parentNode.removeChild(f),f=null);else{var u=!1,l=mxUtils.bind(this,function(c,h){if(null!=c&&"text/xml"==h){var d=mxUtils.parseXml(c);if("mxlibrary"==d.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(d.documentElement));e(m,g);b=b.concat(m);C(a);this.spinner.stop();u=!0}catch(P){}else if("mxfile"==d.documentElement.nodeName)try{for(var q=d.documentElement.getElementsByTagName("diagram"),d=0;d<q.length;d++){var m=mxUtils.getTextContent(q[d]),k=this.stringToCells(this.editor.graph.decompress(m)),
+t=this.editor.graph.getBoundingBoxFromGeometry(k);E(k,new mxRectangle(0,0,t.width,t.height),a)}u=!0}catch(P){null!=window.console&&console.log("error in drop handler:",P)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=n&&null!=k&&(/(\.vsdx)($|\?)/i.test(k)||/(\.vssx)($|\?)/i.test(k))?this.importVisio(n,function(a){l(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
this.isRemoteFileFormat(c,k)&&null!=n?this.parseFile(n,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?l(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):l(c,h)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(g,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",
-g.style.cursor="");a.stopPropagation();a.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",IMAGE_PATH+"/edit.gif");v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",G);mxEvent.addListener(g,"dblclick",function(a){mxEvent.getSource(a)==g&&G(a)});h=v.cloneNode(!1);h.setAttribute("src",Editor.plusImage);h.setAttribute("title",mxResources.get("add"));m.insertBefore(h,m.firstChild);mxEvent.addListener(h,"click",C);this.isOffline()||".scratchpad"!=
+g.style.cursor="");a.stopPropagation();a.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",IMAGE_PATH+"/edit.gif");v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",G);mxEvent.addListener(g,"dblclick",function(a){mxEvent.getSource(a)==g&&G(a)});h=v.cloneNode(!1);h.setAttribute("src",Editor.plusImage);h.setAttribute("title",mxResources.get("add"));m.insertBefore(h,m.firstChild);mxEvent.addListener(h,"click",H);this.isOffline()||".scratchpad"!=
a.title||null==EditorUi.scratchpadHelpLink||(h=document.createElement("span"),h.setAttribute("title",mxResources.get("help")),h.style.cssText="color:gray;text-decoration:none;",h.className="geButton",mxUtils.write(h,"?"),mxEvent.addGestureListeners(h,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),m.insertBefore(h,m.firstChild))}k.appendChild(m);k.style.paddingRight=18*m.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position=
"relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),
@@ -6856,9 +6926,9 @@ function(a,b,h,e,d,g,k){a=new ErrorDialog(this,a,b,h,e,d,g,k);this.showDialog(a.
c==a.cloneNode(!1).toDataURL("image/"+h))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b,h){var c="jpeg"==h?"jpg":h,f=this.getBaseFilename()+"."+c;a=this.createImageDataUri(a,b,h);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+h,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,h,e,d){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,h):new Blob([a],{type:h}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)h=window.open("about:blank","_blank"),null==h?mxUtils.popup(a,!0):(h.document.write(a),h.document.close(),h.document.execCommand("SaveAs",
!0,b),h.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var c=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof c.download;if(f||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,h):new Blob([a],{type:h}));f?c.download=b:c.setAttribute("target","_blank");
-document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(x){}}else this.createEchoRequest(a,b,h,e,d).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,h,e,d,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=h?"&mime="+h:"")+(null!=d?"&format="+d:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
+document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(y){}}else this.createEchoRequest(a,b,h,e,d).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,h,e,d,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=h?"&mime="+h:"")+(null!=d?"&format="+d:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
function(a,b){b=b||"";for(var c=atob(a),f=c.length,e=Math.ceil(f/1024),d=Array(e),g=0;g<e;++g){for(var k=1024*g,n=Math.min(k+1024,f),m=Array(n-k),v=0;k<n;++v,++k)m[v]=c[k].charCodeAt(0);d[g]=new Uint8Array(m)}return new Blob(d,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,h,e,d,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=d&&(!mxClient.IS_IOS||!navigator.standalone);d=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,c){try{if("_blank"==c)if(null==h||"image/"!=h.substring(0,
-6)||"image/svg"==h.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,h,e);else c==App.MODE_DEVICE?this.doSaveLocalFile(a,b,h,e):null!=b&&0<b.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(a,b,h,e,c,f)}catch(z){this.handleError(z)}}))}catch(v){this.handleError(v)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
+6)||"image/svg"==h.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,h,e);else c==App.MODE_DEVICE?this.doSaveLocalFile(a,b,h,e):null!=b&&0<b.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(a,b,h,e,c,f)}catch(F){this.handleError(F)}}))}catch(v){this.handleError(v)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
mxResources.get("download"),!1,g,k,null,null,4<d?3:4,a,h,e);this.showDialog(b.container,420,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,h){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var c=window.open("about:blank");null==c?mxUtils.popup(a,!0):("image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):c.document.write('<html><img src="data:'+b+(h?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
'"/></html>'),c.document.close())}else c=window.open("data:"+b+(h?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var e=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var b=a(mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",c);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)c.apply(this);else{this.exportDialog=document.createElement("div");var f=b.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
@@ -6884,24 +6954,24 @@ c.resize=!0);n&&h.push("layers");0<h.length&&(l&&h.push("lightbox"),c.toolbar=h.
"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";
var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");f=g.cloneNode(!0);f.setAttribute("value","copy");h.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(k);mxUtils.br(h);h.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));
h.appendChild(k);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),h.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&g.setAttribute("disabled","disabled");c.appendChild(h);var n=
-this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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="100%";c.appendChild(l);var p=this.addCheckbox(c,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),h,!h),H=this.addCheckbox(c,mxResources.get("layers"),!0),
-E=this.addCheckbox(c,mxResources.get("lightbox"),!0),C=this.addEditButton(c,E),B=C.getEditInput();B.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");B.checked&&E.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(g.checked?d:null,q.checked,l.value,n.getTarget(),n.getColor(),p.checked,G.checked,
-H.checked,E.checked,C.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,h,d,e,g){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var k=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
+this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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="100%";c.appendChild(l);var p=this.addCheckbox(c,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),h,!h),C=this.addCheckbox(c,mxResources.get("layers"),!0),
+E=this.addCheckbox(c,mxResources.get("lightbox"),!0),H=this.addEditButton(c,E),A=H.getEditInput();A.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?A.removeAttribute("disabled"):A.setAttribute("disabled","disabled");A.checked&&E.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(g.checked?d:null,q.checked,l.value,n.getTarget(),n.getColor(),p.checked,G.checked,
+C.checked,E.checked,H.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,h,d,e,g){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var k=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
k&&k.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var n=document.createElement("div");n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));m.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));
n.style.marginTop="12px";n.className="geBtn";m.appendChild(n);c.appendChild(m);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.setAttribute("href","javascript:void(0);");mxUtils.write(n,mxResources.get("check"));m.appendChild(n);mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,
null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var q=null,t=null;if(null!=h||null!=d)a+=30,mxUtils.write(c,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%",c.appendChild(q),mxUtils.write(c,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=d+"px",c.appendChild(t),mxUtils.br(c);var l=this.addLinkSection(c,g);h=null!=this.pages&&1<this.pages.length;var u=null;if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),h,!h);var p=this.addCheckbox(c,mxResources.get("lightbox"),!0),E=this.addEditButton(c,p),C=E.getEditInput(),B=this.addCheckbox(c,mxResources.get("layers"),
-!0);B.style.marginLeft=C.style.marginLeft;B.style.marginBottom="16px";B.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(B.removeAttribute("disabled"),C.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&p.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){e(l.getTarget(),l.getColor(),null==u?
-!0:u.checked,p.checked,E.getLink(),B.checked,null!=q?q.value:null,null!=t?t.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):l.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=d+"px",c.appendChild(t),mxUtils.br(c);var l=this.addLinkSection(c,g);h=null!=this.pages&&1<this.pages.length;var u=null;if(null==k||k.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),h,!h);var p=this.addCheckbox(c,mxResources.get("lightbox"),!0),E=this.addEditButton(c,p),H=E.getEditInput(),A=this.addCheckbox(c,mxResources.get("layers"),
+!0);A.style.marginLeft=H.style.marginLeft;A.style.marginBottom="16px";A.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(A.removeAttribute("disabled"),H.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&p.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){e(l.getTarget(),l.getColor(),null==u?
+!0:u.checked,p.checked,E.getLink(),A.checked,null!=q?q.value:null,null!=t?t.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):l.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(f);var h=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0);null!=g&&(g.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!h.checked,null!=g?g.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:146,!0,!0)};EditorUi.prototype.showExportDialog=
function(a,b,d,e,g,k,n,l){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,h="jpeg"==l?196:300,q=document.createElement("h3");mxUtils.write(q,a);q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(q);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
-"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";c.appendChild(u);mxUtils.br(c);var p=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),x=this.addCheckbox(c,mxResources.get("selectionOnly"),
-!1,f.isSelectionEmpty()),w=document.createElement("input");w.style.marginTop="16px";w.style.marginRight="8px";w.style.marginLeft="24px";w.setAttribute("disabled","disabled");w.setAttribute("type","checkbox");k&&(c.appendChild(w),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),h+=26,mxEvent.addListener(x,"change",function(){x.checked?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(w.setAttribute("checked","checked"),w.defaultChecked=!0);var C=this.addCheckbox(c,
-mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),h+=26);var L=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),F=null!=this.pages&&1<this.pages.length,K=this.addCheckbox(c,F?mxResources.get("allPages"):
-"",F,!F,null,"jpeg"!=l);K.style.marginLeft="24px";K.style.marginBottom="16px";F||(K.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&F?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")});n&&F||K.setAttribute("disabled","disabled");a=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;g(t.value,p.checked,!x.checked,C.checked,L.checked,B.checked,u.value,w.checked,!K.checked)}),null,d,e);this.showDialog(a.container,
+"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";c.appendChild(u);mxUtils.br(c);var p=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),y=this.addCheckbox(c,mxResources.get("selectionOnly"),
+!1,f.isSelectionEmpty()),w=document.createElement("input");w.style.marginTop="16px";w.style.marginRight="8px";w.style.marginLeft="24px";w.setAttribute("disabled","disabled");w.setAttribute("type","checkbox");k&&(c.appendChild(w),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),h+=26,mxEvent.addListener(y,"change",function(){y.checked?w.removeAttribute("disabled"):w.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(w.setAttribute("checked","checked"),w.defaultChecked=!0);var H=this.addCheckbox(c,
+mxResources.get("shadow"),f.shadowVisible),A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||A.setAttribute("disabled","disabled");b&&(c.appendChild(A),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),h+=26);var K=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=l),B=null!=this.pages&&1<this.pages.length,L=this.addCheckbox(c,B?mxResources.get("allPages"):
+"",B,!B,null,"jpeg"!=l);L.style.marginLeft="24px";L.style.marginBottom="16px";B||(L.style.visibility="hidden");mxEvent.addListener(K,"change",function(){K.checked&&B?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled")});n&&B||L.setAttribute("disabled","disabled");a=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;g(t.value,p.checked,!y.checked,H.checked,K.checked,A.checked,u.value,w.checked,!L.checked)}),null,d,e);this.showDialog(a.container,
340,h,!0,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,g){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var h=document.createElement("h3");mxUtils.write(h,b);h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(h)}var k=this.addCheckbox(c,mxResources.get("fit"),
-!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),n=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),t=this.addEditButton(c,q),l=t.getEditInput(),p=1<f.model.getChildCount(f.model.getRoot()),H=this.addCheckbox(c,mxResources.get("layers"),p,!p);H.style.marginLeft=l.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(p&&H.removeAttribute("disabled"),l.removeAttribute("disabled")):
-(H.setAttribute("disabled","disabled"),l.setAttribute("disabled","disabled"));l.checked&&q.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,m.checked,n.checked,q.checked,t.getLink(),H.checked)}),null,mxResources.get("embed"),g);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,g,k,n,l){function c(b){var c=" ",h="";e&&(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('https://www.draw.io/?client=1&lightbox=1"+
+!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),n=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),t=this.addEditButton(c,q),l=t.getEditInput(),p=1<f.model.getChildCount(f.model.getRoot()),C=this.addCheckbox(c,mxResources.get("layers"),p,!p);C.style.marginLeft=l.style.marginLeft;C.style.marginBottom="12px";C.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(p&&C.removeAttribute("disabled"),l.removeAttribute("disabled")):
+(C.setAttribute("disabled","disabled"),l.setAttribute("disabled","disabled"));l.checked&&q.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,m.checked,n.checked,q.checked,t.getLink(),C.checked)}),null,mxResources.get("embed"),g);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,g,k,n,l){function c(b){var c=" ",h="";e&&(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('https://www.draw.io/?client=1&lightbox=1"+
(g?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",h+="cursor:pointer;");a&&(h+="max-width:100%;");var m="";d&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+b+'"'+m+(""!=h?' style="'+h+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
null,!0,d?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var h="";d&&(h="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+h+"&xml="+encodeURIComponent(b));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?c("data:image/png;base64,"+q.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
EditorUi.prototype.createEmbedSvg=function(a,b,d,e,g,k,n){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var h=0;h<f.length;h++){var q=f[h].getAttribute("href");null!=q&&"#"==q.charAt(0)&&"_blank"==f[h].getAttribute("target")&&f[h].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var l=" ",t="";e&&(l="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('https://www.draw.io/?client=1&lightbox=1"+
@@ -6912,17 +6982,17 @@ f.length){var c=f[0],d=b.getGlobalVariable;b.getGlobalVariable=function(a){retur
f=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),f=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),e=c.getGlobalVariable,h=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(c.container);
c.model.setRoot(h.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==f&&(f=this.getFileData(!0));var e=d.toDataURL("image/png"),e=this.writeGraphModelToPng(e,"zTXt","mxGraphModel",atob(this.editor.graph.compress(f)));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(m){null!=b&&b(m)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)};EditorUi.prototype.getEmbeddedSvg=
function(a,b,d,e,g,k,n){n=b.background;n==mxConstants.NONE&&(n=null);b=b.getSvg(n,null,null,null,null,k);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=g)this.convertImages(b,mxUtils.bind(this,function(a){g((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,g,k,n,l,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,g?this.getFileData(!0,null,null,null,d,l):null,p)}catch(z){"Invalid image"==z.message?this.downloadFile(p):this.handleError(z)}}),null,
+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,g,k,n,l,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,g?this.getFileData(!0,null,null,null,d,l):null,p)}catch(F){"Invalid image"==F.message?this.downloadFile(p):this.handleError(F)}}),null,
this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,k,n)}catch(v){this.spinner.stop(),this.handleError(v)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},c=this.editor.fontCss.split("url("),d=0,e={},g=mxUtils.bind(this,function(){if(0==d){for(var f=[c[0]],h=1;h<c.length;h++){var g=
c[h].indexOf(")");f.push('url("');f.push(e[b(c[h].substring(0,g))]);f.push('"'+c[h].substring(g))}this.editor.resolvedFontCss=f.join("");a()}});if(0<c.length)for(var k=1;k<c.length;k++){var n=c[k].indexOf(")"),l=null,m=c[k].indexOf("format(",n);0<m&&(l=b(c[k].substring(m+7,c[k].indexOf(")",m))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;d++;var b="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))b=
"application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c=a;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){e[a]=b;d--;g()}),mxUtils.bind(this,
-function(a){d--;g()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[k].substring(0,n)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,g,k,n,l,p,m,v,z,D,A){k=null!=k?k:!0;z=null!=z?z:this.editor.graph;D=null!=D?D:0;var c=p?null:z.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(z.getSvg(c,null,null,A,null,null!=n?n:!0),mxUtils.bind(this,function(f){var d=new Image;d.onload=mxUtils.bind(this,
+function(a){d--;g()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[k].substring(0,n)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,g,k,n,l,p,m,v,F,D,x){k=null!=k?k:!0;F=null!=F?F:this.editor.graph;D=null!=D?D:0;var c=p?null:F.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(F.getSvg(c,null,null,x,null,null!=n?n:!0),mxUtils.bind(this,function(f){var d=new Image;d.onload=mxUtils.bind(this,
function(){try{var e=document.createElement("canvas"),h=parseInt(f.getAttribute("width")),m=parseInt(f.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=k?Math.min(1,Math.min(3*b/(4*m),b/h)):b/h);h=Math.ceil(l*h)+2*D;m=Math.ceil(l*m)+2*D;e.setAttribute("width",h);e.setAttribute("height",m);var n=e.getContext("2d");null!=c&&(n.beginPath(),n.rect(0,0,h,m),n.fillStyle=c,n.fill());n.scale(l,l);n.drawImage(d,D/l,D/l);a(e)}catch(O){null!=g&&g(O)}});d.onerror=function(a){null!=g&&g(a)};try{m&&this.editor.graph.addSvgShadow(f);
-var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;f.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(z,f,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(f))}))});this.loadFonts(e)}catch(B){null!=g&&g(B)}}),d,v)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
+var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;f.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(F,f,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(f))}))});this.loadFonts(e)}catch(A){null!=g&&g(A)}}),d,v)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
d=this;a.convert=function(c){if(null!=c){var f="http://"==c.substring(0,7)||"https://"==c.substring(0,8);f&&!navigator.onLine?c=d.svgBrokenImage.src:!f||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.isCorsEnabledForUrl(c)?"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,e){null==e&&(e=this.createImageUrlConverter());var c=0,f=d||{};d=mxUtils.bind(this,
function(d,h){for(var g=a.getElementsByTagName(d),m=0;m<g.length;m++)mxUtils.bind(this,function(d){var g=e.convert(d.getAttribute(h));if(null!=g&&"data:"!=g.substring(0,5)){var m=f[g];null==m?(c++,this.convertImageToDataUri(g,function(e){null!=e&&(f[g]=e,d.setAttribute(h,e));c--;0==c&&b(a)})):d.setAttribute(h,m)}else null!=g&&d.setAttribute(h,g)})(g[m])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,g,k){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||
/(\.gif)($|\?)/i.test(a);g=null!=g?g:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var f=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var f=Array(a.length),e=0;e<a.length;e++)f[e]=String.fromCharCode(a[e]);f=f.join("")}k=null!=k?k:"data:image/png;base64,";f=k+this.base64Encode(f)}b(f)}}else null!=
-d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){g&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(y){null!=d&&d(y)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
+d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){g&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(z){null!=d&&d(z)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,f=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");
a.height=c.height;a.width=c.width;d.drawImage(c,0,0);try{b(a.toDataURL())}catch(w){b(f.svgBrokenImage.src)}};c.onerror=function(){b(f.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=function(a,b,d,e,g){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var h=mxUtils.parseXml(a),k=this.editor.extractGraphModel(h.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)k=
mxUtils.parseXml(f.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){f.model.beginUpdate();try{for(a=0;a<m.length;a++){var n=this.updatePageRoot(new DiagramPage(m[a])),l=this.pages.length;null==n.getName()&&n.setName(mxResources.get("pageWithNumber",[l+1]));f.model.execute(new ChangePage(this,n,n,l))}}finally{f.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e))}}catch(D){throw g||this.handleError(D,mxResources.get("invalidOrMissingFile")),
@@ -6940,18 +7010,18 @@ p,m,v){m=null!=m?m:!0;var c=!1,f=null,h=mxUtils.bind(this,function(a){var b=null
e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,g,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,d,e,m);null!=l&&l(a)})):null!=p&&null!=n&&(/(\.vsdx)($|\?)/i.test(n)||/(\.vssx)($|\?)/i.test(n))?(c=!0,this.importVisio(p,h)):!this.isOffline()&&(new XMLHttpRequest).upload&&
this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=p?p:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?h(a.responseText):null!=l&&l(null))}),n)):/(\.vsd)($|\?)/i.test(n)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,m));c||null==l||l(f);return f};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,g,k;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="==";break}g=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);b+="=";break}k=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(k&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return b};EditorUi.prototype.importFiles=function(a,b,d,e,g,k,n,l,p,m,v,z){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,h=!1;if(!mxClient.IS_CHROMEAPP&&
-null!=a)for(var q=v||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>q){h=!0;break}var u=mxUtils.bind(this,function(){var h=this.editor.graph,q=h.gridSize;g=null!=g?g:mxUtils.bind(this,function(a,b,d,f,e,h,g,m,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,d,f,e,h,g,m,k,c,z)});k=null!=k?k:mxUtils.bind(this,function(a){h.setSelectionCells(a)});if(this.spinner.spin(document.body,
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(k&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return b};EditorUi.prototype.importFiles=function(a,b,d,e,g,k,n,l,p,m,v,F){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,h=!1;if(!mxClient.IS_CHROMEAPP&&
+null!=a)for(var q=v||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>q){h=!0;break}var u=mxUtils.bind(this,function(){var h=this.editor.graph,q=h.gridSize;g=null!=g?g:mxUtils.bind(this,function(a,b,d,f,e,h,g,m,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,d,f,e,h,g,m,k,c,F)});k=null!=k?k:mxUtils.bind(this,function(a){h.setSelectionCells(a)});if(this.spinner.spin(document.body,
mxResources.get("loading")))for(var t=a.length,p=t,u=[],w=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--p){this.spinner.stop();if(null!=l)l(u);else{var c=[];h.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var f=u[d]();null!=f&&(c=c.concat(f))}}finally{h.getModel().endUpdate()}}k(c)}}),x=0;x<t;x++)mxUtils.bind(this,function(c){var k=a[c],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var l=
-a.target.result,t=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(t+1)))),u=mxUtils.parseXml(p),p=u.getElementsByTagName("svg");if(0<p.length){var p=p[0],B=z?null:p.getAttribute("content");null!=B&&"<"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null==B||"<mxfile "!==B.substring(0,8)&&"<mxGraphModel "!==B.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,t+1),null!=u){var a=
-u.getElementsByTagName("svg");if(0<a.length){var m=a[0],n=parseFloat(m.getAttribute("width")),v=parseFloat(m.getAttribute("height")),p=m.getAttribute("viewBox");if(null==p||0==p.length)m.setAttribute("viewBox","0 0 "+n+" "+v);else if(isNaN(n)||isNaN(v)){var B=p.split(" ");3<B.length&&(n=parseFloat(B[2]),v=parseFloat(B[3]))}l=this.createSvgDataUri(mxUtils.getXml(m));var z=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,v)),F=g(l,k.type,b+c*q,d+c*q,Math.max(1,Math.round(n*z)),Math.max(1,Math.round(v*
-z)),k.name,f);if(isNaN(n)||isNaN(v)){var w=new Image;w.onload=mxUtils.bind(this,function(){n=Math.max(1,w.width);v=Math.max(1,w.height);F[0].geometry.width=n;F[0].geometry.height=v;m.setAttribute("viewBox","0 0 "+n+" "+v);l=this.createSvgDataUri(mxUtils.getXml(m));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));h.setCellStyles("image",l,[F[0]])});w.src=this.createSvgDataUri(mxUtils.getXml(m))}return F}}}catch(aa){}return null})):w(c,mxUtils.bind(this,function(){return g(B,
-"text/xml",b+c*q,d+c*q,0,0,k.name)}))}}else{p=!1;if("image/png"==k.type){var F=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=F&&0<F.length){var x=new Image;x.src=a.target.result;w(c,mxUtils.bind(this,function(){return g(F,"text/xml",b+c*q,d+c*q,x.width,x.height,k.name)}));p=!0}}p||(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"),
+a.target.result,t=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(t+1)))),u=mxUtils.parseXml(p),p=u.getElementsByTagName("svg");if(0<p.length){var p=p[0],A=F?null:p.getAttribute("content");null!=A&&"<"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null==A||"<mxfile "!==A.substring(0,8)&&"<mxGraphModel "!==A.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,t+1),null!=u){var a=
+u.getElementsByTagName("svg");if(0<a.length){var m=a[0],n=parseFloat(m.getAttribute("width")),v=parseFloat(m.getAttribute("height")),p=m.getAttribute("viewBox");if(null==p||0==p.length)m.setAttribute("viewBox","0 0 "+n+" "+v);else if(isNaN(n)||isNaN(v)){var A=p.split(" ");3<A.length&&(n=parseFloat(A[2]),v=parseFloat(A[3]))}l=this.createSvgDataUri(mxUtils.getXml(m));var B=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,v)),w=g(l,k.type,b+c*q,d+c*q,Math.max(1,Math.round(n*B)),Math.max(1,Math.round(v*
+B)),k.name,f);if(isNaN(n)||isNaN(v)){var x=new Image;x.onload=mxUtils.bind(this,function(){n=Math.max(1,x.width);v=Math.max(1,x.height);w[0].geometry.width=n;w[0].geometry.height=v;m.setAttribute("viewBox","0 0 "+n+" "+v);l=this.createSvgDataUri(mxUtils.getXml(m));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));h.setCellStyles("image",l,[w[0]])});x.src=this.createSvgDataUri(mxUtils.getXml(m))}return w}}}catch(ba){}return null})):w(c,mxUtils.bind(this,function(){return g(A,
+"text/xml",b+c*q,d+c*q,0,0,k.name)}))}}else{p=!1;if("image/png"==k.type){var B=F?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var x=new Image;x.src=a.target.result;w(c,mxUtils.bind(this,function(){return g(B,"text/xml",b+c*q,d+c*q,x.width,x.height,k.name)}));p=!0}}p||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(h){this.resizeImage(h,a.target.result,mxUtils.bind(this,function(h,n,l){w(c,mxUtils.bind(this,function(){if(null!=h&&h.length<m){var p=f&&this.isResampleImage(a.target.result,v)?Math.min(1,Math.min(e/n,e/l)):1;return g(h,k.type,b+c*q,d+c*q,Math.round(n*p),Math.round(l*p),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,v)}),mxUtils.bind(this,
function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else g(a.target.result,k.type,b+c*q,d+c*q,240,160,k.name,function(a){w(c,function(){return a})})});/(\.vsdx)($|\?)/i.test(k.name)||/(\.vssx)($|\?)/i.test(k.name)?g(null,k.type,b+c*q,d+c*q,240,160,k.name,function(a){w(c,function(){return a})},k):"image"==k.type.substring(0,5)?l.readAsDataURL(k):l.readAsText(k)})(x)});h?this.confirmImageResize(function(a){f=a;u()},p):u()};EditorUi.prototype.confirmImageResize=function(a,
b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(d,f){if(d||b)mxSettings.setResizeImages(d?f:null),mxSettings.save();c();a(f)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){f(a,!0)},function(a){f(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){b(f)};f.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>
-b};EditorUi.prototype.resizeImage=function(a,b,d,e,g,k){g=null!=g?g:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,k))try{var h=Math.max(c/g,f/g);if(1<h){var m=Math.round(c/h),n=Math.round(f/h),l=document.createElement("canvas");l.width=m;l.height=n;l.getContext("2d").drawImage(a,0,0,m,n);var q=l.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=m;p.height=n;var t=p.toDataURL();q!==t&&(b=q,c=m,f=n)}}}catch(H){}d(b,c,f)};
+b};EditorUi.prototype.resizeImage=function(a,b,d,e,g,k){g=null!=g?g:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,k))try{var h=Math.max(c/g,f/g);if(1<h){var m=Math.round(c/h),n=Math.round(f/h),l=document.createElement("canvas");l.width=m;l.height=n;l.getContext("2d").drawImage(a,0,0,m,n);var q=l.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=m;p.height=n;var t=p.toDataURL();q!==t&&(b=q,c=m,f=n)}}}catch(C){}d(b,c,f)};
EditorUi.prototype.crcTable=[];for(var d=0;256>d;d++)for(var b=d,g=0;8>g;g++)b=1==(b&1)?3988292384^b>>>1:b>>>1,EditorUi.prototype.crcTable[d]=b;EditorUi.prototype.updateCRC=function(a,b,d,e){for(var c=0;c<e;c++)a=EditorUi.prototype.crcTable[(a^b[d+c])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,g){function c(a,b){var c=k;k+=b;return a.substring(c,k)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function h(a){return String.fromCharCode(a>>
24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=g&&g();else if(c(a,4),"IHDR"!=c(a,4))null!=g&&g();else{c(a,17);g=a.substring(0,k);do{var m=f(a);if("IDAT"==c(a,4)){g=a.substring(0,k-8);d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,d,0,d.length);g+=h(d.length)+b+d+h(e^4294967295);
g+=a.substring(k-8,a.length);break}g+=a.substring(k-8,k-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(g):Base64.encode(g,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
@@ -6960,20 +7030,20 @@ a.indexOf(",");0<c&&(a=b.getPageById(a.substring(c+1)))&&b.selectPage(a)}"undefi
urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var g=d.addClickHandler;d.addClickHandler=function(b,c,e){var f=c;c=function(b,c){if(null==c){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(c=e.getAttribute("href"))}null==c||!d.isPageLink(c)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(c),mxEvent.consume(b));null!=f&&f(b,c)};g.call(this,b,c,e)};k.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(d.view.canvas.ownerSVGElement,
null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var n=d.getGlobalVariable;d.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:n.apply(this,arguments)};var l=d.createLinkForHint;d.createLinkForHint=function(c,e){var f=
d.isPageLink(c);if(f){var g=c.indexOf(",");0<g&&(g=b.getPageById(c.substring(g+1)),e=null!=g?g.getName():mxResources.get("pageNotFound"))}g=l.call(this,c,e);f&&mxEvent.addListener(g,"click",function(b){a(c);mxEvent.consume(b)});return g};var p=d.labelLinkClicked;d.labelLinkClicked=function(b,c,e){var f=c.getAttribute("href");if(null==f||!d.isPageLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))p.apply(this,arguments);else{if(!d.isEnabled()||null!=b&&d.isCellLocked(b.cell))a(f),d.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var y=this.actions.get("print");y.setEnabled(!mxClient.IS_IOS||!navigator.standalone);y.visible=y.isEnabled();if(!this.editor.chromeless||this.editor.editable){var m=function(){window.setTimeout(function(){v.innerHTML="&nbsp;";v.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,
+mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var z=this.actions.get("print");z.setEnabled(!mxClient.IS_IOS||!navigator.standalone);z.visible=z.isEnabled();if(!this.editor.chromeless||this.editor.editable){var m=function(){window.setTimeout(function(){v.innerHTML="&nbsp;";v.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||d.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===
-c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(P){}}),!1);var v=document.createElement("div");
-v.style.position="absolute";v.style.whiteSpace="nowrap";v.style.overflow="hidden";v.style.display="block";v.contentEditable=!0;mxUtils.setOpacity(v,0);v.style.width="1px";v.style.height="1px";v.innerHTML="&nbsp;";var z=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==d.container||!d.isEnabled()||d.isMouseDown||d.isEditing()||
-null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||z||(v.style.left=d.container.scrollLeft+10+"px",v.style.top=d.container.scrollTop+10+"px",d.container.appendChild(v),z=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){v.focus();document.execCommand("selectAll",!1,null)},0):(v.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
-a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!z||224!=b&&17!=b&&91!=b||(z=!1,d.isEditing()||null!=this.dialog||null==d.container||d.container.focus(),v.parentNode.removeChild(v))}),0)}));mxEvent.addListener(v,"copy",mxUtils.bind(this,function(a){d.isEnabled()&&(mxClipboard.copy(d),this.copyCells(v),m())}));mxEvent.addListener(v,"cut",mxUtils.bind(this,function(a){d.isEnabled()&&(this.copyCells(v,!0),m())}));mxEvent.addListener(v,"paste",mxUtils.bind(this,function(a){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
+c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(N){}}),!1);var v=document.createElement("div");
+v.style.position="absolute";v.style.whiteSpace="nowrap";v.style.overflow="hidden";v.style.display="block";v.contentEditable=!0;mxUtils.setOpacity(v,0);v.style.width="1px";v.style.height="1px";v.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(a){var b=mxEvent.getSource(a);null==d.container||!d.isEnabled()||d.isMouseDown||d.isEditing()||
+null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||F||(v.style.left=d.container.scrollLeft+10+"px",v.style.top=d.container.scrollTop+10+"px",d.container.appendChild(v),F=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){v.focus();document.execCommand("selectAll",!1,null)},0):(v.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
+a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!F||224!=b&&17!=b&&91!=b||(F=!1,d.isEditing()||null!=this.dialog||null==d.container||d.container.focus(),v.parentNode.removeChild(v))}),0)}));mxEvent.addListener(v,"copy",mxUtils.bind(this,function(a){d.isEnabled()&&(mxClipboard.copy(d),this.copyCells(v),m())}));mxEvent.addListener(v,"cut",mxUtils.bind(this,function(a){d.isEnabled()&&(this.copyCells(v,!0),m())}));mxEvent.addListener(v,"paste",mxUtils.bind(this,function(a){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
(v.innerHTML="&nbsp;",v.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,v);v.innerHTML="&nbsp;"}),0))}),!0);var D=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==v?!0:D.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==
-typeof mxRuler){y=document.createElement("div");y.style.position="absolute";y.style.top="95px";y.style.left="250px";y.style.width="2000px";y.style.height="30px";y.style.background="whiteSmoke";document.body.appendChild(y);var A=document.createElement("div");A.style.position="absolute";A.style.top="125px";A.style.left="220px";A.style.width="30px";A.style.height="1000px";A.style.background="whiteSmoke";document.body.appendChild(A);var G=document.createElement("div");G.style.position="absolute";G.style.top=
-"95px";G.style.left="220px";G.style.width="30px";G.style.height="30px";G.style.background="whiteSmoke";document.body.appendChild(G);this.vRuler=new mxRuler(this.editor.graph,A,!0);this.hRuler=new mxRuler(this.editor.graph,y,!1)}if("1"==urlParams.test){y=document.getElementById("geFooter");null!=y&&(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)})),y.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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 H=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:H.apply(this,arguments)}}y=document.getElementById("geInfo");null!=y&&y.parentNode.removeChild(y);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(d.container,"dragleave",function(a){d.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),
+typeof mxRuler){z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="250px";z.style.width="2000px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);var x=document.createElement("div");x.style.position="absolute";x.style.top="125px";x.style.left="220px";x.style.width="30px";x.style.height="1000px";x.style.background="whiteSmoke";document.body.appendChild(x);var G=document.createElement("div");G.style.position="absolute";G.style.top=
+"95px";G.style.left="220px";G.style.width="30px";G.style.height="30px";G.style.background="whiteSmoke";document.body.appendChild(G);this.vRuler=new mxRuler(this.editor.graph,x,!0);this.hRuler=new mxRuler(this.editor.graph,z,!1)}if("1"==urlParams.test){z=document.getElementById("geFooter");null!=z&&(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)})),z.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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 C=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:C.apply(this,arguments)}}z=document.getElementById("geInfo");null!=z&&z.parentNode.removeChild(z);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(d.container,"dragleave",function(a){d.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),
E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(d.container,"dragover",mxUtils.bind(this,function(a){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(d.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d.container,"drop",mxUtils.bind(this,function(a){null!=E&&(E.parentNode.removeChild(E),E=null);if(d.isEnabled()){var b=mxUtils.convertPoint(d.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
c=d.view.translate,e=d.view.scale,f=b.x/e-c.x,g=b.y/e-c.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,b=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=b)d.setSelectionCells(this.importXml(b,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/html")){var m=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=m;var k=null,c=b.getElementsByTagName("img");null!=c&&1==c.length?(m=c[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(k=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(m=b[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){d.setSelectionCells(this.insertTextAt(m,f,g,!0,k,null,n))});k&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){n=
@@ -6984,8 +7054,8 @@ this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyCo
mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(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.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,
!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.importLucidChart(d,0,0),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||
-8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(y){}try{var c=b.getElementsByTagName("span"),k=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(k)&&(f=!0,e=k)}catch(y){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,
-c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(y){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",
+8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(z){}try{var c=b.getElementsByTagName("span"),k=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(k)&&(f=!0,e=k)}catch(z){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,
+c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(z){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",
function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||
"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,
"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?
@@ -7004,36 +7074,37 @@ a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebar
function(a,b,d){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&
this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,
page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,g=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function g(a){if(null!=
-a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(K){}return a}if(f.source==(window.opener||window.parent)){var m=f.data;if("json"==urlParams.proto){try{m=JSON.parse(m)}catch(F){m=null}if(null==m)return;if("dialog"==m.action){this.showError(null!=
+a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(L){}return a}if(f.source==(window.opener||window.parent)){var m=f.data;if("json"==urlParams.proto){try{m=JSON.parse(m)}catch(B){m=null}if(null==m)return;if("dialog"==m.action){this.showError(null!=
m.titleKey?mxResources.get(m.titleKey):m.title,null!=m.messageKey?mxResources.get(m.messageKey):m.message,null!=m.buttonKey?mxResources.get(m.buttonKey):m.button);null!=m.modified&&(this.editor.modified=m.modified);return}if("prompt"==m.action){this.spinner.stop();var h=new FilenameDialog(this,m.defaultValue||"",null!=m.okKey?mxResources.get(m.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:m}),"*")},null!=m.titleKey?mxResources.get(m.titleKey):m.title);
this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==m.action){h=null;h="data:image/png;base64,"==m.xml.substring(0,22)?this.extractGraphModelFromPng(m.xml):g(m.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[m.name||this.defaultFilename]),h,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:m}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
-result:"discard",message:m}),"*")}),m.editKey?mxResources.get(m.editKey):null,m.discardKey?mxResources.get(m.discardKey):null,m.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:m}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{h.init()}catch(F){k.postMessage(JSON.stringify({event:"draft",error:F.toString(),message:m}),"*")}return}if("template"==
+result:"discard",message:m}),"*")}),m.editKey?mxResources.get(m.editKey):null,m.discardKey?mxResources.get(m.discardKey):null,m.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:m}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{h.init()}catch(B){k.postMessage(JSON.stringify({event:"draft",error:B.toString(),message:m}),"*")}return}if("template"==
m.action){this.spinner.stop();var h=1==m.enableRecent,n=1==m.enableSearch,h=new NewDialog(this,!1,null!=m.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=m.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,h?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),
"*")}):null,n?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(h.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));h.init();return}if("searchDocsList"==m.action)this.searchReadyCallback(m.list,m.errorMsg);else if("recentDocsList"==m.action)this.recentReadyCallback(m.list,
m.errorMsg);else{if("status"==m.action){null!=m.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(m.messageKey))):null!=m.message&&this.editor.setStatus(mxUtils.htmlEntities(m.message));null!=m.modified&&(this.editor.modified=m.modified);return}if("spinner"==m.action){var l=null!=m.messageKey?mxResources.get(m.messageKey):m.message;null==m.show||m.show?this.spinner.spin(document.body,l):this.spinner.stop();return}if("export"==m.action){if("png"==m.format||"xmlpng"==m.format){if(null==
m.spin&&null==m.spinKey||this.spinner.spin(document.body,null!=m.spinKey?mxResources.get(m.spinKey):m.spin)){var p=null!=m.xml?m.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var q=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=m.format;b.message=m;b.data=a;b.xml=encodeURIComponent(p);k.postMessage(JSON.stringify(b),"*")}),u=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
-"xmlpng"==m.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(p))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,B=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
-q.model.setRoot(B.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==m.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(p)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
+"xmlpng"==m.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(p))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,A=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?A.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
+q.model.setRoot(A.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==m.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(p)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
m.xml&&0<m.xml.length&&this.setFileData(m.xml);l=this.createLoadMessage("export");if("html2"==m.format||"html"==m.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))h=this.getXmlFileData(),l.xml=mxUtils.getXml(h),l.data=this.getFileData(null,null,!0,null,null,null,h),l.format=m.format;else if("html"==m.format)p=this.editor.getGraphXml(),l.data=this.getHtml(p,this.editor.graph),l.xml=mxUtils.getXml(p),l.format=m.format;else{mxSvgCanvas2D.prototype.foAltText=null;h=this.editor.graph.background;
h==mxConstants.NONE&&(h=null);l.xml=this.getFileData(!0);l.format="svg";if(m.embedImages||null==m.embedImages){if(null==m.spin&&null==m.spinKey||this.spinner.spin(document.body,null!=m.spinKey?mxResources.get(m.spinKey):m.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==m.format?this.getEmbeddedSvg(l.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();l.data=this.createSvgDataUri(a);k.postMessage(JSON.stringify(l),"*")})):this.convertImages(this.editor.graph.getSvg(h),
mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();l.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(l),"*")}));return}h="xmlsvg"==m.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));l.data=this.createSvgDataUri(h)}k.postMessage(JSON.stringify(l),"*")}return}if("load"==m.action)d=1==m.autosave,this.hideDialog(),null!=m.modified&&null==urlParams.modified&&(urlParams.modified=
m.modified),null!=m.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=m.saveAndExit),null!=m.title&&null!=this.buttonContainer&&(h=document.createElement("span"),mxUtils.write(h,m.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(h),this.embedFilenameSpan=h),m=null!=m.xmlpng?this.extractGraphModelFromPng(m.xmlpng):null!=m.xml&&"data:image/png;base64,"==m.xml.substring(0,22)?this.extractGraphModelFromPng(m.xml):m.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(m)}),"*");return}}}m=g(m);c=!0;try{a(m,f)}catch(F){this.handleError(F)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var x=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
-1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=x();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=x();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
+this.buttonContainer.appendChild(h),this.embedFilenameSpan=h),m=null!=m.xmlpng?this.extractGraphModelFromPng(m.xmlpng):null!=m.xml&&"data:image/png;base64,"==m.xml.substring(0,22)?this.extractGraphModelFromPng(m.xml):m.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(m)}),"*");return}}}m=g(m);c=!0;try{a(m,f)}catch(B){this.handleError(B)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var y=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
+1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=y();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=y();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}}));var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):
urlParams.ready||"ready";k.postMessage(g,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize=
"12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=
-function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),c=[];if(0<b.length){var d={},e=null,g=null,k="auto",n="auto",l=40,m=40,p=0,z=this.editor.graph;z.getGraphBounds();
-for(var D=function(){z.setSelectionCells(N);z.scrollCellToVisible(z.getSelectionCell())},A=z.getFreeInsertPoint(),G=A.x,H=A.y,A=H,E=null,C="auto",B=[],L=null,F=null,K=0;K<b.length&&"#"==b[K].charAt(0);){a=b[K];for(K++;K<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[K].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[K].substring(1)),K++;if("#"!=a.charAt(1)){var O=a.indexOf(":");if(0<O){var S=mxUtils.trim(a.substring(1,O)),T=mxUtils.trim(a.substring(O+1));"label"==S?E=z.sanitizeHtml(T):"style"==
-S?e=T:"identity"==S&&0<T.length&&"-"!=T?g=T:"width"==S?k=T:"height"==S?n=T:"ignore"==S?F=T.split(","):"connect"==S?B.push(JSON.parse(T)):"link"==S?L=T:"padding"==S?p=parseFloat(T):"edgespacing"==S?l=parseFloat(T):"nodespacing"==S?m=parseFloat(T):"layout"==S&&(C=T)}}}var P=this.editor.csvToArray(b[K]);a=null;if(null!=g)for(var M=0;M<P.length;M++)if(g==P[M]){a=M;break}null==E&&(E="%"+P[0]+"%");if(null!=B)for(var R=0;R<B.length;R++)null==d[B[R].to]&&(d[B[R].to]={});z.model.beginUpdate();try{for(M=K+
-1;M<b.length;M++){var I=this.editor.csvToArray(b[M]);if(I.length==P.length){var J=null,Y=null!=a?I[a]:null;null!=Y&&(J=z.model.getCell(Y));null==J&&(J=new mxCell(E,new mxGeometry(G,A,0,0),e||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=Y);for(var U=0;U<I.length;U++)z.setAttributeForCell(J,P[U],I[U]);z.setAttributeForCell(J,"placeholders","1");J.style=z.replacePlaceholders(J,J.style);for(R=0;R<B.length;R++)d[B[R].to][J.getAttribute(B[R].to)]=J;null!=L&&"link"!=L&&(z.setLinkForCell(J,J.getAttribute(L)),
-z.setAttributeForCell(J,L,null));z.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var V=this.editor.graph.getPreferredSizeForCell(J);J.geometry.width="auto"==k?V.width+p:parseFloat(k);J.geometry.height="auto"==n?V.height+p:parseFloat(n);A+=J.geometry.height+m;c.push(z.addCell(J))}}for(var X=c.slice(),N=c.slice(),R=0;R<B.length;R++)for(var Q=B[R],M=0;M<c.length;M++){var J=c[M],Z=J.getAttribute(Q.from);if(null!=Z){z.setAttributeForCell(J,Q.from,null);for(var W=Z.split(","),U=0;U<W.length;U++){var ba=
-d[Q.to][W[U]];null!=ba&&(E=Q.label,null!=Q.fromlabel&&(E=(J.getAttribute(Q.fromlabel)||"")+(E||"")),null!=Q.tolabel&&(E=(E||"")+(ba.getAttribute(Q.tolabel)||"")),N.push(z.insertEdge(null,null,E||"",Q.invert?ba:J,Q.invert?J:ba,Q.style||z.createCurrentEdgeStyle())),mxUtils.remove(Q.invert?J:ba,X))}}}if(null!=F)for(M=0;M<c.length;M++)for(J=c[M],U=0;U<F.length;U++)z.setAttributeForCell(J,mxUtils.trim(F[U]),null);var ca=new mxParallelEdgeLayout(z);ca.spacing=l;var ga=function(){ca.execute(z.getDefaultParent());
-for(var a=0;a<c.length;a++){var b=z.getCellGeometry(c[a]);b.x=Math.round(z.snap(b.x));b.y=Math.round(z.snap(b.y));"auto"==k&&(b.width=Math.round(z.snap(b.width)));"auto"==n&&(b.height=Math.round(z.snap(b.height)))}};if("circle"==C){var da=new mxCircleLayout(z);da.resetEdges=!1;var ha=da.isVertexIgnored;da.isVertexIgnored=function(a){return ha.apply(this,arguments)||0>mxUtils.indexOf(c,a)};this.executeLayout(function(){da.execute(z.getDefaultParent());ga()},!0,D);D=null}else if("horizontaltree"==C||
-"verticaltree"==C||"auto"==C&&N.length==2*c.length-1&&1==X.length){z.view.validate();var ea=new mxCompactTreeLayout(z,"horizontaltree"==C);ea.levelDistance=m;ea.edgeRouting=!1;ea.resetEdges=!1;this.executeLayout(function(){ea.execute(z.getDefaultParent(),0<X.length?X[0]:null)},!0,D);D=null}else if("horizontalflow"==C||"verticalflow"==C||"auto"==C&&1==X.length){z.view.validate();var fa=new mxHierarchicalLayout(z,"horizontalflow"==C?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);fa.intraCellSpacing=
-m;fa.disableEdgeStyle=!1;this.executeLayout(function(){fa.execute(z.getDefaultParent(),N);z.moveCells(N,G,H)},!0,D);D=null}else if("organic"==C||"auto"==C&&N.length>c.length){z.view.validate();var aa=new mxFastOrganicLayout(z);aa.forceConstant=3*m;aa.resetEdges=!1;var ia=aa.isVertexIgnored;aa.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(c,a)};ca=new mxParallelEdgeLayout(z);ca.spacing=l;this.executeLayout(function(){aa.execute(z.getDefaultParent());ga()},!0,D);D=null}this.hideDialog()}finally{z.model.endUpdate()}null!=
-D&&D()}}catch(ja){this.handleError(ja)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),c=[];if(0<b.length){var d={},e=null,g=null,k="auto",n="auto",l=null,m=null,p=40,F=40,D=0,x=this.editor.graph;
+x.getGraphBounds();for(var G=function(){x.setSelectionCells(X);x.scrollCellToVisible(x.getSelectionCell())},C=x.getFreeInsertPoint(),E=C.x,H=C.y,C=H,A=null,K="auto",B=[],L=null,O=null,S=0;S<b.length&&"#"==b[S].charAt(0);){a=b[S];for(S++;S<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[S].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[S].substring(1)),S++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var N=mxUtils.trim(a.substring(1,Y)),M=mxUtils.trim(a.substring(Y+1));"label"==N?A=x.sanitizeHtml(M):
+"style"==N?e=M:"identity"==N&&0<M.length&&"-"!=M?g=M:"width"==N?k=M:"height"==N?n=M:"left"==N&&0<M.length?l=M:"top"==N&&0<M.length?m=M:"ignore"==N?O=M.split(","):"connect"==N?B.push(JSON.parse(M)):"link"==N?L=M:"padding"==N?D=parseFloat(M):"edgespacing"==N?p=parseFloat(M):"nodespacing"==N?F=parseFloat(M):"layout"==N&&(K=M)}}}var W=this.editor.csvToArray(b[S]);a=null;if(null!=g)for(var I=0;I<W.length;I++)if(g==W[I]){a=I;break}null==A&&(A="%"+W[0]+"%");if(null!=B)for(var Q=0;Q<B.length;Q++)null==d[B[Q].to]&&
+(d[B[Q].to]={});x.model.beginUpdate();try{for(I=S+1;I<b.length;I++){var Z=this.editor.csvToArray(b[I]);if(Z.length==W.length){var J=null,V=null!=a?Z[a]:null;null!=V&&(J=x.model.getCell(V));null==J&&(J=new mxCell(A,new mxGeometry(E,C,0,0),e||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=V);for(var T=0;T<Z.length;T++)x.setAttributeForCell(J,W[T],Z[T]);x.setAttributeForCell(J,"placeholders","1");J.style=x.replacePlaceholders(J,J.style);for(Q=0;Q<B.length;Q++)d[B[Q].to][J.getAttribute(B[Q].to)]=J;null!=
+L&&"link"!=L&&(x.setLinkForCell(J,J.getAttribute(L)),x.setAttributeForCell(J,L,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var R=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=l&&null!=J.getAttribute(l)&&(J.geometry.x=E+parseFloat(J.getAttribute(l))),null!=m&&null!=J.getAttribute(m)&&(J.geometry.y=H+parseFloat(J.getAttribute(m))),"@"==k.charAt(0)&&null!=J.getAttribute(k.substring(1))?J.geometry.width=parseFloat(J.getAttribute(k.substring(1))):J.geometry.width=
+"auto"==k?R.width+D:parseFloat(k),"@"==n.charAt(0)&&null!=J.getAttribute(n.substring(1))?J.geometry.height=parseFloat(J.getAttribute(n.substring(1))):J.geometry.height="auto"==n?R.height+D:parseFloat(n),C+=J.geometry.height+F);c.push(x.addCell(J))}}for(var U=c.slice(),X=c.slice(),Q=0;Q<B.length;Q++)for(var P=B[Q],I=0;I<c.length;I++){var J=c[I],ga=J.getAttribute(P.from);if(null!=ga){x.setAttributeForCell(J,P.from,null);for(var ha=ga.split(","),T=0;T<ha.length;T++){var aa=d[P.to][ha[T]];null!=aa&&(A=
+P.label,null!=P.fromlabel&&(A=(J.getAttribute(P.fromlabel)||"")+(A||"")),null!=P.tolabel&&(A=(A||"")+(aa.getAttribute(P.tolabel)||"")),X.push(x.insertEdge(null,null,A||"",P.invert?aa:J,P.invert?J:aa,P.style||x.createCurrentEdgeStyle())),mxUtils.remove(P.invert?J:aa,U))}}}if(null!=O)for(I=0;I<c.length;I++)for(J=c[I],T=0;T<O.length;T++)x.setAttributeForCell(J,mxUtils.trim(O[T]),null);var da=new mxParallelEdgeLayout(x);da.spacing=p;var ia=function(){da.execute(x.getDefaultParent());for(var a=0;a<c.length;a++){var b=
+x.getCellGeometry(c[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==k&&(b.width=Math.round(x.snap(b.width)));"auto"==n&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==K){var ea=new mxCircleLayout(x);ea.resetEdges=!1;var ja=ea.isVertexIgnored;ea.isVertexIgnored=function(a){return ja.apply(this,arguments)||0>mxUtils.indexOf(c,a)};this.executeLayout(function(){ea.execute(x.getDefaultParent());ia()},!0,G);G=null}else if("horizontaltree"==K||"verticaltree"==K||"auto"==K&&X.length==
+2*c.length-1&&1==U.length){x.view.validate();var ba=new mxCompactTreeLayout(x,"horizontaltree"==K);ba.levelDistance=F;ba.edgeRouting=!1;ba.resetEdges=!1;this.executeLayout(function(){ba.execute(x.getDefaultParent(),0<U.length?U[0]:null)},!0,G);G=null}else if("horizontalflow"==K||"verticalflow"==K||"auto"==K&&1==U.length){x.view.validate();var fa=new mxHierarchicalLayout(x,"horizontalflow"==K?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);fa.intraCellSpacing=F;fa.disableEdgeStyle=!1;this.executeLayout(function(){fa.execute(x.getDefaultParent(),
+X);x.moveCells(X,E,H)},!0,G);G=null}else if("organic"==K||"auto"==K&&X.length>c.length){x.view.validate();var ca=new mxFastOrganicLayout(x);ca.forceConstant=3*F;ca.resetEdges=!1;var ka=ca.isVertexIgnored;ca.isVertexIgnored=function(a){return ka.apply(this,arguments)||0>mxUtils.indexOf(c,a)};da=new mxParallelEdgeLayout(x);da.spacing=p;this.executeLayout(function(){ca.execute(x.getDefaultParent());ia()},!0,G);G=null}this.hideDialog()}finally{x.model.endUpdate()}null!=G&&G()}}catch(la){this.handleError(la)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d){a=new LinkDialog(this,a,b,d,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var n=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=n.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/
@@ -7064,9 +7135,9 @@ mxGraph.prototype.pageFormat),null==mxSettings.settings.search&&(mxSettings.sett
("undefined"==typeof mxLoadSettings||mxLoadSettings)&&mxSettings.load();App=function(a,e,d){EditorUi.call(this,a,e,null!=d?d:"1"==urlParams.lightbox);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(a,d,e){var b=null;try{b=window.open(a)}catch(l){}null==b||void 0===b?this.showDialog((new PopupDialog(this,a,d,e)).container,320,140,!0,!0):null!=d&&d()});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.isOffline()||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");
this.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!=App.DrawPlugins){for(a=0;a<App.DrawPlugins.length;a++)try{App.DrawPlugins[a](this)}catch(b){null!=window.console&&console.log("Plugin Error:",b,App.DrawPlugins[a])}window.Draw.loadPlugin=mxUtils.bind(this,function(a){a(this)})}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_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="https://unpkg.com/dropbox@2.5.13/dist/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";
-App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.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"};
+App.MODE_GITHUB="github";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";
+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",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.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"};
App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage.getItem(".mode"));if(null==a&&"undefined"!=typeof Storage){for(var e=document.cookie.split(";"),d=0;d<e.length;d++){var b=mxUtils.trim(e[d]);if("MODE="==b.substring(0,5)){a=b.substring(5);break}}null!=a&&isLocalStorage&&(e=new Date,e.setYear(e.getFullYear()-1),document.cookie="MODE=; expires="+e.toUTCString(),localStorage.setItem(".mode",a))}return a};
(function(){mxClient.IS_CHROMEAPP||("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("1"!=urlParams.embed&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&
"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):"0"!=urlParams.chrome||null!=window.location.hash&&"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"===window.location.hash.substring(0,45)||(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,
@@ -7114,7 +7185,7 @@ App.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable
App.prototype.getThumbnail=function(a,e){var d=!1;try{null==this.thumbImageCache&&(this.thumbImageCache={});var b=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var b=this.createTemporaryGraph(b.getStylesheet()),g=b.getGlobalVariable,k=this.pages[0];b.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:g.apply(this,arguments)};document.body.appendChild(b.container);b.model.setRoot(k.root)}if(mxClient.IS_CHROMEAPP||!b.mathEnabled&&this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this,
function(a){b!=this.editor.graph&&b.container.parentNode.removeChild(b.container);e(a)}),a,this.thumbImageCache,"#ffffff",function(){e()},null,null,null,null,null,null,b),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var n=document.createElement("canvas"),l=b.getGraphBounds(),p=a/l.width,p=Math.min(1,Math.min(3*a/(4*l.height),p)),c=Math.floor(l.x),f=Math.floor(l.y);n.setAttribute("width",Math.ceil(p*(l.width+4)));n.setAttribute("height",Math.ceil(p*(l.height+4)));var h=n.getContext("2d");
h.scale(p,p);h.translate(-c,-f);var q=b.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";h.save();h.fillStyle=q;h.fillRect(c,f,Math.ceil(l.width+4),Math.ceil(l.height+4));h.restore();var t=new mxJsCanvas(n),u=new mxAsyncCanvas(this.thumbImageCache);t.images=this.thumbImageCache.images;var w=new mxImageExport;w.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};w.drawText=function(a,
-b){};w.drawState(b.getView().getState(b.model.root),u);u.finish(mxUtils.bind(this,function(){w.drawState(b.getView().getState(b.model.root),t);b!=this.editor.graph&&b.container.parentNode.removeChild(b.container);e(n)}));d=!0}}catch(x){b!=this.editor.graph&&b.container.parentNode.removeChild(b.container)}return d};
+b){};w.drawState(b.getView().getState(b.model.root),u);u.finish(mxUtils.bind(this,function(){w.drawState(b.getView().getState(b.model.root),t);b!=this.editor.graph&&b.container.parentNode.removeChild(b.container);e(n)}));d=!0}}catch(y){b!=this.editor.graph&&b.container.parentNode.removeChild(b.container)}return d};
App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(e,d){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(d)if(isLocalStorage)localStorage.setItem(".mode",e);else if("undefined"!=typeof Storage){var b=new Date;b.setYear(b.getFullYear()+1);document.cookie="MODE="+e+"; expires="+b.toUTCString()}null!=this.appIcon&&(b=this.getCurrentFile(),e=null!=b?b.getMode():null,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="default"))}})();
@@ -7181,8 +7252,8 @@ App.prototype.getLibraryStorageHint=function(a){var e=a.getTitle();a.constructor
mxResources.get("browser")+")":a.constructor==LocalLibrary&&(e+=" ("+mxResources.get("device")+")");return e};
App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),e=mxUtils.bind(this,function(d,b){var e=0,k=[],n=mxUtils.bind(this,function(){if(0==e){if(null!=d)for(var a=d.length-1;0<=a;a--)null!=k[a]&&this.loadLibrary(k[a]);null!=b&&b()}});if(null!=d)for(var l=0;l<d.length;l++){var p=encodeURIComponent(decodeURIComponent(d[l]));mxUtils.bind(this,
function(b,d){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){e++;var c=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];k[d]=a;e--;n()}),g=mxUtils.bind(this,function(){a(b);e--;n()});this.pendingLibraries[b]=!0;var f=b.substring(0,1);if("L"==f)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var a=decodeURIComponent(b.substring(1));this.getLocalData(a,mxUtils.bind(this,function(b){".scratchpad"==a&&null==
-b&&(b=this.emptyLibraryXml);null!=b?c(new StorageLibrary(this,b,a)):g()}))}catch(y){g()}}),0);else if("U"==f){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){f=l;this.isCorsEnabledForUrl(f)||(f="t="+(new Date).getTime(),f=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+f);try{mxUtils.get(f,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{c(new UrlLibrary(this,a.getText(),l))}catch(y){g()}else g()}),function(){g()})}catch(x){g()}}}else{var p=null;"G"==f?null!=
-this.drive&&null!=this.drive.user&&(p=this.drive):"H"==f?null!=this.gitHub&&null!=this.gitHub.getUser()&&(p=this.gitHub):"T"==f?null!=this.trello&&this.trello.isAuthorized()&&(p=this.trello):"D"==f?null!=this.dropbox&&null!=this.dropbox.getUser()&&(p=this.dropbox):"W"==f&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(p=this.oneDrive);null!=p?p.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{c(a)}catch(y){g()}}),function(a){g()}):(delete this.pendingLibraries[b],
+b&&(b=this.emptyLibraryXml);null!=b?c(new StorageLibrary(this,b,a)):g()}))}catch(z){g()}}),0);else if("U"==f){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){f=l;this.isCorsEnabledForUrl(f)||(f="t="+(new Date).getTime(),f=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+f);try{mxUtils.get(f,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{c(new UrlLibrary(this,a.getText(),l))}catch(z){g()}else g()}),function(){g()})}catch(y){g()}}}else{var p=null;"G"==f?null!=
+this.drive&&null!=this.drive.user&&(p=this.drive):"H"==f?null!=this.gitHub&&null!=this.gitHub.getUser()&&(p=this.gitHub):"T"==f?null!=this.trello&&this.trello.isAuthorized()&&(p=this.trello):"D"==f?null!=this.dropbox&&null!=this.dropbox.getUser()&&(p=this.dropbox):"W"==f&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(p=this.oneDrive);null!=p?p.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{c(a)}catch(z){g()}}),function(a){g()}):(delete this.pendingLibraries[b],
g())}}})(p,l)}n()});e(mxSettings.getCustomLibraries(),function(){e((urlParams.clibs||"").split(";"))})}};
App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?null==this.shareButton&&(this.shareButton=document.createElement("div"),this.shareButton.className="geBtn gePrimaryBtn",this.shareButton.style.display="inline-block",this.shareButton.style.padding="0 10px 0 10px",this.shareButton.style.marginTop="-4px",this.shareButton.style.height="28px",this.shareButton.style.lineHeight="28px",this.shareButton.style.minWidth=
"0px",this.shareButton.style.cssFloat="right",a=document.createElement("img"),a.setAttribute("src",this.shareImage),a.setAttribute("align","absmiddle"),a.style.marginRight="4px",a.style.marginTop="-3px",this.shareButton.appendChild(a),mxUtils.write(this.shareButton,mxResources.get("share")),mxEvent.addListener(this.shareButton,"click",mxUtils.bind(this,function(){this.actions.get("share").funct()})),this.buttonContainer.appendChild(this.shareButton)):null!=this.shareButton&&(this.shareButton.parentNode.removeChild(this.shareButton),
@@ -7245,7 +7316,7 @@ a.getBaseFilename(),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content
mxEvent.addListener(e,"change",function(){e.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!e.checked,null,!f.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}}));a.actions.addAction("open...",function(){a.pickFile()});a.actions.addAction("close",function(){a.fileLoaded(null)});a.actions.addAction("editShape...",mxUtils.bind(this,function(){d.getSelectionCells();
if(1==d.getSelectionCount()){var b=d.getSelectionCell(),c=d.view.getState(b);null!=c&&null!=c.shape&&null!=c.shape.stencil&&(b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400),a.showDialog(b.container,640,480,!0,!1),b.init())}}));a.actions.addAction("revisionHistory...",function(){var b=a.getCurrentFile();if(null==b||b.constructor!=DriveFile&&b.constructor!=DropboxFile||null==a.drive&&b.constructor==DriveFile||null==a.dropbox&&b.constructor==DropboxFile)a.showError(mxResources.get("error"),
mxResources.get("notAvailable"),mxResources.get("ok"));else if(a.spinner.spin(document.body,mxResources.get("loading")))if(b.constructor==DropboxFile){var c=a.dropbox.client.filesListRevisions({path:b.stat.path_lower,limit:100});c.then(mxUtils.bind(this,function(c){a.spinner.stop();try{for(var d=[],e=c.entries.length-1;0<=e;e--)(function(c){d.push({modifiedDate:c.client_modified,fileSize:c.size,getXml:function(d,e){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,e)},getUrl:function(){return a.getUrl(window.location.pathname+
-"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(H){a.handleError(H)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop();for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-
+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(C){a.handleError(C)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop();for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-
1]===d?b.desc.headRevisionId:d.id}),function(b){a.drive.getXmlFile(b,null,function(a){e(a.getData())},function(a){f(a)})},function(a){f(a)})};d.getUrl=function(){return a.getUrl(window.location.pathname+"?rev="+d.id+"&chrome=0&edit=_blank")+window.location.hash}})(c.items[d]);d=new RevisionDialog(a,c.items);a.showDialog(d.container,640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+
"+S");a.actions.addAction("upload...",function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b)))});if("undefined"!==typeof MathJax){var f=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=
!a.isMathEnabled();d.model.execute(b)});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.isMathEnabled()});f.isEnabled=k}isLocalStorage&&(f=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return mxSettings.getShowStartScreen()}));var h=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});h.setToggleAction(!0);h.setSelectedCallback(function(){return h.isEnabled()&&
@@ -7302,10 +7373,10 @@ App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(documen
function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,
function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("offline",new Action(mxResources.get("offline")+"...",function(){a.openLink("https://www.draw.io/app")}));a.actions.put("download",new Action(mxResources.get("download")+"...",function(){a.openLink("https://download.draw.io")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=
this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var w="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle - fromText".split(" "),
-x=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},y=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted",
-"cells",[a]))}finally{d.getModel().endUpdate()}d.container.focus();d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=k;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=k;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=k;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=k;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
-"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<w.length;c++)"-"==w[c]?a.addSeparator(b):x(a,b,mxResources.get(w[c])+"...",w[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);
+y=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},z=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted",
+"cells",[a]))}finally{d.getModel().endUpdate()}d.container.focus();d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(z("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=k;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
+z("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=k;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=k;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=k;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
+"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<w.length;c++)"-"==w[c]?a.addSeparator(b):y(a,b,mxResources.get(w[c])+"...",w[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);
b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(b,d){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},d):n&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+
"...",null,function(){a.pickFile(App.MODE_DROPBOX)},d):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},d):p&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},d):c&&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(){a.pickFile(App.MODE_BROWSER)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&
@@ -7316,7 +7387,7 @@ d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(m
null,function(){a.pickLibrary(App.MODE_GOOGLE)},d):n&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},d):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?
b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},d):p&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},d):c&&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(){a.pickLibrary(App.MODE_BROWSER)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=
-c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(H){a.handleError(H,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
+c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(C){a.handleError(C,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c);
mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d,
"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&isLocalStorage&&this.addMenuItems(b,["showStartScreen"],c);a.isOfflineApp()||"1"==urlParams.embed||this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);b.addSeparator(c);a.isOffline()||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["download"],
@@ -7334,8 +7405,8 @@ mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){th
EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var e=0;e<this.pages.length;e++)if(this.pages[e].getId()==a)return this.pages[e];return null};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,e=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";b!=this.tabContainer.style.height&&this.refresh(!1)}e.apply(a.view,arguments)});var d=!1,b=null,g=mxUtils.bind(this,function(){this.updateTabContainer();var e=this.currentPage;null!=e&&e!=b&&(null==e.viewState||null==e.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
-a.view.translate.x*a.view.scale+e.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+e.viewState.scrollTop),b=e);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?d||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){d=!0}))):"undefined"===typeof Editor.MathJaxClear||
-this.editor.graph.mathEnabled||(d=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var d=b.getProperty("edit").changes,e=0;e<d.length;e++)if(d[e]instanceof SelectPage||d[e]instanceof RenamePage||d[e]instanceof MovePage||d[e]instanceof mxRootChange){g();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+a.view.translate.x*a.view.scale+e.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+e.viewState.scrollTop),b=e);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?d||null==this.editor||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){d=!0}))):"undefined"===
+typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||(d=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var d=b.getProperty("edit").changes,e=0;e<d.length;e++)if(d[e]instanceof SelectPage||d[e]instanceof RenamePage||d[e]instanceof MovePage||d[e]instanceof mxRootChange){g();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
Graph.prototype.createViewState=function(a){var e=a.getAttribute("page"),d=a.getAttribute("pageScale"),b=a.getAttribute("pageWidth"),g=a.getAttribute("pageHeight"),k=a.getAttribute("background"),n=a.getAttribute("backgroundImage"),n=null!=n&&0<n.length?JSON.parse(n):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=e?"0"!=e:this.defaultPageVisible,background:null!=k&&0<k.length?k:this.defaultGraphBackground,backgroundImage:null!=n?new mxImage(n.src,n.width,n.height):null,pageScale:null!=d?d:mxGraph.prototype.pageScale,pageFormat:null!=b&&null!=g?new mxRectangle(0,0,parseFloat(b),parseFloat(g)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
@@ -7378,29 +7449,29 @@ a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);d=c;d=e.apply(this,arg
return b}function e(a){var b=!1;null!=a&&(a=w.getParent(a),b=u.view.getState(a),u.view.getState(a),b=null!=(null!=b?b.style:u.getCellStyle(a)).childLayout);return b}function l(a){a=u.view.getState(a);if(null!=a){var b=u.getIncomingEdges(a.cell);if(0<b.length&&(b=u.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<
a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function p(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingEdges(a),e=u.cloneCells([d[0],a]);u.model.setTerminal(e[0],u.model.getTerminal(d[0],!0),!0);var f=l(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+
10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);u.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=u.view.getState(a),k=u.view.scale;if(null!=h){var n=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:n.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var m=u.getOutgoingEdges(u.model.getTerminal(d[0],
-!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,q=g=d=0;q<m.length;q++){var t=u.model.getTerminal(m[q],!1);if(f==l(t)){var B=u.view.getState(t);t!=a&&null!=B&&(p&&b!=B.getCenterX()<h.getCenterX()||!p&&b!=B.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,B)&&(d=10+Math.max(d,(Math.min(n.x+n.width,B.x+B.width)-Math.max(n.x,B.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,B.y+B.height)-Math.max(n.y,B.y))/k))}}p?g=0:d=0;for(q=0;q<m.length;q++)if(t=u.model.getTerminal(m[q],
-!1),f==l(t)&&(B=u.view.getState(t),t!=a&&null!=B&&(p&&b!=B.getCenterX()<h.getCenterX()||!p&&b!=B.getCenterY()<h.getCenterY()))){var v=[];u.traverse(B.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function c(a){u.model.beginUpdate();try{var b=l(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);
+!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,q=g=d=0;q<m.length;q++){var t=u.model.getTerminal(m[q],!1);if(f==l(t)){var A=u.view.getState(t);t!=a&&null!=A&&(p&&b!=A.getCenterX()<h.getCenterX()||!p&&b!=A.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,A)&&(d=10+Math.max(d,(Math.min(n.x+n.width,A.x+A.width)-Math.max(n.x,A.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,A.y+A.height)-Math.max(n.y,A.y))/k))}}p?g=0:d=0;for(q=0;q<m.length;q++)if(t=u.model.getTerminal(m[q],
+!1),f==l(t)&&(A=u.view.getState(t),t!=a&&null!=A&&(p&&b!=A.getCenterX()<h.getCenterX()||!p&&b!=A.getCenterY()<h.getCenterY()))){var v=[];u.traverse(A.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function c(a){u.model.beginUpdate();try{var b=l(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);
var e=u.model.getParent(a),f=e.geometry,g=[];u.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);u.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);u.moveCells(g,h,k);return u.addCells(d,e)}finally{u.model.endUpdate()}}function f(a){u.model.beginUpdate();try{var b=
u.model.getParent(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(d[0],a,!0);var c=u.getOutgoingEdges(a),e=b.geometry,f=[];u.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=u.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var k=u.view.getBounds(f),n=l(a),m=u.view.translate,p=u.view.scale;n==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/p-m.x-e.x+10,d[1].geometry.y+=a.geometry.height-
e.y+40):n==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/p-m.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=n==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/p-m.y+-e.y+10);return u.addCells(d,b)}finally{u.model.endUpdate()}}function h(a,
b,c){a=u.getOutgoingEdges(a);c=u.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function q(a,b){var c=l(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||
c==mxConstants.DIRECTION_WEST)==d&&c!=b?t.actions.get("selectParent").funct():c==b?(d=u.getOutgoingEdges(a),null!=d&&0<d.length&&u.setSelectionCell(u.model.getTerminal(d[0],!1))):(c=u.getIncomingEdges(a),null!=c&&0<c.length&&(d=h(u.model.getTerminal(c[0],!0),d,a),c=u.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var t=this,u=t.editor.graph,w=u.getModel();mxResources.parse("selectChildren=Select Children");
-mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var x=t.menus.createPopupMenu;t.menus.createPopupMenu=function(a,c,d){x.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(u.getSelectionCell())&&
+mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=t.menus.createPopupMenu;t.menus.createPopupMenu=function(a,c,d){y.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(u.getSelectionCell())&&
(a.addSeparator(),0<u.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};t.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+X");t.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),
a=u.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=u.getOutgoingEdges(u.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+S");t.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingEdges(a);null!=a&&0<a.length&&u.setSelectionCell(u.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");t.actions.addAction("selectDescendants",
-function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),b=[];u.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});u.setSelectionCells(b)}},null,null,"Alt+Shift+T");var y=u.removeCells;u.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&d(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(u.traverse(g,!0,
-function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=u.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return y.apply(this,arguments)};t.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var m=u.duplicateCells;u.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=u.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
+function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),b=[];u.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});u.setSelectionCells(b)}},null,null,"Alt+Shift+T");var z=u.removeCells;u.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&d(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(u.traverse(g,!0,
+function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=u.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return z.apply(this,arguments)};t.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var m=u.duplicateCells;u.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=u.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
a)}this.model.beginUpdate();try{var h=m.call(this,a,c);if(h.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=u.getIncomingEdges(h[e]),g=u.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var v=u.moveCells;u.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,n=this.view.getState(f),m=null!=n?n.style:this.getCellStyle(f);
if(null!=a&&b(f)&&"1"==mxUtils.getValue(m,"treeFolding","0")){for(var p=0;p<a.length;p++)if(b(a[p])||u.model.isEdge(a[p])&&null==u.model.getTerminal(a[p],!0)){f=u.model.getParent(a[p]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var q=u.getIncomingEdges(a[0]);if(0<q.length){var t=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=t){var w=u.view.getState(l);null!=w&&(c=(w.getCenterX()-t.getCenterX())/u.view.scale,d=(w.getCenterY()-t.getCenterY())/u.view.scale)}}}}k=v.apply(this,arguments);
if(null!=k&&null!=a&&k.length==a.length)for(p=0;p<k.length;p++)if(this.model.isEdge(k[p]))b(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[p],!0))&&this.model.setTerminal(k[p],l,!0);else if(b(a[p])&&(q=u.getIncomingEdges(a[p]),0<q.length))if(!e)b(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingEdges(k[p]).length){n=l;if(null==n||n==u.model.getParent(a[p]))n=u.model.getTerminal(q[0],!0);e=this.cloneCells([q[0]])[0];this.addEdge(e,
-u.getDefaultParent(),n,k[p])}}finally{this.model.endUpdate()}return k};if(null!=t.sidebar){var z=t.sidebar.dropAndConnect;t.sidebar.dropAndConnect=function(a,c,d,e){var f=u.model,g=null;f.beginUpdate();try{if(g=z.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=u.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var D={88:t.actions.get("selectChildren"),
-84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},A=t.onKeyDown;t.onKeyDown=function(a){try{if(u.isEnabled()&&!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingEdges(u.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(u.getSelectionCell()):f(u.getSelectionCell()):13==a.which&&(d=p(u.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],
+u.getDefaultParent(),n,k[p])}}finally{this.model.endUpdate()}return k};if(null!=t.sidebar){var F=t.sidebar.dropAndConnect;t.sidebar.dropAndConnect=function(a,c,d,e){var f=u.model,g=null;f.beginUpdate();try{if(g=F.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=u.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var D={88:t.actions.get("selectChildren"),
+84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},x=t.onKeyDown;t.onKeyDown=function(a){try{if(u.isEnabled()&&!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingEdges(u.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(u.getSelectionCell()):f(u.getSelectionCell()):13==a.which&&(d=p(u.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],
!1)):u.setSelectionCell(d[d.length-1]),null!=t.hoverIcons&&t.hoverIcons.update(u.view.getState(u.getSelectionCell())),u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=D[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(q(u.getSelectionCell(),
-mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(q(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(K){console.log("error",K)}mxEvent.isConsumed(a)||A.apply(this,arguments)};var G=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var n=u.getIncomingEdges(a);return b(a)&&0<n.length?(e=l(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?c(a):p(a,d!=mxConstants.DIRECTION_NORTH&&
-d!=mxConstants.DIRECTION_WEST)):G.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&u.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var H=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){H.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
+mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(q(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(L){console.log("error",L)}mxEvent.isConsumed(a)||x.apply(this,arguments)};var G=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var n=u.getIncomingEdges(a);return b(a)&&0<n.length?(e=l(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?c(a):p(a,d!=mxConstants.DIRECTION_NORTH&&
+d!=mxConstants.DIRECTION_WEST)):G.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&u.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);
this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var E=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){E.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 C=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){C.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var b=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=b.apply(this,arguments),d=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
+this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var b=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=b.apply(this,arguments),d=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");
b.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");
e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 89436c25..29c29995 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -163,7 +163,7 @@ App.DROPBOX_APPKEY = 'libwls2fa9szdji';
/**
* Sets URL to load the Dropbox SDK from
*/
-App.DROPBOX_URL = 'https://unpkg.com/dropbox@2.5.13/dist/Dropbox-sdk.min.js';
+App.DROPBOX_URL = 'js/dropbox/Dropbox-sdk.min.js';
/**
* Sets the delay for autosave in milliseconds. Default is 2000.
@@ -195,8 +195,9 @@ App.FOOTER_PLUGIN_URL = 'https://www.jgraph.com/drawio-footer.js';
* https://desk.draw.io/solution/articles/16000042546
*/
App.pluginRegistry = {'4xAKTrabTpTzahoLthkwPNUn': '/plugins/explore.js',
- 'ex': '/plugins/explore.js', 'p1': '/plugins/p1.js', 'ac': '/plugins/connect.js',
- 'acj': '/plugins/connectJira.js', 'voice': '/plugins/voice.js',
+ 'ex': '/plugins/explore.js', 'p1': '/plugins/p1.js',
+ 'ac': '/plugins/connect.js', 'acj': '/plugins/connectJira.js',
+ 'ac148': '/plugins/cConf-1-4-8.js', 'voice': '/plugins/voice.js',
'tips': '/plugins/tooltips.js', 'svgdata': '/plugins/svgdata.js',
'doors': '/plugins/doors.js', 'electron': 'plugins/electron.js',
'number': '/plugins/number.js', 'sql': '/plugins/sql.js',
diff --git a/src/main/webapp/js/diagramly/Devel.js b/src/main/webapp/js/diagramly/Devel.js
index 28ad6694..3c67ed31 100644
--- a/src/main/webapp/js/diagramly/Devel.js
+++ b/src/main/webapp/js/diagramly/Devel.js
@@ -41,6 +41,7 @@ mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Basic.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Bootstrap.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-BPMN.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Cabinet.js');
+mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-CiscoSafe.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Citrix.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-EIP.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Electrical.js');
diff --git a/src/main/webapp/js/diagramly/Dialogs.js b/src/main/webapp/js/diagramly/Dialogs.js
index a7668ee5..367c8cc8 100644
--- a/src/main/webapp/js/diagramly/Dialogs.js
+++ b/src/main/webapp/js/diagramly/Dialogs.js
@@ -2832,7 +2832,9 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
var createButton = mxUtils.button(mxResources.get('create'), function()
{
+ createButton.setAttribute('disabled', 'disabled');
create();
+ createButton.removeAttribute('disabled');
});
createButton.className = 'geBtn gePrimaryBtn';
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index e4dd0c35..f01330a8 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -95,11 +95,23 @@
'# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n' +
'# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n' +
'#\n' +
- '## Node width. Possible value are px or auto. Default is auto.\n' +
+ '## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n' +
+ '## override this value.\n' +
+ '#\n' +
+ '# left: \n' +
+ '#\n' +
+ '## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n' +
+ '## override this value.\n' +
+ '#\n' +
+ '# top: \n' +
+ '#\n' +
+ '## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n' +
+ '## name that contains the value for the width. Default is auto.\n' +
'#\n' +
'# width: auto\n' +
'#\n' +
- '## Node height. Possible value are px or auto. Default is auto.\n' +
+ '## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n' +
+ '## name that contains the value for the height. Default is auto.\n' +
'#\n' +
'# height: auto\n' +
'#\n' +
@@ -619,7 +631,7 @@
this.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function(sender, evt)
{
- if (this.graph.mathEnabled)
+ if (this.graph.mathEnabled && this.graph.container.style.visibility != 'hidden')
{
Editor.MathJaxRender(this.graph.container);
}
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index d3d6ebe1..b426bdd2 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -9144,6 +9144,8 @@
var identity = null;
var width = 'auto';
var height = 'auto';
+ var left = null;
+ var top = null;
var edgespacing = 40;
var nodespacing = 40;
var padding = 0;
@@ -9159,7 +9161,7 @@
graph.scrollCellToVisible(graph.getSelectionCell());
};
- // Computes unscaled, untranslated graph bounds
+ // Computes unscaled, untranslated graph bounds
var pt = graph.getFreeInsertPoint();
var x0 = pt.x;
var y0 = pt.y;
@@ -9228,6 +9230,14 @@
{
height = value;
}
+ else if (key == 'left' && value.length > 0)
+ {
+ left = value;
+ }
+ else if (key == 'top' && value.length > 0)
+ {
+ top = value;
+ }
else if (key == 'ignore')
{
ignore = value.split(',');
@@ -9320,7 +9330,7 @@
for (var j = 0; j < values.length; j++)
{
- graph.setAttributeForCell(cell, keys[j], values[j]);
+ graph.setAttributeForCell(cell, keys[j], values[j]);
}
graph.setAttributeForCell(cell, 'placeholders', '1');
@@ -9343,9 +9353,38 @@
graph.fireEvent(new mxEventObject('cellsInserted', 'cells', [cell]));
var size = this.editor.graph.getPreferredSizeForCell(cell);
- cell.geometry.width = (width == 'auto') ? size.width + padding : parseFloat(width);
- cell.geometry.height = (height == 'auto') ? size.height + padding : parseFloat(height);
- y += cell.geometry.height + nodespacing;
+ if (cell.vertex)
+ {
+ if (left != null && cell.getAttribute(left) != null)
+ {
+ cell.geometry.x = x0 + parseFloat(cell.getAttribute(left));
+ }
+
+ if (top != null && cell.getAttribute(top) != null)
+ {
+ cell.geometry.y = y0 + parseFloat(cell.getAttribute(top));
+ }
+
+ if (width.charAt(0) == '@' && cell.getAttribute(width.substring(1)) != null)
+ {
+ cell.geometry.width = parseFloat(cell.getAttribute(width.substring(1)));
+ }
+ else
+ {
+ cell.geometry.width = (width == 'auto') ? size.width + padding : parseFloat(width);
+ }
+
+ if (height.charAt(0) == '@' && cell.getAttribute(height.substring(1)) != null)
+ {
+ cell.geometry.height = parseFloat(cell.getAttribute(height.substring(1)));
+ }
+ else
+ {
+ cell.geometry.height = (height == 'auto') ? size.height + padding : parseFloat(height);
+ }
+
+ y += cell.geometry.height + nodespacing;
+ }
cells.push(graph.addCell(cell));
}
diff --git a/src/main/webapp/js/diagramly/GraphViewer.js b/src/main/webapp/js/diagramly/GraphViewer.js
index 3d6f97b7..bab58fe9 100644
--- a/src/main/webapp/js/diagramly/GraphViewer.js
+++ b/src/main/webapp/js/diagramly/GraphViewer.js
@@ -406,7 +406,7 @@ GraphViewer.prototype.addSizeHandler = function()
updatingOverflow = true;
var tmp = this.graph.getGraphBounds();
- if (container.offsetWidth < tmp.width + this.graph.border)
+ if (container.offsetWidth <= tmp.width + 2 * this.graph.border * this.graph.view.scale)
{
container.style.overflow = 'auto';
}
@@ -504,7 +504,7 @@ GraphViewer.prototype.addSizeHandler = function()
if (this.graphConfig.resize || ((this.zoomEnabled || !this.autoFit) && this.graphConfig.resize != false))
{
- this.graph.minimumContainerSize = new mxRectangle(0, 0, 100, this.toolbarHeight);
+ this.graph.minimumContainerSize = new mxRectangle(0, 0, 100, 1);
this.graph.resizeContainer = true;
}
else
diff --git a/src/main/webapp/js/diagramly/Pages.js b/src/main/webapp/js/diagramly/Pages.js
index 6bb226c2..5458f39c 100644
--- a/src/main/webapp/js/diagramly/Pages.js
+++ b/src/main/webapp/js/diagramly/Pages.js
@@ -376,7 +376,7 @@ EditorUi.prototype.initPages = function()
if (typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
{
// Pending math should not be rendered if the graph has no math enabled
- if (!ignorePendingMath)
+ if (!ignorePendingMath && this.editor != null)
{
if (MathJax.Hub.queue.pending == 1 && !this.editor.graph.mathEnabled)
{
@@ -394,7 +394,7 @@ EditorUi.prototype.initPages = function()
}));
}
}
- else if (typeof(Editor.MathJaxClear) !== 'undefined' && !this.editor.graph.mathEnabled)
+ else if (typeof(Editor.MathJaxClear) !== 'undefined' && (this.editor == null || !this.editor.graph.mathEnabled))
{
// Clears our own queue for async loading
ignorePendingMath = true;
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js
index 34a28866..61cc0c29 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js
@@ -32,7 +32,9 @@
this.createVertexTemplateEntry(s2 + 'moon', w * 0.75, h, '', 'Moon', null, null, this.getTagsForStencil(gn, 'moon', dt).join(' ')),
this.createVertexTemplateEntry(s2 + 'no_symbol', w, h, '', 'No Symbol', null, null, this.getTagsForStencil(gn, 'no_symbol', dt).join(' ')),
this.createVertexTemplateEntry(s + 'octagon2;align=center;verticalAlign=middle;dx=15;', w, h, '', 'Octagon', null, null, this.getTagsForStencil(gn, 'octagon', dt).join(' ')),
- this.createVertexTemplateEntry(s2 + 'orthogonal_triangle', w, h, '', 'Orthogonal Triangle', null, null, this.getTagsForStencil(gn, 'orthogonal_triangle', dt).join(' ')),
+ this.createVertexTemplateEntry(s2 + 'orthogonal_triangle', w, h * 0.7, '', 'Orthogonal Triangle', null, null, this.getTagsForStencil(gn, 'orthogonal_triangle', dt).join(' ')),
+ this.createVertexTemplateEntry(s2 + 'acute_triangle;dx=0.5;', w, h * 0.7, '', 'Acute Triangle', null, null, this.getTagsForStencil(gn, 'acute_triangle', dt).join(' ')),
+ this.createVertexTemplateEntry(s2 + 'obtuse_triangle;dx=0.25;', w, h * 0.7, '', 'Obtuse Triangle', null, null, this.getTagsForStencil(gn, 'obtuse_triangle', dt).join(' ')),
this.createVertexTemplateEntry(s + 'oval_callout', w, h * 0.6, '', 'Oval Callout', null, null, this.getTagsForStencil(gn, 'oval_callout', dt).join(' ')),
this.createVertexTemplateEntry(s3 + 'parallelogram;whiteSpace=wrap;align=center;size=0.24;', w, h * 0.6, '', 'Parallelepiped', null, null, this.getTagsForStencil(gn, 'parallelepiped', dt).join(' ')),
this.createVertexTemplateEntry(s + 'pentagon', w, h * 0.9, '', 'Pentagon', null, null, this.getTagsForStencil(gn, 'pentagon', dt).join(' ')),
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js
new file mode 100644
index 00000000..d278f7f2
--- /dev/null
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js
@@ -0,0 +1,426 @@
+(function()
+{
+ // Adds Cisco Safe stencils
+ Sidebar.prototype.addCiscoSafePalette = function()
+ {
+ this.addCiscoSafeArchitecturePalette();
+ this.addCiscoSafeCapabilityPalette();
+ this.addCiscoSafeDesignPalette();
+ this.addCiscoSafeThreatPalette();
+ };
+
+ Sidebar.prototype.addCiscoSafeArchitecturePalette = function()
+ {
+ var w = 50;
+ var h = 50;
+ var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#6ABD46;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.architecture.';
+ var gn = 'mxgraph.cisco_safe.architecture';
+ var dt = 'cisco safe architecture';
+
+ this.addPaletteFunctions('cisco_safeArchitecture', 'Cisco Safe / Architecture', false,
+ [
+ this.createVertexTemplateEntry(s + 'aci_controller;',
+ w, h, '', 'ACI Controller', null, null, this.getTagsForStencil(gn, 'aci controller', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'aci_leaf_switch;',
+ w, h, '', 'ACI Leaf Switch', null, null, this.getTagsForStencil(gn, 'aci leaf switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'aci_spine_switch;',
+ w, h, '', 'ACI Spine Switch', null, null, this.getTagsForStencil(gn, 'aci spine switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'adaptive_security_appliance;',
+ w, h, '', 'Adaptive Security Appliance', null, null, this.getTagsForStencil(gn, 'adaptive security appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'automated_system;',
+ w, h, '', 'Automated System', null, null, this.getTagsForStencil(gn, 'automated system', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'blade_server;',
+ w, h, '', 'Blade Server', null, null, this.getTagsForStencil(gn, 'blade server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'catalyst_switch;',
+ w, h, '', 'Catalyst Switch', null, null, this.getTagsForStencil(gn, 'catalyst switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'corporate_device;',
+ w, h, '', 'Corporate Device', null, null, this.getTagsForStencil(gn, 'corporate device', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'email_security;',
+ w, h, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'fabric_switch;',
+ w, h, '', 'Fabric Switch', null, null, this.getTagsForStencil(gn, 'fabric switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'firepower_appliance;',
+ w, h, '', 'Firepower Appliance', null, null, this.getTagsForStencil(gn, 'firepower appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'firewall;',
+ w, h, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'generic_appliance;',
+ w, h, '', 'Generic Appliance', null, null, this.getTagsForStencil(gn, 'generic appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'intrusion_detection;',
+ w, h, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l3_switch;',
+ w, h, '', 'L3 Switch', null, null, this.getTagsForStencil(gn, 'l3 switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'load_balancer;',
+ w, h, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_1kv;',
+ w, h, '', 'Nexus 1kv', null, null, this.getTagsForStencil(gn, 'nexus 1kv', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_data_center_switch;',
+ w, h, '', 'Nexus Data Center Switch', null, null, this.getTagsForStencil(gn, 'nexus data center switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_fabric_switch;',
+ w, h, '', 'Nexus Fabric Switch', null, null, this.getTagsForStencil(gn, 'nexus fabric switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_switch;',
+ w, h, '', 'Nexus Switch', null, null, this.getTagsForStencil(gn, 'nexus switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'phone;',
+ w, h, '', 'Phone', null, null, this.getTagsForStencil(gn, 'phone', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'router;',
+ w, h, '', 'Router', null, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'secure_server;',
+ w, h, '', 'Secure Server', null, null, this.getTagsForStencil(gn, 'secure server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'server;',
+ w, h, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'stacked_switch;',
+ w, h, '', 'Stacked Switch', null, null, this.getTagsForStencil(gn, 'stacked switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'storage;',
+ w, h, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'switch;',
+ w, h, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'tls_appliance;',
+ w, h, '', 'TLS Appliance', null, null, this.getTagsForStencil(gn, 'tls appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'unified_access_switch;',
+ w, h, '', 'Unified Access Switch', null, null, this.getTagsForStencil(gn, 'unified access switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_application_firewall;',
+ w, h, '', 'Web Application Firewall', null, null, this.getTagsForStencil(gn, 'web application firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_security;',
+ w, h, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wide_area_application_engine;',
+ w, h, '', 'Wide Area Application Engine', null, null, this.getTagsForStencil(gn, 'wide area application engine', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_access_point;',
+ w, h, '', 'Wireless Access Point', null, null, this.getTagsForStencil(gn, 'wireless access point', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_lan_controller;',
+ w, h, '', 'Wireless LAN Controller', null, null, this.getTagsForStencil(gn, 'wireless lan controller', dt).join(' '))
+ ]);
+ };
+
+ Sidebar.prototype.addCiscoSafeCapabilityPalette = function()
+ {
+ var w = 50;
+ var h = 50;
+ var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#28A8E0;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.capability.';
+ var gn = 'mxgraph.cisco_safe.capability';
+ var dt = 'cisco safe capability';
+
+ this.addPaletteFunctions('cisco_safeCapability', 'Cisco Safe / Capability', false,
+ [
+ this.createVertexTemplateEntry(s + 'access_control_using_trustsec;',
+ w, h, '', 'Access Control Using TrustSec', null, null, this.getTagsForStencil(gn, 'access control using trustsec', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'analysis_correlation',
+ w, h, '', 'Analysis Correlation', null, null, this.getTagsForStencil(gn, 'analysis correlation', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'anomaly_detection;',
+ w, h, '', 'Anomaly Detection', null, null, this.getTagsForStencil(gn, 'anomaly detection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'anti_malware;',
+ w, h, '', 'Anti-Malware', null, null, this.getTagsForStencil(gn, 'anti malware', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'anti_spam;',
+ w, h, '', 'Anti-Spam', null, null, this.getTagsForStencil(gn, 'anti spam', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'anti_virus;',
+ w, h, '', 'Anti-Virus', null, null, this.getTagsForStencil(gn, 'anti virus', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'application;',
+ w, h, '', 'Application', null, null, this.getTagsForStencil(gn, 'application', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'application_visibility_control;',
+ w, h, '', 'Application Visibility Control', null, null, this.getTagsForStencil(gn, 'application visibility control', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'client_based_security;',
+ w, h, '', 'Client Based Security', null, null, this.getTagsForStencil(gn, 'client based security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'cloud_web_security;',
+ w, h, '', 'Cloud Web Security', null, null, this.getTagsForStencil(gn, 'cloud web security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'conference_bridge;',
+ w, h, '', 'Conference Bridge', null, null, this.getTagsForStencil(gn, 'conference bridge', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'database;',
+ w, h, '', 'Database', null, null, this.getTagsForStencil(gn, 'database', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'data_loss_prevention;',
+ w, h, '', 'Data Loss Prevention', null, null, this.getTagsForStencil(gn, 'data loss prevention', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'distributed_denial_of_service_protection;',
+ w, h, '', 'Distributed Denial of Service Protection', null, null, this.getTagsForStencil(gn, 'distributed denial of service protection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'dns;',
+ w, h, '', 'DNS', null, null, this.getTagsForStencil(gn, 'dns', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'email_encryption;',
+ w, h, '', 'Email Encryption', null, null, this.getTagsForStencil(gn, 'email encryption', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'email_security;',
+ w, h, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'fabric_switching;',
+ w, h, '', 'Fabric Switching', null, null, this.getTagsForStencil(gn, 'fabric switching', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'firewall;',
+ w, h, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'flow_analytics;',
+ w, h, '', 'Flow Analytics', null, null, this.getTagsForStencil(gn, 'flow analytics', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'identity_authorization;',
+ w, h, '', 'Identity Authorization', null, null, this.getTagsForStencil(gn, 'identity authorization', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'identity_authorization_alt;',
+ w, h, '', 'Identity Authorization (alternative)', null, null, this.getTagsForStencil(gn, 'identity authorization alt alternative', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'intrusion_detection;',
+ w, h, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'intrusion_prevention;',
+ w, h, '', 'Intrusion Prevention', null, null, this.getTagsForStencil(gn, 'intrusion prevention', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l2_l3_network;',
+ w, h, '', 'L2 L3 Network', null, null, this.getTagsForStencil(gn, 'l2 l3 network', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l2_l3_network_virtual;',
+ w, h, '', 'L2 L3 Network (virtual)', null, null, this.getTagsForStencil(gn, 'l2 l3 network virtual', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l2_switching;',
+ w, h, '', 'L2 Switching', null, null, this.getTagsForStencil(gn, 'l2 switching', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l3_switching;',
+ w, h, '', 'L3 Switching', null, null, this.getTagsForStencil(gn, 'l3 switching', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'load_balancer;',
+ w, h, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'logging_reporting;',
+ w, h, '', 'Logging Reporting', null, null, this.getTagsForStencil(gn, 'logging reporting', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'malware_sandbox;',
+ w, h, '', 'Malware Sandbox', null, null, this.getTagsForStencil(gn, 'malware sandbox', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'mobile_device_manager;',
+ w, h, '', 'Mobile Device Manager', null, null, this.getTagsForStencil(gn, 'mobile device manager', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'monitoring;',
+ w, h, '', 'Monitoring', null, null, this.getTagsForStencil(gn, 'monitoring', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'policy_configuration;',
+ w, h, '', 'Policy Configuration', null, null, this.getTagsForStencil(gn, 'policy configuration', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'posture_assesment;',
+ w, h, '', 'Posture Assesment', null, null, this.getTagsForStencil(gn, 'posture assesment', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'routing;',
+ w, h, '', 'Routing', null, null, this.getTagsForStencil(gn, 'routing', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'server_based_security;',
+ w, h, '', 'Server Based Security', null, null, this.getTagsForStencil(gn, 'server based security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'ssl_tls_offload;',
+ w, h, '', 'SSL TLS Offload', null, null, this.getTagsForStencil(gn, 'ssl tls offload', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'storage;',
+ w, h, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_intelligence;',
+ w, h, '', 'Threat Intelligence', null, null, this.getTagsForStencil(gn, 'threat intelligence', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'time_synchronization;',
+ w, h, '', 'Time Synchronization', null, null, this.getTagsForStencil(gn, 'time synchronization', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'user;',
+ w, h, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'video;',
+ w, h, '', 'Video', null, null, this.getTagsForStencil(gn, 'video', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'virtualized_capability;',
+ w, h, '', 'Virtualized Capability', null, null, this.getTagsForStencil(gn, 'virtualized capability', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'virtual_firewall;',
+ w, h, '', 'Virtual Firewall', null, null, this.getTagsForStencil(gn, 'virtual firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'virtual_l2_switching;',
+ w, h, '', 'Virtual L2 Switching', null, null, this.getTagsForStencil(gn, 'virtual l2 switching', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'virtual_private_network;',
+ w, h, '', 'Virtual Private Network', null, null, this.getTagsForStencil(gn, 'virtual private network vpn', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'voice;',
+ w, h, '', 'Voice', null, null, this.getTagsForStencil(gn, 'voice', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vpn_concentrator;',
+ w, h, '', 'VPN Concentrator', null, null, this.getTagsForStencil(gn, 'vpn concentrator virtual private network', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vulnerability_management;',
+ w, h, '', 'Vulnerability Management', null, null, this.getTagsForStencil(gn, 'vulnerability management', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_application_firewall;',
+ w, h, '', 'Web Application Firewall', null, null, this.getTagsForStencil(gn, 'web application firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_reputation_filtering_dcs;',
+ w, h, '', 'Web Reputation Filtering DCS', null, null, this.getTagsForStencil(gn, 'web reputation filtering dcs', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_security;',
+ w, h, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_connection;',
+ w, h, '', 'Wireless Connection', null, null, this.getTagsForStencil(gn, 'wireless connection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_intrusion_detection_system;',
+ w, h, '', 'Wireless Intrusion Detection System', null, null, this.getTagsForStencil(gn, 'wireless intrusion detection system', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_intrusion_prevention_system;',
+ w, h, '', 'Wireless Intrusion Prevention System', null, null, this.getTagsForStencil(gn, 'wireless intrusion prevention system', dt).join(' '))
+ ]);
+ };
+
+ Sidebar.prototype.addCiscoSafeDesignPalette = function()
+ {
+ var w = 50;
+ var h = 50;
+ var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#A153A0;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.design.';
+ var gn = 'mxgraph.cisco_safe.design';
+ var dt = 'cisco safe design';
+
+ this.addPaletteFunctions('cisco_safeDesign', 'Cisco Safe / Design', false,
+ [
+ this.createVertexTemplateEntry(s + 'access_point;',
+ w, h * 0.9, '', 'Access Point', null, null, this.getTagsForStencil(gn, 'access point', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'aci_controller;',
+ w, h * 0.9, '', 'ACI Controller', null, null, this.getTagsForStencil(gn, 'aci controller', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'aci_leaf_switch;',
+ w, h * 0.9, '', 'ACI Leaf Switch', null, null, this.getTagsForStencil(gn, 'aci leaf switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'aci_spine_switch;',
+ w, h * 0.9, '', 'ACI Spine Switch', null, null, this.getTagsForStencil(gn, 'aci spine switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'actor_1;',
+ w * 0.47, h, '', 'Actor (female)', null, null, this.getTagsForStencil(gn, 'actor female', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'actor_2;',
+ w * 0.38, h, '', 'Actor (male)', null, null, this.getTagsForStencil(gn, 'actor male', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'adaptive_security_appliance;',
+ w, h * 0.9, '', 'Adaptive Security Appliance', null, null, this.getTagsForStencil(gn, 'adaptive security appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'automated_system;',
+ w, h * 0.9, '', 'Automated System', null, null, this.getTagsForStencil(gn, 'automated system', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'blade_server;',
+ w, h * 0.9, '', 'Blade Server', null, null, this.getTagsForStencil(gn, 'blade server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'blank_device;',
+ w, h * 0.9, '', 'Blank Device', null, null, this.getTagsForStencil(gn, 'blank device', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'blank_service;',
+ w, h * 0.9, '', 'Blank Service', null, null, this.getTagsForStencil(gn, 'blank service', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'call_manager;',
+ w, h * 0.9, '', 'Call Manager', null, null, this.getTagsForStencil(gn, 'call manager', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'catalyst_data_center_switch;',
+ w, h * 0.9, '', 'Catalyst Data Center Switch', null, null, this.getTagsForStencil(gn, 'catalyst data center switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'catalyst_switch_stack;',
+ w, h * 0.9, '', 'Catalyst Switch Stack', null, null, this.getTagsForStencil(gn, 'catalyst switch stack', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'cisco_amp;',
+ w, h * 0.9, '', 'Cisco Amp', null, null, this.getTagsForStencil(gn, 'cisco amp amplifier', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'cisco_anyconnect;',
+ w, h * 0.9, '', 'Cisco AnyConnect', null, null, this.getTagsForStencil(gn, 'cisco anyconnect', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'cisco_cloud_web_security;',
+ w, h * 0.9, '', 'Cisco Cloud Web Security', null, null, this.getTagsForStencil(gn, 'cisco cloud web security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'client_firewall;',
+ w, h * 0.9, '', 'Client Firewall', null, null, this.getTagsForStencil(gn, 'client firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'corporate_device;',
+ w, h * 0.9, '', 'Corporate Device', null, null, this.getTagsForStencil(gn, 'corporate device', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'email_security;',
+ w, h * 0.9, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'encryption_offload;',
+ w, h * 0.9, '', 'Encryption Offload', null, null, this.getTagsForStencil(gn, 'encryption offload', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'fabric_switch;',
+ w, h * 0.9, '', 'Fabric Switch', null, null, this.getTagsForStencil(gn, 'fabric switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'firepower_appliance;',
+ w, h * 0.9, '', 'Firepower Appliance', null, null, this.getTagsForStencil(gn, 'firepower appliance', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'firewall;',
+ w, h * 0.9, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'intrusion_detection;',
+ w, h * 0.9, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l2_switch;',
+ w, h * 0.9, '', 'L2 Switch', null, null, this.getTagsForStencil(gn, 'l2 switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'l3_switch;',
+ w, h * 0.9, '', 'L3 Switch', null, null, this.getTagsForStencil(gn, 'l3 switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'load_balancer;',
+ w, h * 0.9, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'mobile_device;',
+ w, h * 0.9, '', 'Mobile Device', null, null, this.getTagsForStencil(gn, 'mobile device', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_1kv;',
+ w, h * 0.9, '', 'Nexus 1kv', null, null, this.getTagsForStencil(gn, 'nexus 1kv', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_data_center_switch;',
+ w, h * 0.9, '', 'Nexus Data Center Switch', null, null, this.getTagsForStencil(gn, 'nexus data center switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_fabric_switch;',
+ w, h * 0.9, '', 'Nexus Fabric Switch', null, null, this.getTagsForStencil(gn, 'nexus fabric switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'nexus_switch;',
+ w, h * 0.9, '', 'Nexus Switch', null, null, this.getTagsForStencil(gn, 'nexus switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'phone;',
+ w, h * 0.9, '', 'Phone', null, null, this.getTagsForStencil(gn, 'phone', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'radware;',
+ w, h * 0.9, '', 'Radware', null, null, this.getTagsForStencil(gn, 'radware', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'router;',
+ w, h * 0.9, '', 'Router', null, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'server_1;',
+ w, h * 0.9, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'server_2;',
+ w, h * 0.9, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'storage;',
+ w, h * 0.9, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'user;',
+ w, h, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'users;',
+ w, h, '', 'Users', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'virtual_secure_server;',
+ w, h * 0.9, '', 'Virtual Secure Server', null, null, this.getTagsForStencil(gn, 'virtual secure server', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vload_balancer;',
+ w, h * 0.9, '', 'vLoad Balancer', null, null, this.getTagsForStencil(gn, 'vload balancer', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vwaf_security;',
+ w, h * 0.9, '', 'vWAF Security', null, null, this.getTagsForStencil(gn, 'vwaf security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vweb_security;',
+ w, h * 0.9, '', 'vWeb Security', null, null, this.getTagsForStencil(gn, 'vweb security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'vwlan_controller;',
+ w, h * 0.9, '', 'vWLAN Controller', null, null, this.getTagsForStencil(gn, 'vwlan controller', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'web_security;',
+ w, h * 0.9, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_corporate_device;',
+ w, h * 0.9, '', 'Wireless Corporate Device', null, null, this.getTagsForStencil(gn, 'wireless corporate device', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wireless_switch;',
+ w, h * 0.9, '', 'Wireless Switch', null, null, this.getTagsForStencil(gn, 'wireless switch', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'wlan_controller;',
+ w, h * 0.9, '', 'WLAN Controller', null, null, this.getTagsForStencil(gn, 'wlan controller', dt).join(' '))
+ ]);
+ };
+
+ Sidebar.prototype.addCiscoSafeThreatPalette = function()
+ {
+ var w = 50;
+ var h = 50;
+ var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#F06650;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.threat.';
+ var gn = 'mxgraph.cisco_safe.threat';
+ var dt = 'cisco safe threat';
+
+ this.addPaletteFunctions('cisco_safeThreat', 'Cisco Safe / Threat', false,
+ [
+ this.createVertexTemplateEntry(s + 'threat_a1;',
+ w * 0.98, h, '', 'Threat A1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a2;',
+ w * 0.98, h, '', 'Threat A2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a3;',
+ w * 0.98, h, '', 'Threat A3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a4;',
+ w * 0.98, h, '', 'Threat A4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a5;',
+ w * 0.98, h, '', 'Threat A5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a6;',
+ w * 0.98, h, '', 'Threat A6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a7;',
+ w * 0.98, h, '', 'Threat A7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_a8;',
+ w * 0.98, h, '', 'Threat A8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b1;',
+ w * 0.63, h, '', 'Threat B1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b2;',
+ w * 0.63, h, '', 'Threat B2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b3;',
+ w * 0.63, h, '', 'Threat B3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b4;',
+ w * 0.63, h, '', 'Threat B4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b5;',
+ w * 0.63, h, '', 'Threat B5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b6;',
+ w * 0.63, h, '', 'Threat B6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b7;',
+ w * 0.63, h, '', 'Threat B7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_b8;',
+ w * 0.63, h, '', 'Threat B8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c1;',
+ w, h * 0.81, '', 'Threat C1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c2;',
+ w, h * 0.81, '', 'Threat C2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c3;',
+ w, h * 0.81, '', 'Threat C3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c4;',
+ w, h * 0.81, '', 'Threat C4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c5;',
+ w, h * 0.81, '', 'Threat C5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c6;',
+ w, h * 0.81, '', 'Threat C6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c7;',
+ w, h * 0.81, '', 'Threat C7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_c8;',
+ w, h * 0.81, '', 'Threat C8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d1;',
+ w * 0.93, h, '', 'Threat D1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d2;',
+ w * 0.93, h, '', 'Threat D2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d3;',
+ w * 0.93, h, '', 'Threat D3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d4;',
+ w * 0.93, h, '', 'Threat D4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d5;',
+ w * 0.93, h, '', 'Threat D5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d6;',
+ w * 0.93, h, '', 'Threat D6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d7;',
+ w * 0.93, h, '', 'Threat D7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_d8;',
+ w * 0.93, h, '', 'Threat D8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e1;',
+ w, h * 0.94, '', 'Threat E1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e2;',
+ w, h * 0.94, '', 'Threat E2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e3;',
+ w, h * 0.94, '', 'Threat E3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e4;',
+ w, h * 0.94, '', 'Threat E4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e5;',
+ w, h * 0.94, '', 'Threat E5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e6;',
+ w, h * 0.94, '', 'Threat E6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e7;',
+ w, h * 0.94, '', 'Threat E7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
+ this.createVertexTemplateEntry(s + 'threat_e8;',
+ w, h * 0.94, '', 'Threat E8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' '))
+ ]);
+ };
+
+
+
+})();
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar.js b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
index 386be64f..20f3cf33 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
@@ -63,6 +63,11 @@
/**
*
*/
+ Sidebar.prototype.cisco_safe = ['Architecture', 'Capability', 'Design', 'Threat'];
+
+ /**
+ *
+ */
Sidebar.prototype.sysml = ['Model Elements', 'Blocks', 'Ports and Flows', 'Constraint Blocks', 'Activities', 'Interactions', 'State Machines',
'Use Cases', 'Allocations', 'Requirements', 'Profiles', 'Stereotypes'];
@@ -137,6 +142,7 @@
{id: 'aws3', prefix: 'aws3', libs: Sidebar.prototype.aws3},
{id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids},
{id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco},
+ {id: 'cisco_safe', prefix: 'cisco_safe', libs: Sidebar.prototype.cisco_safe},
{id: 'office', prefix: 'office', libs: Sidebar.prototype.office},
{id: 'veeam', prefix: 'veeam', libs: Sidebar.prototype.veeam},
{id: 'cabinets', libs: ['cabinets']},
@@ -351,6 +357,7 @@
{title: mxResources.get('azure'), id: 'azure', image: IMAGE_PATH + '/sidebar-azure.png'},
{title: 'Cloud & Enterprise', id: 'mscae', image: IMAGE_PATH + '/sidebar-mscae.png'},
{title: mxResources.get('cisco'), id: 'cisco', image: IMAGE_PATH + '/sidebar-cisco.png'},
+ {title: 'Cisco Safe', id: 'cisco_safe', image: IMAGE_PATH + '/sidebar-cisco_safe.png'},
{title: 'Citrix', id: 'citrix', image: IMAGE_PATH + '/sidebar-citrix.png'},
{title: 'Google Cloud Platform', id: 'gcp', image: IMAGE_PATH + '/sidebar-gcp.png'},
{title: 'IBM', id: 'ibm', image: IMAGE_PATH + '/sidebar-ibm.png'},
@@ -631,6 +638,7 @@
var rack = this.rack;
var pids = this.pids;
var cisco = this.cisco;
+ var cisco_safe = this.cisco_safe;
var sysml = this.sysml;
var eip = this.eip;
var gmdl = this.gmdl;
@@ -937,6 +945,7 @@
';html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;', null, null, 1.6);
}
+ this.addCiscoSafePalette();
this.addFloorplanPalette();
this.addAtlassianPalette();
this.addBootstrapPalette();
diff --git a/src/main/webapp/js/dropbox/Dropbox-sdk.min.js b/src/main/webapp/js/dropbox/Dropbox-sdk.min.js
new file mode 100644
index 00000000..b750e1d4
--- /dev/null
+++ b/src/main/webapp/js/dropbox/Dropbox-sdk.min.js
@@ -0,0 +1,10 @@
+// From https://unpkg.com/dropbox@2.5.13/dist/Dropbox-sdk.min.js
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Dropbox=t():e.Dropbox=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){var n=r(14);e.exports=n},function(e,t,r){(function(t,n){/*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license Licensed under MIT license
+ * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+ * @version 4.1.1
+ */
+!function(t,r){e.exports=r()}(this,function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function i(e){return"function"==typeof e}function s(e){Q=e}function o(e){V=e}function u(){return function(){return t.nextTick(h)}}function a(){return"undefined"!=typeof W?function(){W(h)}:l()}function c(){var e=0,t=new Z(h),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=h,function(){return e.port2.postMessage(0)}}function l(){var e=setTimeout;return function(){return e(h,1)}}function h(){for(var e=0;e<$;e+=2){var t=re[e],r=re[e+1];t(r),re[e]=void 0,re[e+1]=void 0}$=0}function f(){try{var e=r(20);return W=e.runOnLoop||e.runOnContext,a()}catch(e){return l()}}function d(e,t){var r=arguments,n=this,i=new this.constructor(m);void 0===i[ie]&&U(i);var s=n._state;return s?!function(){var e=r[s-1];V(function(){return S(s,i,e,n._result)})}():C(n,i,e,t),i}function _(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var r=new t(m);return x(r,e),r}function m(){}function y(){return new TypeError("You cannot resolve a promise with itself")}function v(){return new TypeError("A promises callback cannot return that same promise.")}function g(e){try{return e.then}catch(e){return ae.error=e,ae}}function b(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}function q(e,t,r){V(function(e){var n=!1,i=b(r,t,function(r){n||(n=!0,t!==r?x(e,r):A(e,r))},function(t){n||(n=!0,E(e,t))},"Settle: "+(e._label||" unknown promise"));!n&&i&&(n=!0,E(e,i))},e)}function w(e,t){t._state===oe?A(e,t._result):t._state===ue?E(e,t._result):C(t,void 0,function(t){return x(e,t)},function(t){return E(e,t)})}function T(e,t,r){t.constructor===e.constructor&&r===d&&t.constructor.resolve===_?w(e,t):r===ae?(E(e,ae.error),ae.error=null):void 0===r?A(e,t):i(r)?q(e,t,r):A(e,t)}function x(t,r){t===r?E(t,y()):e(r)?T(t,r,g(r)):A(t,r)}function k(e){e._onerror&&e._onerror(e._result),R(e)}function A(e,t){e._state===se&&(e._result=t,e._state=oe,0!==e._subscribers.length&&V(R,e))}function E(e,t){e._state===se&&(e._state=ue,e._result=t,V(k,e))}function C(e,t,r,n){var i=e._subscribers,s=i.length;e._onerror=null,i[s]=t,i[s+oe]=r,i[s+ue]=n,0===s&&e._state&&V(R,e)}function R(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n=void 0,i=void 0,s=e._result,o=0;o<t.length;o+=3)n=t[o],i=t[o+r],n?S(r,n,i,s):i(s);e._subscribers.length=0}}function L(){this.error=null}function P(e,t){try{return e(t)}catch(e){return ce.error=e,ce}}function S(e,t,r,n){var s=i(r),o=void 0,u=void 0,a=void 0,c=void 0;if(s){if(o=P(r,n),o===ce?(c=!0,u=o.error,o.error=null):a=!0,t===o)return void E(t,v())}else o=n,a=!0;t._state!==se||(s&&a?x(t,o):c?E(t,u):e===oe?A(t,o):e===ue&&E(t,o))}function D(e,t){try{t(function(t){x(e,t)},function(t){E(e,t)})}catch(t){E(e,t)}}function O(){return pe++}function U(e){e[ie]=pe++,e._state=void 0,e._result=void 0,e._subscribers=[]}function F(e,t){this._instanceConstructor=e,this.promise=new e(m),this.promise[ie]||U(this.promise),J(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?A(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&A(this.promise,this._result))):E(this.promise,M())}function M(){return new Error("Array Methods must be provided an Array")}function j(e){return new F(this,e).promise}function G(e){var t=this;return new t(J(e)?function(r,n){for(var i=e.length,s=0;s<i;s++)t.resolve(e[s]).then(r,n)}:function(e,t){return t(new TypeError("You must pass an array to race."))})}function I(e){var t=this,r=new t(m);return E(r,e),r}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function z(e){this[ie]=O(),this._result=this._state=void 0,this._subscribers=[],m!==e&&("function"!=typeof e&&H(),this instanceof z?D(this,e):B())}function N(){var e=void 0;if("undefined"!=typeof n)e=n;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var r=null;try{r=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===r&&!t.cast)return}e.Promise=z}var X=void 0;X=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var J=X,$=0,W=void 0,Q=void 0,V=function(e,t){re[$]=e,re[$+1]=t,$+=2,2===$&&(Q?Q(h):ne())},K="undefined"!=typeof window?window:void 0,Y=K||{},Z=Y.MutationObserver||Y.WebKitMutationObserver,ee="undefined"==typeof self&&"undefined"!=typeof t&&"[object process]"==={}.toString.call(t),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,re=new Array(1e3),ne=void 0;ne=ee?u():Z?c():te?p():void 0===K?f():l();var ie=Math.random().toString(36).substring(16),se=void 0,oe=1,ue=2,ae=new L,ce=new L,pe=0;return F.prototype._enumerate=function(e){for(var t=0;this._state===se&&t<e.length;t++)this._eachEntry(e[t],t)},F.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,n=r.resolve;if(n===_){var i=g(e);if(i===d&&e._state!==se)this._settledAt(e._state,t,e._result);else if("function"!=typeof i)this._remaining--,this._result[t]=e;else if(r===z){var s=new r(m);T(s,e,i),this._willSettleAt(s,t)}else this._willSettleAt(new r(function(t){return t(e)}),t)}else this._willSettleAt(n(e),t)},F.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===se&&(this._remaining--,e===ue?E(n,r):this._result[t]=r),0===this._remaining&&A(n,this._result)},F.prototype._willSettleAt=function(e,t){var r=this;C(e,void 0,function(e){return r._settledAt(oe,t,e)},function(e){return r._settledAt(ue,t,e)})},z.all=j,z.race=G,z.resolve=_,z.reject=I,z._setScheduler=s,z._setAsap=o,z._asap=V,z.prototype={constructor:z,then:d,catch:function(e){return this.then(null,e)}},z.polyfill=N,z.Promise=z,z})}).call(t,r(8),function(){return this}())},function(e,t,r){function n(){}function i(e){if(!_(e))return e;var t=[];for(var r in e)s(t,r,e[r]);return t.join("&")}function s(e,t,r){if(null!=r)if(Array.isArray(r))r.forEach(function(r){s(e,t,r)});else if(_(r))for(var n in r)s(e,t+"["+n+"]",r[n]);else e.push(encodeURIComponent(t)+"="+encodeURIComponent(r));else null===r&&e.push(encodeURIComponent(t))}function o(e){for(var t,r,n={},i=e.split("&"),s=0,o=i.length;s<o;++s)t=i[s],r=t.indexOf("="),r==-1?n[decodeURIComponent(t)]="":n[decodeURIComponent(t.slice(0,r))]=decodeURIComponent(t.slice(r+1));return n}function u(e){for(var t,r,n,i,s=e.split(/\r?\n/),o={},u=0,a=s.length;u<a;++u)r=s[u],t=r.indexOf(":"),t!==-1&&(n=r.slice(0,t).toLowerCase(),i=g(r.slice(t+1)),o[n]=i);return o}function a(e){return/[\/+]json($|[^-\w])/.test(e)}function c(e){this.req=e,this.xhr=this.req.xhr,this.text="HEAD"!=this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||"undefined"==typeof this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText;var t=this.xhr.status;1223===t&&(t=204),this._setStatusProperties(t),this.header=this.headers=u(this.xhr.getAllResponseHeaders()),this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this._setHeaderProperties(this.header),null===this.text&&e._responseType?this.body=this.xhr.response:this.body="HEAD"!=this.req.method?this._parseBody(this.text?this.text:this.xhr.response):null}function p(e,t){var r=this;this._query=this._query||[],this.method=e,this.url=t,this.header={},this._header={},this.on("end",function(){var e=null,t=null;try{t=new c(r)}catch(t){return e=new Error("Parser is unable to parse the response"),e.parse=!0,e.original=t,r.xhr?(e.rawResponse="undefined"==typeof r.xhr.responseType?r.xhr.responseText:r.xhr.response,e.status=r.xhr.status?r.xhr.status:null,e.statusCode=e.status):(e.rawResponse=null,e.status=null),r.callback(e)}r.emit("response",t);var n;try{r._isResponseOK(t)||(n=new Error(t.statusText||"Unsuccessful HTTP response"))}catch(e){n=e}n?(n.original=e,n.response=t,n.status=t.status,r.callback(n,t)):r.callback(null,t)})}function l(e,t,r){var n=v("DELETE",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n}var h;"undefined"!=typeof window?h=window:"undefined"!=typeof self?h=self:(console.warn("Using browser-only version of superagent in non-browser environment"),h=this);var f=r(7),d=r(10),_=r(4),m=r(11),y=r(9),v=t=e.exports=function(e,r){return"function"==typeof r?new t.Request("GET",e).end(r):1==arguments.length?new t.Request("GET",e):new t.Request(e,r)};t.Request=p,v.getXHR=function(){if(!(!h.XMLHttpRequest||h.location&&"file:"==h.location.protocol&&h.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only version of superagent could not find XHR")};var g="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};v.serializeObject=i,v.parseString=o,v.types={html:"text/html",json:"application/json",xml:"text/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},v.serialize={"application/x-www-form-urlencoded":i,"application/json":JSON.stringify},v.parse={"application/x-www-form-urlencoded":o,"application/json":JSON.parse},m(c.prototype),c.prototype._parseBody=function(e){var t=v.parse[this.type];return this.req._parser?this.req._parser(this,e):(!t&&a(this.type)&&(t=v.parse["application/json"]),t&&e&&(e.length||e instanceof Object)?t(e):null)},c.prototype.toError=function(){var e=this.req,t=e.method,r=e.url,n="cannot "+t+" "+r+" ("+this.status+")",i=new Error(n);return i.status=this.status,i.method=t,i.url=r,i},v.Response=c,f(p.prototype),d(p.prototype),p.prototype.type=function(e){return this.set("Content-Type",v.types[e]||e),this},p.prototype.accept=function(e){return this.set("Accept",v.types[e]||e),this},p.prototype.auth=function(e,t,r){1===arguments.length&&(t=""),"object"==typeof t&&null!==t&&(r=t,t=""),r||(r={type:"function"==typeof btoa?"basic":"auto"});var n=function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(e,t,r,n)},p.prototype.query=function(e){return"string"!=typeof e&&(e=i(e)),e&&this._query.push(e),this},p.prototype.attach=function(e,t,r){if(t){if(this._data)throw Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,r||t.name)}return this},p.prototype._getFormData=function(){return this._formData||(this._formData=new h.FormData),this._formData},p.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var r=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),r(e,t)},p.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},p.prototype.buffer=p.prototype.ca=p.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},p.prototype.pipe=p.prototype.write=function(){throw Error("Streaming is not supported in browser version of superagent")},p.prototype._isHost=function(e){return e&&"object"==typeof e&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},p.prototype.end=function(e){return this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||n,this._finalizeQueryString(),this._end()},p.prototype._end=function(){var e=this,t=this.xhr=v.getXHR(),r=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var r=t.readyState;if(r>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4==r){var n;try{n=t.status}catch(e){n=0}if(!n){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var n=function(t,r){r.total>0&&(r.percent=r.loaded/r.total*100),r.direction=t,e.emit("progress",r)};if(this.hasListeners("progress"))try{t.onprogress=n.bind(null,"download"),t.upload&&(t.upload.onprogress=n.bind(null,"upload"))}catch(e){}try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof r&&!this._isHost(r)){var i=this._header["content-type"],s=this._serializer||v.serialize[i?i.split(";")[0]:""];!s&&a(i)&&(s=v.serialize["application/json"]),s&&(r=s(r))}for(var o in this.header)null!=this.header[o]&&this.header.hasOwnProperty(o)&&t.setRequestHeader(o,this.header[o]);return this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send("undefined"!=typeof r?r:null),this},v.agent=function(){return new y},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach(function(e){y.prototype[e.toLowerCase()]=function(t,r){var n=new v.Request(e,t);return this._setDefaults(n),r&&n.end(r),n}}),y.prototype.del=y.prototype.delete,v.get=function(e,t,r){var n=v("GET",e);return"function"==typeof t&&(r=t,t=null),t&&n.query(t),r&&n.end(r),n},v.head=function(e,t,r){var n=v("HEAD",e);return"function"==typeof t&&(r=t,t=null),t&&n.query(t),r&&n.end(r),n},v.options=function(e,t,r){var n=v("OPTIONS",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.del=l,v.delete=l,v.patch=function(e,t,r){var n=v("PATCH",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.post=function(e,t,r){var n=v("POST",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.put=function(e,t,r){var n=v("PUT",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n}},function(e,t){function r(e){return"https://"+e+".dropboxapi.com/2/"}e.exports=r},function(e,t){"use strict";function r(e){return null!==e&&"object"==typeof e}e.exports=r},function(e,t){function r(e){return JSON.stringify(e).replace(n,function(e){return"\\u"+("000"+e.charCodeAt(0).toString(16)).slice(-4)})}var n=/[\u007f-\uffff]/g;e.exports=r},function(e,t,r){var n,i=r(16);r(15),n=function(e){e=e||{},this.accessToken=e.accessToken,this.clientId=e.clientId,this.selectUser=e.selectUser},n.prototype.setAccessToken=function(e){this.accessToken=e},n.prototype.getAccessToken=function(){return this.accessToken},n.prototype.setClientId=function(e){this.clientId=e},n.prototype.getClientId=function(){return this.clientId},n.prototype.getAuthenticationUrl=function(e,t){var r,n="https://www.dropbox.com/oauth2/authorize",i=this.getClientId();if(!i)throw new Error("A client id is required. You can set the client id using .setClientId().");if(!e)throw new Error("A redirect uri is required.");return r=n+"?response_type=token&client_id="+i,e&&(r=r+"&redirect_uri="+e),t&&(r=r+"&state="+t),r},n.prototype.authenticateWithCordova=function(e,t){var r="https://www.dropbox.com/1/oauth2/redirect_receiver",n=this.getAuthenticationUrl(r),i=window.open(n,"_blank"),s=!1,o=function(e){window.setTimeout(function(){i.close()},10),t()},u=function(r){var n="&error=",s=r.url.indexOf(n);if(s>-1)window.setTimeout(function(){i.close()},10),t();else{var o="#access_token=",u=r.url.indexOf(o),a=r.url.indexOf("&token_type=");if(u>-1){u+=o.length,window.setTimeout(function(){i.close()},10);var c=r.url.substring(u,a);e(c)}}},a=function(e){s||(i.removeEventListener("loaderror",o),i.removeEventListener("loadstop",u),i.removeEventListener("exit",a),s=!0)};i.addEventListener("loaderror",o),i.addEventListener("loadstop",u),i.addEventListener("exit",a)},n.prototype.request=function(e,t,r,n,s){var o=null;switch(s){case i.RPC:o=this.getRpcRequest();break;case i.DOWNLOAD:o=this.getDownloadRequest();break;case i.UPLOAD:o=this.getUploadRequest();break;default:throw new Error("Invalid request style: "+s)}return o(e,t,r,n,this.getAccessToken(),this.selectUser)},n.prototype.setRpcRequest=function(e){n.prototype.rpcRequest=e},n.prototype.getRpcRequest=function(){return void 0===n.prototype.rpcRequest&&(n.prototype.rpcRequest=r(18)),n.prototype.rpcRequest},n.prototype.setDownloadRequest=function(e){n.prototype.downloadRequest=e},n.prototype.getDownloadRequest=function(){return void 0===n.prototype.downloadRequest&&(n.prototype.downloadRequest=r(13)),n.prototype.downloadRequest},n.prototype.setUploadRequest=function(e){n.prototype.uploadRequest=e},n.prototype.getUploadRequest=function(){return void 0===n.prototype.uploadRequest&&(n.prototype.uploadRequest=r(19)),n.prototype.uploadRequest},e.exports=n},function(e,t,r){function n(e){if(e)return i(e)}function i(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},n.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var n,i=0;i<r.length;i++)if(n=r[i],n===t||n.fn===t){r.splice(i,1);break}return this},n.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),r=this._callbacks["$"+e];if(r){r=r.slice(0);for(var n=0,i=r.length;n<i;++n)r[n].apply(this,t)}return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function s(e){if(l===clearTimeout)return clearTimeout(e);if((l===n||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function o(){_&&f&&(_=!1,f.length?d=f.concat(d):m=-1,d.length&&u())}function u(){if(!_){var e=i(o);_=!0;for(var t=d.length;t;){for(f=d,d=[];++m<t;)f&&f[m].run();m=-1,t=d.length}f=null,_=!1,s(e)}}function a(e,t){this.fun=e,this.array=t}function c(){}var p,l,h=e.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{l="function"==typeof clearTimeout?clearTimeout:n}catch(e){l=n}}();var f,d=[],_=!1,m=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];d.push(new a(e,t)),1!==d.length||_||i(u)},a.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=c,h.addListener=c,h.once=c,h.off=c,h.removeListener=c,h.removeAllListeners=c,h.emit=c,h.prependListener=c,h.prependOnceListener=c,h.listeners=function(e){return[]},h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},function(e,t){function r(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert"].forEach(function(e){r.prototype[e]=function(){return this._defaults.push({fn:e,arguments:arguments}),this}}),r.prototype._setDefaults=function(e){this._defaults.forEach(function(t){e[t.fn].apply(e,t.arguments)})},e.exports=r},function(e,t,r){"use strict";function n(e){if(e)return i(e)}function i(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}var s=r(4);e.exports=n,n.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,this},n.prototype.parse=function(e){return this._parser=e,this},n.prototype.responseType=function(e){return this._responseType=e,this},n.prototype.serialize=function(e){return this._serializer=e,this},n.prototype.timeout=function(e){if(!e||"object"!=typeof e)return this._timeout=e,this._responseTimeout=0,this;for(var t in e)switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;default:console.warn("Unknown timeout option",t)}return this},n.prototype.retry=function(e,t){return 0!==arguments.length&&e!==!0||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var o=["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT"];n.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var r=this._retryCallback(e,t);if(r===!0)return!0;if(r===!1)return!1}catch(e){console.error(e)}if(t&&t.status&&t.status>=500&&501!=t.status)return!0;if(e){if(e.code&&~o.indexOf(e.code))return!0;if(e.timeout&&"ECONNABORTED"==e.code)return!0;if(e.crossDomain)return!0}return!1},n.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},n.prototype.then=function(e,t){if(!this._fullfilledPromise){var r=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(e,t){r.end(function(r,n){r?t(r):e(n)})})}return this._fullfilledPromise.then(e,t)},n.prototype.catch=function(e){return this.then(void 0,e)},n.prototype.use=function(e){return e(this),this},n.prototype.ok=function(e){if("function"!=typeof e)throw Error("Callback required");return this._okCallback=e,this},n.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},n.prototype.get=function(e){return this._header[e.toLowerCase()]},n.prototype.getHeader=n.prototype.get,n.prototype.set=function(e,t){if(s(e)){for(var r in e)this.set(r,e[r]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},n.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},n.prototype.field=function(e,t){if(null===e||void 0===e)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),s(e)){for(var r in e)this.field(r,e[r]);return this}if(Array.isArray(t)){for(var n in t)this.field(e,t[n]);return this}if(null===t||void 0===t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=""+t),this._getFormData().append(e,t),this},n.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},n.prototype._auth=function(e,t,r,n){switch(r.type){case"basic":this.set("Authorization","Basic "+n(e+":"+t));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer "+e)}return this},n.prototype.withCredentials=function(e){return void 0==e&&(e=!0),this._withCredentials=e,this},n.prototype.redirects=function(e){return this._maxRedirects=e,this},n.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw TypeError("Invalid argument");return this._maxResponseSize=e,this},n.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},n.prototype.send=function(e){var t=s(e),r=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&s(this._data))for(var n in e)this._data[n]=e[n];else"string"==typeof e?(r||this.type("form"),r=this._header["content-type"],"application/x-www-form-urlencoded"==r?this._data=this._data?this._data+"&"+e:e:this._data=(this._data||"")+e):this._data=e;return!t||this._isHost(e)?this:(r||this.type("json"),this)},n.prototype.sortQuery=function(e){return this._sort="undefined"==typeof e||e,this},n.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.indexOf("?")>=0?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var r=this.url.substring(t+1).split("&");"function"==typeof this._sort?r.sort(this._sort):r.sort(),this.url=this.url.substring(0,t)+"?"+r.join("&")}}},n.prototype._appendQueryString=function(){console.trace("Unsupported")},n.prototype._timeoutError=function(e,t,r){if(!this._aborted){var n=new Error(e+t+"ms exceeded");n.timeout=t,n.code="ECONNABORTED",n.errno=r,this.timedout=!0,this.abort(),this.callback(n)}},n.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},function(e,t,r){"use strict";function n(e){if(e)return i(e)}function i(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}var s=r(12);e.exports=n,n.prototype.get=function(e){return this.header[e.toLowerCase()]},n.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=s.type(t);var r=s.params(t);for(var n in r)this[n]=r[n];this.links={};try{e.link&&(this.links=s.parseLinks(e.link))}catch(e){}},n.prototype._setStatusProperties=function(e){var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.redirect=3==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.forbidden=403==e,this.notFound=404==e}},function(e,t){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var r=t.split(/ *= */),n=r.shift(),i=r.shift();return n&&i&&(e[n]=i),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var r=t.split(/ *; */),n=r[0].slice(1,-1),i=r[1].split(/ *= */)[1].slice(1,-1);return e[i]=n,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},function(e,t,r){var n,i,s,o=r(2),u=r(1).Promise,a=r(3),c=r(5);o.parse["application/octect-stream"]=function(e){return e},n=function(e,t){return{status:e.status,error:(t?t.text:null)||e.toString(),response:t}},s=function(e,t){e.text="",e.setEncoding("binary"),e.on("data",function(t){e.text+=t}),e.on("end",function(){t()})},i=function(e,t,r,i,p,l){if("user"!==r)throw new Error("Unexpected auth type: "+r);var h=function(r,u){function h(e){r&&r(e)}function f(e){u&&u(e)}function d(e,t){var r;e?f(n(e,t)):(r=JSON.parse(t.headers["dropbox-api-result"]),t.xhr?r.fileBlob=t.xhr.response:r.fileBinary=t.res.text,h(r))}var _;_=o.post(a(i)+e).set("Authorization","Bearer "+p).set("Dropbox-API-Arg",c(t)).on("request",function(){this.xhr&&(this.xhr.responseType="blob")}),l&&(_=_.set("Dropbox-API-Select-User",l)),"undefined"==typeof window?_.buffer(!0).parse(s).end(d):_.end(d)};return new u(h)},e.exports=i},function(e,t,r){var n,i=r(6),s=r(17);n=function(e){i.call(this,e)},n.prototype=Object.create(i.prototype),n.prototype.constructor=n,n.prototype=Object.assign(n.prototype,s),n.prototype.filesGetSharedLinkFile=function(e){return this.request("sharing/get_shared_link_file",e,"api","download")},e.exports=n},function(e,t){"function"!=typeof Object.assign&&!function(){Object.assign=function(e){"use strict";var t,r,n,i;if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(t=Object(e),r=1;r<arguments.length;r++)if(n=arguments[r],void 0!==n&&null!==n)for(i in n)n.hasOwnProperty(i)&&(t[i]=n[i]);return t}}()},function(e,t){var r={RPC:"rpc",DOWNLOAD:"download",UPLOAD:"upload"};e.exports=r},function(e,t){var r={};r.authTokenFromOauth1=function(e){return this.request("auth/token/from_oauth1",e,"app","api","rpc")},r.authTokenRevoke=function(e){return this.request("auth/token/revoke",e,"user","api","rpc")},r.filePropertiesPropertiesAdd=function(e){return this.request("file_properties/properties/add",e,"user","api","rpc")},r.filePropertiesPropertiesOverwrite=function(e){return this.request("file_properties/properties/overwrite",e,"user","api","rpc")},r.filePropertiesPropertiesRemove=function(e){return this.request("file_properties/properties/remove",e,"user","api","rpc")},r.filePropertiesPropertiesSearch=function(e){return this.request("file_properties/properties/search",e,"user","api","rpc")},r.filePropertiesPropertiesSearchContinue=function(e){return this.request("file_properties/properties/search/continue",e,"user","api","rpc")},r.filePropertiesPropertiesUpdate=function(e){return this.request("file_properties/properties/update",e,"user","api","rpc")},r.filePropertiesTemplatesAddForTeam=function(e){return this.request("file_properties/templates/add_for_team",e,"team","api","rpc")},r.filePropertiesTemplatesAddForUser=function(e){return this.request("file_properties/templates/add_for_user",e,"user","api","rpc")},r.filePropertiesTemplatesGetForTeam=function(e){return this.request("file_properties/templates/get_for_team",e,"team","api","rpc")},r.filePropertiesTemplatesGetForUser=function(e){return this.request("file_properties/templates/get_for_user",e,"user","api","rpc")},r.filePropertiesTemplatesListForTeam=function(e){return this.request("file_properties/templates/list_for_team",e,"team","api","rpc")},r.filePropertiesTemplatesListForUser=function(e){return this.request("file_properties/templates/list_for_user",e,"user","api","rpc")},r.filePropertiesTemplatesRemoveForTeam=function(e){return this.request("file_properties/templates/remove_for_team",e,"team","api","rpc")},r.filePropertiesTemplatesRemoveForUser=function(e){return this.request("file_properties/templates/remove_for_user",e,"user","api","rpc")},r.filePropertiesTemplatesUpdateForTeam=function(e){return this.request("file_properties/templates/update_for_team",e,"team","api","rpc")},r.filePropertiesTemplatesUpdateForUser=function(e){return this.request("file_properties/templates/update_for_user",e,"user","api","rpc")},r.fileRequestsCreate=function(e){return this.request("file_requests/create",e,"user","api","rpc")},r.fileRequestsGet=function(e){return this.request("file_requests/get",e,"user","api","rpc")},r.fileRequestsList=function(e){return this.request("file_requests/list",e,"user","api","rpc")},r.fileRequestsUpdate=function(e){return this.request("file_requests/update",e,"user","api","rpc")},r.filesAlphaGetMetadata=function(e){return this.request("files/alpha/get_metadata",e,"user","api","rpc");
+},r.filesAlphaUpload=function(e){return this.request("files/alpha/upload",e,"user","content","upload")},r.filesCopy=function(e){return this.request("files/copy",e,"user","api","rpc")},r.filesCopyBatch=function(e){return this.request("files/copy_batch",e,"user","api","rpc")},r.filesCopyBatchCheck=function(e){return this.request("files/copy_batch/check",e,"user","api","rpc")},r.filesCopyReferenceGet=function(e){return this.request("files/copy_reference/get",e,"user","api","rpc")},r.filesCopyReferenceSave=function(e){return this.request("files/copy_reference/save",e,"user","api","rpc")},r.filesCopyV2=function(e){return this.request("files/copy_v2",e,"user","api","rpc")},r.filesCreateFolder=function(e){return this.request("files/create_folder",e,"user","api","rpc")},r.filesCreateFolderV2=function(e){return this.request("files/create_folder_v2",e,"user","api","rpc")},r.filesDelete=function(e){return this.request("files/delete",e,"user","api","rpc")},r.filesDeleteBatch=function(e){return this.request("files/delete_batch",e,"user","api","rpc")},r.filesDeleteBatchCheck=function(e){return this.request("files/delete_batch/check",e,"user","api","rpc")},r.filesDeleteV2=function(e){return this.request("files/delete_v2",e,"user","api","rpc")},r.filesDownload=function(e){return this.request("files/download",e,"user","content","download")},r.filesDownloadZip=function(e){return this.request("files/download_zip",e,"user","content","download")},r.filesGetMetadata=function(e){return this.request("files/get_metadata",e,"user","api","rpc")},r.filesGetPreview=function(e){return this.request("files/get_preview",e,"user","content","download")},r.filesGetTemporaryLink=function(e){return this.request("files/get_temporary_link",e,"user","api","rpc")},r.filesGetThumbnail=function(e){return this.request("files/get_thumbnail",e,"user","content","download")},r.filesGetThumbnailBatch=function(e){return this.request("files/get_thumbnail_batch",e,"user","content","rpc")},r.filesListFolder=function(e){return this.request("files/list_folder",e,"user","api","rpc")},r.filesListFolderContinue=function(e){return this.request("files/list_folder/continue",e,"user","api","rpc")},r.filesListFolderGetLatestCursor=function(e){return this.request("files/list_folder/get_latest_cursor",e,"user","api","rpc")},r.filesListFolderLongpoll=function(e){return this.request("files/list_folder/longpoll",e,"noauth","notify","rpc")},r.filesListRevisions=function(e){return this.request("files/list_revisions",e,"user","api","rpc")},r.filesMove=function(e){return this.request("files/move",e,"user","api","rpc")},r.filesMoveBatch=function(e){return this.request("files/move_batch",e,"user","api","rpc")},r.filesMoveBatchCheck=function(e){return this.request("files/move_batch/check",e,"user","api","rpc")},r.filesMoveV2=function(e){return this.request("files/move_v2",e,"user","api","rpc")},r.filesPermanentlyDelete=function(e){return this.request("files/permanently_delete",e,"user","api","rpc")},r.filesPropertiesAdd=function(e){return this.request("files/properties/add",e,"user","api","rpc")},r.filesPropertiesOverwrite=function(e){return this.request("files/properties/overwrite",e,"user","api","rpc")},r.filesPropertiesRemove=function(e){return this.request("files/properties/remove",e,"user","api","rpc")},r.filesPropertiesTemplateGet=function(e){return this.request("files/properties/template/get",e,"user","api","rpc")},r.filesPropertiesTemplateList=function(e){return this.request("files/properties/template/list",e,"user","api","rpc")},r.filesPropertiesUpdate=function(e){return this.request("files/properties/update",e,"user","api","rpc")},r.filesRestore=function(e){return this.request("files/restore",e,"user","api","rpc")},r.filesSaveUrl=function(e){return this.request("files/save_url",e,"user","api","rpc")},r.filesSaveUrlCheckJobStatus=function(e){return this.request("files/save_url/check_job_status",e,"user","api","rpc")},r.filesSearch=function(e){return this.request("files/search",e,"user","api","rpc")},r.filesUpload=function(e){return this.request("files/upload",e,"user","content","upload")},r.filesUploadSessionAppend=function(e){return this.request("files/upload_session/append",e,"user","content","upload")},r.filesUploadSessionAppendV2=function(e){return this.request("files/upload_session/append_v2",e,"user","content","upload")},r.filesUploadSessionFinish=function(e){return this.request("files/upload_session/finish",e,"user","content","upload")},r.filesUploadSessionFinishBatch=function(e){return this.request("files/upload_session/finish_batch",e,"user","api","rpc")},r.filesUploadSessionFinishBatchCheck=function(e){return this.request("files/upload_session/finish_batch/check",e,"user","api","rpc")},r.filesUploadSessionStart=function(e){return this.request("files/upload_session/start",e,"user","content","upload")},r.paperDocsArchive=function(e){return this.request("paper/docs/archive",e,"user","api","rpc")},r.paperDocsCreate=function(e){return this.request("paper/docs/create",e,"user","api","upload")},r.paperDocsDownload=function(e){return this.request("paper/docs/download",e,"user","api","download")},r.paperDocsFolderUsersList=function(e){return this.request("paper/docs/folder_users/list",e,"user","api","rpc")},r.paperDocsFolderUsersListContinue=function(e){return this.request("paper/docs/folder_users/list/continue",e,"user","api","rpc")},r.paperDocsGetFolderInfo=function(e){return this.request("paper/docs/get_folder_info",e,"user","api","rpc")},r.paperDocsList=function(e){return this.request("paper/docs/list",e,"user","api","rpc")},r.paperDocsListContinue=function(e){return this.request("paper/docs/list/continue",e,"user","api","rpc")},r.paperDocsPermanentlyDelete=function(e){return this.request("paper/docs/permanently_delete",e,"user","api","rpc")},r.paperDocsSharingPolicyGet=function(e){return this.request("paper/docs/sharing_policy/get",e,"user","api","rpc")},r.paperDocsSharingPolicySet=function(e){return this.request("paper/docs/sharing_policy/set",e,"user","api","rpc")},r.paperDocsUpdate=function(e){return this.request("paper/docs/update",e,"user","api","upload")},r.paperDocsUsersAdd=function(e){return this.request("paper/docs/users/add",e,"user","api","rpc")},r.paperDocsUsersList=function(e){return this.request("paper/docs/users/list",e,"user","api","rpc")},r.paperDocsUsersListContinue=function(e){return this.request("paper/docs/users/list/continue",e,"user","api","rpc")},r.paperDocsUsersRemove=function(e){return this.request("paper/docs/users/remove",e,"user","api","rpc")},r.sharingAddFileMember=function(e){return this.request("sharing/add_file_member",e,"user","api","rpc")},r.sharingAddFolderMember=function(e){return this.request("sharing/add_folder_member",e,"user","api","rpc")},r.sharingChangeFileMemberAccess=function(e){return this.request("sharing/change_file_member_access",e,"user","api","rpc")},r.sharingCheckJobStatus=function(e){return this.request("sharing/check_job_status",e,"user","api","rpc")},r.sharingCheckRemoveMemberJobStatus=function(e){return this.request("sharing/check_remove_member_job_status",e,"user","api","rpc")},r.sharingCheckShareJobStatus=function(e){return this.request("sharing/check_share_job_status",e,"user","api","rpc")},r.sharingCreateSharedLink=function(e){return this.request("sharing/create_shared_link",e,"user","api","rpc")},r.sharingCreateSharedLinkWithSettings=function(e){return this.request("sharing/create_shared_link_with_settings",e,"user","api","rpc")},r.sharingGetFileMetadata=function(e){return this.request("sharing/get_file_metadata",e,"user","api","rpc")},r.sharingGetFileMetadataBatch=function(e){return this.request("sharing/get_file_metadata/batch",e,"user","api","rpc")},r.sharingGetFolderMetadata=function(e){return this.request("sharing/get_folder_metadata",e,"user","api","rpc")},r.sharingGetSharedLinkFile=function(e){return this.request("sharing/get_shared_link_file",e,"user","content","download")},r.sharingGetSharedLinkMetadata=function(e){return this.request("sharing/get_shared_link_metadata",e,"user","api","rpc")},r.sharingGetSharedLinks=function(e){return this.request("sharing/get_shared_links",e,"user","api","rpc")},r.sharingListFileMembers=function(e){return this.request("sharing/list_file_members",e,"user","api","rpc")},r.sharingListFileMembersBatch=function(e){return this.request("sharing/list_file_members/batch",e,"user","api","rpc")},r.sharingListFileMembersContinue=function(e){return this.request("sharing/list_file_members/continue",e,"user","api","rpc")},r.sharingListFolderMembers=function(e){return this.request("sharing/list_folder_members",e,"user","api","rpc")},r.sharingListFolderMembersContinue=function(e){return this.request("sharing/list_folder_members/continue",e,"user","api","rpc")},r.sharingListFolders=function(e){return this.request("sharing/list_folders",e,"user","api","rpc")},r.sharingListFoldersContinue=function(e){return this.request("sharing/list_folders/continue",e,"user","api","rpc")},r.sharingListMountableFolders=function(e){return this.request("sharing/list_mountable_folders",e,"user","api","rpc")},r.sharingListMountableFoldersContinue=function(e){return this.request("sharing/list_mountable_folders/continue",e,"user","api","rpc")},r.sharingListReceivedFiles=function(e){return this.request("sharing/list_received_files",e,"user","api","rpc")},r.sharingListReceivedFilesContinue=function(e){return this.request("sharing/list_received_files/continue",e,"user","api","rpc")},r.sharingListSharedLinks=function(e){return this.request("sharing/list_shared_links",e,"user","api","rpc")},r.sharingModifySharedLinkSettings=function(e){return this.request("sharing/modify_shared_link_settings",e,"user","api","rpc")},r.sharingMountFolder=function(e){return this.request("sharing/mount_folder",e,"user","api","rpc")},r.sharingRelinquishFileMembership=function(e){return this.request("sharing/relinquish_file_membership",e,"user","api","rpc")},r.sharingRelinquishFolderMembership=function(e){return this.request("sharing/relinquish_folder_membership",e,"user","api","rpc")},r.sharingRemoveFileMember=function(e){return this.request("sharing/remove_file_member",e,"user","api","rpc")},r.sharingRemoveFileMember2=function(e){return this.request("sharing/remove_file_member_2",e,"user","api","rpc")},r.sharingRemoveFolderMember=function(e){return this.request("sharing/remove_folder_member",e,"user","api","rpc")},r.sharingRevokeSharedLink=function(e){return this.request("sharing/revoke_shared_link",e,"user","api","rpc")},r.sharingShareFolder=function(e){return this.request("sharing/share_folder",e,"user","api","rpc")},r.sharingTransferFolder=function(e){return this.request("sharing/transfer_folder",e,"user","api","rpc")},r.sharingUnmountFolder=function(e){return this.request("sharing/unmount_folder",e,"user","api","rpc")},r.sharingUnshareFile=function(e){return this.request("sharing/unshare_file",e,"user","api","rpc")},r.sharingUnshareFolder=function(e){return this.request("sharing/unshare_folder",e,"user","api","rpc")},r.sharingUpdateFileMember=function(e){return this.request("sharing/update_file_member",e,"user","api","rpc")},r.sharingUpdateFolderMember=function(e){return this.request("sharing/update_folder_member",e,"user","api","rpc")},r.sharingUpdateFolderPolicy=function(e){return this.request("sharing/update_folder_policy",e,"user","api","rpc")},r.teamLogGetEvents=function(e){return this.request("team_log/get_events",e,"team","api","rpc")},r.teamLogGetEventsContinue=function(e){return this.request("team_log/get_events/continue",e,"team","api","rpc")},r.usersGetAccount=function(e){return this.request("users/get_account",e,"user","api","rpc")},r.usersGetAccountBatch=function(e){return this.request("users/get_account_batch",e,"user","api","rpc")},r.usersGetCurrentAccount=function(e){return this.request("users/get_current_account",e,"user","api","rpc")},r.usersGetSpaceUsage=function(e){return this.request("users/get_space_usage",e,"user","api","rpc")},e.exports=r},function(e,t,r){var n=r(2),i=r(1).Promise,s=r(3),o=function(e,t){var r;if(t)try{r=JSON.parse(t.text)}catch(e){r=t.text}return{status:e.status,error:r||e,response:t}},u=function(e,t,r,u,a,c){var p=function(i,p){function l(e){i&&i(e)}function h(e){p&&p(e)}function f(e,t){e?h(o(e,t)):l(t.body)}var d;switch(t||(t=null),d=n.post(s(u)+e).type("application/json"),r){case"team":case"user":d.set("Authorization","Bearer "+a);break;case"noauth":break;default:throw new Error("Unhandled auth type: "+r)}c&&(d=d.set("Dropbox-API-Select-User",c)),d.send(t).end(f)};return new i(p)};e.exports=u},function(e,t,r){var n=r(2),i=r(1).Promise,s=r(3),o=r(5),u=function(e,t){return{status:e.status,error:(t?t.text:null)||e.toString(),response:t}},a=function(e,t,r,a,c,p){if("user"!==r)throw new Error("Unexpected auth type: "+r);var l=function(r,i){function l(e){r&&r(e)}function h(e){i&&i(e)}function f(e,t){e?h(u(e,t)):l(t.body)}var d,_=t.contents;delete t.contents,d=n.post(s(a)+e).type("application/octet-stream").set("Authorization","Bearer "+c).set("Dropbox-API-Arg",o(t)),p&&(d=d.set("Dropbox-API-Select-User",p)),d.send(_).end(f)};return new i(l)};e.exports=a},function(e,t){}])}); \ No newline at end of file
diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js
index 583b6ac9..36669471 100644
--- a/src/main/webapp/js/embed-static.min.js
+++ b/src/main/webapp/js/embed-static.min.js
@@ -45,9 +45,9 @@ C]);var q;b.ia?(q=b.ia(h,C),"string"!==typeof q&&(Z=!1,q=C),Z&&v!==+v&&(v=p.d.NO
r.length-1)+f+'"';break;case p.d.URI:case p.d.URI_FRAGMENT:""!==C&&(Z=!1);break;default:Z=!1}Z&&(l+="["+q.replace(/[^\w-]/g,"\\$&")+C+r+(B?" i]":"]"))}else if(c<d&&":"===a[c])if(v=a[++c],F.test(v))n+=":"+v;else break;else break;c!==d&&(Z=!1);Z&&(c=(h+k).replace(/[^ .*#\w-]/g,"\\$&")+l+n+e)&&m.push(c);return Z}" "===a[d]&&++d;k-1!==d&&" "===a[k]&&--k;for(var m=[],n=d,v=!0,C=d;v&&C<k;++C){var q=a[C];if(E[q]===E||" "===q)l(n,C,q)?n=C+1:v=!1}l(n,k,"")||(v=!1);return v?(m.length&&(n=m.join(""),null!==
e&&(n="."+e+" "+n),h.push(n)),!0):!c||c(a.slice(d,k))}var e=b.na,f=b.L,g=b.Aa,h=[],k=0,l,m=0,n;for(l=0;l<a.length;++l)(n=a[l],"("==n||"["==n?(++m,0):")"==n||"]"==n?(m&&--m,0):" "==a[l]&&(m||E[a[l-1]]===E||E[a[l+1]]===E))||(a[k++]=a[l]);a.length=k;k=a.length;for(l=m=0;l<k;++l)if(","===a[l]){if(!d(m,l))return null;m=l+1}return d(m,k)?h:null};(function(){var a=/^\w/,b=/^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))(?: and ?\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))(?: and ?\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))*))*$/i;
l=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return c.length?b.test(c)?a.test(c)?c:"not all , "+c:"not all":""}})();(function(){function a(a){var b=/^\s*[']([^']*)[']\s*$/,c=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,d=/^\s*url\s*[(][']([^']*)['][)]\s*$/,e=/^\s*url\s*[(]([^)]*)[)]\s*$/,f;return(f=/^\s*["]([^"]*)["]\s*$/.exec(a))||(f=b.exec(a))||(f=c.exec(a))||(f=d.exec(a))||(f=e.exec(a))?f[1]:null}function b(c,e,f,k,p,q,r){function C(){t=
-J.length&&null===J[J.length-1]}var v=void 0,B=r||[0],J=[],t=!1;m(e,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(e,g){if(t)e=null;else if("@media"===e)v.push("@media"," ",l(g));else if("@keyframes"===e||"@-webkit-keyframes"===e){var h=g[0];1!==g.length||/__$|[^\w\-]/.test(h)?e=null:(v.push(e," ",h+f.L),e="@keyframes")}else if("@import"===e&&0<g.length)if(e=null,"function"===typeof q){var m=l(g.slice(1));if("not all"!==m){++B[0];var C=[];v.push(C);var r=n(d(c,a(g[0])),
-function(a){var c=b(r,a.qa,f,k,p,q,B);--B[0];a=m?{toString:function(){return"@media "+m+" {"+c.result+"}"}}:c.result;C[0]=a;q(a,!!B[0])},p)}}else window.console&&window.console.log("@import "+g.join(" ")+" elided");t=!e;J.push(e)},endAtrule:function(){J.pop();t||v.push(";");C()},startBlock:function(){t||v.push("{")},endBlock:function(){t||(v.push("}"),t=!0)},startRuleset:function(a){if(!t){var b=void 0;"@keyframes"===J[J.length-1]?(b=a.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-t=!b,b&&(b=b[0].replace(/ +/g,""))):(a=h(a,f),a&&a.length?b=a.join(", "):t=!0);t||v.push(b,"{")}J.push(null)},endRuleset:function(){J.pop();t||v.push("}");C()},declaration:function(a,b){if(!t){var d=!1,e=b.length;2<=e&&"!"===b[e-2]&&"important"===b[e-1].toLowerCase()&&(d=!0,b.length-=2);g(a,b,k,c,f.L);b.length&&v.push(a,":",b.join(" "),d?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!B[0]}}k=function(a,c,d,e){return b(a,c,d,e,void 0,void 0).result.toString()}})()})();
+I.length&&null===I[I.length-1]}var v=void 0,B=r||[0],I=[],t=!1;m(e,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(e,g){if(t)e=null;else if("@media"===e)v.push("@media"," ",l(g));else if("@keyframes"===e||"@-webkit-keyframes"===e){var h=g[0];1!==g.length||/__$|[^\w\-]/.test(h)?e=null:(v.push(e," ",h+f.L),e="@keyframes")}else if("@import"===e&&0<g.length)if(e=null,"function"===typeof q){var m=l(g.slice(1));if("not all"!==m){++B[0];var C=[];v.push(C);var r=n(d(c,a(g[0])),
+function(a){var c=b(r,a.qa,f,k,p,q,B);--B[0];a=m?{toString:function(){return"@media "+m+" {"+c.result+"}"}}:c.result;C[0]=a;q(a,!!B[0])},p)}}else window.console&&window.console.log("@import "+g.join(" ")+" elided");t=!e;I.push(e)},endAtrule:function(){I.pop();t||v.push(";");C()},startBlock:function(){t||v.push("{")},endBlock:function(){t||(v.push("}"),t=!0)},startRuleset:function(a){if(!t){var b=void 0;"@keyframes"===I[I.length-1]?(b=a.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+t=!b,b&&(b=b[0].replace(/ +/g,""))):(a=h(a,f),a&&a.length?b=a.join(", "):t=!0);t||v.push(b,"{")}I.push(null)},endRuleset:function(){I.pop();t||v.push("}");C()},declaration:function(a,b){if(!t){var d=!1,e=b.length;2<=e&&"!"===b[e-2]&&"important"===b[e-1].toLowerCase()&&(d=!0,b.length-=2);g(a,b,k,c,f.L);b.length&&v.push(a,":",b.join(" "),d?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!B[0]}}k=function(a,c,d,e){return b(a,c,d,e,void 0,void 0).result.toString()}})()})();
"undefined"!==typeof window&&(window.sanitizeCssProperty=g,window.sanitizeCssSelectorList=h,window.sanitizeStylesheet=k,window.sanitizeMediaQuery=l);var m,n;(function(){function a(a,c,d,e,f){for(var g=c++;c<d&&"{"!==a[c]&&";"!==a[c];)++c;if(c<d&&(f||";"===a[c])){f=g+1;var h=c;f<d&&" "===a[f]&&++f;h>f&&" "===a[h-1]&&--h;e.startAtrule&&e.startAtrule(a[g].toLowerCase(),a.slice(f,h));c="{"===a[c]?b(a,c,d,e):c+1;e.endAtrule&&e.endAtrule()}return c}function b(d,e,f,g){++e;for(g.startBlock&&g.startBlock();e<
f;){var h=d[e].charAt(0);if("}"==h){++e;break}e=" "===h||";"===h?e+1:"@"===h?a(d,e,f,g,!1):"{"===h?b(d,e,f,g):c(d,e,f,g)}g.endBlock&&g.endBlock();return e}function c(a,b,c,d){var f=b,h=e(a,b,c,!0);if(0>h)return h=~h,h===f?h+1:h;var k=a[h];if("{"!==k)return h===f?h+1:h;b=h+1;h>f&&" "===a[h-1]&&--h;for(d.startRuleset&&d.startRuleset(a.slice(f,h));b<c;){k=a[b];if("}"===k){++b;break}b=" "===k?b+1:g(a,b,c,d)}d.endRuleset&&d.endRuleset();return b}function e(a,b,c,d){for(var e,f=[],g=-1;b<c;++b)if(e=a[b].charAt(0),
"["===e||"("===e)f[++g]=e;else if("]"===e&&"["===f[g]||")"===e&&"("===f[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function f(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function g(a,b,c,d){var g=a[b++];if(!h.test(g))return f(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return f(a,b,c);++b;b<c&&" "===a[b]&&++b;var k=e(a,b,c,!1);if(0>k)k=~k;else{for(var l=[],m=0,n=b;n<k;++n)b=a[n]," "!==b&&(l[m++]=b);if(k<c){do{b=
@@ -72,19 +72,19 @@ li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};p.ELEMENT_DOM_INTERFACES=p.Q;p.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};p.ueffects=p.P;p.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
p.URIEFFECTS=p.J;p.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};p.ltypes=p.M;p.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};p.LOADERTYPES=p.I;"undefined"!==typeof window&&(window.html4=p);a=function(a){function b(a,b){var c;if(aa.hasOwnProperty(b))c=aa[b];else{var d=b.match(A);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(v))?String.fromCharCode(parseInt(d[1],
-16)):J&&Q.test(b)?(J.innerHTML="&"+b+";",d=J.textContent,aa[b]=d):"&"+b+";"}return c}function c(a){return a.replace(ba,b)}function d(a){return(""+a).replace(K,"&amp;").replace(T,"&lt;").replace(ca,"&gt;").replace(ea,"&#34;")}function e(a){return a.replace(X,"&amp;$1").replace(T,"&lt;").replace(ca,"&gt;")}function g(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,c){var d,e=/(<\/|<\!--|<[!?]|[&<>])/g;
+16)):I&&Q.test(b)?(I.innerHTML="&"+b+";",d=I.textContent,aa[b]=d):"&"+b+";"}return c}function c(a){return a.replace(ba,b)}function d(a){return(""+a).replace(K,"&amp;").replace(T,"&lt;").replace(ca,"&gt;").replace(ea,"&#34;")}function e(a){return a.replace(X,"&amp;$1").replace(T,"&lt;").replace(ca,"&gt;")}function g(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,c){var d,e=/(<\/|<\!--|<[!?]|[&<>])/g;
d=a+"";if(V)d=d.split(e);else{for(var f=[],g=0,h;null!==(h=e.exec(d));)f.push(d.substring(g,h.index)),f.push(h[0]),g=h.index+h[0].length;f.push(d.substring(g));d=f}k(b,d,0,{r:!1,C:!1},c)}}function h(a,b,c,d,e){return function(){k(a,b,c,d,e)}}function k(b,c,d,e,f){try{b.H&&0==d&&b.H(f);for(var g,k,n,v=c.length;d<v;){var C=c[d++],p=c[d];switch(C){case "&":N.test(p)?(b.e&&b.e("&"+p,f,O,h(b,c,d,e,f)),d++):b.e&&b.e("&amp;",f,O,h(b,c,d,e,f));break;case "</":if(g=/^([-\w:]+)[^\'\"]*/.exec(p))if(g[0].length===
-p.length&&">"===c[d+1])d+=2,n=g[1].toLowerCase(),b.t&&b.t(n,f,O,h(b,c,d,e,f));else{var Z=c,R=d,q=b,r=f,Y=O,J=e,t=m(Z,R);t?(q.t&&q.t(t.name,r,Y,h(q,Z,R,J,r)),d=t.next):d=Z.length}else b.e&&b.e("&lt;/",f,O,h(b,c,d,e,f));break;case "<":if(g=/^([-\w:]+)\s*\/?/.exec(p))if(g[0].length===p.length&&">"===c[d+1]){d+=2;n=g[1].toLowerCase();b.w&&b.w(n,[],f,O,h(b,c,d,e,f));var Q=a.f[n];Q&W&&(d=l(c,{name:n,next:d,c:Q},b,f,O,e))}else{var Z=c,R=b,q=f,r=O,Y=e,B=m(Z,d);B?(R.w&&R.w(B.name,B.R,q,r,h(R,Z,B.next,Y,q)),
+p.length&&">"===c[d+1])d+=2,n=g[1].toLowerCase(),b.t&&b.t(n,f,O,h(b,c,d,e,f));else{var Z=c,R=d,q=b,r=f,Y=O,I=e,t=m(Z,R);t?(q.t&&q.t(t.name,r,Y,h(q,Z,R,I,r)),d=t.next):d=Z.length}else b.e&&b.e("&lt;/",f,O,h(b,c,d,e,f));break;case "<":if(g=/^([-\w:]+)\s*\/?/.exec(p))if(g[0].length===p.length&&">"===c[d+1]){d+=2;n=g[1].toLowerCase();b.w&&b.w(n,[],f,O,h(b,c,d,e,f));var Q=a.f[n];Q&W&&(d=l(c,{name:n,next:d,c:Q},b,f,O,e))}else{var Z=c,R=b,q=f,r=O,Y=e,B=m(Z,d);B?(R.w&&R.w(B.name,B.R,q,r,h(R,Z,B.next,Y,q)),
d=B.c&W?l(Z,B,R,q,r,Y):B.next):d=Z.length}else b.e&&b.e("&lt;",f,O,h(b,c,d,e,f));break;case "\x3c!--":if(!e.C){for(k=d+1;k<v&&(">"!==c[k]||!/--$/.test(c[k-1]));k++);if(k<v){if(b.A){var u=c.slice(d,k).join("");b.A(u.substr(0,u.length-2),f,O,h(b,c,k+1,e,f))}d=k+1}else e.C=!0}e.C&&b.e&&b.e("&lt;!--",f,O,h(b,c,d,e,f));break;case "<!":if(/^\w/.test(p)){if(!e.r){for(k=d+1;k<v&&">"!==c[k];k++);k<v?d=k+1:e.r=!0}e.r&&b.e&&b.e("&lt;!",f,O,h(b,c,d,e,f))}else b.e&&b.e("&lt;!",f,O,h(b,c,d,e,f));break;case "<?":if(!e.r){for(k=
d+1;k<v&&">"!==c[k];k++);k<v?d=k+1:e.r=!0}e.r&&b.e&&b.e("&lt;?",f,O,h(b,c,d,e,f));break;case ">":b.e&&b.e("&gt;",f,O,h(b,c,d,e,f));break;case "":break;default:b.e&&b.e(C,f,O,h(b,c,d,e,f))}}b.B&&b.B(f)}catch(la){if(la!==O)throw la;}}function l(b,c,d,f,g,k){var l=b.length;R.hasOwnProperty(c.name)||(R[c.name]=RegExp("^"+c.name+"(?:[\\s\\/]|$)","i"));for(var m=R[c.name],n=c.next,v=c.next+1;v<l&&("</"!==b[v-1]||!m.test(b[v]));v++);v<l&&--v;l=b.slice(n,v).join("");if(c.c&a.c.CDATA)d.z&&d.z(l,f,g,h(d,b,
v,k,f));else if(c.c&a.c.RCDATA)d.F&&d.F(e(l),f,g,h(d,b,v,k,f));else throw Error("bug");return v}function m(b,d){var e=/^([-\w:]+)/.exec(b[d]),f={};f.name=e[1].toLowerCase();f.c=a.f[f.name];for(var g=b[d].substr(e[0].length),h=d+1,k=b.length;h<k&&">"!==b[h];h++)g+=b[h];if(!(k<=h)){for(var l=[];""!==g;)if(e=P.exec(g))if(e[4]&&!e[5]||e[6]&&!e[7]){for(var e=e[4]||e[6],m=!1,g=[g,b[h++]];h<k;h++){if(m){if(">"===b[h])break}else 0<=b[h].indexOf(e)&&(m=!0);g.push(b[h])}if(k<=h)break;g=g.join("")}else{var m=
-e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(I,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
+e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(J,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
if("attribs"in l)g=l.attribs;else throw Error("tagPolicy gave no attribs");var m;"tagName"in l?(m=l.tagName,l=a.f[m]):(m=c,l=k);if(k&a.c.OPTIONAL_ENDTAG){var n=e[e.length-1];n&&n.D===c&&(n.v!==m||c!==m)&&h.push("</",n.v,">")}k&a.c.EMPTY||e.push({D:c,v:m});h.push("<",m);c=0;for(n=g.length;c<n;c+=2){var v=g[c],p=g[c+1];null!==p&&void 0!==p&&h.push(" ",v,'="',d(p),'"')}h.push(">");k&a.c.EMPTY&&!(l&a.c.EMPTY)&&h.push("</",m,">")}else f=!(k&a.c.EMPTY)}}},endTag:function(b,c){if(f)f=!1;else if(a.f.hasOwnProperty(b)){var d=
a.f[b];if(!(d&(a.c.EMPTY|a.c.FOLDABLE))){if(d&a.c.OPTIONAL_ENDTAG)for(d=e.length;0<=--d;){var g=e[d].D;if(g===b)break;if(!(a.f[g]&a.c.OPTIONAL_ENDTAG))return}else for(d=e.length;0<=--d&&e[d].D!==b;);if(!(0>d)){for(g=e.length;--g>d;){var h=e[g].v;a.f[h]&a.c.OPTIONAL_ENDTAG||c.push("</",h,">")}d<e.length&&(b=e[d].v);e.length=d;c.push("</",b,">")}}}},pcdata:c,rcdata:c,cdata:c,endDoc:function(a){for(;e.length;e.length--)a.push("</",e[e.length-1].v,">")}})}function p(a,b,c,d,e){if(!e)return null;try{var g=
-f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(ja){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function M(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
+f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(ia){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function M(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
b+"::"+h,a.m.hasOwnProperty(n))||(n="*::"+h,a.m.hasOwnProperty(n)))m=a.m[n];if(null!==m)switch(m){case a.d.NONE:break;case a.d.SCRIPT:k=null;f&&r(f,b,h,l,k);break;case a.d.STYLE:if("undefined"===typeof U){k=null;f&&r(f,b,h,l,k);break}var v=[];U(k,{declaration:function(b,c){var e=b.toLowerCase();S(e,c,d?function(b){return p(b,a.P.ja,a.M.ka,{TYPE:"CSS",CSS_PROP:e},d)}:null);c.length&&v.push(e+": "+c.join(" "))}});k=0<v.length?v.join(" ; "):null;f&&r(f,b,h,l,k);break;case a.d.ID:case a.d.IDREF:case a.d.IDREFS:case a.d.GLOBAL_NAME:case a.d.LOCAL_NAME:case a.d.CLASSES:k=
e?e(k):k;f&&r(f,b,h,l,k);break;case a.d.URI:k=p(k,C(a.J,b,h),C(a.I,b,h),{TYPE:"MARKUP",XML_ATTR:h,XML_TAG:b},d);f&&r(f,b,h,l,k);break;case a.d.URI_FRAGMENT:k&&"#"===k.charAt(0)?(k=k.substring(1),k=e?e(k):k,null!==k&&void 0!==k&&(k="#"+k)):k=null;f&&r(f,b,h,l,k);break;default:k=null,f&&r(f,b,h,l,k)}else k=null,f&&r(f,b,h,l,k);c[g+1]=k}return c}function L(b,c,d){return function(e,f){if(a.f[e]&a.c.UNSAFE)d&&r(d,e,void 0,void 0,void 0);else return{attribs:M(e,f,b,c,d)}}}function H(a,b){var c=[];n(b)(a,
-c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,Q=/^[A-Za-z][A-za-z0-9]+$/,J="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,I=/\0/g,ba=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,K=/&/g,X=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
+c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,Q=/^[A-Za-z][A-za-z0-9]+$/,I="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,J=/\0/g,ba=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,K=/&/g,X=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
/[<]/g,ca=/>/g,ea=/\"/g,P=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,V=3==="a,b".split(/(,)/).length,W=a.c.CDATA|a.c.RCDATA,O={},R={},fa=/^(?:https?|mailto|data)$/i,Y={};Y.pa=Y.escapeAttrib=d;Y.ra=Y.makeHtmlSanitizer=n;Y.sa=Y.makeSaxParser=g;Y.ta=Y.makeTagPolicy=L;Y.wa=Y.normalizeRCData=e;Y.xa=Y.sanitize=function(a,b,c,d){return H(a,L(b,c,d))};Y.ya=Y.sanitizeAttribs=M;Y.za=Y.sanitizeWithPolicy=H;Y.Ba=Y.unescapeEntities=c;return Y}(p);c=a.sanitize;"undefined"!==
typeof window&&(window.html=a,window.html_sanitize=c)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a,b){var c="",d,e,f,g,h,k,l=0;for(null!=b&&b||(a=Base64._utf8_encode(a));l<a.length;)d=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=d>>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,
"");k<a.length;)d=this._keyStr.indexOf(a.charAt(k++)),e=this._keyStr.indexOf(a.charAt(k++)),g=this._keyStr.indexOf(a.charAt(k++)),h=this._keyStr.indexOf(a.charAt(k++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|h,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=h&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
@@ -117,10 +117,10 @@ b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.windo
b.strstart+b.lookahead-K;e=D._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(h(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=D._tr_tally(b,0,b.window[b.strstart-1]),e&&h(b,!1),
b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(D._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===C?(h(b,!0),0===b.strm.avail_out?W:O):b.last_lit&&(h(b,!1),0===b.strm.avail_out)?P:V}function q(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=0;this.pending_buf=null;this.wrap=
this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=A;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=this.hash_mask=this.hash_bits=this.hash_size=
-this.ins_h=0;this.dyn_ltree=new u.Buf16(2*ba);this.dyn_dtree=new u.Buf16(2*(2*J+1));this.bl_tree=new u.Buf16(2*(2*I+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new u.Buf16(N+1);this.heap=new u.Buf16(2*Q+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new u.Buf16(2*Q+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function z(b){var c;
+this.ins_h=0;this.dyn_ltree=new u.Buf16(2*ba);this.dyn_dtree=new u.Buf16(2*(2*I+1));this.bl_tree=new u.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new u.Buf16(N+1);this.heap=new u.Buf16(2*Q+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new u.Buf16(2*Q+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function z(b){var c;
return b&&b.state?(b.total_in=b.total_out=0,b.data_type=aa,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:ea,b.adler=2===c.wrap?0:1,c.last_flush=G,D._tr_init(c),M):e(b,L)}function w(b){var c=z(b);c===M&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start=0,b.lookahead=0,b.insert=0,b.match_length=
b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function x(b,c,d,f,g,h){if(!b)return L;var k=1;if(c===H&&(c=6),0>f?(k=0,f=-f):15<f&&(k=2,f-=16),1>g||g>v||d!==A||8>f||15<f||0>c||9<c||0>h||h>S)return e(b,L);8===f&&(f=9);var l=new t;return b.state=l,l.strm=b,l.wrap=k,l.gzhead=null,l.w_bits=f,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=g+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+K-1)/K),l.window=new u.Buf8(2*l.w_size),l.head=new u.Buf16(l.hash_size),
-l.prev=new u.Buf16(l.w_size),l.lit_bufsize=1<<g+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new u.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=c,l.strategy=h,l.method=d,w(b)}var y,u=b("../utils/common"),D=b("./trees"),F=b("./adler32"),E=b("./crc32"),B=b("./messages"),G=0,C=4,M=0,L=-2,H=-1,U=1,S=4,aa=2,A=8,v=9,Q=286,J=30,I=19,ba=2*Q+1,N=15,K=3,X=258,T=X+K+1,ca=42,ea=113,P=1,V=2,W=3,O=4;y=[new q(0,0,0,0,function(b,c){var d=65535;for(d>b.pending_buf_size-5&&
+l.prev=new u.Buf16(l.w_size),l.lit_bufsize=1<<g+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new u.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=c,l.strategy=h,l.method=d,w(b)}var y,u=b("../utils/common"),D=b("./trees"),F=b("./adler32"),E=b("./crc32"),B=b("./messages"),G=0,C=4,M=0,L=-2,H=-1,U=1,S=4,aa=2,A=8,v=9,Q=286,I=30,J=19,ba=2*Q+1,N=15,K=3,X=258,T=X+K+1,ca=42,ea=113,P=1,V=2,W=3,O=4;y=[new q(0,0,0,0,function(b,c){var d=65535;for(d>b.pending_buf_size-5&&
(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(n(b),0===b.lookahead&&c===G)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,h(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-T&&(h(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===C?(h(b,!0),0===b.strm.avail_out?W:O):(b.strstart>b.block_start&&h(b,!1),P)}),new q(4,4,8,4,p),new q(4,5,16,8,p),new q(4,6,32,
32,p),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return x(b,c,A,15,8,0)};d.deflateInit2=x;d.deflateReset=w;d.deflateResetKeep=z;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?L:(b.state.gzhead=c,M):L};d.deflate=function(b,c){var d,m,v,p;if(!b||!b.state||5<c||0>c)return b?e(b,L):L;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||666===m.status&&c!==C)return e(b,
0===b.avail_out?-5:L);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,k(m,31),k(m,139),k(m,8),m.gzhead?(k(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),k(m,255&m.gzhead.time),k(m,m.gzhead.time>>8&255),k(m,m.gzhead.time>>16&255),k(m,m.gzhead.time>>24&255),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(k(m,255&m.gzhead.extra.length),k(m,m.gzhead.extra.length>>
@@ -129,7 +129,7 @@ m.pending_buf_size||(m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_bu
v,v)),g(b),v=m.pending,m.pending===m.pending_buf_size)){p=1;break}p=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;k(m,p)}while(0!==p);m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v));0===p&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){v=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v)),g(b),v=m.pending,m.pending===m.pending_buf_size)){p=
1;break}p=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;k(m,p)}while(0!==p);m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v));0===p&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(k(m,255&b.adler),k(m,b.adler>>8&255),b.adler=0,m.status=ea)):m.status=ea),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=-1,M}else if(0===b.avail_in&&(c<<1)-
(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==C)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var q;if(2===m.strategy)a:{for(var r;;){if(0===m.lookahead&&(n(m),0===m.lookahead)){if(c===G){q=P;break a}break}if(m.match_length=0,r=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,r&&(h(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===C?(h(m,!0),0===m.strm.avail_out?W:O):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?
-P:V)}else if(3===m.strategy)a:{var J,Q;for(r=m.window;;){if(m.lookahead<=X){if(n(m),m.lookahead<=X&&c===G){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(Q=m.strstart-1,J=r[Q],J===r[++Q]&&J===r[++Q]&&J===r[++Q])){for(d=m.strstart+X;J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&Q<d;);m.match_length=X-(d-Q);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=K?(q=D._tr_tally(m,1,m.match_length-
+P:V)}else if(3===m.strategy)a:{var I,Q;for(r=m.window;;){if(m.lookahead<=X){if(n(m),m.lookahead<=X&&c===G){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(Q=m.strstart-1,I=r[Q],I===r[++Q]&&I===r[++Q]&&I===r[++Q])){for(d=m.strstart+X;I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&Q<d;);m.match_length=X-(d-Q);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=K?(q=D._tr_tally(m,1,m.match_length-
K),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(h(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===C?(h(m,!0),0===m.strm.avail_out?W:O):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?P:V)}else q=y[m.level].func(m,c);if(q!==W&&q!==O||(m.status=666),q===P||q===W)return 0===b.avail_out&&(m.last_flush=-1),M;if(q===V&&(1===c?D._tr_align(m):5!==c&&(D._tr_stored_block(m,0,0,!1),3===c&&(f(m.head),0===
m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,M}return c!==C?M:0>=m.wrap?1:(2===m.wrap?(k(m,255&b.adler),k(m,b.adler>>8&255),k(m,b.adler>>16&255),k(m,b.adler>>24&255),k(m,255&b.total_in),k(m,b.total_in>>8&255),k(m,b.total_in>>16&255),k(m,b.total_in>>24&255)):(l(m,b.adler>>>16),l(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?M:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,c!==ca&&69!==c&&73!==c&&91!==
c&&103!==c&&c!==ea&&666!==c?e(b,L):(b.state=null,c===ea?e(b,-3):M)):L};d.deflateSetDictionary=function(b,c){var d,e,g,h,k,m,l;e=c.length;if(!b||!b.state||(d=b.state,h=d.wrap,2===h||1===h&&d.status!==ca||d.lookahead))return L;1===h&&(b.adler=F(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new u.Buf8(d.w_size),u.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;m=b.next_in;l=b.input;b.avail_in=e;b.next_in=0;b.input=c;for(n(d);d.lookahead>=
@@ -141,39 +141,39 @@ while(--B);E=l-C;M=H}}}else if(E+=t-B,B<G){G-=B;do H[l++]=z[E++];while(--B);E=l-
24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function f(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new r.Buf16(320);this.work=new r.Buf16(288);this.distdyn=this.lendyn=null;this.was=
this.back=this.sane=0}function g(b){var c;return b&&b.state?(c=b.state,b.total_in=b.total_out=c.total=0,b.msg="",c.wrap&&(b.adler=1&c.wrap),c.mode=u,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new r.Buf32(D),c.distcode=c.distdyn=new r.Buf32(F),c.sane=1,c.back=-1,x):y}function h(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function k(b,c){var d,e;return b&&b.state?(e=b.state,0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<
c)?y:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,h(b))):y}function l(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=k(b,c),d!==x&&(b.state=null),d):y}function m(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new r.Buf8(b.wsize)),e>=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d-e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=
-e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var n,p,r=b("../utils/common"),q=b("./adler32"),t=b("./crc32"),z=b("./inffast"),w=b("./inftrees"),x=0,y=-2,u=1,D=852,F=592,E=!0;d.inflateReset=h;d.inflateReset2=k;d.inflateResetKeep=g;d.inflateInit=function(b){return l(b,15)};d.inflateInit2=l;d.inflate=function(b,c){var d,f,g,h,k,l,B,A,v,Q,J,I,ba,N,K,G,D,ca,F,P,V,W,O=0,R=new r.Buf8(4),fa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||
-!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;Q=l;J=B;V=x;a:for(;;)switch(d.mode){case u:if(0===d.wrap){d.mode=13;break}for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(2&d.wrap&&35615===A){d.check=0;R[0]=255&A;R[1]=A>>>8&255;d.check=t(d.check,R,2,0);v=A=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&d.wrap)||(((255&A)<<8)+(A>>8))%31){b.msg="incorrect header check";
+e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var n,p,r=b("../utils/common"),q=b("./adler32"),t=b("./crc32"),z=b("./inffast"),w=b("./inftrees"),x=0,y=-2,u=1,D=852,F=592,E=!0;d.inflateReset=h;d.inflateReset2=k;d.inflateResetKeep=g;d.inflateInit=function(b){return l(b,15)};d.inflateInit2=l;d.inflate=function(b,c){var d,f,g,h,k,l,B,A,v,Q,I,J,ba,N,K,G,D,ca,F,P,V,W,O=0,R=new r.Buf8(4),fa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||
+!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;Q=l;I=B;V=x;a:for(;;)switch(d.mode){case u:if(0===d.wrap){d.mode=13;break}for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(2&d.wrap&&35615===A){d.check=0;R[0]=255&A;R[1]=A>>>8&255;d.check=t(d.check,R,2,0);v=A=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&d.wrap)||(((255&A)<<8)+(A>>8))%31){b.msg="incorrect header check";
d.mode=30;break}if(8!==(15&A)){b.msg="unknown compression method";d.mode=30;break}if(A>>>=4,v-=4,P=(15&A)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&A?10:12;v=A=0;break;case 2:for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.flags=A,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";d.mode=30;break}d.head&&(d.head.text=A>>8&1);512&d.flags&&
(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0;d.mode=3;case 3:for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.head&&(d.head.time=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,R[2]=A>>>16&255,R[3]=A>>>24&255,d.check=t(d.check,R,4,0));v=A=0;d.mode=4;case 4:for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.head&&(d.head.xflags=255&A,d.head.os=A>>8);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0;d.mode=5;case 5:if(1024&d.flags){for(;16>v;){if(0===l)break a;l--;
-A+=f[h++]<<v;v+=8}d.length=A;d.head&&(d.head.extra_len=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>l&&(I=l),I&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,P)),512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode=7;case 7:if(2048&d.flags){if(0===l)break a;I=0;do P=f[h+
-I++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&I<l);if(512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===l)break a;I=0;do P=f[h+I++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&I<l);if(512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,P)break a}else d.head&&(d.head.comment=null);d.mode=9;case 9:if(512&d.flags){for(;16>v;){if(0===l)break a;l--;
+A+=f[h++]<<v;v+=8}d.length=A;d.head&&(d.head.extra_len=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>l&&(J=l),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,J,P)),512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,d.length-=J),d.length))break a;d.length=0;d.mode=7;case 7:if(2048&d.flags){if(0===l)break a;J=0;do P=f[h+
+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<l);if(512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===l)break a;J=0;do P=f[h+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<l);if(512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=9;case 9:if(512&d.flags){for(;16>v;){if(0===l)break a;l--;
A+=f[h++]<<v;v+=8}if(A!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}v=A=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}b.adler=d.check=e(A);v=A=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){A>>>=7&v;v-=7&v;d.mode=27;break}for(;3>v;){if(0===
l)break a;l--;A+=f[h++]<<v;v+=8}switch(d.last=1&A,A>>>=1,--v,3&A){case 0:d.mode=14;break;case 1:G=d;if(E){n=new r.Buf32(512);p=new r.Buf32(32);for(N=0;144>N;)G.lens[N++]=8;for(;256>N;)G.lens[N++]=9;for(;280>N;)G.lens[N++]=7;for(;288>N;)G.lens[N++]=8;w(1,G.lens,0,288,n,0,G.work,{bits:9});for(N=0;32>N;)G.lens[N++]=5;w(2,G.lens,0,32,p,0,G.work,{bits:5});E=!1}G.lencode=n;G.lenbits=9;G.distcode=p;G.distbits=5;if(d.mode=20,6===c){A>>>=2;v-=2;break a}break;case 2:d.mode=17;break;case 3:b.msg="invalid block type",
-d.mode=30}A>>>=2;v-=2;break;case 14:A>>>=7&v;for(v-=7&v;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if((65535&A)!==(A>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&A,A=0,v=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>l&&(I=l),I>B&&(I=B),0===I)break a;r.arraySet(g,f,h,I,k);l-=I;h+=I;B-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.nlen=(31&A)+257,A>>>=5,v-=5,d.ndist=(31&A)+
+d.mode=30}A>>>=2;v-=2;break;case 14:A>>>=7&v;for(v-=7&v;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if((65535&A)!==(A>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&A,A=0,v=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>l&&(J=l),J>B&&(J=B),0===J)break a;r.arraySet(g,f,h,J,k);l-=J;h+=J;B-=J;k+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.nlen=(31&A)+257,A>>>=5,v-=5,d.ndist=(31&A)+
1,A>>>=5,v-=5,d.ncode=(15&A)+4,A>>>=4,v-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.lens[fa[d.have++]]=7&A;A>>>=3;v-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,W={bits:d.lenbits},V=w(0,d.lens,0,19,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid code lengths set";d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have<
-d.nlen+d.ndist;){for(;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(16>G)A>>>=K,v-=K,d.lens[d.have++]=G;else{if(16===G){for(N=K+2;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A>>>=K,v-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];I=3+(3&A);A>>>=2;v-=2}else if(17===G){for(N=K+3;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;I=3+(7&A);A>>>=3;v-=3}else{for(N=K+7;v<N;){if(0===l)break a;l--;
-A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;I=11+(127&A);A>>>=7;v-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,W={bits:d.lenbits},V=w(1,d.lens,0,d.nlen,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,W={bits:d.distbits},V=w(2,d.lens,d.nlen,d.ndist,
-d.distcode,0,d.work,W),d.distbits=W.bits,V){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=B){b.next_out=k;b.avail_out=B;b.next_in=h;b.avail_in=l;d.hold=A;d.bits=v;z(b,J);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(N&&0===(240&N)){D=
+d.nlen+d.ndist;){for(;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(16>G)A>>>=K,v-=K,d.lens[d.have++]=G;else{if(16===G){for(N=K+2;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A>>>=K,v-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&A);A>>>=2;v-=2}else if(17===G){for(N=K+3;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;J=3+(7&A);A>>>=3;v-=3}else{for(N=K+7;v<N;){if(0===l)break a;l--;
+A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;J=11+(127&A);A>>>=7;v-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,W={bits:d.lenbits},V=w(1,d.lens,0,d.nlen,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,W={bits:d.distbits},V=w(2,d.lens,d.nlen,d.ndist,
+d.distcode,0,d.work,W),d.distbits=W.bits,V){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=B){b.next_out=k;b.avail_out=B;b.next_in=h;b.avail_in=l;d.hold=A;d.bits=v;z(b,I);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(N&&0===(240&N)){D=
K;ca=N;for(F=G;O=d.lencode[F+((A&(1<<D+ca)-1)>>D)],K=O>>>24,N=O>>>16&255,G=65535&O,!(D+K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=D;v-=D;d.back+=D}if(A>>>=K,v-=K,d.back+=K,d.length=G,0===N){d.mode=26;break}if(32&N){d.back=-1;d.mode=12;break}if(64&N){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&N;d.mode=22;case 22:if(d.extra){for(N=d.extra;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.length+=A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=
23;case 23:for(;O=d.distcode[A&(1<<d.distbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(0===(240&N)){D=K;ca=N;for(F=G;O=d.distcode[F+((A&(1<<D+ca)-1)>>D)],K=O>>>24,N=O>>>16&255,G=65535&O,!(D+K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=D;v-=D;d.back+=D}if(A>>>=K,v-=K,d.back+=K,64&N){b.msg="invalid distance code";d.mode=30;break}d.offset=G;d.extra=15&N;d.mode=24;case 24:if(d.extra){for(N=d.extra;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.offset+=
-A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===B)break a;if(I=J-B,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,ba=d.wsize-I):ba=d.wnext-I;I>d.length&&(I=d.length);N=d.window}else N=g,ba=k-d.offset,I=d.length;I>B&&(I=B);B-=I;d.length-=I;do g[k++]=N[ba++];while(--I);0===d.length&&(d.mode=21);break;case 26:if(0===B)break a;
-g[k++]=d.length;B--;d.mode=21;break;case 27:if(d.wrap){for(;32>v;){if(0===l)break a;l--;A|=f[h++]<<v;v+=8}if(J-=B,b.total_out+=J,d.total+=J,J&&(b.adler=d.check=d.flags?t(d.check,g,J,k-J):q(d.check,g,J,k-J)),J=B,(d.flags?A:e(A))!==d.check){b.msg="incorrect data check";d.mode=30;break}v=A=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}v=A=0}d.mode=29;case 29:V=1;break a;case 30:V=
--3;break a;case 31:return-4;default:return y}return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,(d.wsize||J!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,J-b.avail_out)?(d.mode=31,-4):(Q-=b.avail_in,J-=b.avail_out,b.total_in+=Q,b.total_out+=J,d.total+=J,d.wrap&&J&&(b.adler=d.check=d.flags?t(d.check,g,J,b.next_out-J):q(d.check,g,J,b.next_out-J)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:0),(0===Q&&0===J||4===
+A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===B)break a;if(J=I-B,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,ba=d.wsize-J):ba=d.wnext-J;J>d.length&&(J=d.length);N=d.window}else N=g,ba=k-d.offset,J=d.length;J>B&&(J=B);B-=J;d.length-=J;do g[k++]=N[ba++];while(--J);0===d.length&&(d.mode=21);break;case 26:if(0===B)break a;
+g[k++]=d.length;B--;d.mode=21;break;case 27:if(d.wrap){for(;32>v;){if(0===l)break a;l--;A|=f[h++]<<v;v+=8}if(I-=B,b.total_out+=I,d.total+=I,I&&(b.adler=d.check=d.flags?t(d.check,g,I,k-I):q(d.check,g,I,k-I)),I=B,(d.flags?A:e(A))!==d.check){b.msg="incorrect data check";d.mode=30;break}v=A=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}v=A=0}d.mode=29;case 29:V=1;break a;case 30:V=
+-3;break a;case 31:return-4;default:return y}return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,(d.wsize||I!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,I-b.avail_out)?(d.mode=31,-4):(Q-=b.avail_in,I-=b.avail_out,b.total_in+=Q,b.total_out+=I,d.total+=I,d.wrap&&I&&(b.adler=d.check=d.flags?t(d.check,g,I,b.next_out-I):q(d.check,g,I,b.next_out-I)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:0),(0===Q&&0===I||4===
c)&&V===x&&(V=-5),V)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,x};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,x)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:m(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,x)):y};d.inflateInfo="pako inflate (from Nodeca project)"},
{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(b,c,d){var e=b("../utils/common"),f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],g=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],k=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,
-25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,t,z){var l,m,n,u,D,F,E,B,G=z.bits,C,M,L,H,U,S,aa=0,A,v=null,Q=0,J=new e.Buf16(16);u=new e.Buf16(16);var I=null,ba=0;for(C=0;15>=C;C++)J[C]=0;for(M=0;M<p;M++)J[c[d+M]]++;H=G;for(L=15;1<=L&&0===J[L];L--);if(H>L&&(H=L),0===L)return r[q++]=20971520,r[q++]=20971520,z.bits=1,0;for(G=1;G<L&&0===J[G];G++);H<G&&(H=G);for(C=l=1;15>=C;C++)if(l<<=1,l-=J[C],0>l)return-1;if(0<l&&(0===b||1!==L))return-1;u[1]=0;for(C=1;15>C;C++)u[C+1]=u[C]+J[C];
-for(M=0;M<p;M++)0!==c[d+M]&&(t[u[c[d+M]]++]=M);if(0===b?(v=I=t,D=19):1===b?(v=f,Q-=257,I=g,ba-=257,D=256):(v=h,I=k,D=-1),A=0,M=0,C=G,u=q,U=H,S=0,n=-1,aa=1<<H,p=aa-1,1===b&&852<aa||2===b&&592<aa)return 1;for(var N=0;;){N++;F=C-S;t[M]<D?(E=0,B=t[M]):t[M]>D?(E=I[ba+t[M]],B=v[Q+t[M]]):(E=96,B=0);l=1<<C-S;G=m=1<<U;do m-=l,r[u+(A>>S)+m]=F<<24|E<<16|B|0;while(0!==m);for(l=1<<C-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,M++,0===--J[C]){if(C===L)break;C=c[d+t[M]]}if(C>H&&(A&p)!==n){0===S&&(S=H);u+=G;U=C-S;for(l=
-1<<U;U+S<L&&(l-=J[U+S],!(0>=l));)U++,l<<=1;if(aa+=1<<U,1===b&&852<aa||2===b&&592<aa)return 1;n=A&p;r[n]=H<<24|U<<16|u-q|0}}return 0!==A&&(r[u+A]=C-S<<24|4194304),z.bits=H,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=
+25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,t,z){var l,m,n,u,D,F,E,B,G=z.bits,C,M,L,H,U,S,aa=0,A,v=null,Q=0,I=new e.Buf16(16);u=new e.Buf16(16);var J=null,ba=0;for(C=0;15>=C;C++)I[C]=0;for(M=0;M<p;M++)I[c[d+M]]++;H=G;for(L=15;1<=L&&0===I[L];L--);if(H>L&&(H=L),0===L)return r[q++]=20971520,r[q++]=20971520,z.bits=1,0;for(G=1;G<L&&0===I[G];G++);H<G&&(H=G);for(C=l=1;15>=C;C++)if(l<<=1,l-=I[C],0>l)return-1;if(0<l&&(0===b||1!==L))return-1;u[1]=0;for(C=1;15>C;C++)u[C+1]=u[C]+I[C];
+for(M=0;M<p;M++)0!==c[d+M]&&(t[u[c[d+M]]++]=M);if(0===b?(v=J=t,D=19):1===b?(v=f,Q-=257,J=g,ba-=257,D=256):(v=h,J=k,D=-1),A=0,M=0,C=G,u=q,U=H,S=0,n=-1,aa=1<<H,p=aa-1,1===b&&852<aa||2===b&&592<aa)return 1;for(var N=0;;){N++;F=C-S;t[M]<D?(E=0,B=t[M]):t[M]>D?(E=J[ba+t[M]],B=v[Q+t[M]]):(E=96,B=0);l=1<<C-S;G=m=1<<U;do m-=l,r[u+(A>>S)+m]=F<<24|E<<16|B|0;while(0!==m);for(l=1<<C-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,M++,0===--I[C]){if(C===L)break;C=c[d+t[M]]}if(C>H&&(A&p)!==n){0===S&&(S=H);u+=G;U=C-S;for(l=
+1<<U;U+S<L&&(l-=I[U+S],!(0>=l));)U++,l<<=1;if(aa+=1<<U,1===b&&852<aa||2===b&&592<aa)return 1;n=A&p;r[n]=H<<24|U<<16|u-q|0}}return 0!==A&&(r[u+A]=C-S<<24|4194304),z.bits=H,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=
b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function h(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<<b.bi_valid&65535,h(b,b.bi_buf),b.bi_buf=c>>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function l(b,c,d){k(b,d[2*c],d[2*c+1])}function m(b,c){var d=0;do d|=1&b,b>>>=1,d<<=1;
while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(S+1),g=0;for(e=1;e<=S;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function p(b){var c;for(c=0;c<M;c++)b.dyn_ltree[2*c]=0;for(c=0;c<L;c++)b.dyn_dtree[2*c]=0;for(c=0;c<H;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*A]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?h(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function q(b,c,d,e){var f=2*c,g=2*d;
-return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function z(b,c,d){var e,f,g,h,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?l(b,f,c):(g=ea[f],l(b,g+C+1,c),h=I[g],0!==h&&(f-=P[g],k(b,f,h)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],l(b,g,d),h=ba[g],0!==h&&
+return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function z(b,c,d){var e,f,g,h,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?l(b,f,c):(g=ea[f],l(b,g+C+1,c),h=J[g],0!==h&&(f-=P[g],k(b,f,h)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],l(b,g,d),h=ba[g],0!==h&&
(e-=V[g],k(b,e,h)));while(m<b.last_lit)}l(b,A,c)}function w(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var h=c.stat_desc.has_stree,k=c.stat_desc.elems,l=-1;b.heap_len=0;b.heap_max=U;for(d=0;d<k;d++)0!==g[2*d]?(b.heap[++b.heap_len]=l=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>l?++l:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=l;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=k;do d=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),e=b.heap[1],
-b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,v,h=c.dyn_tree,k=c.max_code,p=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,J=c.stat_desc.extra_base,Q=c.stat_desc.max_length,I=0;for(e=0;e<=S;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<U;d++)f=b.heap[d],e=h[2*h[2*f+1]+1]+
-1,e>Q&&(e=Q,I++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=J&&(m=r[f-J]),v=h[2*f],b.opt_len+=v*(e+m),q&&(b.static_len+=v*(p[2*f+1]+m)));if(0!==I){do{for(e=Q-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[Q]--;I-=2}while(0<I);for(e=Q;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function x(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&&(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,
-h=c[2*(e+1)+1],++k<l&&f===h||(k<m?b.bl_tree[2*f]+=k:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*v]++):10>=k?b.bl_tree[2*Q]++:b.bl_tree[2*J]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m<n&&f===h)){if(m<p){do l(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(l(b,f,b.bl_tree),m--),l(b,v,b.bl_tree),k(b,m-3,2)):10>=m?(l(b,Q,b.bl_tree),k(b,m-3,3)):(l(b,J,b.bl_tree),k(b,m-11,7));m=
+b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,v,h=c.dyn_tree,k=c.max_code,p=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,I=c.stat_desc.extra_base,Q=c.stat_desc.max_length,u=0;for(e=0;e<=S;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<U;d++)f=b.heap[d],e=h[2*h[2*f+1]+1]+
+1,e>Q&&(e=Q,u++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=I&&(m=r[f-I]),v=h[2*f],b.opt_len+=v*(e+m),q&&(b.static_len+=v*(p[2*f+1]+m)));if(0!==u){do{for(e=Q-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[Q]--;u-=2}while(0<u);for(e=Q;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function x(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&&(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,
+h=c[2*(e+1)+1],++k<l&&f===h||(k<m?b.bl_tree[2*f]+=k:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*v]++):10>=k?b.bl_tree[2*Q]++:b.bl_tree[2*I]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m<n&&f===h)){if(m<p){do l(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(l(b,f,b.bl_tree),m--),l(b,v,b.bl_tree),k(b,m-3,2)):10>=m?(l(b,Q,b.bl_tree),k(b,m-3,3)):(l(b,I,b.bl_tree),k(b,m-11,7));m=
0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function u(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return E;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;c<C;c++)if(0!==b.dyn_ltree[2*c])return B;return E}function D(b,c,d,e){k(b,(G<<1)+(e?1:0),3);r(b);h(b,d);h(b,~d);F.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var F=b("../utils/common"),E=0,B=1,G=0,C=256,M=C+1+29,L=30,H=19,U=2*M+1,S=15,aa=16,A=256,v=16,Q=17,
-J=18,I=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],X=Array(2*(M+2));e(X);var T=Array(2*L);e(T);var ca=Array(512);e(ca);var ea=Array(256);e(ea);var P=Array(29);e(P);var V=Array(L);e(V);var W,O,R,fa=!1;d._tr_init=function(b){if(!fa){var c,d,e,h=Array(S+1);for(e=d=0;28>e;e++)for(P[e]=d,c=0;c<1<<I[e];c++)ea[d++]=e;ea[d-1]=
-e;for(e=d=0;16>e;e++)for(V[e]=d,c=0;c<1<<ba[e];c++)ca[d++]=e;for(d>>=7;e<L;e++)for(V[e]=d<<7,c=0;c<1<<ba[e]-7;c++)ca[256+d++]=e;for(c=0;c<=S;c++)h[c]=0;for(c=0;143>=c;)X[2*c+1]=8,c++,h[8]++;for(;255>=c;)X[2*c+1]=9,c++,h[9]++;for(;279>=c;)X[2*c+1]=7,c++,h[7]++;for(;287>=c;)X[2*c+1]=8,c++,h[8]++;n(X,M+1,h);for(c=0;c<L;c++)T[2*c+1]=5,T[2*c]=m(c,5);W=new f(X,I,C+1,M,S);O=new f(T,ba,0,L,S);R=new f([],N,0,H,7);fa=!0}b.l_desc=new g(b.dyn_ltree,W);b.d_desc=new g(b.dyn_dtree,O);b.bl_desc=new g(b.bl_tree,R);
+I=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],X=Array(2*(M+2));e(X);var T=Array(2*L);e(T);var ca=Array(512);e(ca);var ea=Array(256);e(ea);var P=Array(29);e(P);var V=Array(L);e(V);var W,O,R,fa=!1;d._tr_init=function(b){if(!fa){var c,d,e,h=Array(S+1);for(e=d=0;28>e;e++)for(P[e]=d,c=0;c<1<<J[e];c++)ea[d++]=e;ea[d-1]=
+e;for(e=d=0;16>e;e++)for(V[e]=d,c=0;c<1<<ba[e];c++)ca[d++]=e;for(d>>=7;e<L;e++)for(V[e]=d<<7,c=0;c<1<<ba[e]-7;c++)ca[256+d++]=e;for(c=0;c<=S;c++)h[c]=0;for(c=0;143>=c;)X[2*c+1]=8,c++,h[8]++;for(;255>=c;)X[2*c+1]=9,c++,h[9]++;for(;279>=c;)X[2*c+1]=7,c++,h[7]++;for(;287>=c;)X[2*c+1]=8,c++,h[8]++;n(X,M+1,h);for(c=0;c<L;c++)T[2*c+1]=5,T[2*c]=m(c,5);W=new f(X,J,C+1,M,S);O=new f(T,ba,0,L,S);R=new f([],N,0,H,7);fa=!0}b.l_desc=new g(b.dyn_ltree,W);b.d_desc=new g(b.dyn_dtree,O);b.bl_desc=new g(b.bl_tree,R);
b.bi_buf=0;b.bi_valid=0;p(b)};d._tr_stored_block=D;d._tr_flush_block=function(b,c,d,e){var f,g,h=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=u(b));w(b,b.l_desc);w(b,b.d_desc);x(b,b.dyn_ltree,b.l_desc.max_code);x(b,b.dyn_dtree,b.d_desc.max_code);w(b,b.bl_desc);for(h=H-1;3<=h&&0===b.bl_tree[2*K[h]+1];h--);h=(b.opt_len+=3*(h+1)+14,h);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)D(b,c,d,e);else if(4===b.strategy||g===f)k(b,2+(e?1:0),3),z(b,X,T);else{k(b,
4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;h+=1;k(b,c-257,5);k(b,d-1,5);k(b,h-4,4);for(f=0;f<h;f++)k(b,b.bl_tree[2*K[f]+1],3);y(b,b.dyn_ltree,c-1);y(b,b.dyn_dtree,d-1);z(b,b.dyn_ltree,b.dyn_dtree)}p(b);e&&r(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*(ea[d]+C+1)]++,b.dyn_dtree[2*(256>c?ca[c]:
ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);l(b,A,X);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}},{}],"/":[function(b,
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.4.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.4.8",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -361,8 +361,8 @@ mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0;this.path=
mxAbstractCanvas2D.prototype.arcTo=function(a,b,c,d,e,f,g){a=mxUtils.arcToCurves(this.lastX,this.lastY,a,b,c,d,e,f,g);if(null!=a)for(b=0;b<a.length;b+=6)this.curveTo(a[b],a[b+1],a[b+2],a[b+3],a[b+4],a[b+5])};mxAbstractCanvas2D.prototype.close=function(a,b,c,d,e,f){this.addOp(this.closeOp)};mxAbstractCanvas2D.prototype.end=function(){};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -375,7 +375,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -463,9 +463,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,m
else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var n=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-n:p||b?d+n:d-n}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)n=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=n&&(g+=Number(c.getAttribute("x"))*k,h+=Number(c.getAttribute("y"))*l,m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,n.drawShape(a,b,g,h,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)k="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*k);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");k=[];for(l=0;l<c.length;l++)0<c[l].length&&k.push(Number(c[l])*m);c=k.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -476,7 +476,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -942,10 +942,10 @@ h==mxConstants.ALIGN_CENTER&&k==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -987,9 +987,9 @@ f),g,h,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var h=a.absolutePoints,k=h[0],l=h[h.length-1],h=!1;if(null!=k)b=new mxCellState,b.x=k.x,b.y=k.y;else if(null!=b){var m=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?h=m==mxConstants.DIRECTION_MASK_WEST:(k=g.getCellGeometry(b.cell),
k.relative?h=.5>=k.x:null!=c&&(h=c.x+c.width<b.x))}else return;k=!0;null!=l?(c=new mxCellState,c.x=l.x,c.y=l.y):null!=c&&(m=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=m==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?k=.5>=a.x:null!=b&&(k=b.x+b.width<c.x)));null!=b&&null!=c&&(a=h?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=k?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1138,11 +1138,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var h=this.getBorderSizes(),k=this.container.offsetWidth-h.x-h.width-1,l=null!=g?g:this.container.offsetHeight-h.y-h.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var h=this.view.scale,m=g.width/h,n=g.height/h;null!=this.backgroundImage&&
-(m=Math.max(m,this.backgroundImage.width-g.x/h),n=Math.max(n,this.backgroundImage.height-g.y/h));var p=(b?a:2*a)+c,k=k-p,l=l-p;e=e?l/n:f?k/m:Math.min(k/m,l/n);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(m=Math.max(m,this.backgroundImage.width-g.x/h),n=Math.max(n,this.backgroundImage.height-g.y/h));var p=(b?a:2*a)+c+1,k=k-p,l=l-p;e=e?l/n:f?k/m:Math.min(k/m,l/n);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/h+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/h+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,l=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<h&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:h,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
k),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+l))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1688,46 +1688,47 @@ Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink"
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 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.encodeCells=function(a){for(var b=this.cloneCells(a),c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(d=0;d<b.length;d++){var e=
this.view.getState(a[d]);if(null!=e){var f=this.getCellGeometry(b[d]);null==f||!f.relative||this.model.isEdge(a[d])||c.get(this.model.getParent(a[d]))||(f.relative=!1,f.x=e.x/e.view.scale-e.view.translate.x,f.y=e.y/e.view.scale-e.view.translate.y)}}c=new mxCodec;e=new mxGraphModel;f=e.getChildAt(e.getRoot(),0);for(d=0;d<a.length;d++)e.add(f,b[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var h=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument();d=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=d.style?d.style.backgroundColor=a:d.setAttribute("style","background-color:"+
-a));null==l.createElementNS?(d.setAttribute("xmlns",mxConstants.NS_SVG),d.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):d.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;d.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*c)+"px");d.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*c)+"px");d.setAttribute("version","1.1");var m=d;e&&(m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),m.setAttribute("transform",
-"translate(0.5,0.5)"),d.appendChild(m));l.appendChild(d);l=this.createSvgCanvas(m);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-h.x)/k),Math.floor((c/b-h.y)/k));var n=document.createElement("textarea"),p=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,v,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
+return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h){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;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument(),m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=m.style?m.style.backgroundColor=a:m.setAttribute("style","background-color:"+
+a));null==l.createElementNS?(m.setAttribute("xmlns",mxConstants.NS_SVG),m.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):m.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;m.setAttribute("width",Math.max(1,Math.ceil(d.width*a)+2*c)+"px");m.setAttribute("height",Math.max(1,Math.ceil(d.height*a)+2*c)+"px");m.setAttribute("version","1.1");var n=m;e&&(n=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),n.setAttribute("transform",
+"translate(0.5,0.5)"),m.appendChild(n));l.appendChild(m);l=this.createSvgCanvas(n);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-d.x)/k),Math.floor((c/b-d.y)/k));var p=document.createElement("textarea"),v=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
Math.round((e+r.fontSize)/2));t.setAttribute("fill",r.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(r.fontSize)+"px");t.setAttribute("font-family",r.fontFamily);(r.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(r.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(r.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration",
-"underline");try{return n.innerHTML=f,t.textContent=n.value,t}catch(ha){return p.apply(this,arguments)}}else return p.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(h,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;g=this.createSvgImageExport();var v=g.drawCellState;g.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&v.apply(this,arguments)};g.drawState(this.getView().getState(this.model.root),
-l);return d};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");
-c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,
-f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&
-this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(I){}};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=
-c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
-a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}h.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(v){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var n=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};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 p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&
-null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+"underline");try{return p.innerHTML=f,t.textContent=p.value,t}catch(Ca){return v.apply(this,arguments)}}else return v.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var q=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&q.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),l);return m};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),
+e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=
+this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&
+(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(J){}};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,
+arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}h.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(v){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var n=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
+d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};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 p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAVCAYAAACkCdXRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA6ZJREFUeNqM001IY1cUB/D/fYmm2sbR2lC1zYlgoRG6MpEyBlpxM9iFIGKFIm3s0lCKjOByhCLZCFqLBF1YFVJdSRbdFHRhBbULtRuFVBTzYRpJgo2mY5OX5N9Fo2TG+eiFA/dd3vvd8+65ByTxshARTdf1JySp6/oTEdFe9T5eg5lIcnBwkCSZyWS+exX40oyur68/KxaLf5Okw+H4X+A9JBaLfUySZ2dnnJqaosPhIAACeC34DJRKpb7IZrMcHx+nwWCgUopGo/EOKwf9fn/1CzERUevr6+9ls1mOjIwQAH0+H4PBIKPR6D2ofAQCgToRUeVYJUkuLy8TANfW1kiS8/PzCy84Mw4MDBAAZ2dnmc/nub+/X0MSEBF1cHDwMJVKsaGhgV6vl+l0mqOjo1+KyKfl1dze3l4NBoM/PZ+diFSLiIKIGBOJxA9bW1sEwNXVVSaTyQMRaRaRxrOzs+9J8ujoaE5EPhQRq67rcZ/PRwD0+/3Udf03EdEgIqZisZibnJykwWDg4eEhd3Z2xkXELCJvPpdBrYjUiEhL+Xo4HH4sIhUaAKNSqiIcDsNkMqG+vh6RSOQQQM7tdhsAQCkFAHC73UUATxcWFqypVApmsxnDw8OwWq2TADQNgAYAFosF+XweyWQSdru9BUBxcXFRB/4rEgDcPouIIx6P4+bmBi0tLSCpAzBqAIqnp6c/dnZ2IpfLYXNzE62traMADACKNputpr+/v8lms9UAKAAwiMjXe3t7KBQKqKurQy6Xi6K0i2l6evpROp1mbW0t29vbGY/Hb8/IVIqq2zlJXl1dsaOjg2azmefn5wwEAl+JSBVExCgi75PkzMwMlVJsbGxkIpFgPp8PX15ePopEIs3JZPITXdf/iEajbGpqolKKExMT1HWdHo/nIxGpgIgoEXnQ3d39kCTHxsYIgC6Xi3NzcwyHw8xkMozFYlxaWmJbWxuVUuzt7WUul6PX6/1cRN4WEe2uA0SkaWVl5XGpRVhdXU0A1DSNlZWVdz3qdDrZ09PDWCzG4+Pjn0XEWvp9KJKw2WwKwBsA3gHQHAqFfr24uMDGxgZ2d3cRiUQAAHa7HU6nE319fTg5Ofmlq6vrGwB/AngaCoWK6rbsNptNA1AJoA7Aux6Pp3NoaMhjsVg+QNmIRqO/u1yubwFEASRKUAEA7rASqABUAKgC8KAUb5XWCOAfAFcA/gJwDSB7C93DylCtdM8qABhLc5TumV6KQigUeubjfwcAHkQJ94ndWeYAAAAASUVORK5CYII=":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
@@ -1766,12 +1767,12 @@ function(){aa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.vi
this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function h(){mxActor.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function q(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,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function w(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxActor.call(this)}function u(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function F(){mxCylinder.call(this)}function E(){mxShape.call(this)}function B(){mxShape.call(this)}
-function G(){mxEllipse.call(this)}function C(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function U(){mxShape.call(this)}function S(){mxShape.call(this)}function aa(){mxCylinder.call(this)}function A(){mxDoubleEllipse.call(this)}function v(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function J(){mxArrowConnector.call(this);this.spacing=0}function I(){mxActor.call(this)}function ba(){mxRectangleShape.call(this)}
+function G(){mxEllipse.call(this)}function C(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function U(){mxShape.call(this)}function S(){mxShape.call(this)}function aa(){mxCylinder.call(this)}function A(){mxDoubleEllipse.call(this)}function v(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function I(){mxArrowConnector.call(this);this.spacing=0}function J(){mxActor.call(this)}function ba(){mxRectangleShape.call(this)}
function N(){mxActor.call(this)}function K(){mxActor.call(this)}function X(){mxActor.call(this)}function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function P(){mxActor.call(this)}function V(){mxActor.call(this)}function W(){mxActor.call(this)}function O(){mxActor.call(this)}function R(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function Z(){mxRhombus.call(this)}function va(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
-function xa(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxActor.call(this)}function ka(){mxConnector.call(this)}function Ba(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
+function xa(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function ia(){mxActor.call(this)}function ja(){mxConnector.call(this)}function Ba(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var ya=Math.tan(mxUtils.toRadians(30)),ha=(.5-ya)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/ya);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ha);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ha)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+ya));f?(a.moveTo(0,.25*b),a.lineTo(.5*
-b,(.5-ha)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ha)*b),a.lineTo(.5*b,(1-ha)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ha),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ha)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",c);mxUtils.extend(d,mxCylinder);d.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);var ya=Math.tan(mxUtils.toRadians(30)),ka=(.5-ya)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/ya);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+ya));f?(a.moveTo(0,.25*b),a.lineTo(.5*
+b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",c);mxUtils.extend(d,mxCylinder);d.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())};d.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
d);mxUtils.extend(e,mxCylinder);e.prototype.size=30;e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(d-b,0),a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",e);mxUtils.extend(f,mxActor);f.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",f);mxUtils.extend(g,mxCylinder);g.prototype.tabWidth=60;g.prototype.tabHeight=20;g.prototype.tabPosition="right";g.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
@@ -1785,8 +1786,8 @@ c,!0)};mxCellRenderer.registerShape("trapezoid",n);mxUtils.extend(p,mxActor);p.p
mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);q.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};q.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};q.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};q.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=
g};q.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var l=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
-k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Fa=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Fa.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ga=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ga.apply(this,arguments)};
+k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Ca=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ca.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ga=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ga.apply(this,arguments)};
var Ha=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ha.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("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.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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()}};var Ia=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ia.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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=
@@ -1796,8 +1797,8 @@ function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",z);mxUtils.exte
"size",this.size))));var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=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+h),e-c),new mxPoint(g,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",
w);mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.fixedSize=20;x.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",x);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.redrawPath=function(a,b,c,d,e){b=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",y);mxUtils.extend(u,mxRectangleShape);u.prototype.isHtmlAllowed=function(){return!1};u.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",u);var Ca=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){Ca.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),Ca.apply(this,[a,b,
+this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(u,mxRectangleShape);u.prototype.isHtmlAllowed=function(){return!1};u.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",u);var Da=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){Da.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),Da.apply(this,[a,b,
c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.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};D.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,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],l=this.style["symbol"+f+"Width"],m=this.style["symbol"+f+"Height"],sa=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||sa,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,
e+this.strokewidth),sa+=p,n+=p);var p=b,oa=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-sa):p+sa,oa=k==mxConstants.ALIGN_MIDDLE?oa+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?oa+(e-m-n):oa+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,oa,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(F,mxCylinder);F.prototype.redrawPath=function(a,b,c,d,
@@ -1825,8 +1826,8 @@ a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.reg
2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",S);mxUtils.extend(aa,mxCylinder);aa.prototype.jettyWidth=32;aa.prototype.jettyHeight=12;aa.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",aa);mxUtils.extend(A,mxDoubleEllipse);A.prototype.outerStroke=!0;A.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);
this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",A);mxUtils.extend(v,A);v.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",v);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-Q);mxUtils.extend(J,mxArrowConnector);J.prototype.defaultWidth=10;J.prototype.defaultArrowWidth=20;J.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};J.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};J.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-J);mxUtils.extend(I,mxActor);I.prototype.size=30;I.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",I);mxUtils.extend(ba,mxRectangleShape);ba.prototype.dx=20;ba.prototype.dy=20;ba.prototype.isHtmlAllowed=
+Q);mxUtils.extend(I,mxArrowConnector);I.prototype.defaultWidth=10;I.prototype.defaultArrowWidth=20;I.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};I.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};I.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+I);mxUtils.extend(J,mxActor);J.prototype.size=30;J.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",J);mxUtils.extend(ba,mxRectangleShape);ba.prototype.dx=20;ba.prototype.dy=20;ba.prototype.isHtmlAllowed=
function(){return!1};ba.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",ba);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.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",N);mxUtils.extend(K,mxActor);K.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",K);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
@@ -1844,20 +1845,20 @@ b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lin
null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),a.begin(),a.moveTo(b,c),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(b,c-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(qa,
mxEllipse);qa.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",qa);mxUtils.extend(ra,mxActor);ra.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",ra);mxUtils.extend(ma,mxActor);ma.prototype.size=.2;ma.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",
-ma);mxUtils.extend(ja,mxActor);ja.prototype.size=.25;ja.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",ja);mxUtils.extend(ka,mxConnector);ka.prototype.origPaintEdgeShape=ka.prototype.paintEdgeShape;ka.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;ka.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),ka.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",ka);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+ma);mxUtils.extend(ia,mxActor);ia.prototype.size=.25;ia.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",ia);mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.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;ja.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),ja.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",ja);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ba);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Ba.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-
p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 n=
-e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Da=function(a,b,c){return na(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})},na=function(a,b,c,d,e){return da(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ia=function(a){return function(b){return[da(b,["arrowWidth",
+e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ea=function(a,b,c){return na(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})},na=function(a,b,c,d,e){return da(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ha=function(a){return function(b){return[da(b,["arrowWidth",
"arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.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))})]}},za=function(a,b,c){return function(d){var e=
[da(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(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(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Ea=function(a){return function(b){var c=
+"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Fa=function(a){return function(b){var c=
[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},pa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};
-g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Aa={link:function(a){return[Da(a,!0,10),Da(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(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
+g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Aa={link:function(a){return[Ea(a,!0,10),Ea(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(na(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(na(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,
@@ -1872,25 +1873,25 @@ label:pa(),ext:pa(),rectangle:pa(),triangle:pa(),rhombus:pa(),umlLifeline:functi
"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(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",ma.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[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.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=
-[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));
+[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",J.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));
return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-
b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.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}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.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}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.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",w.prototype.position)));
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ba.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.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)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.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)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=
+Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.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",g.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)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.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))})]},offPageConnector:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.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))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ja.prototype.size,!1),cube:za(1,a.prototype.size,!1),card:za(.5,h.prototype.size,!0),loopLimit:za(.5,W.prototype.size,!0),trapezoid:Ea(.5),parallelogram:Ea(1)};Graph.createHandle=da;Graph.handleFactory=Aa;mxVertexHandler.prototype.createCustomHandles=
+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))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:za(1,a.prototype.size,!1),card:za(.5,h.prototype.size,!0),loopLimit:za(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=da;Graph.handleFactory=Aa;mxVertexHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Aa[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&
-(a=mxConstants.SHAPE_CONNECTOR);a=Aa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ia=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ia),Math.sin(ia));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!=
+(a=mxConstants.SHAPE_CONNECTOR);a=Aa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ha=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ha),Math.sin(ha));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=ta.x,l=ta.y,m=ua.x,n=ua.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+
k*b,q.y+l*b));e.push(q)};var q=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 Ja=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ja.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];
mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;
-ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;qa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;ra.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=
+ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;qa.prototype.constraints=mxEllipse.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;ra.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=
mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;O.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)];E.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)];aa.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,
diff --git a/src/main/webapp/js/mxgraph/Actions.js b/src/main/webapp/js/mxgraph/Actions.js
index b1c0c5d6..1ab0e5d7 100644
--- a/src/main/webapp/js/mxgraph/Actions.js
+++ b/src/main/webapp/js/mxgraph/Actions.js
@@ -25,7 +25,7 @@ Actions.prototype.init = function()
};
// File actions
- this.addAction('new...', function() { window.open(ui.getUrl()); });
+ this.addAction('new...', function() { graph.openLink(ui.getUrl()); });
this.addAction('open...', function()
{
window.openNew = true;
@@ -291,14 +291,14 @@ Actions.prototype.init = function()
ui.showDialog(dlg.container, 320, 200, true, true);
dlg.init();
}
- });
+ }, null, null, 'Alt+Shift+T');
this.addAction('openLink', function()
{
var link = graph.getLinkForCell(graph.getSelectionCell());
if (link != null)
{
- window.open(link);
+ graph.openLink(link);
}
});
this.addAction('editLink...', function()
@@ -316,7 +316,7 @@ Actions.prototype.init = function()
graph.setLinkForCell(cell, (link.length > 0) ? link : null);
});
}
- });
+ }, null, null, 'Alt+Shift+L');
this.addAction('insertLink...', function()
{
if (graph.isEnabled() && !graph.isCellLocked(graph.getDefaultParent()))
@@ -755,7 +755,7 @@ Actions.prototype.init = function()
ext = '_' + mxClient.language;
}
- window.open(RESOURCES_PATH + '/help' + ext + '.html');
+ graph.openLink(RESOURCES_PATH + '/help' + ext + '.html');
});
var showingAbout = false;
diff --git a/src/main/webapp/js/mxgraph/Dialogs.js b/src/main/webapp/js/mxgraph/Dialogs.js
index 131cd258..2fef0149 100644
--- a/src/main/webapp/js/mxgraph/Dialogs.js
+++ b/src/main/webapp/js/mxgraph/Dialogs.js
@@ -520,7 +520,7 @@ var FilenameDialog = function(editorUi, filename, buttonText, fn, label, validat
{
var helpBtn = mxUtils.button(mxResources.get('help'), function()
{
- window.open(helpLink);
+ editorUi.editor.graph.openLink(helpLink);
});
helpBtn.className = 'geBtn';
@@ -780,7 +780,7 @@ var EditDiagramDialog = function(editorUi)
});
window.openFile.setData(data, null);
- window.open(editorUi.getUrl());
+ editorUi.editor.graph.openLink(editorUi.getUrl());
}
else if (select.value == 'replace')
{
@@ -1807,16 +1807,25 @@ var OutlineWindow = function(editorUi, x, y, w, h)
}
};
- mxEvent.addListener(window, 'resize', mxUtils.bind(this, function()
+ var resizeListener = mxUtils.bind(this, function()
{
var x = this.window.getX();
var y = this.window.getY();
this.window.setLocation(x, y);
- }));
-
+ });
+
+ mxEvent.addListener(window, 'resize', resizeListener);
+
var outline = editorUi.createOutline(this.window);
+ this.destroy = function()
+ {
+ mxEvent.removeListener(window, 'resize', resizeListener);
+ this.window.destroy();
+ outline.destroy();
+ }
+
this.window.addListener(mxEvent.RESIZE, mxUtils.bind(this, function()
{
outline.update(false);
@@ -1948,7 +1957,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
var tbarHeight = (!EditorUi.compactUi) ? '30px' : '26px';
var listDiv = document.createElement('div')
- listDiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? '#a2a2a2' : '#e5e5e5';
+ listDiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? '#dcdcdc' : '#e5e5e5';
listDiv.style.position = 'absolute';
listDiv.style.overflow = 'auto';
listDiv.style.left = '0px';
@@ -2457,7 +2466,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
});
this.window = new mxWindow(mxResources.get('layers'), div, x, y, w, h, true, true);
- this.window.minimumSize = new mxRectangle(0, 0, 90, 90);
+ this.window.minimumSize = new mxRectangle(0, 0, 120, 120);
this.window.destroyOnClose = false;
this.window.setMaximizable(false);
this.window.setResizable(true);
@@ -2481,11 +2490,19 @@ var LayersWindow = function(editorUi, x, y, w, h)
}
};
- mxEvent.addListener(window, 'resize', mxUtils.bind(this, function()
+ var resizeListener = mxUtils.bind(this, function()
{
var x = this.window.getX();
var y = this.window.getY();
this.window.setLocation(x, y);
- }));
+ });
+
+ mxEvent.addListener(window, 'resize', resizeListener);
+
+ this.destroy = function()
+ {
+ mxEvent.removeListener(window, 'resize', resizeListener);
+ this.window.destroy();
+ }
};
diff --git a/src/main/webapp/js/mxgraph/Editor.js b/src/main/webapp/js/mxgraph/Editor.js
index 42064f80..5547d9de 100644
--- a/src/main/webapp/js/mxgraph/Editor.js
+++ b/src/main/webapp/js/mxgraph/Editor.js
@@ -312,12 +312,12 @@ Editor.prototype.editAsNew = function(xml, title)
}));
}
- this.editorWindow = window.open(this.getEditBlankUrl(p +
+ this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p +
((p.length > 0) ? '&' : '?') + 'client=1'));
}
else
{
- this.editorWindow = window.open(this.getEditBlankUrl(p) +
+ this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p) +
'#R' + encodeURIComponent(xml));
}
}
diff --git a/src/main/webapp/js/mxgraph/EditorUi.js b/src/main/webapp/js/mxgraph/EditorUi.js
index 5466456d..d0400ded 100644
--- a/src/main/webapp/js/mxgraph/EditorUi.js
+++ b/src/main/webapp/js/mxgraph/EditorUi.js
@@ -1321,8 +1321,6 @@ EditorUi.prototype.initClipboard = function()
*/
EditorUi.prototype.initCanvas = function()
{
- var graph = this.editor.graph;
-
// Initial page layout view, scrollBuffer and timer-based scrolling
var graph = this.editor.graph;
graph.timerAutoScroll = true;
@@ -1717,7 +1715,7 @@ EditorUi.prototype.initCanvas = function()
}
else
{
- window.open(this.editor.editButtonLink, 'editWindow');
+ graph.openLink(this.editor.editButtonLink, 'editWindow');
}
mxEvent.consume(evt);
@@ -2009,8 +2007,7 @@ EditorUi.prototype.initCanvas = function()
{
// Ctrl+wheel (or pinch on touchpad) is a native browser zoom event is OS X
// LATER: Add support for zoom via pinch on trackpad for Chrome in OS X
- if ((mxEvent.isAltDown(evt) || (mxEvent.isControlDown(evt) && !mxClient.IS_MAC) ||
- graph.panningHandler.isActive()) && (this.dialogs == null || this.dialogs.length == 0))
+ if ((this.dialogs == null || this.dialogs.length == 0) && graph.isZoomWheelEvent(evt))
{
var source = mxEvent.getSource(evt);
@@ -3008,6 +3005,10 @@ EditorUi.prototype.createDivs = function()
{
this.tabContainer = this.createTabContainer();
}
+ else
+ {
+ this.diagramContainer.style.border = 'none';
+ }
};
/**
@@ -3864,7 +3865,9 @@ EditorUi.prototype.createKeyHandler = function(editor)
// Alt+Shift+Keycode mapping to action
var altShiftActions = {67: this.actions.get('clearWaypoints'), // Alt+Shift+C
65: this.actions.get('connectionArrows'), // Alt+Shift+A
- 80: this.actions.get('connectionPoints') // Alt+Shift+P
+ 76: this.actions.get('editLink'), // Alt+Shift+L
+ 80: this.actions.get('connectionPoints'), // Alt+Shift+P
+ 84: this.actions.get('editTooltip') // Alt+Shift+T
};
mxKeyHandler.prototype.getFunction = function(evt)
diff --git a/src/main/webapp/js/mxgraph/Format.js b/src/main/webapp/js/mxgraph/Format.js
index f7ae5c75..165bd17e 100644
--- a/src/main/webapp/js/mxgraph/Format.js
+++ b/src/main/webapp/js/mxgraph/Format.js
@@ -256,8 +256,9 @@ Format.prototype.isRoundedState = function(state)
Format.prototype.isLineJumpState = function(state)
{
var shape = mxUtils.getValue(state.style, mxConstants.STYLE_SHAPE, null);
+ var curved = mxUtils.getValue(state.style, mxConstants.STYLE_CURVED, false);
- return shape == 'connector' || shape == 'filledEdge';
+ return !curved && (shape == 'connector' || shape == 'filledEdge');
};
/**
@@ -888,8 +889,6 @@ BaseFormatPanel.prototype.createOption = function(label, isCheckedFn, setChecked
apply(cb.checked);
}
-
- mxEvent.consume(evt);
});
apply(value);
diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js
index 6810d5f5..28555e72 100644
--- a/src/main/webapp/js/mxgraph/Graph.js
+++ b/src/main/webapp/js/mxgraph/Graph.js
@@ -621,13 +621,15 @@ Graph = function(container, model, renderHint, stylesheet, themes)
return mxEvent.isMouseEvent(me.getEvent());
};
- // Enables links if graph is "disabled" (ie. read-only)
+ // Handles links if graph is read-only or cell is locked
var click = this.click;
this.click = function(me)
{
- if (!this.isEnabled() && !me.isConsumed())
+ var locked = me.state == null && me.sourceState != null && this.isCellLocked(me.sourceState.cell);
+
+ if ((!this.isEnabled() || locked) && !me.isConsumed())
{
- var cell = me.getCell();
+ var cell = (locked) ? me.sourceState.cell : me.getCell();
if (cell != null)
{
@@ -635,7 +637,14 @@ Graph = function(container, model, renderHint, stylesheet, themes)
if (link != null)
{
- window.open(link);
+ if (this.isPageLink(link))
+ {
+ this.pageLinkClicked(cell, link);
+ }
+ else
+ {
+ this.openLink(link);
+ }
}
}
}
@@ -644,13 +653,28 @@ Graph = function(container, model, renderHint, stylesheet, themes)
return click.apply(this, arguments);
}
};
+
+ // Redirects tooltips for locked cells
+ this.tooltipHandler.getStateForEvent = function(me)
+ {
+ return me.sourceState;
+ };
+
+ // Redirects cursor for locked cells
+ var getCursorForMouseEvent = this.getCursorForMouseEvent;
+ this.getCursorForMouseEvent = function(me)
+ {
+ var locked = me.state == null && me.sourceState != null && this.isCellLocked(me.sourceState.cell);
+
+ return this.getCursorForCell((locked) ? me.sourceState.cell : me.getCell());
+ };
// Shows pointer cursor for clickable cells with links
// ie. if the graph is disabled and cells cannot be selected
var getCursorForCell = this.getCursorForCell;
this.getCursorForCell = function(cell)
{
- if (!this.isEnabled())
+ if (!this.isEnabled() || this.isCellLocked(cell))
{
var link = this.getLinkForCell(cell);
@@ -658,11 +682,13 @@ Graph = function(container, model, renderHint, stylesheet, themes)
{
return 'pointer';
}
+ else if (this.isCellLocked(cell))
+ {
+ return 'default';
+ }
}
- else
- {
- return getCursorForCell.apply(this, arguments);
- }
+
+ return getCursorForCell.apply(this, arguments);
};
// Changes rubberband selection to be recursive
@@ -852,7 +878,7 @@ Graph = function(container, model, renderHint, stylesheet, themes)
{
me = graphUpdateMouseEvent.apply(this, arguments);
- if (this.isCellLocked(me.getCell()))
+ if (me.state != null && this.isCellLocked(me.getCell()))
{
me.state = null;
}
@@ -1069,53 +1095,77 @@ Graph.prototype.init = function(container)
};
/**
- * Adds support for page links.
+ * Installs automatic layout via styles
*/
-Graph.prototype.isPageLink = function(href)
+Graph.prototype.labelLinkClicked = function(state, elt, evt)
{
- return false;
+ var href = elt.getAttribute('href');
+
+ if (href != null && !this.isPageLink(href) && (mxEvent.isLeftMouseButton(evt) &&
+ !mxEvent.isPopupTrigger(evt)) || mxEvent.isTouchEvent(evt))
+ {
+ if (!this.isEnabled() || this.isCellLocked(state.cell))
+ {
+ var target = this.isBlankLink(href) ? this.linkTarget : '_top';
+ this.openLink(this.getAbsoluteUrl(href), target);
+ }
+
+ mxEvent.consume(evt);
+ }
};
/**
- * Installs automatic layout via styles
+ * Returns the size of the page format scaled with the page size.
*/
-Graph.prototype.labelLinkClicked = function(state, elt, evt)
+Graph.prototype.openLink = function(href, target)
{
- var href = elt.getAttribute('href');
+ var result = window;
- if (href != null && !this.isPageLink(href))
+ // Workaround for blocking in same iframe
+ if (target == '_self' && window != window.top)
+ {
+ window.location.href = href;
+ }
+ else
{
- if (!this.isEnabled())
+ // Avoids page reload for anchors (workaround for IE but used everywhere)
+ if (href.substring(0, this.baseUrl.length) == this.baseUrl &&
+ href.charAt(this.baseUrl.length) == '#' &&
+ target == '_top' && window == window.top)
{
- var target = state.view.graph.isBlankLink(href) ?
- state.view.graph.linkTarget : '_top';
- href = state.view.graph.getAbsoluteUrl(href);
-
- // Workaround for blocking in same iframe
- if (target == '_self' && window != window.top)
- {
- window.location.href = href;
- }
- else
+ var hash = href.split('#')[1];
+
+ // Forces navigation if on same hash
+ if (window.location.hash == '#' + hash)
{
- // Avoids page reload for anchors (workaround for IE but used everywhere)
- if (href.substring(0, this.baseUrl.length) == this.baseUrl &&
- href.charAt(this.baseUrl.length) == '#' &&
- target == '_top' && window == window.top)
- {
- window.location.hash = href.split('#')[1];
- }
- else if ((mxEvent.isLeftMouseButton(evt) &&
- !mxEvent.isPopupTrigger(evt)) ||
- mxEvent.isTouchEvent(evt))
- {
- window.open(href, target);
- }
+ window.location.hash = '';
}
+
+ window.location.hash = hash;
+ }
+ else
+ {
+ result = window.open(href, target);
}
-
- mxEvent.consume(evt);
}
+
+ return result;
+};
+
+/**
+ * Adds support for page links.
+ */
+Graph.prototype.isPageLink = function(href)
+{
+ return false;
+};
+
+/**
+ * Adds support for page links.
+ */
+Graph.prototype.pageLinkClicked = function(cell, href)
+{
+ this.fireEvent(new mxEventObject('pageLinkClicked', 'cell', cell, 'href', href));
};
/**
@@ -1312,6 +1362,17 @@ Graph.prototype.isReplacePlaceholders = function(cell)
};
/**
+ * Returns true if the given mouse wheel event should be used for zooming. This
+ * is invoked if no dialogs are showing and returns true if Alt or Control
+ * (except macOS) is pressed or if the panning handler is active.
+ */
+Graph.prototype.isZoomWheelEvent = function(evt)
+{
+ return mxEvent.isAltDown(evt) || (mxEvent.isControlDown(evt) && !mxClient.IS_MAC) ||
+ (this.panningHandler != null && this.panningHandler.isActive());
+};
+
+/**
* Adds Alt+click to select cells behind cells.
*/
Graph.prototype.isTransparentClickEvent = function(evt)
@@ -3522,7 +3583,7 @@ HoverIcons.prototype.setCurrentState = function(state)
var state2 = this.validEdges[e];
var pts2 = state2.absolutePoints;
- if (pts2 != null && mxUtils.intersects(state, state2))
+ if (pts2 != null && mxUtils.intersects(state, state2) && state2.style['noJump'] != '1')
{
// Compares each segment of the edge with the current segment
for (var j = 0; j < pts2.length - 1; j++)
@@ -5195,178 +5256,157 @@ if (typeof mxVertexHandler != 'undefined')
scrollTop: 0,
updateCurrentState: function(me)
{
- var tmp = graph.view.getState(me.getCell());
+ var tmp = me.sourceState;
if (tmp != this.currentState)
{
- if (this.currentState != null)
- {
- this.clear();
- }
-
- this.currentState = tmp;
-
- if (this.currentState != null)
- {
- this.activate(this.currentState);
- }
+ if (this.currentState != null)
+ {
+ this.clear();
+ }
+
+ this.currentState = tmp;
+
+ if (this.currentState != null)
+ {
+ this.activate(this.currentState);
+ }
}
},
mouseDown: function(sender, me)
{
- this.startX = me.getGraphX();
- this.startY = me.getGraphY();
- this.scrollLeft = graph.container.scrollLeft;
- this.scrollTop = graph.container.scrollTop;
-
- if (this.currentLink == null && graph.container.style.overflow == 'auto')
- {
- graph.container.style.cursor = 'move';
- }
-
- this.updateCurrentState(me);
+ this.startX = me.getGraphX();
+ this.startY = me.getGraphY();
+ this.scrollLeft = graph.container.scrollLeft;
+ this.scrollTop = graph.container.scrollTop;
+
+ if (this.currentLink == null && graph.container.style.overflow == 'auto')
+ {
+ graph.container.style.cursor = 'move';
+ }
+
+ this.updateCurrentState(me);
},
mouseMove: function(sender, me)
{
- if (graph.isMouseDown)
- {
- if (this.currentLink != null)
- {
- var dx = Math.abs(this.startX - me.getGraphX());
- var dy = Math.abs(this.startY - me.getGraphY());
+ if (graph.isMouseDown)
+ {
+ if (this.currentLink != null)
+ {
+ var dx = Math.abs(this.startX - me.getGraphX());
+ var dy = Math.abs(this.startY - me.getGraphY());
+
+ if (dx > tol || dy > tol)
+ {
+ this.clear();
+ }
+ }
+ }
+ else
+ {
+ // Checks for parent link
+ var linkNode = me.getSource();
- if (dx > tol || dy > tol)
+ while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
{
- this.clear();
+ linkNode = linkNode.parentNode;
}
- }
- }
- else
- {
+
+ if (linkNode != null)
+ {
+ this.clear();
+ }
+ else
+ {
+ if (this.currentState != null && (me.getState() == this.currentState || me.sourceState == null) &&
+ graph.intersects(this.currentState, me.getGraphX(), me.getGraphY()))
+ {
+ return;
+ }
+
+ this.updateCurrentState(me);
+ }
+ }
+ },
+ mouseUp: function(sender, me)
+ {
+ var source = me.getSource();
+ var evt = me.getEvent();
+
// Checks for parent link
- var linkNode = me.getSource();
+ var linkNode = source;
while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
{
linkNode = linkNode.parentNode;
}
- if (linkNode != null)
- {
- this.clear();
- }
- else
- {
- if (this.currentState != null && (me.getState() == this.currentState || me.getState() == null) &&
- graph.intersects(this.currentState, me.getGraphX(), me.getGraphY()))
- {
- return;
- }
-
- this.updateCurrentState(me);
- }
- }
- },
- mouseUp: function(sender, me)
- {
-
- var source = me.getSource();
- var evt = me.getEvent();
-
- // Checks for parent link
- var linkNode = source;
-
- while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
- {
- linkNode = linkNode.parentNode;
- }
-
- // Ignores clicks on links and collapse/expand icon
- if (linkNode == null &&
- (((Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
- Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
- (me.getState() == null || !me.isSource(me.getState().control))) &&
- ((mxEvent.isLeftMouseButton(evt) &&
- !mxEvent.isPopupTrigger(evt)) ||
- mxEvent.isTouchEvent(evt))))
- {
- if (this.currentLink != null)
+ // Ignores clicks on links and collapse/expand icon
+ if (linkNode == null &&
+ (((Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
+ Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
+ (me.sourceState == null || !me.isSource(me.sourceState.control))) &&
+ (((mxEvent.isLeftMouseButton(evt) || mxEvent.isMiddleMouseButton(evt)) &&
+ !mxEvent.isPopupTrigger(evt)) || mxEvent.isTouchEvent(evt))))
{
- var blank = graph.isBlankLink(this.currentLink);
-
- if ((this.currentLink.substring(0, 5) === 'data:' ||
- !blank) && beforeClick != null)
- {
- beforeClick(evt, this.currentLink);
- }
-
- if (!mxEvent.isConsumed(evt))
- {
- var target = (blank) ? graph.linkTarget : '_top';
+ if (this.currentLink != null)
+ {
+ var blank = graph.isBlankLink(this.currentLink);
- // Workaround for blocking in same iframe
- if (target == '_self' && window != window.top)
- {
- window.location.href = this.currentLink;
- }
- else
- {
- // Avoids page reload for anchors (workaround for IE but used everywhere)
- if (this.currentLink.substring(0, graph.baseUrl.length) == graph.baseUrl &&
- this.currentLink.charAt(graph.baseUrl.length) == '#' &&
- target == '_top' && window == window.top)
- {
- window.location.hash = this.currentLink.split('#')[1];
- }
- else
- {
- window.open(this.currentLink, target);
- }
- }
+ if ((this.currentLink.substring(0, 5) === 'data:' ||
+ !blank) && beforeClick != null)
+ {
+ beforeClick(evt, this.currentLink);
+ }
- me.consume();
+ if (!mxEvent.isConsumed(evt))
+ {
+ var target = (mxEvent.isMiddleMouseButton(evt)) ? '_blank' :
+ ((blank) ? graph.linkTarget : '_top');
+ graph.openLink(this.currentLink, target);
+ me.consume();
+ }
+ }
+ else if (onClick != null && !me.isConsumed() &&
+ (Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
+ Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
+ (Math.abs(this.startX - me.getGraphX()) < tol &&
+ Math.abs(this.startY - me.getGraphY()) < tol))
+ {
+ onClick(me.getEvent());
}
}
- else if (onClick != null && !me.isConsumed() &&
- (Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
- Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
- (Math.abs(this.startX - me.getGraphX()) < tol &&
- Math.abs(this.startY - me.getGraphY()) < tol))
- {
- onClick(me.getEvent());
- }
- }
-
- this.clear();
+
+ this.clear();
},
activate: function(state)
{
- this.currentLink = graph.getAbsoluteUrl(graph.getLinkForCell(state.cell));
-
- if (this.currentLink != null)
- {
- graph.container.style.cursor = 'pointer';
-
- if (this.highlight != null)
- {
- this.highlight.highlight(state);
- }
+ this.currentLink = graph.getAbsoluteUrl(graph.getLinkForCell(state.cell));
+
+ if (this.currentLink != null)
+ {
+ graph.container.style.cursor = 'pointer';
+
+ if (this.highlight != null)
+ {
+ this.highlight.highlight(state);
+ }
}
},
clear: function()
{
- if (graph.container != null)
- {
- graph.container.style.cursor = cursor;
- }
-
- this.currentState = null;
- this.currentLink = null;
-
- if (this.highlight != null)
- {
- this.highlight.hide();
- }
+ if (graph.container != null)
+ {
+ graph.container.style.cursor = cursor;
+ }
+
+ this.currentState = null;
+ this.currentLink = null;
+
+ if (this.highlight != null)
+ {
+ this.highlight.hide();
+ }
}
};
@@ -5402,7 +5442,7 @@ if (typeof mxVertexHandler != 'undefined')
for (var i = 0; i < cells.length; i++)
{
var parent = model.getParent(cells[i]);
- var child = this.moveCells([clones[i]], s, s, false, parent)[0];
+ var child = this.moveCells([clones[i]], s, s, false)[0];
select.push(child);
if (append)
@@ -5411,7 +5451,7 @@ if (typeof mxVertexHandler != 'undefined')
}
else
{
- // Maintains child index by inserting after cloned in parent
+ // Maintains child index by inserting after clone in parent
var index = parent.getIndex(cells[i]);
model.add(parent, clones[i], index + 1);
}
@@ -5676,7 +5716,7 @@ if (typeof mxVertexHandler != 'undefined')
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
- Graph.prototype.getSvg = function(background, scale, border, nocrop, crisp, ignoreSelection, showText)
+ Graph.prototype.getSvg = function(background, scale, border, nocrop, crisp, ignoreSelection, showText, imgExport)
{
scale = (scale != null) ? scale : 1;
border = (border != null) ? border : 0;
@@ -5824,7 +5864,7 @@ if (typeof mxVertexHandler != 'undefined')
svgCanvas.scale(s);
svgCanvas.textEnabled = showText;
- var imgExport = this.createSvgImageExport();
+ imgExport = (imgExport != null) ? imgExport : this.createSvgImageExport();
var imgExportDrawCellState = imgExport.drawCellState;
// Implements ignoreSelection flag
diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js
index 6359083b..2b3b2c18 100644
--- a/src/main/webapp/js/reader.min.js
+++ b/src/main/webapp/js/reader.min.js
@@ -45,9 +45,9 @@ C]);var q;b.ia?(q=b.ia(h,C),"string"!==typeof q&&(Z=!1,q=C),Z&&v!==+v&&(v=p.d.NO
r.length-1)+f+'"';break;case p.d.URI:case p.d.URI_FRAGMENT:""!==C&&(Z=!1);break;default:Z=!1}Z&&(l+="["+q.replace(/[^\w-]/g,"\\$&")+C+r+(B?" i]":"]"))}else if(c<d&&":"===a[c])if(v=a[++c],F.test(v))n+=":"+v;else break;else break;c!==d&&(Z=!1);Z&&(c=(h+k).replace(/[^ .*#\w-]/g,"\\$&")+l+n+e)&&m.push(c);return Z}" "===a[d]&&++d;k-1!==d&&" "===a[k]&&--k;for(var m=[],n=d,v=!0,C=d;v&&C<k;++C){var q=a[C];if(E[q]===E||" "===q)l(n,C,q)?n=C+1:v=!1}l(n,k,"")||(v=!1);return v?(m.length&&(n=m.join(""),null!==
e&&(n="."+e+" "+n),h.push(n)),!0):!c||c(a.slice(d,k))}var e=b.na,f=b.L,g=b.Aa,h=[],k=0,l,m=0,n;for(l=0;l<a.length;++l)(n=a[l],"("==n||"["==n?(++m,0):")"==n||"]"==n?(m&&--m,0):" "==a[l]&&(m||E[a[l-1]]===E||E[a[l+1]]===E))||(a[k++]=a[l]);a.length=k;k=a.length;for(l=m=0;l<k;++l)if(","===a[l]){if(!d(m,l))return null;m=l+1}return d(m,k)?h:null};(function(){var a=/^\w/,b=/^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))(?: and ?\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))(?: and ?\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\w+(?:-\w+)*|\d+(?: \/ \d+|(?:\.\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\))*))*$/i;
l=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return c.length?b.test(c)?a.test(c)?c:"not all , "+c:"not all":""}})();(function(){function a(a){var b=/^\s*[']([^']*)[']\s*$/,c=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,d=/^\s*url\s*[(][']([^']*)['][)]\s*$/,e=/^\s*url\s*[(]([^)]*)[)]\s*$/,f;return(f=/^\s*["]([^"]*)["]\s*$/.exec(a))||(f=b.exec(a))||(f=c.exec(a))||(f=d.exec(a))||(f=e.exec(a))?f[1]:null}function b(c,e,f,k,p,q,r){function C(){t=
-J.length&&null===J[J.length-1]}var v=void 0,B=r||[0],J=[],t=!1;m(e,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(e,g){if(t)e=null;else if("@media"===e)v.push("@media"," ",l(g));else if("@keyframes"===e||"@-webkit-keyframes"===e){var h=g[0];1!==g.length||/__$|[^\w\-]/.test(h)?e=null:(v.push(e," ",h+f.L),e="@keyframes")}else if("@import"===e&&0<g.length)if(e=null,"function"===typeof q){var m=l(g.slice(1));if("not all"!==m){++B[0];var C=[];v.push(C);var r=n(d(c,a(g[0])),
-function(a){var c=b(r,a.qa,f,k,p,q,B);--B[0];a=m?{toString:function(){return"@media "+m+" {"+c.result+"}"}}:c.result;C[0]=a;q(a,!!B[0])},p)}}else window.console&&window.console.log("@import "+g.join(" ")+" elided");t=!e;J.push(e)},endAtrule:function(){J.pop();t||v.push(";");C()},startBlock:function(){t||v.push("{")},endBlock:function(){t||(v.push("}"),t=!0)},startRuleset:function(a){if(!t){var b=void 0;"@keyframes"===J[J.length-1]?(b=a.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-t=!b,b&&(b=b[0].replace(/ +/g,""))):(a=h(a,f),a&&a.length?b=a.join(", "):t=!0);t||v.push(b,"{")}J.push(null)},endRuleset:function(){J.pop();t||v.push("}");C()},declaration:function(a,b){if(!t){var d=!1,e=b.length;2<=e&&"!"===b[e-2]&&"important"===b[e-1].toLowerCase()&&(d=!0,b.length-=2);g(a,b,k,c,f.L);b.length&&v.push(a,":",b.join(" "),d?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!B[0]}}k=function(a,c,d,e){return b(a,c,d,e,void 0,void 0).result.toString()}})()})();
+I.length&&null===I[I.length-1]}var v=void 0,B=r||[0],I=[],t=!1;m(e,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(e,g){if(t)e=null;else if("@media"===e)v.push("@media"," ",l(g));else if("@keyframes"===e||"@-webkit-keyframes"===e){var h=g[0];1!==g.length||/__$|[^\w\-]/.test(h)?e=null:(v.push(e," ",h+f.L),e="@keyframes")}else if("@import"===e&&0<g.length)if(e=null,"function"===typeof q){var m=l(g.slice(1));if("not all"!==m){++B[0];var C=[];v.push(C);var r=n(d(c,a(g[0])),
+function(a){var c=b(r,a.qa,f,k,p,q,B);--B[0];a=m?{toString:function(){return"@media "+m+" {"+c.result+"}"}}:c.result;C[0]=a;q(a,!!B[0])},p)}}else window.console&&window.console.log("@import "+g.join(" ")+" elided");t=!e;I.push(e)},endAtrule:function(){I.pop();t||v.push(";");C()},startBlock:function(){t||v.push("{")},endBlock:function(){t||(v.push("}"),t=!0)},startRuleset:function(a){if(!t){var b=void 0;"@keyframes"===I[I.length-1]?(b=a.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+t=!b,b&&(b=b[0].replace(/ +/g,""))):(a=h(a,f),a&&a.length?b=a.join(", "):t=!0);t||v.push(b,"{")}I.push(null)},endRuleset:function(){I.pop();t||v.push("}");C()},declaration:function(a,b){if(!t){var d=!1,e=b.length;2<=e&&"!"===b[e-2]&&"important"===b[e-1].toLowerCase()&&(d=!0,b.length-=2);g(a,b,k,c,f.L);b.length&&v.push(a,":",b.join(" "),d?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!B[0]}}k=function(a,c,d,e){return b(a,c,d,e,void 0,void 0).result.toString()}})()})();
"undefined"!==typeof window&&(window.sanitizeCssProperty=g,window.sanitizeCssSelectorList=h,window.sanitizeStylesheet=k,window.sanitizeMediaQuery=l);var m,n;(function(){function a(a,c,d,e,f){for(var g=c++;c<d&&"{"!==a[c]&&";"!==a[c];)++c;if(c<d&&(f||";"===a[c])){f=g+1;var h=c;f<d&&" "===a[f]&&++f;h>f&&" "===a[h-1]&&--h;e.startAtrule&&e.startAtrule(a[g].toLowerCase(),a.slice(f,h));c="{"===a[c]?b(a,c,d,e):c+1;e.endAtrule&&e.endAtrule()}return c}function b(d,e,f,g){++e;for(g.startBlock&&g.startBlock();e<
f;){var h=d[e].charAt(0);if("}"==h){++e;break}e=" "===h||";"===h?e+1:"@"===h?a(d,e,f,g,!1):"{"===h?b(d,e,f,g):c(d,e,f,g)}g.endBlock&&g.endBlock();return e}function c(a,b,c,d){var f=b,h=e(a,b,c,!0);if(0>h)return h=~h,h===f?h+1:h;var k=a[h];if("{"!==k)return h===f?h+1:h;b=h+1;h>f&&" "===a[h-1]&&--h;for(d.startRuleset&&d.startRuleset(a.slice(f,h));b<c;){k=a[b];if("}"===k){++b;break}b=" "===k?b+1:g(a,b,c,d)}d.endRuleset&&d.endRuleset();return b}function e(a,b,c,d){for(var e,f=[],g=-1;b<c;++b)if(e=a[b].charAt(0),
"["===e||"("===e)f[++g]=e;else if("]"===e&&"["===f[g]||")"===e&&"("===f[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function f(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function g(a,b,c,d){var g=a[b++];if(!h.test(g))return f(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return f(a,b,c);++b;b<c&&" "===a[b]&&++b;var k=e(a,b,c,!1);if(0>k)k=~k;else{for(var l=[],m=0,n=b;n<k;++n)b=a[n]," "!==b&&(l[m++]=b);if(k<c){do{b=
@@ -72,19 +72,19 @@ li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};p.ELEMENT_DOM_INTERFACES=p.Q;p.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};p.ueffects=p.P;p.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
p.URIEFFECTS=p.J;p.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};p.ltypes=p.M;p.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};p.LOADERTYPES=p.I;"undefined"!==typeof window&&(window.html4=p);a=function(a){function b(a,b){var c;if(aa.hasOwnProperty(b))c=aa[b];else{var d=b.match(A);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(v))?String.fromCharCode(parseInt(d[1],
-16)):J&&Q.test(b)?(J.innerHTML="&"+b+";",d=J.textContent,aa[b]=d):"&"+b+";"}return c}function c(a){return a.replace(ba,b)}function d(a){return(""+a).replace(K,"&amp;").replace(T,"&lt;").replace(ca,"&gt;").replace(ea,"&#34;")}function e(a){return a.replace(X,"&amp;$1").replace(T,"&lt;").replace(ca,"&gt;")}function g(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,c){var d,e=/(<\/|<\!--|<[!?]|[&<>])/g;
+16)):I&&Q.test(b)?(I.innerHTML="&"+b+";",d=I.textContent,aa[b]=d):"&"+b+";"}return c}function c(a){return a.replace(ba,b)}function d(a){return(""+a).replace(K,"&amp;").replace(T,"&lt;").replace(ca,"&gt;").replace(ea,"&#34;")}function e(a){return a.replace(X,"&amp;$1").replace(T,"&lt;").replace(ca,"&gt;")}function g(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,c){var d,e=/(<\/|<\!--|<[!?]|[&<>])/g;
d=a+"";if(V)d=d.split(e);else{for(var f=[],g=0,h;null!==(h=e.exec(d));)f.push(d.substring(g,h.index)),f.push(h[0]),g=h.index+h[0].length;f.push(d.substring(g));d=f}k(b,d,0,{r:!1,C:!1},c)}}function h(a,b,c,d,e){return function(){k(a,b,c,d,e)}}function k(b,c,d,e,f){try{b.H&&0==d&&b.H(f);for(var g,k,n,v=c.length;d<v;){var C=c[d++],p=c[d];switch(C){case "&":N.test(p)?(b.e&&b.e("&"+p,f,O,h(b,c,d,e,f)),d++):b.e&&b.e("&amp;",f,O,h(b,c,d,e,f));break;case "</":if(g=/^([-\w:]+)[^\'\"]*/.exec(p))if(g[0].length===
-p.length&&">"===c[d+1])d+=2,n=g[1].toLowerCase(),b.t&&b.t(n,f,O,h(b,c,d,e,f));else{var Z=c,R=d,q=b,r=f,Y=O,J=e,t=m(Z,R);t?(q.t&&q.t(t.name,r,Y,h(q,Z,R,J,r)),d=t.next):d=Z.length}else b.e&&b.e("&lt;/",f,O,h(b,c,d,e,f));break;case "<":if(g=/^([-\w:]+)\s*\/?/.exec(p))if(g[0].length===p.length&&">"===c[d+1]){d+=2;n=g[1].toLowerCase();b.w&&b.w(n,[],f,O,h(b,c,d,e,f));var Q=a.f[n];Q&W&&(d=l(c,{name:n,next:d,c:Q},b,f,O,e))}else{var Z=c,R=b,q=f,r=O,Y=e,B=m(Z,d);B?(R.w&&R.w(B.name,B.R,q,r,h(R,Z,B.next,Y,q)),
+p.length&&">"===c[d+1])d+=2,n=g[1].toLowerCase(),b.t&&b.t(n,f,O,h(b,c,d,e,f));else{var Z=c,R=d,q=b,r=f,Y=O,I=e,t=m(Z,R);t?(q.t&&q.t(t.name,r,Y,h(q,Z,R,I,r)),d=t.next):d=Z.length}else b.e&&b.e("&lt;/",f,O,h(b,c,d,e,f));break;case "<":if(g=/^([-\w:]+)\s*\/?/.exec(p))if(g[0].length===p.length&&">"===c[d+1]){d+=2;n=g[1].toLowerCase();b.w&&b.w(n,[],f,O,h(b,c,d,e,f));var Q=a.f[n];Q&W&&(d=l(c,{name:n,next:d,c:Q},b,f,O,e))}else{var Z=c,R=b,q=f,r=O,Y=e,B=m(Z,d);B?(R.w&&R.w(B.name,B.R,q,r,h(R,Z,B.next,Y,q)),
d=B.c&W?l(Z,B,R,q,r,Y):B.next):d=Z.length}else b.e&&b.e("&lt;",f,O,h(b,c,d,e,f));break;case "\x3c!--":if(!e.C){for(k=d+1;k<v&&(">"!==c[k]||!/--$/.test(c[k-1]));k++);if(k<v){if(b.A){var u=c.slice(d,k).join("");b.A(u.substr(0,u.length-2),f,O,h(b,c,k+1,e,f))}d=k+1}else e.C=!0}e.C&&b.e&&b.e("&lt;!--",f,O,h(b,c,d,e,f));break;case "<!":if(/^\w/.test(p)){if(!e.r){for(k=d+1;k<v&&">"!==c[k];k++);k<v?d=k+1:e.r=!0}e.r&&b.e&&b.e("&lt;!",f,O,h(b,c,d,e,f))}else b.e&&b.e("&lt;!",f,O,h(b,c,d,e,f));break;case "<?":if(!e.r){for(k=
d+1;k<v&&">"!==c[k];k++);k<v?d=k+1:e.r=!0}e.r&&b.e&&b.e("&lt;?",f,O,h(b,c,d,e,f));break;case ">":b.e&&b.e("&gt;",f,O,h(b,c,d,e,f));break;case "":break;default:b.e&&b.e(C,f,O,h(b,c,d,e,f))}}b.B&&b.B(f)}catch(la){if(la!==O)throw la;}}function l(b,c,d,f,g,k){var l=b.length;R.hasOwnProperty(c.name)||(R[c.name]=RegExp("^"+c.name+"(?:[\\s\\/]|$)","i"));for(var m=R[c.name],n=c.next,v=c.next+1;v<l&&("</"!==b[v-1]||!m.test(b[v]));v++);v<l&&--v;l=b.slice(n,v).join("");if(c.c&a.c.CDATA)d.z&&d.z(l,f,g,h(d,b,
v,k,f));else if(c.c&a.c.RCDATA)d.F&&d.F(e(l),f,g,h(d,b,v,k,f));else throw Error("bug");return v}function m(b,d){var e=/^([-\w:]+)/.exec(b[d]),f={};f.name=e[1].toLowerCase();f.c=a.f[f.name];for(var g=b[d].substr(e[0].length),h=d+1,k=b.length;h<k&&">"!==b[h];h++)g+=b[h];if(!(k<=h)){for(var l=[];""!==g;)if(e=P.exec(g))if(e[4]&&!e[5]||e[6]&&!e[7]){for(var e=e[4]||e[6],m=!1,g=[g,b[h++]];h<k;h++){if(m){if(">"===b[h])break}else 0<=b[h].indexOf(e)&&(m=!0);g.push(b[h])}if(k<=h)break;g=g.join("")}else{var m=
-e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(I,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
+e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(J,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
if("attribs"in l)g=l.attribs;else throw Error("tagPolicy gave no attribs");var m;"tagName"in l?(m=l.tagName,l=a.f[m]):(m=c,l=k);if(k&a.c.OPTIONAL_ENDTAG){var n=e[e.length-1];n&&n.D===c&&(n.v!==m||c!==m)&&h.push("</",n.v,">")}k&a.c.EMPTY||e.push({D:c,v:m});h.push("<",m);c=0;for(n=g.length;c<n;c+=2){var v=g[c],p=g[c+1];null!==p&&void 0!==p&&h.push(" ",v,'="',d(p),'"')}h.push(">");k&a.c.EMPTY&&!(l&a.c.EMPTY)&&h.push("</",m,">")}else f=!(k&a.c.EMPTY)}}},endTag:function(b,c){if(f)f=!1;else if(a.f.hasOwnProperty(b)){var d=
a.f[b];if(!(d&(a.c.EMPTY|a.c.FOLDABLE))){if(d&a.c.OPTIONAL_ENDTAG)for(d=e.length;0<=--d;){var g=e[d].D;if(g===b)break;if(!(a.f[g]&a.c.OPTIONAL_ENDTAG))return}else for(d=e.length;0<=--d&&e[d].D!==b;);if(!(0>d)){for(g=e.length;--g>d;){var h=e[g].v;a.f[h]&a.c.OPTIONAL_ENDTAG||c.push("</",h,">")}d<e.length&&(b=e[d].v);e.length=d;c.push("</",b,">")}}}},pcdata:c,rcdata:c,cdata:c,endDoc:function(a){for(;e.length;e.length--)a.push("</",e[e.length-1].v,">")}})}function p(a,b,c,d,e){if(!e)return null;try{var g=
-f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(ja){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function M(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
+f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(ia){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function M(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
b+"::"+h,a.m.hasOwnProperty(n))||(n="*::"+h,a.m.hasOwnProperty(n)))m=a.m[n];if(null!==m)switch(m){case a.d.NONE:break;case a.d.SCRIPT:k=null;f&&r(f,b,h,l,k);break;case a.d.STYLE:if("undefined"===typeof U){k=null;f&&r(f,b,h,l,k);break}var v=[];U(k,{declaration:function(b,c){var e=b.toLowerCase();S(e,c,d?function(b){return p(b,a.P.ja,a.M.ka,{TYPE:"CSS",CSS_PROP:e},d)}:null);c.length&&v.push(e+": "+c.join(" "))}});k=0<v.length?v.join(" ; "):null;f&&r(f,b,h,l,k);break;case a.d.ID:case a.d.IDREF:case a.d.IDREFS:case a.d.GLOBAL_NAME:case a.d.LOCAL_NAME:case a.d.CLASSES:k=
e?e(k):k;f&&r(f,b,h,l,k);break;case a.d.URI:k=p(k,C(a.J,b,h),C(a.I,b,h),{TYPE:"MARKUP",XML_ATTR:h,XML_TAG:b},d);f&&r(f,b,h,l,k);break;case a.d.URI_FRAGMENT:k&&"#"===k.charAt(0)?(k=k.substring(1),k=e?e(k):k,null!==k&&void 0!==k&&(k="#"+k)):k=null;f&&r(f,b,h,l,k);break;default:k=null,f&&r(f,b,h,l,k)}else k=null,f&&r(f,b,h,l,k);c[g+1]=k}return c}function L(b,c,d){return function(e,f){if(a.f[e]&a.c.UNSAFE)d&&r(d,e,void 0,void 0,void 0);else return{attribs:M(e,f,b,c,d)}}}function H(a,b){var c=[];n(b)(a,
-c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,Q=/^[A-Za-z][A-za-z0-9]+$/,J="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,I=/\0/g,ba=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,K=/&/g,X=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
+c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,Q=/^[A-Za-z][A-za-z0-9]+$/,I="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,J=/\0/g,ba=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,K=/&/g,X=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
/[<]/g,ca=/>/g,ea=/\"/g,P=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,V=3==="a,b".split(/(,)/).length,W=a.c.CDATA|a.c.RCDATA,O={},R={},fa=/^(?:https?|mailto|data)$/i,Y={};Y.pa=Y.escapeAttrib=d;Y.ra=Y.makeHtmlSanitizer=n;Y.sa=Y.makeSaxParser=g;Y.ta=Y.makeTagPolicy=L;Y.wa=Y.normalizeRCData=e;Y.xa=Y.sanitize=function(a,b,c,d){return H(a,L(b,c,d))};Y.ya=Y.sanitizeAttribs=M;Y.za=Y.sanitizeWithPolicy=H;Y.Ba=Y.unescapeEntities=c;return Y}(p);c=a.sanitize;"undefined"!==
typeof window&&(window.html=a,window.html_sanitize=c)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a,b){var c="",d,e,f,g,h,k,l=0;for(null!=b&&b||(a=Base64._utf8_encode(a));l<a.length;)d=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=d>>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,
"");k<a.length;)d=this._keyStr.indexOf(a.charAt(k++)),e=this._keyStr.indexOf(a.charAt(k++)),g=this._keyStr.indexOf(a.charAt(k++)),h=this._keyStr.indexOf(a.charAt(k++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|h,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=h&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
@@ -117,10 +117,10 @@ b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.windo
b.strstart+b.lookahead-K;e=D._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(h(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=D._tr_tally(b,0,b.window[b.strstart-1]),e&&h(b,!1),
b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(D._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===C?(h(b,!0),0===b.strm.avail_out?W:O):b.last_lit&&(h(b,!1),0===b.strm.avail_out)?P:V}function q(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=0;this.pending_buf=null;this.wrap=
this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=A;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=this.hash_mask=this.hash_bits=this.hash_size=
-this.ins_h=0;this.dyn_ltree=new u.Buf16(2*ba);this.dyn_dtree=new u.Buf16(2*(2*J+1));this.bl_tree=new u.Buf16(2*(2*I+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new u.Buf16(N+1);this.heap=new u.Buf16(2*Q+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new u.Buf16(2*Q+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function z(b){var c;
+this.ins_h=0;this.dyn_ltree=new u.Buf16(2*ba);this.dyn_dtree=new u.Buf16(2*(2*I+1));this.bl_tree=new u.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new u.Buf16(N+1);this.heap=new u.Buf16(2*Q+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new u.Buf16(2*Q+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function z(b){var c;
return b&&b.state?(b.total_in=b.total_out=0,b.data_type=aa,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:ea,b.adler=2===c.wrap?0:1,c.last_flush=G,D._tr_init(c),M):e(b,L)}function w(b){var c=z(b);c===M&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start=0,b.lookahead=0,b.insert=0,b.match_length=
b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function x(b,c,d,f,g,h){if(!b)return L;var k=1;if(c===H&&(c=6),0>f?(k=0,f=-f):15<f&&(k=2,f-=16),1>g||g>v||d!==A||8>f||15<f||0>c||9<c||0>h||h>S)return e(b,L);8===f&&(f=9);var l=new t;return b.state=l,l.strm=b,l.wrap=k,l.gzhead=null,l.w_bits=f,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=g+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+K-1)/K),l.window=new u.Buf8(2*l.w_size),l.head=new u.Buf16(l.hash_size),
-l.prev=new u.Buf16(l.w_size),l.lit_bufsize=1<<g+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new u.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=c,l.strategy=h,l.method=d,w(b)}var y,u=b("../utils/common"),D=b("./trees"),F=b("./adler32"),E=b("./crc32"),B=b("./messages"),G=0,C=4,M=0,L=-2,H=-1,U=1,S=4,aa=2,A=8,v=9,Q=286,J=30,I=19,ba=2*Q+1,N=15,K=3,X=258,T=X+K+1,ca=42,ea=113,P=1,V=2,W=3,O=4;y=[new q(0,0,0,0,function(b,c){var d=65535;for(d>b.pending_buf_size-5&&
+l.prev=new u.Buf16(l.w_size),l.lit_bufsize=1<<g+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new u.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=c,l.strategy=h,l.method=d,w(b)}var y,u=b("../utils/common"),D=b("./trees"),F=b("./adler32"),E=b("./crc32"),B=b("./messages"),G=0,C=4,M=0,L=-2,H=-1,U=1,S=4,aa=2,A=8,v=9,Q=286,I=30,J=19,ba=2*Q+1,N=15,K=3,X=258,T=X+K+1,ca=42,ea=113,P=1,V=2,W=3,O=4;y=[new q(0,0,0,0,function(b,c){var d=65535;for(d>b.pending_buf_size-5&&
(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(n(b),0===b.lookahead&&c===G)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,h(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-T&&(h(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===C?(h(b,!0),0===b.strm.avail_out?W:O):(b.strstart>b.block_start&&h(b,!1),P)}),new q(4,4,8,4,p),new q(4,5,16,8,p),new q(4,6,32,
32,p),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return x(b,c,A,15,8,0)};d.deflateInit2=x;d.deflateReset=w;d.deflateResetKeep=z;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?L:(b.state.gzhead=c,M):L};d.deflate=function(b,c){var d,m,v,p;if(!b||!b.state||5<c||0>c)return b?e(b,L):L;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||666===m.status&&c!==C)return e(b,
0===b.avail_out?-5:L);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,k(m,31),k(m,139),k(m,8),m.gzhead?(k(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),k(m,255&m.gzhead.time),k(m,m.gzhead.time>>8&255),k(m,m.gzhead.time>>16&255),k(m,m.gzhead.time>>24&255),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(k(m,255&m.gzhead.extra.length),k(m,m.gzhead.extra.length>>
@@ -129,7 +129,7 @@ m.pending_buf_size||(m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_bu
v,v)),g(b),v=m.pending,m.pending===m.pending_buf_size)){p=1;break}p=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;k(m,p)}while(0!==p);m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v));0===p&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){v=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v)),g(b),v=m.pending,m.pending===m.pending_buf_size)){p=
1;break}p=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;k(m,p)}while(0!==p);m.gzhead.hcrc&&m.pending>v&&(b.adler=E(b.adler,m.pending_buf,m.pending-v,v));0===p&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(k(m,255&b.adler),k(m,b.adler>>8&255),b.adler=0,m.status=ea)):m.status=ea),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=-1,M}else if(0===b.avail_in&&(c<<1)-
(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==C)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var q;if(2===m.strategy)a:{for(var r;;){if(0===m.lookahead&&(n(m),0===m.lookahead)){if(c===G){q=P;break a}break}if(m.match_length=0,r=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,r&&(h(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===C?(h(m,!0),0===m.strm.avail_out?W:O):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?
-P:V)}else if(3===m.strategy)a:{var J,Q;for(r=m.window;;){if(m.lookahead<=X){if(n(m),m.lookahead<=X&&c===G){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(Q=m.strstart-1,J=r[Q],J===r[++Q]&&J===r[++Q]&&J===r[++Q])){for(d=m.strstart+X;J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&J===r[++Q]&&Q<d;);m.match_length=X-(d-Q);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=K?(q=D._tr_tally(m,1,m.match_length-
+P:V)}else if(3===m.strategy)a:{var I,Q;for(r=m.window;;){if(m.lookahead<=X){if(n(m),m.lookahead<=X&&c===G){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(Q=m.strstart-1,I=r[Q],I===r[++Q]&&I===r[++Q]&&I===r[++Q])){for(d=m.strstart+X;I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&I===r[++Q]&&Q<d;);m.match_length=X-(d-Q);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=K?(q=D._tr_tally(m,1,m.match_length-
K),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(h(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===C?(h(m,!0),0===m.strm.avail_out?W:O):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?P:V)}else q=y[m.level].func(m,c);if(q!==W&&q!==O||(m.status=666),q===P||q===W)return 0===b.avail_out&&(m.last_flush=-1),M;if(q===V&&(1===c?D._tr_align(m):5!==c&&(D._tr_stored_block(m,0,0,!1),3===c&&(f(m.head),0===
m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,M}return c!==C?M:0>=m.wrap?1:(2===m.wrap?(k(m,255&b.adler),k(m,b.adler>>8&255),k(m,b.adler>>16&255),k(m,b.adler>>24&255),k(m,255&b.total_in),k(m,b.total_in>>8&255),k(m,b.total_in>>16&255),k(m,b.total_in>>24&255)):(l(m,b.adler>>>16),l(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?M:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,c!==ca&&69!==c&&73!==c&&91!==
c&&103!==c&&c!==ea&&666!==c?e(b,L):(b.state=null,c===ea?e(b,-3):M)):L};d.deflateSetDictionary=function(b,c){var d,e,g,h,k,m,l;e=c.length;if(!b||!b.state||(d=b.state,h=d.wrap,2===h||1===h&&d.status!==ca||d.lookahead))return L;1===h&&(b.adler=F(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new u.Buf8(d.w_size),u.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;m=b.next_in;l=b.input;b.avail_in=e;b.next_in=0;b.input=c;for(n(d);d.lookahead>=
@@ -141,39 +141,39 @@ while(--B);E=l-C;M=H}}}else if(E+=t-B,B<G){G-=B;do H[l++]=z[E++];while(--B);E=l-
24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function f(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new r.Buf16(320);this.work=new r.Buf16(288);this.distdyn=this.lendyn=null;this.was=
this.back=this.sane=0}function g(b){var c;return b&&b.state?(c=b.state,b.total_in=b.total_out=c.total=0,b.msg="",c.wrap&&(b.adler=1&c.wrap),c.mode=u,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new r.Buf32(D),c.distcode=c.distdyn=new r.Buf32(F),c.sane=1,c.back=-1,x):y}function h(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function k(b,c){var d,e;return b&&b.state?(e=b.state,0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<
c)?y:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,h(b))):y}function l(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=k(b,c),d!==x&&(b.state=null),d):y}function m(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new r.Buf8(b.wsize)),e>=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d-e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=
-e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var n,p,r=b("../utils/common"),q=b("./adler32"),t=b("./crc32"),z=b("./inffast"),w=b("./inftrees"),x=0,y=-2,u=1,D=852,F=592,E=!0;d.inflateReset=h;d.inflateReset2=k;d.inflateResetKeep=g;d.inflateInit=function(b){return l(b,15)};d.inflateInit2=l;d.inflate=function(b,c){var d,f,g,h,k,l,B,A,v,Q,J,I,ba,N,K,G,D,ca,F,P,V,W,O=0,R=new r.Buf8(4),fa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||
-!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;Q=l;J=B;V=x;a:for(;;)switch(d.mode){case u:if(0===d.wrap){d.mode=13;break}for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(2&d.wrap&&35615===A){d.check=0;R[0]=255&A;R[1]=A>>>8&255;d.check=t(d.check,R,2,0);v=A=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&d.wrap)||(((255&A)<<8)+(A>>8))%31){b.msg="incorrect header check";
+e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var n,p,r=b("../utils/common"),q=b("./adler32"),t=b("./crc32"),z=b("./inffast"),w=b("./inftrees"),x=0,y=-2,u=1,D=852,F=592,E=!0;d.inflateReset=h;d.inflateReset2=k;d.inflateResetKeep=g;d.inflateInit=function(b){return l(b,15)};d.inflateInit2=l;d.inflate=function(b,c){var d,f,g,h,k,l,B,A,v,Q,I,J,ba,N,K,G,D,ca,F,P,V,W,O=0,R=new r.Buf8(4),fa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||
+!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;Q=l;I=B;V=x;a:for(;;)switch(d.mode){case u:if(0===d.wrap){d.mode=13;break}for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(2&d.wrap&&35615===A){d.check=0;R[0]=255&A;R[1]=A>>>8&255;d.check=t(d.check,R,2,0);v=A=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&d.wrap)||(((255&A)<<8)+(A>>8))%31){b.msg="incorrect header check";
d.mode=30;break}if(8!==(15&A)){b.msg="unknown compression method";d.mode=30;break}if(A>>>=4,v-=4,P=(15&A)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&A?10:12;v=A=0;break;case 2:for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.flags=A,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";d.mode=30;break}d.head&&(d.head.text=A>>8&1);512&d.flags&&
(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0;d.mode=3;case 3:for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.head&&(d.head.time=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,R[2]=A>>>16&255,R[3]=A>>>24&255,d.check=t(d.check,R,4,0));v=A=0;d.mode=4;case 4:for(;16>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.head&&(d.head.xflags=255&A,d.head.os=A>>8);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0;d.mode=5;case 5:if(1024&d.flags){for(;16>v;){if(0===l)break a;l--;
-A+=f[h++]<<v;v+=8}d.length=A;d.head&&(d.head.extra_len=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>l&&(I=l),I&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,P)),512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode=7;case 7:if(2048&d.flags){if(0===l)break a;I=0;do P=f[h+
-I++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&I<l);if(512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===l)break a;I=0;do P=f[h+I++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&I<l);if(512&d.flags&&(d.check=t(d.check,f,I,h)),l-=I,h+=I,P)break a}else d.head&&(d.head.comment=null);d.mode=9;case 9:if(512&d.flags){for(;16>v;){if(0===l)break a;l--;
+A+=f[h++]<<v;v+=8}d.length=A;d.head&&(d.head.extra_len=A);512&d.flags&&(R[0]=255&A,R[1]=A>>>8&255,d.check=t(d.check,R,2,0));v=A=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>l&&(J=l),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,J,P)),512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,d.length-=J),d.length))break a;d.length=0;d.mode=7;case 7:if(2048&d.flags){if(0===l)break a;J=0;do P=f[h+
+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<l);if(512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===l)break a;J=0;do P=f[h+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<l);if(512&d.flags&&(d.check=t(d.check,f,J,h)),l-=J,h+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=9;case 9:if(512&d.flags){for(;16>v;){if(0===l)break a;l--;
A+=f[h++]<<v;v+=8}if(A!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}v=A=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}b.adler=d.check=e(A);v=A=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){A>>>=7&v;v-=7&v;d.mode=27;break}for(;3>v;){if(0===
l)break a;l--;A+=f[h++]<<v;v+=8}switch(d.last=1&A,A>>>=1,--v,3&A){case 0:d.mode=14;break;case 1:G=d;if(E){n=new r.Buf32(512);p=new r.Buf32(32);for(N=0;144>N;)G.lens[N++]=8;for(;256>N;)G.lens[N++]=9;for(;280>N;)G.lens[N++]=7;for(;288>N;)G.lens[N++]=8;w(1,G.lens,0,288,n,0,G.work,{bits:9});for(N=0;32>N;)G.lens[N++]=5;w(2,G.lens,0,32,p,0,G.work,{bits:5});E=!1}G.lencode=n;G.lenbits=9;G.distcode=p;G.distbits=5;if(d.mode=20,6===c){A>>>=2;v-=2;break a}break;case 2:d.mode=17;break;case 3:b.msg="invalid block type",
-d.mode=30}A>>>=2;v-=2;break;case 14:A>>>=7&v;for(v-=7&v;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if((65535&A)!==(A>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&A,A=0,v=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>l&&(I=l),I>B&&(I=B),0===I)break a;r.arraySet(g,f,h,I,k);l-=I;h+=I;B-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.nlen=(31&A)+257,A>>>=5,v-=5,d.ndist=(31&A)+
+d.mode=30}A>>>=2;v-=2;break;case 14:A>>>=7&v;for(v-=7&v;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if((65535&A)!==(A>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&A,A=0,v=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>l&&(J=l),J>B&&(J=B),0===J)break a;r.arraySet(g,f,h,J,k);l-=J;h+=J;B-=J;k+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(d.nlen=(31&A)+257,A>>>=5,v-=5,d.ndist=(31&A)+
1,A>>>=5,v-=5,d.ncode=(15&A)+4,A>>>=4,v-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.lens[fa[d.have++]]=7&A;A>>>=3;v-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,W={bits:d.lenbits},V=w(0,d.lens,0,19,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid code lengths set";d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have<
-d.nlen+d.ndist;){for(;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(16>G)A>>>=K,v-=K,d.lens[d.have++]=G;else{if(16===G){for(N=K+2;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A>>>=K,v-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];I=3+(3&A);A>>>=2;v-=2}else if(17===G){for(N=K+3;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;I=3+(7&A);A>>>=3;v-=3}else{for(N=K+7;v<N;){if(0===l)break a;l--;
-A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;I=11+(127&A);A>>>=7;v-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,W={bits:d.lenbits},V=w(1,d.lens,0,d.nlen,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,W={bits:d.distbits},V=w(2,d.lens,d.nlen,d.ndist,
-d.distcode,0,d.work,W),d.distbits=W.bits,V){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=B){b.next_out=k;b.avail_out=B;b.next_in=h;b.avail_in=l;d.hold=A;d.bits=v;z(b,J);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(N&&0===(240&N)){D=
+d.nlen+d.ndist;){for(;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(16>G)A>>>=K,v-=K,d.lens[d.have++]=G;else{if(16===G){for(N=K+2;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A>>>=K,v-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&A);A>>>=2;v-=2}else if(17===G){for(N=K+3;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;J=3+(7&A);A>>>=3;v-=3}else{for(N=K+7;v<N;){if(0===l)break a;l--;
+A+=f[h++]<<v;v+=8}A>>>=K;v-=K;P=0;J=11+(127&A);A>>>=7;v-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,W={bits:d.lenbits},V=w(1,d.lens,0,d.nlen,d.lencode,0,d.work,W),d.lenbits=W.bits,V){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,W={bits:d.distbits},V=w(2,d.lens,d.nlen,d.ndist,
+d.distcode,0,d.work,W),d.distbits=W.bits,V){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=B){b.next_out=k;b.avail_out=B;b.next_in=h;b.avail_in=l;d.hold=A;d.bits=v;z(b,I);k=b.next_out;g=b.output;B=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;A=d.hold;v=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;O=d.lencode[A&(1<<d.lenbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(N&&0===(240&N)){D=
K;ca=N;for(F=G;O=d.lencode[F+((A&(1<<D+ca)-1)>>D)],K=O>>>24,N=O>>>16&255,G=65535&O,!(D+K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=D;v-=D;d.back+=D}if(A>>>=K,v-=K,d.back+=K,d.length=G,0===N){d.mode=26;break}if(32&N){d.back=-1;d.mode=12;break}if(64&N){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&N;d.mode=22;case 22:if(d.extra){for(N=d.extra;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.length+=A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=
23;case 23:for(;O=d.distcode[A&(1<<d.distbits)-1],K=O>>>24,N=O>>>16&255,G=65535&O,!(K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(0===(240&N)){D=K;ca=N;for(F=G;O=d.distcode[F+((A&(1<<D+ca)-1)>>D)],K=O>>>24,N=O>>>16&255,G=65535&O,!(D+K<=v);){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}A>>>=D;v-=D;d.back+=D}if(A>>>=K,v-=K,d.back+=K,64&N){b.msg="invalid distance code";d.mode=30;break}d.offset=G;d.extra=15&N;d.mode=24;case 24:if(d.extra){for(N=d.extra;v<N;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}d.offset+=
-A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===B)break a;if(I=J-B,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,ba=d.wsize-I):ba=d.wnext-I;I>d.length&&(I=d.length);N=d.window}else N=g,ba=k-d.offset,I=d.length;I>B&&(I=B);B-=I;d.length-=I;do g[k++]=N[ba++];while(--I);0===d.length&&(d.mode=21);break;case 26:if(0===B)break a;
-g[k++]=d.length;B--;d.mode=21;break;case 27:if(d.wrap){for(;32>v;){if(0===l)break a;l--;A|=f[h++]<<v;v+=8}if(J-=B,b.total_out+=J,d.total+=J,J&&(b.adler=d.check=d.flags?t(d.check,g,J,k-J):q(d.check,g,J,k-J)),J=B,(d.flags?A:e(A))!==d.check){b.msg="incorrect data check";d.mode=30;break}v=A=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}v=A=0}d.mode=29;case 29:V=1;break a;case 30:V=
--3;break a;case 31:return-4;default:return y}return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,(d.wsize||J!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,J-b.avail_out)?(d.mode=31,-4):(Q-=b.avail_in,J-=b.avail_out,b.total_in+=Q,b.total_out+=J,d.total+=J,d.wrap&&J&&(b.adler=d.check=d.flags?t(d.check,g,J,b.next_out-J):q(d.check,g,J,b.next_out-J)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:0),(0===Q&&0===J||4===
+A&(1<<d.extra)-1;A>>>=d.extra;v-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===B)break a;if(J=I-B,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,ba=d.wsize-J):ba=d.wnext-J;J>d.length&&(J=d.length);N=d.window}else N=g,ba=k-d.offset,J=d.length;J>B&&(J=B);B-=J;d.length-=J;do g[k++]=N[ba++];while(--J);0===d.length&&(d.mode=21);break;case 26:if(0===B)break a;
+g[k++]=d.length;B--;d.mode=21;break;case 27:if(d.wrap){for(;32>v;){if(0===l)break a;l--;A|=f[h++]<<v;v+=8}if(I-=B,b.total_out+=I,d.total+=I,I&&(b.adler=d.check=d.flags?t(d.check,g,I,k-I):q(d.check,g,I,k-I)),I=B,(d.flags?A:e(A))!==d.check){b.msg="incorrect data check";d.mode=30;break}v=A=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>v;){if(0===l)break a;l--;A+=f[h++]<<v;v+=8}if(A!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}v=A=0}d.mode=29;case 29:V=1;break a;case 30:V=
+-3;break a;case 31:return-4;default:return y}return b.next_out=k,b.avail_out=B,b.next_in=h,b.avail_in=l,d.hold=A,d.bits=v,(d.wsize||I!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,I-b.avail_out)?(d.mode=31,-4):(Q-=b.avail_in,I-=b.avail_out,b.total_in+=Q,b.total_out+=I,d.total+=I,d.wrap&&I&&(b.adler=d.check=d.flags?t(d.check,g,I,b.next_out-I):q(d.check,g,I,b.next_out-I)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:0),(0===Q&&0===I||4===
c)&&V===x&&(V=-5),V)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,x};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,x)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:m(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,x)):y};d.inflateInfo="pako inflate (from Nodeca project)"},
{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(b,c,d){var e=b("../utils/common"),f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],g=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],k=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,
-25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,t,z){var l,m,n,u,D,F,E,B,G=z.bits,C,M,L,H,U,S,aa=0,A,v=null,Q=0,J=new e.Buf16(16);u=new e.Buf16(16);var I=null,ba=0;for(C=0;15>=C;C++)J[C]=0;for(M=0;M<p;M++)J[c[d+M]]++;H=G;for(L=15;1<=L&&0===J[L];L--);if(H>L&&(H=L),0===L)return r[q++]=20971520,r[q++]=20971520,z.bits=1,0;for(G=1;G<L&&0===J[G];G++);H<G&&(H=G);for(C=l=1;15>=C;C++)if(l<<=1,l-=J[C],0>l)return-1;if(0<l&&(0===b||1!==L))return-1;u[1]=0;for(C=1;15>C;C++)u[C+1]=u[C]+J[C];
-for(M=0;M<p;M++)0!==c[d+M]&&(t[u[c[d+M]]++]=M);if(0===b?(v=I=t,D=19):1===b?(v=f,Q-=257,I=g,ba-=257,D=256):(v=h,I=k,D=-1),A=0,M=0,C=G,u=q,U=H,S=0,n=-1,aa=1<<H,p=aa-1,1===b&&852<aa||2===b&&592<aa)return 1;for(var N=0;;){N++;F=C-S;t[M]<D?(E=0,B=t[M]):t[M]>D?(E=I[ba+t[M]],B=v[Q+t[M]]):(E=96,B=0);l=1<<C-S;G=m=1<<U;do m-=l,r[u+(A>>S)+m]=F<<24|E<<16|B|0;while(0!==m);for(l=1<<C-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,M++,0===--J[C]){if(C===L)break;C=c[d+t[M]]}if(C>H&&(A&p)!==n){0===S&&(S=H);u+=G;U=C-S;for(l=
-1<<U;U+S<L&&(l-=J[U+S],!(0>=l));)U++,l<<=1;if(aa+=1<<U,1===b&&852<aa||2===b&&592<aa)return 1;n=A&p;r[n]=H<<24|U<<16|u-q|0}}return 0!==A&&(r[u+A]=C-S<<24|4194304),z.bits=H,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=
+25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,t,z){var l,m,n,u,D,F,E,B,G=z.bits,C,M,L,H,U,S,aa=0,A,v=null,Q=0,I=new e.Buf16(16);u=new e.Buf16(16);var J=null,ba=0;for(C=0;15>=C;C++)I[C]=0;for(M=0;M<p;M++)I[c[d+M]]++;H=G;for(L=15;1<=L&&0===I[L];L--);if(H>L&&(H=L),0===L)return r[q++]=20971520,r[q++]=20971520,z.bits=1,0;for(G=1;G<L&&0===I[G];G++);H<G&&(H=G);for(C=l=1;15>=C;C++)if(l<<=1,l-=I[C],0>l)return-1;if(0<l&&(0===b||1!==L))return-1;u[1]=0;for(C=1;15>C;C++)u[C+1]=u[C]+I[C];
+for(M=0;M<p;M++)0!==c[d+M]&&(t[u[c[d+M]]++]=M);if(0===b?(v=J=t,D=19):1===b?(v=f,Q-=257,J=g,ba-=257,D=256):(v=h,J=k,D=-1),A=0,M=0,C=G,u=q,U=H,S=0,n=-1,aa=1<<H,p=aa-1,1===b&&852<aa||2===b&&592<aa)return 1;for(var N=0;;){N++;F=C-S;t[M]<D?(E=0,B=t[M]):t[M]>D?(E=J[ba+t[M]],B=v[Q+t[M]]):(E=96,B=0);l=1<<C-S;G=m=1<<U;do m-=l,r[u+(A>>S)+m]=F<<24|E<<16|B|0;while(0!==m);for(l=1<<C-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,M++,0===--I[C]){if(C===L)break;C=c[d+t[M]]}if(C>H&&(A&p)!==n){0===S&&(S=H);u+=G;U=C-S;for(l=
+1<<U;U+S<L&&(l-=I[U+S],!(0>=l));)U++,l<<=1;if(aa+=1<<U,1===b&&852<aa||2===b&&592<aa)return 1;n=A&p;r[n]=H<<24|U<<16|u-q|0}}return 0!==A&&(r[u+A]=C-S<<24|4194304),z.bits=H,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=
b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function h(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<<b.bi_valid&65535,h(b,b.bi_buf),b.bi_buf=c>>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function l(b,c,d){k(b,d[2*c],d[2*c+1])}function m(b,c){var d=0;do d|=1&b,b>>>=1,d<<=1;
while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(S+1),g=0;for(e=1;e<=S;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function p(b){var c;for(c=0;c<M;c++)b.dyn_ltree[2*c]=0;for(c=0;c<L;c++)b.dyn_dtree[2*c]=0;for(c=0;c<H;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*A]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?h(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function q(b,c,d,e){var f=2*c,g=2*d;
-return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function z(b,c,d){var e,f,g,h,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?l(b,f,c):(g=ea[f],l(b,g+C+1,c),h=I[g],0!==h&&(f-=P[g],k(b,f,h)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],l(b,g,d),h=ba[g],0!==h&&
+return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function z(b,c,d){var e,f,g,h,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?l(b,f,c):(g=ea[f],l(b,g+C+1,c),h=J[g],0!==h&&(f-=P[g],k(b,f,h)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],l(b,g,d),h=ba[g],0!==h&&
(e-=V[g],k(b,e,h)));while(m<b.last_lit)}l(b,A,c)}function w(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var h=c.stat_desc.has_stree,k=c.stat_desc.elems,l=-1;b.heap_len=0;b.heap_max=U;for(d=0;d<k;d++)0!==g[2*d]?(b.heap[++b.heap_len]=l=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>l?++l:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=l;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=k;do d=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),e=b.heap[1],
-b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,v,h=c.dyn_tree,k=c.max_code,p=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,J=c.stat_desc.extra_base,Q=c.stat_desc.max_length,I=0;for(e=0;e<=S;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<U;d++)f=b.heap[d],e=h[2*h[2*f+1]+1]+
-1,e>Q&&(e=Q,I++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=J&&(m=r[f-J]),v=h[2*f],b.opt_len+=v*(e+m),q&&(b.static_len+=v*(p[2*f+1]+m)));if(0!==I){do{for(e=Q-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[Q]--;I-=2}while(0<I);for(e=Q;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function x(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&&(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,
-h=c[2*(e+1)+1],++k<l&&f===h||(k<m?b.bl_tree[2*f]+=k:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*v]++):10>=k?b.bl_tree[2*Q]++:b.bl_tree[2*J]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m<n&&f===h)){if(m<p){do l(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(l(b,f,b.bl_tree),m--),l(b,v,b.bl_tree),k(b,m-3,2)):10>=m?(l(b,Q,b.bl_tree),k(b,m-3,3)):(l(b,J,b.bl_tree),k(b,m-11,7));m=
+b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,v,h=c.dyn_tree,k=c.max_code,p=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,I=c.stat_desc.extra_base,Q=c.stat_desc.max_length,u=0;for(e=0;e<=S;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<U;d++)f=b.heap[d],e=h[2*h[2*f+1]+1]+
+1,e>Q&&(e=Q,u++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=I&&(m=r[f-I]),v=h[2*f],b.opt_len+=v*(e+m),q&&(b.static_len+=v*(p[2*f+1]+m)));if(0!==u){do{for(e=Q-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[Q]--;u-=2}while(0<u);for(e=Q;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function x(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&&(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,
+h=c[2*(e+1)+1],++k<l&&f===h||(k<m?b.bl_tree[2*f]+=k:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*v]++):10>=k?b.bl_tree[2*Q]++:b.bl_tree[2*I]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m<n&&f===h)){if(m<p){do l(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(l(b,f,b.bl_tree),m--),l(b,v,b.bl_tree),k(b,m-3,2)):10>=m?(l(b,Q,b.bl_tree),k(b,m-3,3)):(l(b,I,b.bl_tree),k(b,m-11,7));m=
0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function u(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return E;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;c<C;c++)if(0!==b.dyn_ltree[2*c])return B;return E}function D(b,c,d,e){k(b,(G<<1)+(e?1:0),3);r(b);h(b,d);h(b,~d);F.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var F=b("../utils/common"),E=0,B=1,G=0,C=256,M=C+1+29,L=30,H=19,U=2*M+1,S=15,aa=16,A=256,v=16,Q=17,
-J=18,I=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],X=Array(2*(M+2));e(X);var T=Array(2*L);e(T);var ca=Array(512);e(ca);var ea=Array(256);e(ea);var P=Array(29);e(P);var V=Array(L);e(V);var W,O,R,fa=!1;d._tr_init=function(b){if(!fa){var c,d,e,h=Array(S+1);for(e=d=0;28>e;e++)for(P[e]=d,c=0;c<1<<I[e];c++)ea[d++]=e;ea[d-1]=
-e;for(e=d=0;16>e;e++)for(V[e]=d,c=0;c<1<<ba[e];c++)ca[d++]=e;for(d>>=7;e<L;e++)for(V[e]=d<<7,c=0;c<1<<ba[e]-7;c++)ca[256+d++]=e;for(c=0;c<=S;c++)h[c]=0;for(c=0;143>=c;)X[2*c+1]=8,c++,h[8]++;for(;255>=c;)X[2*c+1]=9,c++,h[9]++;for(;279>=c;)X[2*c+1]=7,c++,h[7]++;for(;287>=c;)X[2*c+1]=8,c++,h[8]++;n(X,M+1,h);for(c=0;c<L;c++)T[2*c+1]=5,T[2*c]=m(c,5);W=new f(X,I,C+1,M,S);O=new f(T,ba,0,L,S);R=new f([],N,0,H,7);fa=!0}b.l_desc=new g(b.dyn_ltree,W);b.d_desc=new g(b.dyn_dtree,O);b.bl_desc=new g(b.bl_tree,R);
+I=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ba=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],X=Array(2*(M+2));e(X);var T=Array(2*L);e(T);var ca=Array(512);e(ca);var ea=Array(256);e(ea);var P=Array(29);e(P);var V=Array(L);e(V);var W,O,R,fa=!1;d._tr_init=function(b){if(!fa){var c,d,e,h=Array(S+1);for(e=d=0;28>e;e++)for(P[e]=d,c=0;c<1<<J[e];c++)ea[d++]=e;ea[d-1]=
+e;for(e=d=0;16>e;e++)for(V[e]=d,c=0;c<1<<ba[e];c++)ca[d++]=e;for(d>>=7;e<L;e++)for(V[e]=d<<7,c=0;c<1<<ba[e]-7;c++)ca[256+d++]=e;for(c=0;c<=S;c++)h[c]=0;for(c=0;143>=c;)X[2*c+1]=8,c++,h[8]++;for(;255>=c;)X[2*c+1]=9,c++,h[9]++;for(;279>=c;)X[2*c+1]=7,c++,h[7]++;for(;287>=c;)X[2*c+1]=8,c++,h[8]++;n(X,M+1,h);for(c=0;c<L;c++)T[2*c+1]=5,T[2*c]=m(c,5);W=new f(X,J,C+1,M,S);O=new f(T,ba,0,L,S);R=new f([],N,0,H,7);fa=!0}b.l_desc=new g(b.dyn_ltree,W);b.d_desc=new g(b.dyn_dtree,O);b.bl_desc=new g(b.bl_tree,R);
b.bi_buf=0;b.bi_valid=0;p(b)};d._tr_stored_block=D;d._tr_flush_block=function(b,c,d,e){var f,g,h=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=u(b));w(b,b.l_desc);w(b,b.d_desc);x(b,b.dyn_ltree,b.l_desc.max_code);x(b,b.dyn_dtree,b.d_desc.max_code);w(b,b.bl_desc);for(h=H-1;3<=h&&0===b.bl_tree[2*K[h]+1];h--);h=(b.opt_len+=3*(h+1)+14,h);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)D(b,c,d,e);else if(4===b.strategy||g===f)k(b,2+(e?1:0),3),z(b,X,T);else{k(b,
4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;h+=1;k(b,c-257,5);k(b,d-1,5);k(b,h-4,4);for(f=0;f<h;f++)k(b,b.bl_tree[2*K[f]+1],3);y(b,b.dyn_ltree,c-1);y(b,b.dyn_dtree,d-1);z(b,b.dyn_ltree,b.dyn_dtree)}p(b);e&&r(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*(ea[d]+C+1)]++,b.dyn_dtree[2*(256>c?ca[c]:
ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);l(b,A,X);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}},{}],"/":[function(b,
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.4.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.4.8",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -361,8 +361,8 @@ mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0;this.path=
mxAbstractCanvas2D.prototype.arcTo=function(a,b,c,d,e,f,g){a=mxUtils.arcToCurves(this.lastX,this.lastY,a,b,c,d,e,f,g);if(null!=a)for(b=0;b<a.length;b+=6)this.curveTo(a[b],a[b+1],a[b+2],a[b+3],a[b+4],a[b+5])};mxAbstractCanvas2D.prototype.close=function(a,b,c,d,e,f){this.addOp(this.closeOp)};mxAbstractCanvas2D.prototype.end=function(){};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -375,7 +375,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -463,9 +463,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,m
else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var n=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-n:p||b?d+n:d-n}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*k,h+Number(c.getAttribute("y"))*l,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)n=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=n&&(g+=Number(c.getAttribute("x"))*k,h+=Number(c.getAttribute("y"))*l,m=Number(c.getAttribute("w"))*k,d=Number(c.getAttribute("h"))*l,n.drawShape(a,b,g,h,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)k="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*k);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");k=[];for(l=0;l<c.length;l++)0<c[l].length&&k.push(Number(c[l])*m);c=k.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -476,7 +476,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -942,10 +942,10 @@ h==mxConstants.ALIGN_CENTER&&k==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -987,9 +987,9 @@ f),g,h,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var h=a.absolutePoints,k=h[0],l=h[h.length-1],h=!1;if(null!=k)b=new mxCellState,b.x=k.x,b.y=k.y;else if(null!=b){var m=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?h=m==mxConstants.DIRECTION_MASK_WEST:(k=g.getCellGeometry(b.cell),
k.relative?h=.5>=k.x:null!=c&&(h=c.x+c.width<b.x))}else return;k=!0;null!=l?(c=new mxCellState,c.x=l.x,c.y=l.y):null!=c&&(m=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=m==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?k=.5>=a.x:null!=b&&(k=b.x+b.width<c.x)));null!=b&&null!=c&&(a=h?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=k?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1138,11 +1138,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var h=this.getBorderSizes(),k=this.container.offsetWidth-h.x-h.width-1,l=null!=g?g:this.container.offsetHeight-h.y-h.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var h=this.view.scale,m=g.width/h,n=g.height/h;null!=this.backgroundImage&&
-(m=Math.max(m,this.backgroundImage.width-g.x/h),n=Math.max(n,this.backgroundImage.height-g.y/h));var p=(b?a:2*a)+c,k=k-p,l=l-p;e=e?l/n:f?k/m:Math.min(k/m,l/n);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(m=Math.max(m,this.backgroundImage.width-g.x/h),n=Math.max(n,this.backgroundImage.height-g.y/h));var p=(b?a:2*a)+c+1,k=k-p,l=l-p;e=e?l/n:f?k/m:Math.min(k/m,l/n);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/h+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/h+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,l=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<h&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:h,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
k),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+l))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1688,46 +1688,47 @@ Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink"
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 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.encodeCells=function(a){for(var b=this.cloneCells(a),c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(d=0;d<b.length;d++){var e=
this.view.getState(a[d]);if(null!=e){var f=this.getCellGeometry(b[d]);null==f||!f.relative||this.model.isEdge(a[d])||c.get(this.model.getParent(a[d]))||(f.relative=!1,f.x=e.x/e.view.scale-e.view.translate.x,f.y=e.y/e.view.scale-e.view.translate.y)}}c=new mxCodec;e=new mxGraphModel;f=e.getChildAt(e.getRoot(),0);for(d=0;d<a.length;d++)e.add(f,b[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var h=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument();d=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=d.style?d.style.backgroundColor=a:d.setAttribute("style","background-color:"+
-a));null==l.createElementNS?(d.setAttribute("xmlns",mxConstants.NS_SVG),d.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):d.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;d.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*c)+"px");d.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*c)+"px");d.setAttribute("version","1.1");var m=d;e&&(m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),m.setAttribute("transform",
-"translate(0.5,0.5)"),d.appendChild(m));l.appendChild(d);l=this.createSvgCanvas(m);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-h.x)/k),Math.floor((c/b-h.y)/k));var n=document.createElement("textarea"),p=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,v,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
+return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h){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;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.view.scale,l=mxUtils.createXmlDocument(),m=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"svg"):l.createElement("svg");null!=a&&(null!=m.style?m.style.backgroundColor=a:m.setAttribute("style","background-color:"+
+a));null==l.createElementNS?(m.setAttribute("xmlns",mxConstants.NS_SVG),m.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):m.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/k;m.setAttribute("width",Math.max(1,Math.ceil(d.width*a)+2*c)+"px");m.setAttribute("height",Math.max(1,Math.ceil(d.height*a)+2*c)+"px");m.setAttribute("version","1.1");var n=m;e&&(n=null!=l.createElementNS?l.createElementNS(mxConstants.NS_SVG,"g"):l.createElement("g"),n.setAttribute("transform",
+"translate(0.5,0.5)"),m.appendChild(n));l.appendChild(m);l=this.createSvgCanvas(n);l.foOffset=e?-.5:0;l.textOffset=e?-.5:0;l.imageOffset=e?-.5:0;l.translate(Math.floor((c/b-d.x)/k),Math.floor((c/b-d.y)/k));var p=document.createElement("textarea"),v=l.createAlternateContent;l.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",
Math.round((e+r.fontSize)/2));t.setAttribute("fill",r.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(r.fontSize)+"px");t.setAttribute("font-family",r.fontFamily);(r.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(r.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(r.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration",
-"underline");try{return n.innerHTML=f,t.textContent=n.value,t}catch(ha){return p.apply(this,arguments)}}else return p.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(h,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;g=this.createSvgImageExport();var v=g.drawCellState;g.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&v.apply(this,arguments)};g.drawState(this.getView().getState(this.model.root),
-l);return d};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");
-c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,
-f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&
-this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(I){}};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=
-c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
-a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}h.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(v){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var n=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};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 p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&
-null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+"underline");try{return p.innerHTML=f,t.textContent=p.value,t}catch(Ca){return v.apply(this,arguments)}}else return v.apply(this,arguments)};c=this.backgroundImage;null!=c&&(e=k/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&l.image(b.x,b.y,c.width,c.height,c.src,!0));l.scale(a);l.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var q=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&q.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),l);return m};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){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.insertRow=function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),
+e=0;e<d;e++)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){b=null!=b?b:a;var c=document.createElement("a");c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40<b.length&&(b=b.substring(0,26)+"..."+b.substring(b.length-10));mxUtils.write(c,b);return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=
+this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&
+(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(J){}};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,
+arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}h.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=c;this.resize()};var k=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-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";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",k.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 l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(v){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,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)};var n=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
+d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};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 p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
@@ -1766,12 +1767,12 @@ function(){aa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.vi
this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function h(){mxActor.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function q(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,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function w(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxActor.call(this)}function u(){mxRectangleShape.call(this)}function D(){mxRectangleShape.call(this)}function F(){mxCylinder.call(this)}function E(){mxShape.call(this)}function B(){mxShape.call(this)}
-function G(){mxEllipse.call(this)}function C(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function U(){mxShape.call(this)}function S(){mxShape.call(this)}function aa(){mxCylinder.call(this)}function A(){mxDoubleEllipse.call(this)}function v(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function J(){mxArrowConnector.call(this);this.spacing=0}function I(){mxActor.call(this)}function ba(){mxRectangleShape.call(this)}
+function G(){mxEllipse.call(this)}function C(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function U(){mxShape.call(this)}function S(){mxShape.call(this)}function aa(){mxCylinder.call(this)}function A(){mxDoubleEllipse.call(this)}function v(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function I(){mxArrowConnector.call(this);this.spacing=0}function J(){mxActor.call(this)}function ba(){mxRectangleShape.call(this)}
function N(){mxActor.call(this)}function K(){mxActor.call(this)}function X(){mxActor.call(this)}function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function P(){mxActor.call(this)}function V(){mxActor.call(this)}function W(){mxActor.call(this)}function O(){mxActor.call(this)}function R(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function Z(){mxRhombus.call(this)}function va(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
-function xa(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxActor.call(this)}function ka(){mxConnector.call(this)}function Ba(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
+function xa(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function ia(){mxActor.call(this)}function ja(){mxConnector.call(this)}function Ba(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var ya=Math.tan(mxUtils.toRadians(30)),ha=(.5-ya)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/ya);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ha);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ha)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+ya));f?(a.moveTo(0,.25*b),a.lineTo(.5*
-b,(.5-ha)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ha)*b),a.lineTo(.5*b,(1-ha)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ha),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ha)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",c);mxUtils.extend(d,mxCylinder);d.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);var ya=Math.tan(mxUtils.toRadians(30)),ka=(.5-ya)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/ya);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+ya));f?(a.moveTo(0,.25*b),a.lineTo(.5*
+b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",c);mxUtils.extend(d,mxCylinder);d.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())};d.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
d);mxUtils.extend(e,mxCylinder);e.prototype.size=30;e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(d-b,0),a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",e);mxUtils.extend(f,mxActor);f.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",f);mxUtils.extend(g,mxCylinder);g.prototype.tabWidth=60;g.prototype.tabHeight=20;g.prototype.tabPosition="right";g.prototype.redrawPath=function(a,b,c,d,e,f){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 g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
@@ -1785,8 +1786,8 @@ c,!0)};mxCellRenderer.registerShape("trapezoid",n);mxUtils.extend(p,mxActor);p.p
mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);q.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};q.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};q.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};q.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=
g};q.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var l=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,
-k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Fa=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Fa.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ga=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ga.apply(this,arguments)};
+k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Ca=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ca.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ga=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ga.apply(this,arguments)};
var Ha=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ha.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("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.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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()}};var Ia=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ia.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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=
@@ -1796,8 +1797,8 @@ function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",z);mxUtils.exte
"size",this.size))));var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=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+h),e-c),new mxPoint(g,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",
w);mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.fixedSize=20;x.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",x);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.redrawPath=function(a,b,c,d,e){b=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",y);mxUtils.extend(u,mxRectangleShape);u.prototype.isHtmlAllowed=function(){return!1};u.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",u);var Ca=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){Ca.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),Ca.apply(this,[a,b,
+this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(u,mxRectangleShape);u.prototype.isHtmlAllowed=function(){return!1};u.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",u);var Da=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){Da.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),Da.apply(this,[a,b,
c,d,e]))}};mxUtils.extend(D,mxRectangleShape);D.prototype.isHtmlAllowed=function(){return!1};D.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};D.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,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],l=this.style["symbol"+f+"Width"],m=this.style["symbol"+f+"Height"],sa=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||sa,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,
e+this.strokewidth),sa+=p,n+=p);var p=b,oa=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-sa):p+sa,oa=k==mxConstants.ALIGN_MIDDLE?oa+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?oa+(e-m-n):oa+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,oa,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",D);mxUtils.extend(F,mxCylinder);F.prototype.redrawPath=function(a,b,c,d,
@@ -1825,8 +1826,8 @@ a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.reg
2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",S);mxUtils.extend(aa,mxCylinder);aa.prototype.jettyWidth=32;aa.prototype.jettyHeight=12;aa.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",aa);mxUtils.extend(A,mxDoubleEllipse);A.prototype.outerStroke=!0;A.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);
this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",A);mxUtils.extend(v,A);v.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",v);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-Q);mxUtils.extend(J,mxArrowConnector);J.prototype.defaultWidth=10;J.prototype.defaultArrowWidth=20;J.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};J.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};J.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-J);mxUtils.extend(I,mxActor);I.prototype.size=30;I.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",I);mxUtils.extend(ba,mxRectangleShape);ba.prototype.dx=20;ba.prototype.dy=20;ba.prototype.isHtmlAllowed=
+Q);mxUtils.extend(I,mxArrowConnector);I.prototype.defaultWidth=10;I.prototype.defaultArrowWidth=20;I.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};I.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};I.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+I);mxUtils.extend(J,mxActor);J.prototype.size=30;J.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",J);mxUtils.extend(ba,mxRectangleShape);ba.prototype.dx=20;ba.prototype.dy=20;ba.prototype.isHtmlAllowed=
function(){return!1};ba.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",ba);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.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",N);mxUtils.extend(K,mxActor);K.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",K);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
@@ -1844,20 +1845,20 @@ b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lin
null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),a.begin(),a.moveTo(b,c),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(b,c-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(qa,
mxEllipse);qa.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",qa);mxUtils.extend(ra,mxActor);ra.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",ra);mxUtils.extend(ma,mxActor);ma.prototype.size=.2;ma.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",
-ma);mxUtils.extend(ja,mxActor);ja.prototype.size=.25;ja.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",ja);mxUtils.extend(ka,mxConnector);ka.prototype.origPaintEdgeShape=ka.prototype.paintEdgeShape;ka.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;ka.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),ka.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",ka);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+ma);mxUtils.extend(ia,mxActor);ia.prototype.size=.25;ia.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",ia);mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.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;ja.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),ja.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",ja);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.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),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,
l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ba);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Ba.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-
p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 n=
-e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Da=function(a,b,c){return na(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})},na=function(a,b,c,d,e){return da(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ia=function(a){return function(b){return[da(b,["arrowWidth",
+e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ea=function(a,b,c){return na(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})},na=function(a,b,c,d,e){return da(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,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ha=function(a){return function(b){return[da(b,["arrowWidth",
"arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.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))})]}},za=function(a,b,c){return function(d){var e=
[da(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(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(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Ea=function(a){return function(b){var c=
+"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Fa=function(a){return function(b){var c=
[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},pa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};
-g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Aa={link:function(a){return[Da(a,!0,10),Da(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(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
+g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Aa={link:function(a){return[Ea(a,!0,10),Ea(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(na(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(na(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,
@@ -1872,25 +1873,25 @@ label:pa(),ext:pa(),rectangle:pa(),triangle:pa(),rhombus:pa(),umlLifeline:functi
"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(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",ma.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[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.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=
-[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));
+[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",J.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));
return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-
b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.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}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.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}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.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",w.prototype.position)));
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ba.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)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.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)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.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)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=
+Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.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",g.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)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.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))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.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))})]},offPageConnector:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.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))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ja.prototype.size,!1),cube:za(1,a.prototype.size,!1),card:za(.5,h.prototype.size,!0),loopLimit:za(.5,W.prototype.size,!0),trapezoid:Ea(.5),parallelogram:Ea(1)};Graph.createHandle=da;Graph.handleFactory=Aa;mxVertexHandler.prototype.createCustomHandles=
+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))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:za(1,a.prototype.size,!1),card:za(.5,h.prototype.size,!0),loopLimit:za(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=da;Graph.handleFactory=Aa;mxVertexHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Aa[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&
-(a=mxConstants.SHAPE_CONNECTOR);a=Aa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ia=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ia),Math.sin(ia));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!=
+(a=mxConstants.SHAPE_CONNECTOR);a=Aa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ha=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ha),Math.sin(ha));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=ta.x,l=ta.y,m=ua.x,n=ua.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+
k*b,q.y+l*b));e.push(q)};var q=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 Ja=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ja.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];
mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;
-ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;qa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;ra.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=
+ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;qa.prototype.constraints=mxEllipse.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;ra.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=
mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;O.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)];E.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)];aa.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,
diff --git a/src/main/webapp/js/shapes.min.js b/src/main/webapp/js/shapes.min.js
index c9ef9e59..f8e3402e 100644
--- a/src/main/webapp/js/shapes.min.js
+++ b/src/main/webapp/js/shapes.min.js
@@ -11,16 +11,16 @@ k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(n),a.setFillColor(l
mxBpmnShape.prototype.outlines={none:function(a,d,e,b,c,f){f||a.setShadow(!1)},standard:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();a.setDashed(d);f||a.setShadow(!1)},catching:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-
4);a.stroke()},boundInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke()},boundNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke();a.setDashed(d)},throwing:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(.02*b+2,.02*c+2,.96*b-4,.96*c-4);a.stroke()},end:function(a,d,e,b,c,f){d=a.state.strokeWidth;a.setStrokeWidth(3*
d);a.ellipse(0,0,b,c);a.fillAndStroke();a.setStrokeWidth(d);f||a.setShadow(!1)}};
-mxBpmnShape.prototype.symbols={general:function(a,d,e,b,c){},message:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()},timer:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.0642*c);a.moveTo(.7484*b,.0654*c);a.lineTo(.7126*b,.1281*c);a.moveTo(.93*b,.2471*c);a.lineTo(.8673*b,.2854*c);a.moveTo(b,.5*c);a.lineTo(.9338*b,.5*c);a.moveTo(.93*b,.7509*c);a.lineTo(.8673*b,.7126*c);a.moveTo(.7484*
-b,.9326*c);a.lineTo(.7126*b,.8699*c);a.moveTo(.5*b,.9338*c);a.lineTo(.5*b,c);a.moveTo(.2496*b,.9325*c);a.lineTo(.2854*b,.8699*c);a.moveTo(.068*b,.7509*c);a.lineTo(.1307*b,.7126*c);a.moveTo(0,.5*c);a.lineTo(.0642*b,.5*c);a.moveTo(.068*b,.2471*c);a.lineTo(.1307*b,.2854*c);a.moveTo(.2496*b,.0654*c);a.lineTo(.2854*b,.1281*c);a.moveTo(.5246*b,.0706*c);a.lineTo(.5*b,.5*c);a.lineTo(.7804*b,.5118*c);a.stroke()},escalation:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.lineTo(.5*
-b,.5*c);a.close();a.fillAndStroke()},conditional:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,.1027*c);a.lineTo(.798*b,.1027*c);a.moveTo(0,.3669*c);a.lineTo(.798*b,.3669*c);a.moveTo(0,.6311*c);a.lineTo(.798*b,.6311*c);a.moveTo(0,.8953*c);a.lineTo(.798*b,.8953*c);a.stroke()},link:function(a,d,e,b,c){a.begin();a.moveTo(0,.76*c);a.lineTo(0,.24*c);a.lineTo(.63*b,.24*c);a.lineTo(.63*b,0);a.lineTo(b,.5*c);a.lineTo(.63*b,c);a.lineTo(.63*b,.76*c);a.close();a.fillAndStroke()},
-error:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.3287*b,.123*c);a.lineTo(.6194*b,.6342*c);a.lineTo(b,0);a.lineTo(.6625*b,.939*c);a.lineTo(.3717*b,.5064*c);a.close();a.fillAndStroke()},cancel:function(a,d,e,b,c){a.begin();a.moveTo(.1051*b,0);a.lineTo(.5*b,.3738*c);a.lineTo(.8909*b,0);a.lineTo(b,.1054*c);a.lineTo(.623*b,.5*c);a.lineTo(b,.8926*c);a.lineTo(.8909*b,c);a.lineTo(.5*b,.6242*c);a.lineTo(.1051*b,c);a.lineTo(0,.8926*c);a.lineTo(.373*b,.5*c);a.lineTo(0,.1054*c);a.close();a.fillAndStroke()},
-compensation:function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},signal:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},multiple:function(a,d,e,b,c){a.begin();a.moveTo(0,.39*c);a.lineTo(.5*b,0);a.lineTo(b,.39*c);a.lineTo(.815*b,c);a.lineTo(.185*b,c);a.close();a.fillAndStroke()},parallelMultiple:function(a,d,e,b,c){a.begin();a.moveTo(.38*
-b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke()},terminate:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()},exclusiveGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.105*b,0);a.lineTo(.5*b,.38*c);a.lineTo(.895*b,0*c);a.lineTo(b,
-.11*c);a.lineTo(.6172*b,.5*c);a.lineTo(b,.89*c);a.lineTo(.895*b,c);a.lineTo(.5*b,.62*c);a.lineTo(.105*b,c);a.lineTo(0,.89*c);a.lineTo(.3808*b,.5*c);a.lineTo(0,.11*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},parallelGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*
-b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},complexGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(0,.44*c);a.lineTo(.36*b,.44*c);a.lineTo(.1*b,.18*c);a.lineTo(.18*b,.1*c);a.lineTo(.44*b,.36*c);a.lineTo(.44*b,0);a.lineTo(.56*b,0);a.lineTo(.56*b,.36*c);a.lineTo(.82*b,.1*c);a.lineTo(.9*b,.18*c);a.lineTo(.64*b,.44*c);a.lineTo(b,
-.44*c);a.lineTo(b,.56*c);a.lineTo(.64*b,.56*c);a.lineTo(.9*b,.82*c);a.lineTo(.82*b,.9*c);a.lineTo(.56*b,.64*c);a.lineTo(.56*b,c);a.lineTo(.44*b,c);a.lineTo(.44*b,.64*c);a.lineTo(.18*b,.9*c);a.lineTo(.1*b,.82*c);a.lineTo(.36*b,.56*c);a.lineTo(0,.56*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},star:function(a,d,e,b,c){a.translate(b/5,c/6);c*=2/3;b*=.6;a.begin();a.moveTo(0,c/4);a.lineTo(b/3,c/4);a.lineTo(b/2,0);a.lineTo(2*b/3,c/4);a.lineTo(b,c/4);a.lineTo(5*b/6,c/2);a.lineTo(b,
-3*c/4);a.lineTo(2*b/3,3*c/4);a.lineTo(b/2,c);a.lineTo(b/3,3*c/4);a.lineTo(0,3*c/4);a.lineTo(b/6,c/2);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape("mxgraph.bpmn.shape",mxBpmnShape);function mxShapeEREntity(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntity,mxShape);
+mxBpmnShape.prototype.symbols={general:function(a,d,e,b,c){},message:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();"none"===mxUtils.getValue(this.style,"fillColor","none")&&a.setStrokeColor("#ffffff");a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()},timer:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.0642*c);a.moveTo(.7484*b,.0654*c);a.lineTo(.7126*b,.1281*c);a.moveTo(.93*b,.2471*c);a.lineTo(.8673*b,.2854*c);a.moveTo(b,
+.5*c);a.lineTo(.9338*b,.5*c);a.moveTo(.93*b,.7509*c);a.lineTo(.8673*b,.7126*c);a.moveTo(.7484*b,.9326*c);a.lineTo(.7126*b,.8699*c);a.moveTo(.5*b,.9338*c);a.lineTo(.5*b,c);a.moveTo(.2496*b,.9325*c);a.lineTo(.2854*b,.8699*c);a.moveTo(.068*b,.7509*c);a.lineTo(.1307*b,.7126*c);a.moveTo(0,.5*c);a.lineTo(.0642*b,.5*c);a.moveTo(.068*b,.2471*c);a.lineTo(.1307*b,.2854*c);a.moveTo(.2496*b,.0654*c);a.lineTo(.2854*b,.1281*c);a.moveTo(.5246*b,.0706*c);a.lineTo(.5*b,.5*c);a.lineTo(.7804*b,.5118*c);a.stroke()},
+escalation:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.lineTo(.5*b,.5*c);a.close();a.fillAndStroke()},conditional:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,.1027*c);a.lineTo(.798*b,.1027*c);a.moveTo(0,.3669*c);a.lineTo(.798*b,.3669*c);a.moveTo(0,.6311*c);a.lineTo(.798*b,.6311*c);a.moveTo(0,.8953*c);a.lineTo(.798*b,.8953*c);a.stroke()},link:function(a,d,e,b,c){a.begin();a.moveTo(0,.76*c);a.lineTo(0,.24*c);a.lineTo(.63*b,.24*c);a.lineTo(.63*
+b,0);a.lineTo(b,.5*c);a.lineTo(.63*b,c);a.lineTo(.63*b,.76*c);a.close();a.fillAndStroke()},error:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.3287*b,.123*c);a.lineTo(.6194*b,.6342*c);a.lineTo(b,0);a.lineTo(.6625*b,.939*c);a.lineTo(.3717*b,.5064*c);a.close();a.fillAndStroke()},cancel:function(a,d,e,b,c){a.begin();a.moveTo(.1051*b,0);a.lineTo(.5*b,.3738*c);a.lineTo(.8909*b,0);a.lineTo(b,.1054*c);a.lineTo(.623*b,.5*c);a.lineTo(b,.8926*c);a.lineTo(.8909*b,c);a.lineTo(.5*b,.6242*c);a.lineTo(.1051*
+b,c);a.lineTo(0,.8926*c);a.lineTo(.373*b,.5*c);a.lineTo(0,.1054*c);a.close();a.fillAndStroke()},compensation:function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},signal:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},multiple:function(a,d,e,b,c){a.begin();a.moveTo(0,.39*c);a.lineTo(.5*b,0);a.lineTo(b,.39*c);a.lineTo(.815*b,c);a.lineTo(.185*
+b,c);a.close();a.fillAndStroke()},parallelMultiple:function(a,d,e,b,c){a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke()},terminate:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()},exclusiveGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);
+a.setFillColor(d);a.begin();a.moveTo(.105*b,0);a.lineTo(.5*b,.38*c);a.lineTo(.895*b,0*c);a.lineTo(b,.11*c);a.lineTo(.6172*b,.5*c);a.lineTo(b,.89*c);a.lineTo(.895*b,c);a.lineTo(.5*b,.62*c);a.lineTo(.105*b,c);a.lineTo(0,.89*c);a.lineTo(.3808*b,.5*c);a.lineTo(0,.11*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},parallelGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*
+b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},complexGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(0,.44*c);a.lineTo(.36*b,.44*c);a.lineTo(.1*b,.18*c);a.lineTo(.18*b,.1*c);a.lineTo(.44*b,.36*c);a.lineTo(.44*b,0);a.lineTo(.56*
+b,0);a.lineTo(.56*b,.36*c);a.lineTo(.82*b,.1*c);a.lineTo(.9*b,.18*c);a.lineTo(.64*b,.44*c);a.lineTo(b,.44*c);a.lineTo(b,.56*c);a.lineTo(.64*b,.56*c);a.lineTo(.9*b,.82*c);a.lineTo(.82*b,.9*c);a.lineTo(.56*b,.64*c);a.lineTo(.56*b,c);a.lineTo(.44*b,c);a.lineTo(.44*b,.64*c);a.lineTo(.18*b,.9*c);a.lineTo(.1*b,.82*c);a.lineTo(.36*b,.56*c);a.lineTo(0,.56*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},star:function(a,d,e,b,c){a.translate(b/5,c/6);c*=2/3;b*=.6;a.begin();a.moveTo(0,c/
+4);a.lineTo(b/3,c/4);a.lineTo(b/2,0);a.lineTo(2*b/3,c/4);a.lineTo(b,c/4);a.lineTo(5*b/6,c/2);a.lineTo(b,3*c/4);a.lineTo(2*b/3,3*c/4);a.lineTo(b/2,c);a.lineTo(b/3,3*c/4);a.lineTo(0,3*c/4);a.lineTo(b/6,c/2);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape("mxgraph.bpmn.shape",mxBpmnShape);function mxShapeEREntity(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntity,mxShape);
mxShapeEREntity.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
mxShapeEREntity.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):"rect"===d?(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
"#ffffff"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*f,c-.1*f),a.close(),a.stroke())};mxShapeEREntity.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
@@ -1543,6 +1543,12 @@ Graph.handleFactory[mxShapeBasicOctagon.prototype.cst.OCTAGON]=function(a){retur
function mxShapeBasicIsoCube(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.isoAngle=15}mxUtils.extend(mxShapeBasicIsoCube,mxActor);mxShapeBasicIsoCube.prototype.cst={ISO_CUBE:"mxgraph.basic.isocube"};
mxShapeBasicIsoCube.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);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.begin();a.moveTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,d);a.lineTo(.5*b,2*d);a.lineTo(b,d);a.moveTo(.5*b,2*d);a.lineTo(.5*b,c);a.stroke()};
mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube);mxShapeBasicIsoCube.prototype.constraints=null;Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))));return new mxPoint(a.x,a.y+d)},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]};
+function mxShapeBasicTriangleAcute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleAcute,mxActor);mxShapeBasicTriangleAcute.prototype.cst={ACUTE_TRIANGLE:"mxgraph.basic.acute_triangle"};
+mxShapeBasicTriangleAcute.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,c);a.lineTo(d,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE,mxShapeBasicTriangleAcute);mxShapeBasicTriangleAcute.prototype.constraints=null;
+Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
+function mxShapeBasicTriangleObtuse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleObtuse,mxActor);mxShapeBasicTriangleObtuse.prototype.cst={OBTUSE_TRIANGLE:"mxgraph.basic.obtuse_triangle"};
+mxShapeBasicTriangleObtuse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(d,c);a.lineTo(0,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE,mxShapeBasicTriangleObtuse);mxShapeBasicTriangleObtuse.prototype.constraints=null;
+Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height-10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
function mxShapeBootstrapRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRRect,mxShape);mxShapeBootstrapRRect.prototype.cst={PACKAGE:"mxgraph.bootstrap.rrect",R_SIZE:"rSize"};mxShapeBootstrapRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};
mxCellRenderer.registerShape(mxShapeBootstrapRRect.prototype.cst.PACKAGE,mxShapeBootstrapRRect);function mxShapeBootstrapTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapTopButton,mxShape);mxShapeBootstrapTopButton.prototype.cst={TOP_BUTTON:"mxgraph.bootstrap.topButton",R_SIZE:"rSize"};
mxShapeBootstrapTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapTopButton.prototype.cst.TOP_BUTTON,mxShapeBootstrapTopButton);
diff --git a/src/main/webapp/js/stencils.min.js b/src/main/webapp/js/stencils.min.js
index 7945db6f..91e8258c 100644
--- a/src/main/webapp/js/stencils.min.js
+++ b/src/main/webapp/js/stencils.min.js
@@ -174,6 +174,10 @@ f['mockup/misc.xml'] = '7V1bc+O4sf418zgq3EiCjzk5uWxVzlYqqZzzrLU1M0pkyyVrM7P59YeQ
f['bpmn.xml'] = '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';
f['atlassian.xml'] = '7VrdcqMgFH4aL8Mo+HvZaXev9gH2llqaOLWSAduk+/SLIWjEpEUh1t22k5nGk+PH4eP8wFEP3fIN3hLuQb/Cz8RDdx6Ez/s1w9sNwHWJOS9wJWQe+uH5N95RX6hjviV5LW94xazA9yVp9KC/kcLA9+V1B3yzw29SxmtGn8iueKiP2kW1Iayo5a+7HoIcGfrdB93mtKrE8AWthOk/z6o8UkbWjL5UD2d+7quSsiy2nJyxfadd7+X18ert9OqcFZpFRVnKiZtoS82clpQJgfx/GK6iFRkx4hkED6LHw58hzBY3y/SuUv+GZ/pKOrZg1KMrSo2G7SOWRXUZMYTWiMm1ESfNOi8pN3IWoWOwSNIhLgWMkA9i5iCVIT86ASQRGGSA2w3Jn8alADBTErgQKyOizTJMfEWX8hglsIsUDbVdFRvUdlm6HGiIau6q72VK9856MiPNW+/pfpkOe65qqTno1lx0MvN1+6rVK4xBlPRDCIE0sY9MH4R9XBHw0AFuqlDaYhaA2B43jHQeokRJrOokBMdqq3BhrJixwU0DEPTtRQhkU3D/6Sr8QWLz4TKTG8evRpTbV+2DPawhUbDJcl78IWq2irhZ8qt5bmWE14JJM9VmXi4Hd5HYHW+UgmkbJbHY4kuJ2ZqsxPfVY4nX2gBsr7sC08f0+Y6Q7cnNgeYRneZ+hfcFXzFa4yZM7BymP5d+6svcgM5G0DiGJi73RzvYbNEkZWM5ckOSI9iZSBrH0cQFn3E3MNT7/O2wWI2wR2OMjgIbT0OxhpombvKgtrN0cfgVG8t+aydIALJnINIYSHxg3ygLUhD0UKMQZMt2+rm2wHJGS9z7fh/s52lLB3rEqcC2Oiajq7TxdFvFKd/e1hakRQ0c5PJId8WWEqs2gZ51ndiapCB2z2uUXMMHEn21nPjrgNfECQODZraLej7w14m2/n/V7I42l7TpYTwUvH5h99+l7QuXNpRqlMEYOOjUIm07HUMHQd2CnLTXoX2qUBNum7/p0k9710kVxycVJ7niF83lqdg8QyQZyMJ5MoSt52eqx3/as3DwuGaAG6XTYC/3Qtp2ButOxUrypks+6oXEncFG3ZCp07lKgCzg2e/vZRbQxb2lcJ1mrHmj0c0LBU4pmv52xHskfTZFxnGnBFxK/gI=';
f['basic.xml'] = '7V1Zc9s4Ev41fgwLN8nH3UxS+7A7O7WZqtlXxmFszciSS5Jz7K9fKiJo4YOEBmjxGI+eEtFAoxvH1wcawI18u72vHuvtjWCr6qG+kT/dCPHw7W5TPd5nH6vt4rb5fSPf3bC/3bRlnaKq+fXLerHaNf9+2FWbfWnB7g9/LMXh51f3Z7V9rG93h29fqs2i+risD3/Z7jbrP+qvi0+7lsJidV9vFrtjHm7Xq1VTfbFebY+/NVWrAxvfDlVZpg9Ev7e/D78eG3oP9a7eOF+fBfr5x4f3SaR5HOkPMaRdnm1DFOnfIkjzfqTfAenm/6eG4GN1+8fdZv20+tR9eqz2w9j+eFh/qZ95UebE2Dy3sVysjgprt7A0wdJ2ln13WoqkrcOlge22qXOlZRJtlsK2JLrkdrne1jBqznA0v0+M2Of1psZPi+XysCyB3ImyzdcDQpzHCxPCi0LZSWkRw4yLGHs46wEZPAozgHgsaMQRz08tKJpznMBRxGM5jyL+18A7IR1mRJGVwfUN5cP4qAp3eFSmguXzFOJ5IuelO1eUyMIgCfS1zsLIB+U7yIjsnDwsrUikLhK5Z1TnzBa4i6ChZ6aF7XJI2HaJXxi2eS/OI2Gb9+K8D2zbTiJxO6pbgHgeyflvMZyjVojl/F0M50g8lvN3yPlllI4Lfe3Ps1Dmlk5SOURpk0LaJHEN6oYoDYaMSqJtwqWB77TSJeF3gBILlxZJtEUS3yylMKq7FNLeSM5WM/69ahaqqw91K8tE+nC0wAfLikilEkWcg2HaGlMX8QYaVvN+1AdxCNzJrsOQKItw6Wpz2/x1Y1edHaTNd/jw7U31bbF9s1nvqj3vDifLanNXv2kovfm8rO6cP22/1vWj/9liE04KlVMmuVeDiP/ol5b3OZq0yzQxnkE1RJQu3DUkk2hzwhf0Ap+J5cW8xiHJLiHso0kFETjj/Y4GYbACMZIspTAnpuDQmjwUd44Aq0lHEqBeEcNIlB5KFH5aFO5OSmAuyez3So88Kq4oyFx4VPREoxKneyKUI7iRXo2Xo4vbgqcnyBZoTYSYckGD/+1y/fSp+fK2Wjb/290cW/6Gt8HXzvZnmWon0ys0/3MVRz3O/mcc6UeSj3MAyhL9i0jy6AGc4x6ol2XklsMH5D/exdhWX2pcJr+vF6uG/o9/ftA/VHGbCChJLjJXFMkz9MZdDCtcBCsG1Coec9wQzHHhcmd/D6IppAT2Coo7BdypAbnTZSp3Y/ZdjtyRQzvivPOYIxfFqH2nC2RvVhNPqmT22EXGNoq7GMAb2mnZ1NtdU5bE8ofFrg02Phesl8vF4/bYrQd5lLEfvrpz0cYrvR3j00x6DakMNkAlZHDkNsrWtiS9DdLIliBgZqePbUfZ3/fWiI5rp78RuF7VToulyUq3k8t2a+nV2X09890uEjhV5Uk5zwa43N3bIgw6AlwxNaiDzMKsTRgmITibstOoAcVOuvSy36y3W3fdu0Bkf14XfYC0y/NrTfpyxZThpCypXlCaCK29oDDBR1m8oLQJlwZO0kqX4b1m+ZLSBCcsXHi2+9g/rW+fHuqVG8+6otsV3U6jGyxmnrT0iQXH+hcmdkfDUDihyUVwBs4xBD6sszxQWMYdjZRx9mbFgGH598tqe++ClwZv1LCR4csMB2AABcMHmw+Tdh9+WC4e9j3CDv8eehaIRptF3RhFJpHlVHk3IGF4GvnOvYwjLynyaYYapMCRosIpIIp37dLvgjVn+8Zd+YbiRwl3qIxXfrbGzz+q5efmw9vF5tZCwb2dEQ6EXC2gwT2lsO5TXXyhCzhcOuLg7piDShvbZug/petqA8a86jZsbRyYyayYNkyZcR6puaa26zOGGaQXNO0bDY6701Na95pnJfjI3eQ5EuRpc6jE21o666zF9lPJstzu3YhWL+Q2WP+9/WKKjLe67Jts6zWa1aq39pNWGZMEB8cT2rKgeCZzl4V9MSNcJoToAvgdEyLrdFr7ifPMO5uLTBQ861w17kKKFVhmrHSbb6aXdls/HoPn1r1jxNi6Yt4gHNF+FtbkwIDb+l7Q3Jfd0+jQOsuEcRvf96vbOHMb3o8PjD4XmYSOjxl9YTJWuK0fTy3bXuF1/vEsPd/7J5fAXOH/n+eTlHSZgVEj7T7eWEpA9TuyF6cBXDOUdct6kOhO7OG0OB1QIvl2zidrgTMarN8Z9L4qJugyeil7oZQklbk9oyR1Dhl2ppXJ8mCFBtxg05wRTZjMpPFUAE+NwyaCFURWIEvEsTJgSRriLDiDfm0qhFnSwJIURL/CLgglgc68A+dhhhhWoM5gaxBZqIyHx42BzLwkZ4bGCsRJOWxBZ3jeFKeSC3LcEBVQ6ma6ozb11gMIIYmR4AyYKqglpzPXouaMGDsPBxqxwzEJXgJTJSV3iYuOqCBk5qIqMdQSVxCxRJtu1CBzePZJXBLUUEsJFSgQkCo7fZjubAWcr8R5VwY4Fo6bKVw+mlhuSqfRz0E1EADDsf/DxRFeDDFcWsOEo3pfa+SfqGA8N5qYowaVZ07AkTFQgVIjxiSCS87RZKCuRUk93ZbDJKJWTY7gxf00QzzMBzVyqgLDFFo/4Q5qYOIo55QVo1H3hAei8eQ9XUW04IKLYMRkKhG/BCeGosg9I4BqwZWBhJjCwKoWfjIztCFgWXc4HmjDYA2iDc/eU5QcCiSX1K5BkaOC83N9oQa0QMFTgepHcQoM0ArYB0moGmAGEPcSGXQ4BDHLc1RCqqDuPgIZFA2Bbj9pal3gQTdCTSAma0HBvsSRI1URooeWhNS6xDZySj8aWBVaUl4KnFcrKOvbs1AoX1HjSiXbaAq4+KHJu7HyxBYUtkCNhULcbMYijLQKNZhWlDFa4Eql2pC4VjW1kqS3VilNLBHNNeXSSW/EqbUhCuBKS8pXQa1Ey4ET1/d9ZxsC/dd6vTowf28tOtlFwu0Bhbz7Mlrs89SGIrtE7BPzw+xOyGABvmDQTj53bdzOLmQ12d+D7OrmHnPeba4udzY5w3Jnfw9zXorsutkuup/Xzc8P3x8+rpew9piz8Lrf10yKhN2GONIj5pKeuclJebv8KnaXP26nxG+h0JEteBlwZ+6L0v1liOslv4V4GQZBbMgPC8O1hDQc+3uYI5psvrwRnHlIDZdfFFkJ8d3Ss0ZHlc5VlF40WXCrm6JlbKrA1Q4nYhsTymjQZcz/NDbuv2931R2YuddDG69Q0Q4A8IK4hPxUjsbZOE1KYUipJPjAY2PE3iscVyB245JKszAj8wWJze5+3aBE1Zjk7Ndm5a/uIMu5zF3IyEeFjF6AEWXF9cKL9FXdN5EmLkM2EjFu65V/N8QAsFGmJHwQQJCHKc93RX35sZZOXgEmO2Onc3XLTI2cYIdziEX7Lr2mqD2+dqFEa8+5i+U+Ms2uN/24BcxcjdUXd2LX7mHFnkuzQ1s9dGN8M7Be2pxHAKJ2rQbtri8c8vaH/XkrCN0zikEJgTv7exBfsLRJyp2RICfmz/V04kZ4trD7S7VpELde1o+Lx/qTC7tueHFkC+bP6fRk9h6oIfyeRikU/ajHgWzPx7p6uGyRlOPY7vmYVhTxUbVOgsVowlagkCeXT6TRSGRpIW2Pl/mCXWPP+7Gd1wpzABXSDBiCiSYeGccf0hnk/d6fGmRVc0xFLsOLD3L/w7kJCoknoQBBPCc5ny0M/KcZs2p197TcP7p22uMETHit8d79g1qx+2N9ICd2860X5MQSj/Qw+x3kGsbDTDnIBYlz4VXL+hdOCkAnFSbYgIgyURpuFvvzgNK+wt4DY1d4usLTvOEpIQDGvbcuiKM44cJuoAd2tMdLSZApu1rhYNWIMiQZg+EnjSeTAVRHOB0bL9MMX7s7phQQMXyZApwwOkto2wnjsjTwzNYU+PCwWNbfb441/jUB5cXafn4JKNdMz/5B32kyPYlHFE6b5e4Sfn8peMGHikJGGB4ACsM0nBoQ9qqnIU4NwMlUjzXE5Kh3Po7BrxmOZxDE80KhPoODQMQxPLcwZl3QUoQushUpnJTipayc7T08O+WtBjAHhJsC5b5bwns+W4KvmV+gjf6Kerd30Y/XOCDAyOegxnTMI9967uWX24vUhtmpiCQeqa2LfgZMpB7l/aiPkOpKbA909yTF7lXkSXsVGg9qEuThQABR2gCcUwdNc2Se2MXxhDUFccCWJ7YALuMJCebr/TzB/qyb+vdqMfXq+lxdn54tTOL6eJD0/AEeB3B3LS7mAIXeNBPIG31zQ5r+iWiARNiXi1WwVLHKcHlPrhMtXF6urvO6WB31XDXsY/ovbnu33LkNaL+By4tVIMSTYoGZQsrltTCKXAYnlaCmYeHdWEXd1pLjiAm/L0aQLKdww5Os4JSxiJKZMSQTyWPG8aIScsw8k2aUMfMkI8fMk4wcM0+yy41Zbzv518XtH45+LRuelKOAi+56obGsZbxtmUVatXEGsxRAvrTRriGs5gGDECwyejKMH5/BMzfGZN7Jywlf3uYGGdx7+2EGLeUuZj3kpqfwGDQlzaDH4ZAsGun1ITnG+ATakA+EF94k5BR//is1fR+piePQ60F6EuIG97A73FIjh6Wa1TppHMJkBjmuE37hdeL2oY+F9ChDDw7YgVFIPdtA3q+b5sv/1otPN46VApkMr+a4xfVU2einylivHo/rFDhVFst2TJ9c5nDLAHs61NUeaafKvINiRMZhHuZltjj3249EjCOI0/ZllJmka2Ui9inTqYFuOJSb751B/rX7E5psUs6JN9dWg6d/Z9VvkGlMPaWAB2Dm3M9TMxecoFMzB94Exdtsddh/b0I2emsKTae+4sC67xGjOOpxljrMzwtb6vj6+UUtdZd0ZJfP6c6wv4SNTuT9pBzDhGvTBXENYNIJz5TXoLp3Y1u2iMsLIaREvN9XpJSGHiEuRhRJtJNcLUl0yUwUif3QTu3/Aw==';
+f['cisco_safe/design.xml'] = '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';
+f['cisco_safe/capability.xml'] = '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';
+f['cisco_safe/threat.xml'] = '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';
+f['cisco_safe/architecture.xml'] = '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';
var l = mxStencilRegistry.loadStencil;
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 7a85eaf1..ab1f445f 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -399,8 +399,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
-mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
-mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
+mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
+mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
@@ -413,7 +413,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
-"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
+"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
@@ -510,9 +510,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
-mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
-mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
+mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
+mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
@@ -523,7 +523,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
@@ -1013,10 +1013,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
-mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
+mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
+mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
+mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
+mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
@@ -1058,9 +1058,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
-mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
-this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
-a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
+mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
+this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
+null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
@@ -1209,11 +1209,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
-(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
-mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
-b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
-Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
+mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
+b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
+c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
@@ -1414,10 +1414,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
-mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
-g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
-this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
+mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
+Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
+g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
+c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
@@ -1983,11 +1983,11 @@ a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.backg
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(c,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],t=0;t<e.length;t++)(k.isVertex(e[t])||k.isEdge(e[t]))&&null!=a.view.getState(e[t])&&
q.push(e[t]);a.setSelectionCells(q)};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,c,k,m,l,q){var t=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(t=80);e+=t;c+=t;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),n=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);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=g+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var h=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=h.x+"px";this.bg.style.top=h.y+"px";p+=h.x;n+=h.y;k&&document.body.appendChild(this.bg);var w=a.createDiv("geDialog");k=this.getPosition(p,n,
-e,c);p=k.x;n=k.y;w.style.width=e+"px";w.style.height=c+"px";w.style.left=p+"px";w.style.top=n+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose",m.style.top=n+14+"px",m.style.left=p+e+38-t+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",
-mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));n=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c=
-Math.min(f,g-64);var h=this.getPosition(p,n,e,c);p=h.x;n=h.y;w.style.left=p+"px";w.style.top=n+"px";w.style.width=e+"px";w.style.height=c+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=n+14+"px",this.dialogImg.style.left=p+e+38-t+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=l;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
+function Dialog(a,b,e,c,k,l,n,q){var t=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(t=80);e+=t;c+=t;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),m=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);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=g+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var h=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=h.x+"px";this.bg.style.top=h.y+"px";p+=h.x;m+=h.y;k&&document.body.appendChild(this.bg);var w=a.createDiv("geDialog");k=this.getPosition(p,m,
+e,c);p=k.x;m=k.y;w.style.width=e+"px";w.style.height=c+"px";w.style.left=p+"px";w.style.top=m+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=m+14+"px",l.style.left=p+e+38-t+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",
+mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";p=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));m=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c=
+Math.min(f,g-64);var h=this.getPosition(p,m,e,c);p=h.x;m=h.y;w.style.left=p+"px";w.style.top=m+"px";w.style.width=e+"px";w.style.height=c+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=m+14+"px",this.dialogImg.style.left=p+e+38-t+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=n;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";
Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
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";
@@ -1998,30 +1998,30 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),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 PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,p=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,n=1/e.pageScale;if(c){var r=q.checked?1:parseInt(f.value);isNaN(r)||(n=mxUtils.getScaleForPageCount(r,e,p))}e.getGraphBounds();var k=r=0,p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*b);p.height=Math.ceil(p.height*b);n*=b;!c&&e.pageVisible?(b=e.getPageLayout(),r-=b.x*p.width,k-=b.y*p.height):
-c=!0;c=PrintDialog.createPrintPreview(e,n,p,0,r,k,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var l=document.createElement("tbody");c=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage"));
-k.appendChild(t);mxEvent.addListener(t,"click",function(a){q.checked=!q.checked;d.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){d.checked=!q.checked});c.appendChild(k);l.appendChild(c);c=c.cloneNode(!1);var d=document.createElement("input");d.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(d);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");k.appendChild(t);mxEvent.addListener(t,
-"click",function(a){d.checked=!d.checked;q.checked=!d.checked;mxEvent.consume(a)});c.appendChild(k);var f=document.createElement("input");f.setAttribute("value","1");f.setAttribute("type","number");f.setAttribute("min","1");f.setAttribute("size","4");f.setAttribute("disabled","disabled");f.style.width="50px";k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(f);mxUtils.write(k," "+mxResources.get("pages")+" (max)");c.appendChild(k);l.appendChild(c);mxEvent.addListener(d,"change",
-function(){d.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!d.checked});c=c.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");c.appendChild(k);k=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";k.appendChild(g);c.appendChild(k);l.appendChild(c);c=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
+PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,p=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,m=1/e.pageScale;if(c){var r=q.checked?1:parseInt(f.value);isNaN(r)||(m=mxUtils.getScaleForPageCount(r,e,p))}e.getGraphBounds();var k=r=0,p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*b);p.height=Math.ceil(p.height*b);m*=b;!c&&e.pageVisible?(b=e.getPageLayout(),r-=b.x*p.width,k-=b.y*p.height):
+c=!0;c=PrintDialog.createPrintPreview(e,m,p,0,r,k,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var n=document.createElement("tbody");c=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage"));
+k.appendChild(t);mxEvent.addListener(t,"click",function(a){q.checked=!q.checked;d.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){d.checked=!q.checked});c.appendChild(k);n.appendChild(c);c=c.cloneNode(!1);var d=document.createElement("input");d.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(d);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");k.appendChild(t);mxEvent.addListener(t,
+"click",function(a){d.checked=!d.checked;q.checked=!d.checked;mxEvent.consume(a)});c.appendChild(k);var f=document.createElement("input");f.setAttribute("value","1");f.setAttribute("type","number");f.setAttribute("min","1");f.setAttribute("size","4");f.setAttribute("disabled","disabled");f.style.width="50px";k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(f);mxUtils.write(k," "+mxResources.get("pages")+" (max)");c.appendChild(k);n.appendChild(c);mxEvent.addListener(d,"change",
+function(){d.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!d.checked});c=c.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");c.appendChild(k);k=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";k.appendChild(g);c.appendChild(k);n.appendChild(c);c=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
k.style.paddingTop="20px";k.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&k.appendChild(t);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";k.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";k.appendChild(p);a.editor.cancelFirst||
-k.appendChild(t);c.appendChild(k);l.appendChild(c);m.appendChild(l);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}};
-PrintDialog.createPrintPreview=function(a,b,e,c,k,m,l){b=new mxPrintPreview(a,b,e,c,k,m);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=l;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.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};
+k.appendChild(t);c.appendChild(k);n.appendChild(c);l.appendChild(n);this.container=l};PrintDialog.printPreview=function(a){if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}};
+PrintDialog.createPrintPreview=function(a,b,e,c,k,l,n){b=new mxPrintPreview(a,b,e,c,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=n;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.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==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==n?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxResources.get("change")+"..."):(p.setAttribute("title",n.src),p.style.fontSize="11px",p.innerHTML=n.src.substring(0,42)+"...")}var c=a.editor.graph,k,m,l=document.createElement("table");l.style.width=
-"100%";l.style.height="100%";var q=document.createElement("tbody");k=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");k.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var t=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",c.pageFormat);k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");
-mxUtils.write(m,mxResources.get("background")+":");k.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var d=document.createElement("button");d.style.width="18px";d.style.height="18px";d.style.marginRight="20px";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";var f=c.background;b();mxEvent.addListener(d,"click",function(d){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(d)});
-m.appendChild(d);mxUtils.write(m,mxResources.get("gridSize")+":");var g=document.createElement("input");g.setAttribute("type","number");g.setAttribute("min","0");g.style.width="40px";g.style.marginLeft="6px";g.value=c.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?c.getGridSize():a)});k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+
-":");k.appendChild(m);m=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var n=c.backgroundImage;mxEvent.addListener(p,"click",function(d){a.showBackgroundImageDialog(function(a){n=a;e()});mxEvent.consume(d)});e();m.appendChild(p);k.appendChild(m);q.appendChild(k);k=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var h=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&m.appendChild(h);var w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.gridSize!==g.value&&c.setGridSize(parseInt(g.value));var d=new ChangePageSetup(a,f,n,t.get());d.ignoreColor=c.background==f;d.ignoreImage=(null!=c.backgroundImage?c.backgroundImage.src:null)===(null!=n?n.src:null);c.pageFormat.width==d.previousFormat.width&&c.pageFormat.height==d.previousFormat.height&&
-d.ignoreColor&&d.ignoreImage||c.model.execute(d)});w.className="geBtn gePrimaryBtn";m.appendChild(w);a.editor.cancelFirst||m.appendChild(h);k.appendChild(m);q.appendChild(k);l.appendChild(q);this.container=l};
+var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==m?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxResources.get("change")+"..."):(p.setAttribute("title",m.src),p.style.fontSize="11px",p.innerHTML=m.src.substring(0,42)+"...")}var c=a.editor.graph,k,l,n=document.createElement("table");n.style.width=
+"100%";n.style.height="100%";var q=document.createElement("tbody");k=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");k.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var t=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",c.pageFormat);k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");
+mxUtils.write(l,mxResources.get("background")+":");k.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var d=document.createElement("button");d.style.width="18px";d.style.height="18px";d.style.marginRight="20px";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";var f=c.background;b();mxEvent.addListener(d,"click",function(d){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(d)});
+l.appendChild(d);mxUtils.write(l,mxResources.get("gridSize")+":");var g=document.createElement("input");g.setAttribute("type","number");g.setAttribute("min","0");g.style.width="40px";g.style.marginLeft="6px";g.value=c.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?c.getGridSize():a)});k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");mxUtils.write(l,mxResources.get("image")+
+":");k.appendChild(l);l=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var m=c.backgroundImage;mxEvent.addListener(p,"click",function(d){a.showBackgroundImageDialog(function(a){m=a;e()});mxEvent.consume(d)});e();l.appendChild(p);k.appendChild(l);q.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align","right");var h=
+mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&l.appendChild(h);var w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.gridSize!==g.value&&c.setGridSize(parseInt(g.value));var d=new ChangePageSetup(a,f,m,t.get());d.ignoreColor=c.background==f;d.ignoreImage=(null!=c.backgroundImage?c.backgroundImage.src:null)===(null!=m?m.src:null);c.pageFormat.width==d.previousFormat.width&&c.pageFormat.height==d.previousFormat.height&&
+d.ignoreColor&&d.ignoreImage||c.model.execute(d)});w.className="geBtn gePrimaryBtn";l.appendChild(w);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);n.appendChild(q);this.container=n};
PageSetupDialog.addPageFormatPanel=function(a,b,e,c){function k(a,d,c){if(c||g!=document.activeElement&&p!=document.activeElement){a=!1;for(d=0;d<h.length;d++)c=h[d],r?"custom"==c.key&&(q.value=c.key,r=!1):null!=c.format&&("a4"==c.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==c.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==c.format.width&&
-e.height==c.format.height?(q.value=c.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,a=!0):e.width==c.format.height&&e.height==c.format.width&&(q.value=c.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,l.setAttribute("checked","checked"),l.defaultChecked=!0,a=l.checked=!0));a?(t.style.display="",f.style.display="none"):(g.value=e.width/100,p.value=e.height/100,m.setAttribute("checked","checked"),
-q.value="custom",t.style.display="none",f.style.display="")}}b="format-"+b;var m=document.createElement("input");m.setAttribute("name",b);m.setAttribute("type","radio");m.setAttribute("value","portrait");var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var t=document.createElement("div");t.style.marginLeft="4px";t.style.width="210px";
-t.style.height="24px";m.style.marginRight="6px";t.appendChild(m);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));t.appendChild(b);l.style.marginLeft="10px";l.style.marginRight="6px";t.appendChild(l);var d=document.createElement("span");d.style.width="100px";mxUtils.write(d,mxResources.get("landscape"));t.appendChild(d);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input");
-g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";f.appendChild(p);mxUtils.write(f," in");t.style.display="none";f.style.display="none";for(var n={},h=PageSetupDialog.getFormats(),w=0;w<h.length;w++){var u=h[w];n[u.key]=u;var x=document.createElement("option");x.setAttribute("value",u.key);mxUtils.write(x,u.title);q.appendChild(x)}var r=!1;k();a.appendChild(q);mxUtils.br(a);
-a.appendChild(t);a.appendChild(f);var z=e,v=function(a,d){var b=n[q.value];null!=b.format?(g.value=b.format.width/100,p.value=b.format.height/100,f.style.display="none",t.style.display=""):(t.style.display="none",f.style.display="");isNaN(parseFloat(g.value))&&(g.value=e.width/100);isNaN(parseFloat(p.value))&&(p.value=e.height/100);b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&l.checked&&(b=new mxRectangle(0,0,b.height,b.width));
-d&&r||b.width==z.width&&b.height==z.height||(z=b,null!=c&&c(z))};mxEvent.addListener(b,"click",function(a){m.checked=!0;v(a);mxEvent.consume(a)});mxEvent.addListener(d,"click",function(a){l.checked=!0;v(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",v);mxEvent.addListener(g,"click",v);mxEvent.addListener(p,"blur",v);mxEvent.addListener(p,"click",v);mxEvent.addListener(l,"change",v);mxEvent.addListener(m,"change",v);mxEvent.addListener(q,"change",function(a){r="custom"==q.value;v(a,!0)});v();
-return{set:function(a){e=a;k(null,null,!0)},get:function(){return z},widthInput:g,heightInput:p}};
+e.height==c.format.height?(q.value=c.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,a=!0):e.width==c.format.height&&e.height==c.format.width&&(q.value=c.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,n.setAttribute("checked","checked"),n.defaultChecked=!0,a=n.checked=!0));a?(t.style.display="",f.style.display="none"):(g.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
+q.value="custom",t.style.display="none",f.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var t=document.createElement("div");t.style.marginLeft="4px";t.style.width="210px";
+t.style.height="24px";l.style.marginRight="6px";t.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));t.appendChild(b);n.style.marginLeft="10px";n.style.marginRight="6px";t.appendChild(n);var d=document.createElement("span");d.style.width="100px";mxUtils.write(d,mxResources.get("landscape"));t.appendChild(d);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input");
+g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";f.appendChild(p);mxUtils.write(f," in");t.style.display="none";f.style.display="none";for(var m={},h=PageSetupDialog.getFormats(),w=0;w<h.length;w++){var u=h[w];m[u.key]=u;var v=document.createElement("option");v.setAttribute("value",u.key);mxUtils.write(v,u.title);q.appendChild(v)}var r=!1;k();a.appendChild(q);mxUtils.br(a);
+a.appendChild(t);a.appendChild(f);var A=e,C=function(a,d){var b=m[q.value];null!=b.format?(g.value=b.format.width/100,p.value=b.format.height/100,f.style.display="none",t.style.display=""):(t.style.display="none",f.style.display="");isNaN(parseFloat(g.value))&&(g.value=e.width/100);isNaN(parseFloat(p.value))&&(p.value=e.height/100);b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&n.checked&&(b=new mxRectangle(0,0,b.height,b.width));
+d&&r||b.width==A.width&&b.height==A.height||(A=b,null!=c&&c(A))};mxEvent.addListener(b,"click",function(a){l.checked=!0;C(a);mxEvent.consume(a)});mxEvent.addListener(d,"click",function(a){n.checked=!0;C(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",C);mxEvent.addListener(g,"click",C);mxEvent.addListener(p,"blur",C);mxEvent.addListener(p,"click",C);mxEvent.addListener(n,"change",C);mxEvent.addListener(l,"change",C);mxEvent.addListener(q,"change",function(a){r="custom"==q.value;C(a,!0)});C();
+return{set:function(a){e=a;k(null,null,!0)},get:function(){return A},widthInput:g,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 (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{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:"custom",title:mxResources.get("custom"),format:null}]};
(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var c=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var d=a.container.firstChild;null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.nextSibling;null!=d&&(this.backgroundPageShape=this.createBackgroundPageShape(c),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
@@ -2031,33 +2031,33 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
b="url("+this.gridImage+")";var e=d=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),d=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-d,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}d=a.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor=
c,a.container.className="geDiagramContainer geDiagramBackdrop",d.style.backgroundImage="none",d.style.backgroundColor=""):(a.container.className="geDiagramContainer",d.style.backgroundPosition=g,d.style.backgroundColor=c,d.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var d=this.gridSteps*c,b=[],g=1;g<this.gridSteps;g++){var e=g*c;b.push("M 0 "+e+" L "+d+" "+e+" M "+e+" 0 L "+e+" "+d)}return'<svg width="'+
d+'" height="'+d+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+d+'" height="'+d+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+d+" 0 L 0 0 0 "+d+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=
-this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+c,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";d.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,c,d){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,n=b*this.pageScale,h=this.view.getBackgroundPageBounds();c=h.width;d=h.height;var k=
-new mxRectangle(b*g.x,b*g.y,e.width*n,e.height*n),u=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(d/k.height)-1:0,x=a?Math.ceil(c/k.width)-1:0,r=h.x+c,q=h.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var d=a==this.horizontalPageBreaks?u:x,c=0;c<=d;c++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
+this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+c,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";d.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,c,d){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,m=b*this.pageScale,h=this.view.getBackgroundPageBounds();c=h.width;d=h.height;var k=
+new mxRectangle(b*g.x,b*g.y,e.width*m,e.height*m),u=(a=a&&Math.min(k.width,k.height)>this.minPageBreakDist)?Math.ceil(d/k.height)-1:0,v=a?Math.ceil(c/k.width)-1:0,r=h.x+c,q=h.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var d=a==this.horizontalPageBreaks?u:v,c=0;c<=d;c++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(c+1)*k.height)),
new mxPoint(Math.round(r),Math.round(h.y+(c+1)*k.height))]:[new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(c+1)*k.width),Math.round(q))];null!=a[c]?(a[c].points=b,a[c].redraw()):(b=new mxPolyline(b,this.pageBreakColor),b.dialect=this.dialect,b.isDashed=this.pageBreakDashed,b.pointerEvents=!1,b.init(this.view.backgroundPane),b.redraw(),a[c]=b)}for(c=d;c<a.length;c++)a[c].destroy();a.splice(d,a.length-d)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,d){for(var f=0;f<c.length;f++)if(this.graph.getModel().isVertex(c[f])){var g=this.graph.getCellGeometry(c[f]);if(null!=g&&g.relative)return!1}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(c,d){return this.isConnecting()?
-!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,d=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,c)/e),n=Math.floor(Math.min(0,
-d)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+n*b),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,d+a.height/this.scale)/b)-n)*b)};var c=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){c.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,d,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var c=this.graph.getModel(),d=c.getParent(this.graph.getSelectionCell()),b=m.apply(this,arguments),g=c.getParent(b);
-if(null==d||d!=b&&d!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&c.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,c){var d=l.apply(this,arguments);if(!d)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){d=!0;break}g=b.getParent(g)}return d};mxGraphHandler.prototype.selectDelayed=
+!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,d=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,c)/e),m=Math.floor(Math.min(0,
+d)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+m*b),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,d+a.height/this.scale)/b)-m)*b)};var c=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){c.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,d,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var c=this.graph.getModel(),d=c.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=c.getParent(b);
+if(null==d||d!=b&&d!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&c.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var n=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,c){var d=n.apply(this,arguments);if(!d)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){d=!0;break}g=b.getParent(g)}return d};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var c=a.getCell();null==c&&(c=this.cell);var d=this.graph.view.getState(c);if(null==d||!a.isSource(d.control))for(var d=this.graph.getModel(),b=d.getParent(c);!this.graph.isCellSelected(b)&&d.isVertex(b);)c=b,b=d.getParent(c);this.graph.selectCellForEvent(c,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var c=this.graph.getModel(),d=c.getParent(a);c.isVertex(d)&&!this.graph.isContainer(d);)this.graph.isCellSelected(d)&&
(a=d),d=c.getParent(d);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var c=this.editor.graph;c.lightbox=e;mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,c.isEnabled=function(){return!1},c.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||c.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown=
k,this.toolbarContainer.onselectstart=k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){var d=mxEvent.getSource(a);
if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):c.panningHandler.usePopupTrigger=!1;c.init(this.diagramContainer);mxClient.IS_SVG&&null!=c.view.getDrawPane()&&(b=c.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,l=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,d){return m||l.apply(this,arguments)};this.keydownHandler=
-mxUtils.bind(this,function(a){32==a.which?(m=!0,this.hoverIcons.reset(),c.container.style.cursor="move",c.isEditing()||mxEvent.getSource(a)!=c.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){c.container.style.cursor="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=c.panningHandler.isForcePanningEvent;c.panningHandler.isForcePanningEvent=
-function(a){return q.apply(this,arguments)||m||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var t=c.cellEditor.isStopEditingEvent;c.cellEditor.isStopEditingEvent=function(a){return t.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 d=!1,f=null,g=null,p=null,n=mxUtils.bind(this,function(){if(null!=this.toolbar&&d!=c.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var h=0;h<p.length;h++)this.toolbar.container.appendChild(p[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
-g}d=c.cellEditor.isContentEditing();f=a;g=e;p=b}}),h=this,w=c.cellEditor.startEditing;c.cellEditor.startEditing=function(){w.apply(this,arguments);n();if(c.cellEditor.isContentEditing()){var a=!1,d=function(){a||(a=!0,window.setTimeout(function(){for(var d=c.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;if(null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=h.toolbar)){var b=d.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b=
-b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(d.fontSize))}a=!1},0))};mxEvent.addListener(c.cellEditor.textarea,"input",d);mxEvent.addListener(c.cellEditor.textarea,"touchend",d);mxEvent.addListener(c.cellEditor.textarea,"mouseup",d);mxEvent.addListener(c.cellEditor.textarea,"keyup",d);d()}};var u=c.cellEditor.stopEditing;c.cellEditor.stopEditing=function(a,d){u.apply(this,arguments);n()};c.container.setAttribute("tabindex","0");c.container.style.cursor="default";
-if(window.self===window.top&&null!=c.container.parentNode)try{c.container.focus()}catch(G){}var x=c.fireMouseEvent;c.fireMouseEvent=function(a,d,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();x.apply(this,arguments)};c.popupMenuHandler.autoExpand=!0;null!=this.menus&&(c.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,d,c){this.menus.createPopupMenu(a,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){c.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var r="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var d=c.view.getState(a);if(null!=d){a=a.clone();a.style="";a=c.getCellStyle(a);var b=[],f=[],g;for(g in d.style)a[g]!=d.style[g]&&(b.push(d.style[g]),f.push(g));g=c.getModel().getStyle(d.cell);for(var e=null!=g?g.split(";"):[],p=0;p<e.length;p++){var h=e[p],
-n=h.indexOf("=");0<=n&&(g=h.substring(0,n),h=h.substring(n+1),null!=a[g]&&"none"==h&&(b.push(h),f.push(g)))}c.getModel().isEdge(d.cell)?c.currentEdgeStyle={}:c.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}};this.clearDefaultStyle=function(){c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var v=
-["fontFamily","fontSize","fontColor"],A="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),F=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],v,["align"],["html"]];for(a=0;a<F.length;a++)for(b=0;b<F[a].length;b++)r.push(F[a][b]);for(a=0;a<z.length;a++)0>mxUtils.indexOf(r,z[a])&&r.push(z[a]);var B=function(a,d){var b=c.getModel();b.beginUpdate();
-try{if(d)for(var f=b.isEdge(h),g=f?c.currentEdgeStyle:c.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var p=g[f[e]];null!=p&&c.setCellStyles(f[e],p,a)}else for(p=0;p<a.length;p++){for(var h=a[p],n=b.getStyle(h),u=null!=n?n.split(";"):[],J=r.slice(),e=0;e<u.length;e++){var x=u[e],k=x.indexOf("=");if(0<=k){var w=x.substring(0,k),q=mxUtils.indexOf(J,w);0<=q&&J.splice(q,1);for(var A=0;A<F.length;A++){var m=F[A];if(0<=mxUtils.indexOf(m,w))for(var l=0;l<m.length;l++){var v=
-mxUtils.indexOf(J,m[l]);0<=v&&J.splice(v,1)}}}}for(var g=(f=b.isEdge(h))?c.currentEdgeStyle:c.currentVertexStyle,t=b.getStyle(h),e=0;e<J.length;e++){var w=J[e],G=g[w];null==G||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(z,w))||(t=mxUtils.setStyle(t,w,G))}b.setStyle(h,t)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT,function(a,d){var b=
-[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=c.getModel().isVertex(b[e])||f,!(g=c.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=d.getProperty("keys"),p=d.getProperty("values"),e=0;e<b.length;e++){var h=0<=mxUtils.indexOf(v,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(z,
-b[e]))g||0<=mxUtils.indexOf(A,b[e])?null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(r,b[e])&&(null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(r,b[e])){if(f||h)null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e];if(g||h||0<=mxUtils.indexOf(A,b[e]))null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(c.currentVertexStyle.fontFamily||
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,n=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,d){return l||n.apply(this,arguments)};this.keydownHandler=
+mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),c.container.style.cursor="move",c.isEditing()||mxEvent.getSource(a)!=c.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){c.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=c.panningHandler.isForcePanningEvent;c.panningHandler.isForcePanningEvent=
+function(a){return q.apply(this,arguments)||l||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var t=c.cellEditor.isStopEditingEvent;c.cellEditor.isStopEditingEvent=function(a){return t.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 d=!1,f=null,g=null,p=null,m=mxUtils.bind(this,function(){if(null!=this.toolbar&&d!=c.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var h=0;h<p.length;h++)this.toolbar.container.appendChild(p[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
+g}d=c.cellEditor.isContentEditing();f=a;g=e;p=b}}),h=this,w=c.cellEditor.startEditing;c.cellEditor.startEditing=function(){w.apply(this,arguments);m();if(c.cellEditor.isContentEditing()){var a=!1,d=function(){a||(a=!0,window.setTimeout(function(){for(var d=c.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;if(null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=h.toolbar)){var b=d.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b=
+b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(d.fontSize))}a=!1},0))};mxEvent.addListener(c.cellEditor.textarea,"input",d);mxEvent.addListener(c.cellEditor.textarea,"touchend",d);mxEvent.addListener(c.cellEditor.textarea,"mouseup",d);mxEvent.addListener(c.cellEditor.textarea,"keyup",d);d()}};var u=c.cellEditor.stopEditing;c.cellEditor.stopEditing=function(a,d){u.apply(this,arguments);m()};c.container.setAttribute("tabindex","0");c.container.style.cursor="default";
+if(window.self===window.top&&null!=c.container.parentNode)try{c.container.focus()}catch(F){}var v=c.fireMouseEvent;c.fireMouseEvent=function(a,d,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};c.popupMenuHandler.autoExpand=!0;null!=this.menus&&(c.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,d,c){this.menus.createPopupMenu(a,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){c.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
+this.getKeyHandler=function(){return keyHandler};var r="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),A="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var d=c.view.getState(a);if(null!=d){a=a.clone();a.style="";a=c.getCellStyle(a);var b=[],f=[],g;for(g in d.style)a[g]!=d.style[g]&&(b.push(d.style[g]),f.push(g));g=c.getModel().getStyle(d.cell);for(var e=null!=g?g.split(";"):[],p=0;p<e.length;p++){var h=e[p],
+m=h.indexOf("=");0<=m&&(g=h.substring(0,m),h=h.substring(m+1),null!=a[g]&&"none"==h&&(b.push(h),f.push(g)))}c.getModel().isEdge(d.cell)?c.currentEdgeStyle={}:c.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}};this.clearDefaultStyle=function(){c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var C=
+["fontFamily","fontSize","fontColor"],y="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),z=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],C,["align"],["html"]];for(a=0;a<z.length;a++)for(b=0;b<z[a].length;b++)r.push(z[a][b]);for(a=0;a<A.length;a++)0>mxUtils.indexOf(r,A[a])&&r.push(A[a]);var B=function(a,d){var b=c.getModel();b.beginUpdate();
+try{if(d)for(var f=b.isEdge(h),g=f?c.currentEdgeStyle:c.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var p=g[f[e]];null!=p&&c.setCellStyles(f[e],p,a)}else for(p=0;p<a.length;p++){for(var h=a[p],m=b.getStyle(h),u=null!=m?m.split(";"):[],G=r.slice(),e=0;e<u.length;e++){var v=u[e],k=v.indexOf("=");if(0<=k){var w=v.substring(0,k),q=mxUtils.indexOf(G,w);0<=q&&G.splice(q,1);for(var y=0;y<z.length;y++){var l=z[y];if(0<=mxUtils.indexOf(l,w))for(var n=0;n<l.length;n++){var C=
+mxUtils.indexOf(G,l[n]);0<=C&&G.splice(C,1)}}}}for(var g=(f=b.isEdge(h))?c.currentEdgeStyle:c.currentVertexStyle,t=b.getStyle(h),e=0;e<G.length;e++){var w=G[e],F=g[w];null==F||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(A,w))||(t=mxUtils.setStyle(t,w,F))}b.setStyle(h,t)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT,function(a,d){var b=
+[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=c.getModel().isVertex(b[e])||f,!(g=c.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=d.getProperty("keys"),p=d.getProperty("values"),e=0;e<b.length;e++){var h=0<=mxUtils.indexOf(C,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(A,
+b[e]))g||0<=mxUtils.indexOf(y,b[e])?null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(r,b[e])&&(null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(r,b[e])){if(f||h)null==p[e]?delete c.currentVertexStyle[b[e]]:c.currentVertexStyle[b[e]]=p[e];if(g||h||0<=mxUtils.indexOf(y,b[e]))null==p[e]?delete c.currentEdgeStyle[b[e]]:c.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(c.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(c.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==c.currentEdgeStyle.edgeStyle&&"1"==c.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==c.currentEdgeStyle.edgeStyle||"none"==c.currentEdgeStyle.edgeStyle||null==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
c.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==c.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==c.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==c.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==c.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==c.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==c.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",c.currentEdgeStyle.shape,c.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(c.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2077,31 +2077,31 @@ a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==c?"geSprite geSprite-"+a+"block":"g
a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(c){c.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var c=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste",
-!1,null):e=c.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
+!1,null):e=c.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
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(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*d.width),this.scale*(this.translate.y+a.y*d.height),this.scale*a.width*d.width,
-this.scale*a.height*d.height)};a.getPreferredPageSize=function(a,d,b){a=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,a.width*d.width,a.height*d.height)};var b=null,e=this;if(this.editor.chromeless){this.chromelessResize=b=mxUtils.bind(this,function(d,b,c,f){if(null!=a.container){c=null!=c?c:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,h=a.view.scale,n=mxRectangle.fromRectangle(g);
-n.x=n.x/h-p.x;n.y=n.y/h-p.y;n.width/=h;n.height/=h;var p=a.container.scrollTop,u=a.container.scrollLeft,r=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)r+=3;var x=a.container.offsetWidth-r,r=a.container.offsetHeight-r;d=d?Math.max(.3,Math.min(b||1,x/n.width)):h;b=(x-d*n.width)/2/d;var k=0==this.lightboxVerticalDivider?0:(r-d*n.height)/this.lightboxVerticalDivider/d;e&&(b=Math.max(b,0),k=Math.max(k,0));if(e||g.width<x||g.height<r)a.view.scaleAndTranslate(d,
-Math.floor(b-n.x),Math.floor(k-n.y)),a.container.scrollTop=p*d/h,a.container.scrollLeft=u*d/h;else if(0!=c||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+c/h),Math.floor(g.y+f/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var c=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",c)});this.editor.addListener("resetGraphView",
+this.scale*a.height*d.height)};a.getPreferredPageSize=function(a,d,b){a=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,a.width*d.width,a.height*d.height)};var b=null,e=this;if(this.editor.chromeless){this.chromelessResize=b=mxUtils.bind(this,function(d,b,c,f){if(null!=a.container){c=null!=c?c:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,h=a.view.scale,m=mxRectangle.fromRectangle(g);
+m.x=m.x/h-p.x;m.y=m.y/h-p.y;m.width/=h;m.height/=h;var p=a.container.scrollTop,u=a.container.scrollLeft,r=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)r+=3;var v=a.container.offsetWidth-r,r=a.container.offsetHeight-r;d=d?Math.max(.3,Math.min(b||1,v/m.width)):h;b=(v-d*m.width)/2/d;var k=0==this.lightboxVerticalDivider?0:(r-d*m.height)/this.lightboxVerticalDivider/d;e&&(b=Math.max(b,0),k=Math.max(k,0));if(e||g.width<v||g.height<r)a.view.scaleAndTranslate(d,
+Math.floor(b-m.x),Math.floor(k-m.y)),a.container.scrollTop=p*d/h,a.container.scrollLeft=u*d/h;else if(0!=c||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+c/h),Math.floor(g.y+f/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var c=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",c)});this.editor.addListener("resetGraphView",
mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace=
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var k=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(a.container);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",k);k();var m=0,k=mxUtils.bind(this,function(a,d,b){m++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight="8px";c.style.cursor="pointer";mxEvent.addListener(c,"click",a);null!=b&&c.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",d);c.appendChild(a);this.chromelessToolbar.appendChild(c);
-return c}),l=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var t=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),
-d=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});l.style.paddingLeft="0px";l.style.paddingRight="4px";t.style.paddingLeft="4px";t.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(t.style.display="",l.style.display="",q.style.display="inline-block"):(t.style.display="none",l.style.display=
+0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,d,b){l++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight="8px";c.style.cursor="pointer";mxEvent.addListener(c,"click",a);null!=b&&c.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",d);c.appendChild(a);this.chromelessToolbar.appendChild(c);
+return c}),n=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var t=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),
+d=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});n.style.paddingLeft="0px";n.style.paddingRight="4px";t.style.paddingLeft="4px";t.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(t.style.display="",n.style.display="",q.style.display="inline-block"):(t.style.display="none",n.style.display=
"none",q.style.display="none");d()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",d);k(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(d){a.lightbox?(1==a.view.scale?
-this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,p=null,n=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=
+this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,p=null,m=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=
null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var w=k(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=w.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(d)}),Editor.layersLargeImage,mxResources.get("layers")),u=a.getModel();u.addListener(mxEvent.CHANGE,function(){w.style.display=1<u.getChildCount(u.root)?
"":"none"})}this.addChromelessToolbarItems(k);null!=this.editor.editButtonLink&&k(mxUtils.bind(this,function(d){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(d)}),Editor.editLargeImage,mxResources.get("edit"));!a.lightbox||"1"!=urlParams.close&&this.container==document.body||k(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,
-mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),n())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});
-mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?n():h(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var x=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,d){},mouseUp:function(d,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<x&&Math.abs(this.scrollTop-a.container.scrollTop)<x&&Math.abs(this.startX-b.getGraphX())<x&&Math.abs(this.startY-b.getGraphY())<x&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?n():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var r=
-a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*d.width;this.translate.y=a.y-(this.y0||0)*d.height}r.apply(this,arguments)};var z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),b=this.getPagePadding(),c=this.getPageSize(),f=Math.ceil(2*b.x+d.width*
-c.width),g=Math.ceil(2*b.y+d.height*c.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-d.x*c.width;b=b.y-d.y*c.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?z.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=a.view.translate.x,c=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-d)*a.view.scale),a.container.scrollTop+=Math.round((b-c)*a.view.scale),
-this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var v=null;a.lazyZoom=function(d){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);d?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
-(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var d=mxUtils.getOffset(a.container),c=0,f=0;null!=v&&(c=a.container.offsetWidth/2-v.x+d.x,f=a.container.offsetHeight/2-v.y+d.y);d=this.view.scale;
+mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),m())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});
+mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?m():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?m():h(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var v=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,b){this.startX=
+b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,d){},mouseUp:function(d,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&Math.abs(this.startX-b.getGraphX())<v&&Math.abs(this.startY-b.getGraphY())<v&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?m():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var r=
+a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*d.width;this.translate.y=a.y-(this.y0||0)*d.height}r.apply(this,arguments)};var A=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),b=this.getPagePadding(),c=this.getPageSize(),f=Math.ceil(2*b.x+d.width*
+c.width),g=Math.ceil(2*b.y+d.height*c.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-d.x*c.width;b=b.y-d.y*c.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?A.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=a.view.translate.x,c=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-d)*a.view.scale),a.container.scrollTop+=Math.round((b-c)*a.view.scale),
+this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var C=null;a.lazyZoom=function(d){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);d?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
+(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var d=mxUtils.getOffset(a.container),c=0,f=0;null!=C&&(c=a.container.offsetWidth/2-C.x+d.x,f=a.container.offsetHeight/2-C.y+d.y);d=this.view.scale;
this.zoom(this.cumulativeZoomFactor);this.view.scale!=d&&(null!=b&&e.chromelessResize(!1,null,c*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==c&&0==f||(a.container.scrollLeft-=c*(this.cumulativeZoomFactor-1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),20)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(d))for(var c=
-mxEvent.getSource(d);null!=c;){if(c==a.container){v=new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d));a.lazyZoom(b);mxEvent.consume(d);break}c=c.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
+mxEvent.getSource(d);null!=c;){if(c==a.container){C=new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d));a.lazyZoom(b);mxEvent.consume(d);break}c=c.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a};
EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){this.formatWidth=a||0<this.formatWidth?0:240;this.formatContainer.style.display=a||0<this.formatWidth?"":"none";this.refresh();this.format.refresh();this.fireEvent(new mxEventObject("formatWidthChanged"))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
@@ -2124,19 +2124,19 @@ this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.e
EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};
EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
-EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,c=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,c);e.addListener(mxEvent.UNDO,c);e.addListener(mxEvent.REDO,c);e.addListener(mxEvent.CLEAR,c);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);c()};var m=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);c()};c()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,c=!1,k=a.getSelectionCells();if(null!=k)for(var m=0;m<k.length;m++){var l=k[m];a.getModel().isEdge(l)&&(c=!0);a.getModel().isVertex(l)&&(e=!0);if(c&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m=
-0;m<k.length;m++)this.actions.get(k[m]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(c);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);c=e&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,c=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,c);e.addListener(mxEvent.UNDO,c);e.addListener(mxEvent.REDO,c);e.addListener(mxEvent.CLEAR,c);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);c()};var l=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);c()};c()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,c=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var n=k[l];a.getModel().isEdge(n)&&(c=!0);a.getModel().isVertex(n)&&(e=!0);if(c&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(l=
+0;l<k.length;l++)this.actions.get(k[l]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(c);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);c=e&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||
c&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||c&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(c&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||
0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==
a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&&e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());
this.actions.get("selectVertices").setEnabled(b);this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()};
EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,c=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,c=b?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var k=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),l=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",l+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",l+=this.toolbarHeight);0<l&&!mxClient.IS_QUIRKS&&(l+=1);var q=0;if(null!=this.sidebarFooterContainer){var t=
-this.footerHeight+k,q=Math.max(0,Math.min(c-l-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=t+"px"}t=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=l+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=l+"px";this.formatContainer.style.width=t+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
-null!=this.hsplit.parentNode?m+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-b=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-t)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
+(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),n=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",n+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",n+=this.toolbarHeight);0<n&&!mxClient.IS_QUIRKS&&(n+=1);var q=0;if(null!=this.sidebarFooterContainer){var t=
+this.footerHeight+k,q=Math.max(0,Math.min(c-n-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=t+"px"}t=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=n+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=n+"px";this.formatContainer.style.width=t+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left=
+null!=this.hsplit.parentNode?l+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=l+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
+b=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-l-this.splitSize-t)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,c-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=
this.footerHeight+k+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=k+"px"),this.diagramContainer.style.right=t+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+k+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+k+"px",this.formatContainer.style.bottom=
this.footerHeight+k+"px",this.diagramContainer.style.bottom=this.footerHeight+k+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
@@ -2147,8 +2147,8 @@ 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";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};
EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,c){function k(a){if(null!=l){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));c(Math.max(0,q+(b?g.x-l.x:l.y-g.y)-e));mxEvent.consume(a);q!=f()&&(t=!0,d=null)}}function m(a){k(a);l=q=null}var l=null,q=null,t=!0,d=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){l=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=f();t=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!t){var b=null!=d?d-e:0;d=f();c(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,k,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,m)})};EditorUi.prototype.showDialog=function(a,b,e,c,k,m,l){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,c,k,m,l);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,e,c){function k(a){if(null!=n){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));c(Math.max(0,q+(b?g.x-n.x:n.y-g.y)-e));mxEvent.consume(a);q!=f()&&(t=!0,d=null)}}function l(a){k(a);n=q=null}var n=null,q=null,t=!0,d=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){n=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=f();t=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!t){var b=null!=d?d-e:0;d=f();c(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,k,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,l)})};EditorUi.prototype.showDialog=function(a,b,e,c,k,l,n){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,c,k,l,n);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,c=e.cellEditor.saveSelection(),k=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(c);b(a)},function(){e.cellEditor.restoreSelection(c)});this.showDialog(k.container,230,430,!0,!1);k.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2158,14 +2158,14 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(a,b,e){var c=this.editor.graph;if(c.isEnabled()){c.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(c),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){c.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(c.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,b,e,c){c=this.editor.graph.cellEditor;var k=c.saveSelection(),m=mxUtils.prompt(a,b);c.restoreSelection(k);if(null!=m&&0<m.length){var l=new Image;l.onload=function(){e(m,l.width,l.height)};l.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};l.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.showImageDialog=function(a,b,e,c){c=this.editor.graph.cellEditor;var k=c.saveSelection(),l=mxUtils.prompt(a,b);c.restoreSelection(k);if(null!=l&&0<l.length){var n=new Image;n.onload=function(){e(l,n.width,n.height)};n.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};n.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var b=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=b&&0<b.length){var e=new Image;e.onload=function(){a(new mxImage(b,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=b}else a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};
EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,d,b){l.push(function(){if(!c.isSelectionEmpty()&&c.isEnabled())if(d=null!=d?d:1,b){c.getModel().beginUpdate();try{for(var f=c.getSelectionCells(),g=0;g<f.length;g++)if(c.getModel().isVertex(f[g])&&c.isCellResizable(f[g])){var e=c.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-d):38==a?e.height=Math.max(0,e.height-d):39==a?e.width+=d:40==a&&(e.height+=d),c.getModel().setGeometry(f[g],e))}}finally{c.getModel().endUpdate()}}else f=
+EditorUi.prototype.createKeyHandler=function(a){function b(a,d,b){n.push(function(){if(!c.isSelectionEmpty()&&c.isEnabled())if(d=null!=d?d:1,b){c.getModel().beginUpdate();try{for(var f=c.getSelectionCells(),g=0;g<f.length;g++)if(c.getModel().isVertex(f[g])&&c.isCellResizable(f[g])){var e=c.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-d):38==a?e.height=Math.max(0,e.height-d):39==a?e.width+=d:40==a&&(e.height+=d),c.getModel().setGeometry(f[g],e))}}finally{c.getModel().endUpdate()}}else f=
c.getSelectionCell(),g=c.model.getParent(f),e=null,1==c.getSelectionCount()&&c.model.isVertex(f)&&null!=c.layoutManager&&!c.isCellLocked(f)&&(e=c.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?c.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||c.model.add(g,f,Math.min(c.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-d:38==a?g=-d:39==a?f=d:40==a&&(g=d),c.moveCells(c.getMovableCells(c.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
-l.length){c.getModel().beginUpdate();try{for(var a=0;a<l.length;a++)l[a]();l=[]}finally{c.getModel().endUpdate()}c.scrollCellToVisible(c.getSelectionCell())}},200)}var e=this,c=this.editor.graph,k=new mxKeyHandler(c),m=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&m.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var l=[],q=null,t={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},d=k.getFunction,f={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
+n.length){c.getModel().beginUpdate();try{for(var a=0;a<n.length;a++)n[a]();n=[]}finally{c.getModel().endUpdate()}c.scrollCellToVisible(c.getSelectionCell())}},200)}var e=this,c=this.editor.graph,k=new mxKeyHandler(c),l=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
+!mxClient.IS_SF)&&l.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var n=[],q=null,t={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},d=k.getFunction,f={67:this.actions.get("clearWaypoints"),65:this.actions.get("connectionArrows"),76:this.actions.get("editLink"),
80:this.actions.get("connectionPoints"),84:this.actions.get("editTooltip")};mxKeyHandler.prototype.getFunction=function(a){if(c.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=f[a.keyCode];if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){c.selectParentCell()}:function(){c.selectChildCell()};if(null!=t[a.keyCode]&&!c.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(c.model.isVertex(c.getSelectionCell()))return function(){var d=
c.connectVertex(c.getSelectionCell(),t[a.keyCode],c.defaultEdgeLength,a,!0);null!=d&&0<d.length&&(1==d.length&&c.model.isEdge(d[0])?c.setSelectionCell(c.model.getTerminal(d[0],!1)):c.setSelectionCell(d[d.length-1]),c.scrollCellToVisible(c.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(c.view.getState(c.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?c.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?c.gridSize:null)}}return d.apply(this,
arguments)};k.bindAction=mxUtils.bind(this,function(a,d,b,c){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},d?c?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):c?k.bindShiftKey(a,b):k.bindKey(a,b))});var g=k.escape;k.escape=function(a){g.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){c.exitGroup()});k.bindControlShiftKey(35,function(){c.enterGroup()});k.bindKey(36,function(){c.home()});k.bindKey(35,function(){c.refresh()});k.bindAction(107,
@@ -2179,32 +2179,32 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
(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.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
Graph=function(a,b,e,c,k){mxGraph.call(this,a,b,e,c);this.themes=k||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);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){var d=this.view.getState(a);a=null!=d?d.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,l=null,q=null,t=null,d=!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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var f=c.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(c.getGraphX(),c.getGraphY()),d=this.isCellSelected(f.cell),q=f,l=c,null!=
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,n=null,q=null,t=null,d=!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");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var f=c.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(c.getGraphX(),c.getGraphY()),d=this.isCellSelected(f.cell),q=f,n=c,null!=
f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,c.getGraphX(),c.getGraphY())?t=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(t=f.getHandleForEvent(c))))}}}));this.addMouseListener({mouseDown:function(a,d){},mouseMove:mxUtils.bind(this,function(a,b){var c=this.selectionCellsHandler.handlers.map,f;for(f in c)if(null!=c[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&&
-!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=l){if(c=q,Math.abs(m.x-b.getGraphX())>f||Math.abs(m.y-b.getGraphY())>f){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var g=this.selectionCellsHandler.getHandler(c.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(l),h=this.view.getEdgeStyle(c);f=h==mxEdgeStyle.EntityRelation;d||t!=mxEvent.LABEL_HANDLE||(e=t);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
-null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=c.visibleSourceState||e==g.bends.length-1||null!=c.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=c.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=t,null==e&&(e=new mxRectangle(m.x,m.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)?
-e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(c,m.x,m.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),t=m=l=q=null,d=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){g=null;f=c.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
+!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=l&&null!=q&&null!=n){if(c=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var g=this.selectionCellsHandler.getHandler(c.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(n),h=this.view.getEdgeStyle(c);f=h==mxEdgeStyle.EntityRelation;d||t!=mxEvent.LABEL_HANDLE||(e=t);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
+null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=c.visibleSourceState||e==g.bends.length-1||null!=c.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=c.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=t,null==e&&(e=new mxRectangle(l.x,l.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)?
+e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(c,l.x,l.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),t=l=n=q=null,d=!1,b.consume(),this.graphHandler.reset()}}}else if(c=b.getState(),null!=c&&this.model.isEdge(c.cell)){g=null;f=c.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))g="move";else if(mxUtils.contains(e,f[0].x,f[0].y)||mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y))g="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)h=this.view.getEdgeStyle(c),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(h=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),
-h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&c.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,d){t=m=l=q=null})})}this.cellRenderer.getLabelValue=function(a){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(d=1!=a.style.html?mxUtils.htmlEntities(d,!1):a.view.graph.sanitizeHtml(d));return d};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
+h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&c.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,d){t=l=n=q=null})})}this.cellRenderer.getLabelValue=function(a){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(d=1!=a.style.html?mxUtils.htmlEntities(d,!1):a.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(a,d){return!1};this.alternateEdgeStyle="vertical";null==c&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],b=this.graph.pageFormat,c=this.graph.pageScale,g=b.width*c,b=b.height*c,c=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),p=0;p<h.width;p++)d.push(new mxRectangle(((h.x+p)*g+c.x)*e,(h.y*b+c.y)*e,g*e,b*e));for(p=0;p<h.height;p++)d.push(new mxRectangle((h.x*g+c.x)*e,((h.y+p)*b+c.y)*e,g*e,b*e));a=d.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(a,d){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)};this.graphHandler.getCells=function(a){for(var d=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],c=0;c<d.length;c++){var f=this.graph.view.getState(d[c]),f=null!=f?f.style:this.graph.getCellStyle(d[c]);
"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(d[c]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(d,f)&&b.push(f)):b.push(d[c])}return b};this.connectionHandler.createTargetVertex=function(a,d){var b=this.graph.view.getState(d),b=null!=b?b.style:this.graph.getCellStyle(d);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(d),this.graph.model.isVertex(b)&&(d=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
-this.getRubberband=function(){return g};var p=(new Date).getTime(),n=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),n=0):n=(new Date).getTime()-p};var w=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<n||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
-"outlineConnect","1"))&&w.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(a){return u.apply(this,arguments)||mxEvent.isShiftDown(a)};var x=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return x.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var r=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
-(r=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=r)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=this.click;this.click=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!d||a.isConsumed())return z.apply(this,
-arguments);d=d?a.sourceState.cell:a.getCell();if(null!=d){var b=this.getLinkForCell(d);null!=b&&(this.isPageLink(b)?this.pageLinkClicked(d,b):this.openLink(b))}};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(d?a.sourceState.cell:a.getCell())};var v=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
-this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return v.apply(this,arguments)};this.selectRegion=function(a,d){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,d);return b};this.getAllCells=function(a,d,b,c,f,g){g=null!=g?g:[];if(0<b||0<c){var e=this.getModel(),h=a+b,p=d+c;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),J=0;J<n;J++){var r=e.getChildAt(f,J),
-u=this.view.getState(r);if(null!=u&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(u.style,"locked","0")){var x=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION)||0;0!=x&&(u=mxUtils.getBoundingBox(u,x));(e.isEdge(r)||e.isVertex(r))&&u.x>=a&&u.y+u.height<=p&&u.y>=d&&u.x+u.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var A=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:A.apply(this,
-arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var F=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")){var b=d.getProperty("event").getState();F=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,
-mxUtils.bind(this,function(a,d){if(!mxEvent.isMultiTouchEvent(d)){var b=d.getProperty("event"),c=d.getProperty("cell");null==c?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=F?this.addSelectionCells(F):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);F=null;d.consume()}}));this.connectionHandler.selectCells=function(a,d){this.graph.setSelectionCell(d||a)};this.connectionHandler.constraintHandler.isStateIgnored=
+this.getRubberband=function(){return g};var p=(new Date).getTime(),m=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),m=0):m=(new Date).getTime()-p};var w=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<m||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&w.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(a){return u.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var r=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
+(r=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=r)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var A=this.click;this.click=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!d||a.isConsumed())return A.apply(this,
+arguments);d=d?a.sourceState.cell:a.getCell();if(null!=d){var b=this.getLinkForCell(d);null!=b&&(this.isPageLink(b)?this.pageLinkClicked(d,b):this.openLink(b))}};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var d=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(d?a.sourceState.cell:a.getCell())};var C=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||
+this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return C.apply(this,arguments)};this.selectRegion=function(a,d){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,d);return b};this.getAllCells=function(a,d,b,c,f,g){g=null!=g?g:[];if(0<b||0<c){var e=this.getModel(),h=a+b,p=d+c;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),G=0;G<m;G++){var r=e.getChildAt(f,G),
+u=this.view.getState(r);if(null!=u&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(u.style,"locked","0")){var v=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION)||0;0!=v&&(u=mxUtils.getBoundingBox(u,v));(e.isEdge(r)||e.isVertex(r))&&u.x>=a&&u.y+u.height<=p&&u.y>=d&&u.x+u.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var y=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:y.apply(this,
+arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var z=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")){var b=d.getProperty("event").getState();z=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,
+mxUtils.bind(this,function(a,d){if(!mxEvent.isMultiTouchEvent(d)){var b=d.getProperty("event"),c=d.getProperty("cell");null==c?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=z?this.addSelectionCells(z):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);z=null;d.consume()}}));this.connectionHandler.selectCells=function(a,d){this.graph.setSelectionCell(d||a)};this.connectionHandler.constraintHandler.isStateIgnored=
function(a,d){return d&&a.view.graph.isCellSelected(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 B=this.updateMouseEvent;this.updateMouseEvent=function(a){a=B.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=
null);return a}}};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.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
Graph.createSvgImage=function(a,b,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};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.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);
Graph.prototype.transparentBackground=!0;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=(window!=window.top?document.referrer:document.location.toString()).split("#")[0];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,m=null,l=mxUtils.bind(this,function(a){k=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<b&&Math.abs(m.y-mxEvent.getClientY(a))<b}),t=mxUtils.bind(this,function(d){if(k)for(var b=mxEvent.getSource(d);null!=
-b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,d);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,l,q,t);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,l=null,n=mxUtils.bind(this,function(a){k=!0;l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=l&&Math.abs(l.x-mxEvent.getClientX(a))<b&&Math.abs(l.y-mxEvent.getClientY(a))<b}),t=mxUtils.bind(this,function(d){if(k)for(var b=mxEvent.getSource(d);null!=
+b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,d);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,n,q,t);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isPageLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
Graph.prototype.openLink=function(a,b){var e=window;if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var c=a.split("#")[1];window.location.hash=="#"+c&&(window.location.hash="");window.location.hash=c}else e=window.open(a,b);return e};Graph.prototype.isPageLink=function(a){return!1};
Graph.prototype.pageLinkClicked=function(a,b){this.fireEvent(new mxEventObject("pageLinkClicked","cell",a,"href",b))};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2213,37 +2213,37 @@ Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutMana
"resizeLast","0"),b.spacing=a.stackSpacing||b.spacing,b.border=a.stackBorder||b.border,b.marginLeft=a.marginLeft||0,b.marginRight=a.marginRight||0,b.marginTop=a.marginTop||0,b.marginBottom=a.marginBottom||0,b.fill=!0,b):"treeLayout"==a.childLayout?(b=new mxCompactTreeLayout(this.graph),b.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.groupPadding=mxUtils.getValue(a,"parentPadding",20),b.levelDistance=mxUtils.getValue(a,"treeLevelDistance",
30),b.maintainParentLocation=!0,b.edgeRouting=!1,b.resetEdges=!1,b):"flowLayout"==a.childLayout?(b=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.parentBorder=mxUtils.getValue(a,"parentPadding",20),b.maintainParentLocation=!0,b.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),b.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing",
mxHierarchicalLayout.prototype.interRankCellSpacing),b.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),b.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),b):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
-Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),c=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),m=Math.floor(c/a.height);return new mxRectangle(k,m,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((c+Math.floor(b.height/this.view.scale))/a.height)-m)};
+Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),c=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(c/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((c+Math.floor(b.height/this.view.scale))/a.height)-l)};
Graph.prototype.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.prototype.updatePlaceholders=function(){var a=!1,b;for(b in this.model.cells){var e=this.model.cells[b];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")};
Graph.prototype.isZoomWheelEvent=function(a){return mxEvent.isAltDown(a)||mxEvent.isControlDown(a)&&!mxClient.IS_MAC||null!=this.panningHandler&&this.panningHandler.isActive()};Graph.prototype.isTransparentClickEvent=function(a){return mxEvent.isAltDown(a)};Graph.prototype.isIgnoreTerminalEvent=function(a){return mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)};
Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var b=mxGraph.prototype.getLabel.apply(this,arguments);null!=b&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(b=this.replacePlaceholders(a,b));return b};
Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var c=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,l=function(a,d){a=String(a);for(d=d||2;a.length<d;)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(c.masks[b]||b||c.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",t=a[q+"Date"](),d=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),p=a[q+"Hours"](),n=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),w=e?0:a.getTimezoneOffset(),u={d:t,dd:l(t),ddd:c.i18n.dayNames[d],dddd:c.i18n.dayNames[d+7],m:f+1,mm:l(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+
-12],yy:String(g).slice(2),yyyy:g,h:p%12||12,hh:l(p%12||12),H:p,HH:l(p),M:n,MM:l(n),s:h,ss:l(h),l:l(q,3),L:l(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(m,""),o:(0<w?"-":"+")+l(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:["th","st","nd","rd"][3<t%10?0:(10!=t%100-t%10)*t%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in u?u[a]:a.slice(1,
+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 c=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,n=function(a,d){a=String(a);for(d=d||2;a.length<d;)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(c.masks[b]||b||c.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",t=a[q+"Date"](),d=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),p=a[q+"Hours"](),m=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),w=e?0:a.getTimezoneOffset(),u={d:t,dd:n(t),ddd:c.i18n.dayNames[d],dddd:c.i18n.dayNames[d+7],m:f+1,mm:n(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+
+12],yy:String(g).slice(2),yyyy:g,h:p%12||12,hh:n(p%12||12),H:p,HH:n(p),M:m,MM:n(m),s:h,ss:n(h),l:n(q,3),L:n(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0<w?"-":"+")+n(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:["th","st","nd","rd"][3<t%10?0:(10!=t%100-t%10)*t%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in u?u[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),c=0;c<e;c++)(function(c){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var k=document.createElement("input");k.style.display="inline-block";k.setAttribute("type","checkbox");b.isVisible(c)&&(k.setAttribute("checked","checked"),k.defaultChecked=
!0);e.appendChild(k);var q=c.value||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(k,"click",function(){null!=k.getAttribute("checked")?k.removeAttribute("checked"):k.setAttribute("checked","checked");b.setVisible(c,k.checked)})})(b.getChildAt(b.root,c));return a};
-Graph.prototype.replacePlaceholders=function(a,b){for(var e=[],c=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var m=null;if(match.index>c&&"%"==b.charAt(match.index-1))m=k.substring(1);else{var l=k.substring(1,k.length-1);if(0>l.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(l)?null!=q.getAttribute(l)?q.getAttribute(l):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(l))}e.push(b.substring(c,
-match.index)+(null!=m?m:k));c=match.index+k.length}}e.push(b.substring(c));return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,b,e,c,k,m){m=m?m:!1;var 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(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(l.x+=a.geometry.width/2,l.y-=e):b==mxConstants.DIRECTION_SOUTH?(l.x+=a.geometry.width/2,l.y+=a.geometry.height+e):(l.x=b==mxConstants.DIRECTION_WEST?l.x-e:l.x+(a.geometry.width+e),l.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
-var q=this.view.scale,t=this.view.translate,d=t.x*q,t=t.y*q;this.model.isVertex(e.cell)&&(d=e.x,t=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(l.x+=a.parent.geometry.x,l.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(c)&&!k?null:this.getCellAt(d+l.x*q,t+l.y*q);this.model.isAncestor(m,a)&&(m=null);for(e=m;null!=e;){if(this.isCellLocked(e)){m=null;break}e=this.model.getParent(e)}null!=m&&(e=this.view.getState(a),q=this.view.getState(m),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(m=
-null));if(k=!mxEvent.isShiftDown(c)||k)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;null==m||this.isCellConnectable(m)||(e=this.getModel().getParent(m),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(m=e));if(m==a||this.model.isEdge(m)||!this.isCellConnectable(m))m=null;e=[];this.model.beginUpdate();try{q=m;if(null==q&&k){for(var d=a,f=this.getCellGeometry(a);null!=
-f&&f.relative;)d=this.getModel().getParent(d),f=this.getCellGeometry(d);var g=this.view.getState(d),p=null!=g?g.style:this.getCellStyle(d);if(mxUtils.getValue(p,"part",!1)){var n=this.model.getParent(d);this.model.isVertex(n)&&(d=n)}q=this.duplicateCells([d],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=l.x-f.width/2,f.y=l.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(c)&&k||null==m&&null!=f&&f.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var w=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=h.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==h.parent&&(w=c.parent.getIndex(c),this.model.add(c.parent,h,w))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(w=a.parent.getIndex(a),this.model.add(a.parent,
-q,w));null!=h&&e.push(h);null==m&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(l,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e};
+Graph.prototype.replacePlaceholders=function(a,b){for(var e=[],c=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>c&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var n=k.substring(1,k.length-1);if(0>n.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(n)?null!=q.getAttribute(n)?q.getAttribute(n):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(n))}e.push(b.substring(c,
+match.index)+(null!=l?l:k));c=match.index+k.length}}e.push(b.substring(c));return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
+Graph.prototype.connectVertex=function(a,b,e,c,k,l){l=l?l:!1;var n=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(n.x+=a.geometry.width/2,n.y-=e):b==mxConstants.DIRECTION_SOUTH?(n.x+=a.geometry.width/2,n.y+=a.geometry.height+e):(n.x=b==mxConstants.DIRECTION_WEST?n.x-e:n.x+(a.geometry.width+e),n.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
+var q=this.view.scale,t=this.view.translate,d=t.x*q,t=t.y*q;this.model.isVertex(e.cell)&&(d=e.x,t=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(n.x+=a.parent.geometry.x,n.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(c)&&!k?null:this.getCellAt(d+n.x*q,t+n.y*q);this.model.isAncestor(l,a)&&(l=null);for(e=l;null!=e;){if(this.isCellLocked(e)){l=null;break}e=this.model.getParent(e)}null!=l&&(e=this.view.getState(a),q=this.view.getState(l),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(l=
+null));if(k=!mxEvent.isShiftDown(c)||k)b==mxConstants.DIRECTION_NORTH?n.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?n.y+=a.geometry.height/2:n.x=b==mxConstants.DIRECTION_WEST?n.x-a.geometry.width/2:n.x+a.geometry.width/2;null==l||this.isCellConnectable(l)||(e=this.getModel().getParent(l),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(l=e));if(l==a||this.model.isEdge(l)||!this.isCellConnectable(l))l=null;e=[];this.model.beginUpdate();try{q=l;if(null==q&&k){for(var d=a,f=this.getCellGeometry(a);null!=
+f&&f.relative;)d=this.getModel().getParent(d),f=this.getCellGeometry(d);var g=this.view.getState(d),p=null!=g?g.style:this.getCellStyle(d);if(mxUtils.getValue(p,"part",!1)){var m=this.model.getParent(d);this.model.isVertex(m)&&(d=m)}q=this.duplicateCells([d],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=n.x-f.width/2,f.y=n.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(c)&&k||null==l&&null!=f&&f.constructor==mxStackLayout?
+null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var w=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=h.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==h.parent&&(w=c.parent.getIndex(c),this.model.add(c.parent,h,w))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(w=a.parent.getIndex(a),this.model.add(a.parent,
+q,w));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(n,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,c;for(c in this.model.cells)if(e=this.model.cells[c],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),e=a,c=null;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);return c||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var c=this.layoutManager.getLayout(this.model.getParent(a));null!=c&&c.constructor==mxStackLayout&&(c.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,b,e,c,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var l=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=l&&null!=q){var t=Math.round(q.width-l.width/this.view.scale),d=Math.round(q.height-l.height/this.view.scale);if(0!=d||0!=t){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f);
-null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(l,f,t,d):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,t,d)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,b,e,c){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var m=this.view.getState(k[b]),l=this.getCellGeometry(k[b]);null!=m&&null!=l&&(l=l.clone(),l.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(c*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(k[b],l))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,b,e,c){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var m=this.getCellGeometry(a),l=this.view.getState(a);null!=l&&null!=m&&(m=m.clone(),b.horizontal?m.width+=e+Math.min(0,l.width/this.view.scale-m.width):m.height+=c+Math.min(0,l.height/this.view.scale-m.height),this.model.setGeometry(a,
-m));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
+Graph.prototype.foldCells=function(a,b,e,c,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var n=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=n&&null!=q){var t=Math.round(q.width-n.width/this.view.scale),d=Math.round(q.height-n.height/this.view.scale);if(0!=d||0!=t){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f);
+null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(n,f,t,d):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,t,d)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,c){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var l=this.view.getState(k[b]),n=this.getCellGeometry(k[b]);null!=l&&null!=n&&(n=n.clone(),n.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(c*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],n))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,c){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),n=this.view.getState(a);null!=n&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,n.width/this.view.scale-l.width):l.height+=c+Math.min(0,n.height/this.view.scale-l.height),this.model.setGeometry(a,
+l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,b,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
@@ -2259,7 +2259,7 @@ HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;b
HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE,
this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE,
mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
-!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,c){b=!1;var e=c.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(c.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
+!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,c){b=!1;var e=c.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(c.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
this.update(this.getState(c.getState()),c.getGraphX(),c.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,c){var e=c.getEvent();this.isResetEvent(e)?this.reset():this.isActive()&&null!=this.mouseDownPoint&&Math.abs(c.getGraphX()-this.mouseDownPoint.x)<this.graph.tolerance&&Math.abs(c.getGraphY()-this.mouseDownPoint.y)<this.graph.tolerance?b||this.click(this.currentState,this.getDirection(),c):this.isActive()?1==
this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(c.getGraphX(),c.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,c.getGraphX(),c.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();b=!1;this.resetActiveArrow()})})};
HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)};
@@ -2269,14 +2269,14 @@ this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redire
this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)};HoverIcons.prototype.getDirection=function(){var a=mxConstants.DIRECTION_EAST;this.activeArrow==this.arrowUp?a=mxConstants.DIRECTION_NORTH:this.activeArrow==this.arrowDown?a=mxConstants.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(a=mxConstants.DIRECTION_WEST);return a};
HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,a=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=a&&a.setHandlesVisible(!1))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))};
-HoverIcons.prototype.click=function(a,b,e){var c=e.getEvent(),k=e.getGraphX(),m=e.getGraphY(),k=this.getStateAt(a,k,m);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(c)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,c),this.graph.selectCellsForConnectVertex(a,c,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(c)?this.update(this.getState(this.graph.view.getState(a[1]))):
+HoverIcons.prototype.click=function(a,b,e){var c=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(c)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,c),this.graph.selectCellsForConnectVertex(a,c,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(c)?this.update(this.getState(this.graph.view.getState(a[1]))):
this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(k.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&a.add(b.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+
"px";this.arrowUp.style.top=Math.round(a.y-this.triangleUp.height-this.tolerance)+"px";mxUtils.setOpacity(this.arrowUp,this.inactiveOpacity);this.arrowRight.style.left=Math.round(a.x+a.width-this.tolerance)+"px";this.arrowRight.style.top=Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance)+"px";mxUtils.setOpacity(this.arrowRight,this.inactiveOpacity);this.arrowDown.style.left=this.arrowUp.style.left;this.arrowDown.style.top=Math.round(a.y+a.height-this.tolerance)+
"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),c=this.graph.getCellAt(this.currentState.getCenterX(),
-a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==c&&c==a&&(a=c=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,b){var c=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==c||null==k||c.height<6*k.height&&c.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
-m(b,this.arrowRight);m(e,this.arrowLeft);m(c,this.arrowUp);m(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",
+a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==c&&c==a&&(a=c=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var c=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==c||null==k||c.height<6*k.height&&c.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
+l(b,this.arrowRight);l(e,this.arrowLeft);l(c,this.arrowUp);l(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",
mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a};
HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a};
@@ -2285,23 +2285,23 @@ this.setDisplay("");null!=this.currentState&&this.currentState!=a&&c<this.activa
this.reset())}else 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};
(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,d){var c=this.getState(a);null!=c&&this.graph.model.isEdge(c.cell)&&null!=c.style&&1!=c.style[mxConstants.STYLE_CURVED]&&!c.invalid&&this.updateLineJumps(c)&&this.graph.cellRenderer.redraw(c,!1,this.isRendering());c=b.apply(this,arguments);null!=
c&&this.graph.model.isEdge(c.cell)&&1!=c.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(c);return c};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,d){return e.apply(this,arguments)||null!=a.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,a.routedPoints)};var c=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){c.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&
-this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var d=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(d,b,f){var g=new mxPoint(b,f);g.type=d;c.push(g);g=null!=a.routedPoints?a.routedPoints[c.length-1]:null;return null==g||g.type!=d||g.x!=b||g.y!=f},n=.5*this.scale,b=!1,c=[],h=0;h<d.length-1;h++){for(var k=d[h+1],u=d[h],x=[],r=d[h+2];h<
-d.length-2&&mxUtils.ptSegDistSq(u.x,u.y,r.x,r.y,k.x,k.y)<1*this.scale*this.scale;)k=r,h++,r=d[h+2];for(var b=e(0,u.x,u.y)||b,q=0;q<this.validEdges.length;q++){var v=this.validEdges[q],m=v.absolutePoints;if(null!=m&&mxUtils.intersects(a,v)&&"1"!=v.style.noJump)for(v=0;v<m.length-1;v++){for(var l=m[v+1],t=m[v],r=m[v+2];v<m.length-2&&mxUtils.ptSegDistSq(t.x,t.y,r.x,r.y,l.x,l.y)<1*this.scale*this.scale;)l=r,v++,r=m[v+2];r=mxUtils.intersection(u.x,u.y,k.x,k.y,t.x,t.y,l.x,l.y);if(null!=r&&(Math.abs(r.x-
-t.x)>n||Math.abs(r.y-t.y)>n)&&(Math.abs(r.x-l.x)>n||Math.abs(r.y-l.y)>n)){l=r.x-u.x;t=r.y-u.y;r={distSq:l*l+t*t,x:r.x,y:r.y};for(l=0;l<x.length;l++)if(x[l].distSq>r.distSq){x.splice(l,0,r);r=null;break}null==r||0!=x.length&&x[x.length-1].x===r.x&&x[x.length-1].y===r.y||x.push(r)}}}for(v=0;v<x.length;v++)b=e(1,x[v].x,x[v].y)||b}r=d[d.length-1];b=e(0,r.x,r.y)||b}a.routedPoints=c;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,d,b){this.routedPoints=
-null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,q=!0,u=null,x=null;h=[];var r=null;a.begin();for(var m=0;m<this.state.routedPoints.length;m++){var v=
-this.state.routedPoints[m],l=new mxPoint(v.x/this.scale,v.y/this.scale);0==m?l=d[0]:m==this.state.routedPoints.length-1&&(l=d[d.length-1]);var t=!1;if(null!=u&&1==v.type){var B=this.state.routedPoints[m+1],v=B.x/this.scale-l.x,B=B.y/this.scale-l.y,v=v*v+B*B;null==r&&(r=new mxPoint(l.x-u.x,l.y-u.y),x=Math.sqrt(r.x*r.x+r.y*r.y),r.x=r.x*f/x,r.y=r.y*f/x);v>f*f&&0<x&&(v=u.x-l.x,B=u.y-l.y,v=v*v+B*B,v>f*f&&(t=new mxPoint(l.x-r.x,l.y-r.y),v=new mxPoint(l.x+r.x,l.y+r.y),h.push(t),this.addPoints(a,h,b,c,!1,
-null,q),h=0>Math.round(r.x)||0==Math.round(r.x)&&0>=Math.round(r.y)?1:-1,q=!1,"sharp"==e?(a.lineTo(t.x-r.y*h,t.y+r.x*h),a.lineTo(v.x-r.y*h,v.y+r.x*h),a.lineTo(v.x,v.y)):"arc"==e?(h*=1.3,a.curveTo(t.x-r.y*h,t.y+r.x*h,v.x-r.y*h,v.y+r.x*h,v.x,v.y)):(a.moveTo(v.x,v.y),q=!0),h=[v],t=!0))}else r=null;t||(h.push(l),u=l)}this.addPoints(a,h,b,c,!1,null,q);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null==
-a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),x=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,x,k);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
-0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),x=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,x,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(d,a[f]);if(null!=g){var p=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==c||p<c)b=g,c=p}}null!=b&&(e=b)}return e};var l=mxStencil.prototype.evaluateTextAttribute;
-mxStencil.prototype.evaluateTextAttribute=function(a,d,b){var c=l.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(c=b.state.view.graph.replacePlaceholders(b.state.cell,c));return c};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var d=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"stencil("==d.substring(0,8))try{var b=d.substring(8,d.length-1),c=mxUtils.parseXml(a.view.graph.decompress(b));
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var d=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(d,b,f){var g=new mxPoint(b,f);g.type=d;c.push(g);g=null!=a.routedPoints?a.routedPoints[c.length-1]:null;return null==g||g.type!=d||g.x!=b||g.y!=f},m=.5*this.scale,b=!1,c=[],h=0;h<d.length-1;h++){for(var k=d[h+1],u=d[h],v=[],r=d[h+2];h<
+d.length-2&&mxUtils.ptSegDistSq(u.x,u.y,r.x,r.y,k.x,k.y)<1*this.scale*this.scale;)k=r,h++,r=d[h+2];for(var b=e(0,u.x,u.y)||b,q=0;q<this.validEdges.length;q++){var l=this.validEdges[q],n=l.absolutePoints;if(null!=n&&mxUtils.intersects(a,l)&&"1"!=l.style.noJump)for(l=0;l<n.length-1;l++){for(var t=n[l+1],B=n[l],r=n[l+2];l<n.length-2&&mxUtils.ptSegDistSq(B.x,B.y,r.x,r.y,t.x,t.y)<1*this.scale*this.scale;)t=r,l++,r=n[l+2];r=mxUtils.intersection(u.x,u.y,k.x,k.y,B.x,B.y,t.x,t.y);if(null!=r&&(Math.abs(r.x-
+B.x)>m||Math.abs(r.y-B.y)>m)&&(Math.abs(r.x-t.x)>m||Math.abs(r.y-t.y)>m)){t=r.x-u.x;B=r.y-u.y;r={distSq:t*t+B*B,x:r.x,y:r.y};for(t=0;t<v.length;t++)if(v[t].distSq>r.distSq){v.splice(t,0,r);r=null;break}null==r||0!=v.length&&v[v.length-1].x===r.x&&v[v.length-1].y===r.y||v.push(r)}}}for(l=0;l<v.length;l++)b=e(1,v[l].x,v[l].y)||b}r=d[d.length-1];b=e(0,r.x,r.y)||b}a.routedPoints=c;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,d,b){this.routedPoints=
+null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,q=!0,u=null,v=null;h=[];var r=null;a.begin();for(var l=0;l<this.state.routedPoints.length;l++){var n=
+this.state.routedPoints[l],y=new mxPoint(n.x/this.scale,n.y/this.scale);0==l?y=d[0]:l==this.state.routedPoints.length-1&&(y=d[d.length-1]);var t=!1;if(null!=u&&1==n.type){var B=this.state.routedPoints[l+1],n=B.x/this.scale-y.x,B=B.y/this.scale-y.y,n=n*n+B*B;null==r&&(r=new mxPoint(y.x-u.x,y.y-u.y),v=Math.sqrt(r.x*r.x+r.y*r.y),r.x=r.x*f/v,r.y=r.y*f/v);n>f*f&&0<v&&(n=u.x-y.x,B=u.y-y.y,n=n*n+B*B,n>f*f&&(t=new mxPoint(y.x-r.x,y.y-r.y),n=new mxPoint(y.x+r.x,y.y+r.y),h.push(t),this.addPoints(a,h,b,c,!1,
+null,q),h=0>Math.round(r.x)||0==Math.round(r.x)&&0>=Math.round(r.y)?1:-1,q=!1,"sharp"==e?(a.lineTo(t.x-r.y*h,t.y+r.x*h),a.lineTo(n.x-r.y*h,n.y+r.x*h),a.lineTo(n.x,n.y)):"arc"==e?(h*=1.3,a.curveTo(t.x-r.y*h,t.y+r.x*h,n.x-r.y*h,n.y+r.x*h,n.x,n.y)):(a.moveTo(n.x,n.y),q=!0),h=[n],t=!0))}else r=null;t||(h.push(y),u=y)}this.addPoints(a,h,b,c,!1,null,q);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null==
+a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),v=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,v,k);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
+0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),v=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,v,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(d,a[f]);if(null!=g){var p=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==c||p<c)b=g,c=p}}null!=b&&(e=b)}return e};var n=mxStencil.prototype.evaluateTextAttribute;
+mxStencil.prototype.evaluateTextAttribute=function(a,d,b){var c=n.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(c=b.state.view.graph.replacePlaceholders(b.state.cell,c));return c};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var d=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"stencil("==d.substring(0,8))try{var b=d.substring(8,d.length-1),c=mxUtils.parseXml(a.view.graph.decompress(b));
return new mxShape(new mxStencil(c.documentElement))}catch(p){null!=window.console&&console.log("Error in shape: "+p)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
-mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var c=0;c<b.length;c++){var k=b[c];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var m=
-mxUtils.load(k);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(l){null!=window.console&&console.log("error in getStencil:",k,l)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
+mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var c=0;c<b.length;c++){var k=b[c];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var l=
+mxUtils.load(k);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(n){null!=window.console&&console.log("error in getStencil:",k,n)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b};
-mxStencilRegistry.loadStencilSet=function(a,b,e,c){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var m=!1;if(null==k)try{if(c){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(c){null!=c&&null!=c.documentElement&&(mxStencilRegistry.packages[a]=c,m=!0,mxStencilRegistry.parseStencilSet(c.documentElement,b,m))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;m=!0}catch(l){null!=window.console&&console.log("error in loadStencilSet:",a,l)}null!=k&&null!=
-k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,m)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var c=a.firstChild;null!=c;)"shapes"==c.nodeName&&mxStencilRegistry.parseStencilSet(c,b,e),c=c.nextSibling;else{e=null!=e?e:!0;var c=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=c.getAttribute("name"),null!=a)){var k=k.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+m.toLowerCase(),new mxStencil(c));if(null!=b){var l=c.getAttribute("w"),
-q=c.getAttribute("h"),l=null==l?80:parseInt(l,10),q=null==q?80:parseInt(q,10);b(k,m,a,l,q)}}c=c.nextSibling}}};
+mxStencilRegistry.loadStencilSet=function(a,b,e,c){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(c){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(c){null!=c&&null!=c.documentElement&&(mxStencilRegistry.packages[a]=c,l=!0,mxStencilRegistry.parseStencilSet(c.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(n){null!=window.console&&console.log("error in loadStencilSet:",a,n)}null!=k&&null!=
+k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
+mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var c=a.firstChild;null!=c;)"shapes"==c.nodeName&&mxStencilRegistry.parseStencilSet(c,b,e),c=c.nextSibling;else{e=null!=e?e:!0;var c=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=c.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(c));if(null!=b){var n=c.getAttribute("w"),
+q=c.getAttribute("h"),n=null==n?80:parseInt(n,10),q=null==q?80:parseInt(q,10);b(k,l,a,n,q)}}c=c.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#99ccff";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR=
"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=8;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var b=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
b.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));
@@ -2309,14 +2309,14 @@ for(var d in this.graph.currentEdgeStyle)a.style[d]=this.graph.currentEdgeStyle[
a.getCell=mxUtils.bind(this,function(a){var b=d.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&&(a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+
this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");"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.importGraphModel=function(a,d,b,c){d=null!=d?
-d:0;b=null!=b?b:0;var f=[],g=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,g);a=g.getChildCount(g.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var e={},h=0;h<a;h++){var p=g.getChildAt(g.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))p=this.importCells([p],0,0,this.model.getRoot(),null,e)[0],n=this.model.getChildren(p),this.moveCells(n,d,b),f=f.concat(n);else var n=g.getChildren(p),f=f.concat(this.importCells(n,d,b,this.getDefaultParent(),
-null,e))}if(c){this.isGridEnabled()&&(d=this.snap(d),b=this.snap(b));var r=this.getBoundingBoxFromGeometry(f,!0);null!=r&&this.moveCells(f,d-r.x,b-r.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,d){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var c=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var g=f[b];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0))}}catch(Q){}return c}if(null!=
+d:0;b=null!=b?b:0;var f=[],g=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,g);a=g.getChildCount(g.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var e={},h=0;h<a;h++){var p=g.getChildAt(g.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))p=this.importCells([p],0,0,this.model.getRoot(),null,e)[0],m=this.model.getChildren(p),this.moveCells(m,d,b),f=f.concat(m);else var m=g.getChildren(p),f=f.concat(this.importCells(m,d,b,this.getDefaultParent(),
+null,e))}if(c){this.isGridEnabled()&&(d=this.snap(d),b=this.snap(b));var u=this.getBoundingBoxFromGeometry(f,!0);null!=u&&this.moveCells(f,d-u.x,b-u.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,d){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var c=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var g=f[b];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0))}}catch(D){}return c}if(null!=
a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);null!=d&&(d=mxUtils.getValue(d,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,this.setCellStyles(mxConstants.STYLE_ELBOW,d,[a]))}};
Graph.prototype.isValidRoot=function(a){for(var d=this.model.getChildCount(a),b=0,c=0;c<d;c++){var f=this.model.getChildAt(a,c);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(d,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,arguments)&&"0"!=mxUtils.getValue(d,"dropTarget",
"1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(a){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(a){var d=this.getModel(),b=[];d.beginUpdate();try{for(var c=0;c<a.length;c++){var f=a[c];if(d.isEdge(f)){var g=d.getTerminal(f,!0),e=d.getTerminal(f,!1);d.setTerminal(f,e,!0);d.setTerminal(f,g,!1);var h=d.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var p=h.getTerminalPoint(!0),n=h.getTerminalPoint(!1);
-h.setTerminalPoint(p,!1);h.setTerminalPoint(n,!0);d.setGeometry(f,h);var r=this.view.getState(f),u=this.view.getState(g),J=this.view.getState(e);if(null!=r){var x=null!=u?this.getConnectionConstraint(r,u,!0):null,k=null!=J?this.getConnectionConstraint(r,J,!1):null;this.setConnectionConstraint(f,g,!0,k);this.setConnectionConstraint(f,e,!1,x)}b.push(f)}}else if(d.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var q=h.width;h.width=h.height;
-h.height=q;d.setGeometry(f,h);var y=this.view.getState(f);if(null!=y){var w=y.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}b.push(f)}}}finally{d.endUpdate()}return b};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var d=this.model.getDescendants(a.cell);
+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(a){var d=this.getModel(),b=[];d.beginUpdate();try{for(var c=0;c<a.length;c++){var f=a[c];if(d.isEdge(f)){var g=d.getTerminal(f,!0),e=d.getTerminal(f,!1);d.setTerminal(f,e,!0);d.setTerminal(f,g,!1);var h=d.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var p=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);
+h.setTerminalPoint(p,!1);h.setTerminalPoint(m,!0);d.setGeometry(f,h);var u=this.view.getState(f),r=this.view.getState(g),G=this.view.getState(e);if(null!=u){var v=null!=r?this.getConnectionConstraint(u,r,!0):null,k=null!=G?this.getConnectionConstraint(u,G,!1):null;this.setConnectionConstraint(f,g,!0,k);this.setConnectionConstraint(f,e,!1,v)}b.push(f)}}else if(d.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var q=h.width;h.width=h.height;
+h.height=q;d.setGeometry(f,h);var w=this.view.getState(f);if(null!=w){var x=w.style[mxConstants.STYLE_DIRECTION]||"east";"east"==x?x="south":"south"==x?x="west":"west"==x?x="north":"north"==x&&(x="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,x,[f])}b.push(f)}}}finally{d.endUpdate()}return b};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var d=this.model.getDescendants(a.cell);
if(0<d.length)for(var b=0;b<d.length;b++)this.isReplacePlaceholders(d[b])&&this.view.invalidate(d[b],!1,!1)}};Graph.prototype.replaceElement=function(a,d){for(var b=a.ownerDocument.createElement(null!=d?d:"span"),c=Array.prototype.slice.call(a.attributes);attr=c.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,d,b){a=null!=a?a:this.getSelectionCells();for(var c=document.createElement("div"),f=
0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var g=this.convertValueToString(a[f]);if(null!=g&&0<g.length){c.innerHTML=g;for(var e=c.getElementsByTagName(null!=b?b:"*"),h=0;h<e.length;h++)d(e[h]);c.innerHTML!=g&&this.cellLabelChanged(a[f],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,d,b){d=this.zapGremlins(d);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var c=a.getAttribute("placeholder"),
f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(c)){this.setAttributeForCell(f,c,d);break}f=this.model.getParent(f)}var g=a.value.cloneNode(!0);g.setAttribute("label",d);d=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(var c=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||
@@ -2335,236 +2335,237 @@ d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(b>g||c>g)&&this.clear()}}e
e.container.scrollLeft)<g&&Math.abs(this.scrollTop-e.container.scrollTop)<g&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=this.currentLink?(f=e.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==d||d(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?e.linkTarget:"_top",e.openLink(this.currentLink,
h),c.consume())):null!=b&&!c.isConsumed()&&Math.abs(this.scrollLeft-e.container.scrollLeft)<g&&Math.abs(this.scrollTop-e.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-c.getGraphY())<g&&b(c.getEvent()));this.clear()},activate:function(a){this.currentLink=e.getAbsoluteUrl(e.getLinkForCell(a.cell));null!=this.currentLink&&(e.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=e.container&&(e.container.style.cursor=
f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};e.click=function(a){};e.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,d){a=null!=a?a:this.getSelectionCells();d=null!=d?d:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),c=this.gridSize,f=[];b.beginUpdate();try{for(var g=this.cloneCells(a,!1),e=0;e<a.length;e++){var h=b.getParent(a[e]),p=this.moveCells([g[e]],c,c,!1)[0];
-f.push(p);if(d)b.add(h,g[e]);else{var n=h.getIndex(a[e]);b.add(h,g[e],n+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,d,b){if(null!=a){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),f=[],g=0;g<c.length;g++)f.push(c[g]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(g=a.length-1;0<=g;g--)if(0==g||a[g]!=f[g-1]){a[g].setAttribute("width",d);a[g].setAttribute("height",b);break}}};
+f.push(p);if(d)b.add(h,g[e]);else{var m=h.getIndex(a[e]);b.add(h,g[e],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,d,b){if(null!=a){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),f=[],g=0;g<c.length;g++)f.push(c[g]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(g=a.length-1;0<=g;g--)if(0==g||a[g]!=f[g-1]){a[g].setAttribute("width",d);a[g].setAttribute("height",b);break}}};
Graph.prototype.insertLink=function(a){0==a.length?document.execCommand("unlink",!1):document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return d||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,d){null==d&&(d=this.getSelectionCells());
-if(null!=d&&1<d.length){for(var b=[],c=null,f=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var e=this.view.getState(d[g]);if(null!=e){var h=a?e.getCenterX():e.getCenterY(),c=null!=c?Math.max(c,h):h,f=null!=f?Math.min(f,h):h;b.push(e)}}if(2<b.length){b.sort(function(d,b){return a?d.x-b.x:d.y-b.y});e=this.view.translate;h=this.view.scale;f=f/h-(a?e.x:e.y);c=c/h-(a?e.x:e.y);this.getModel().beginUpdate();try{for(var p=(c-f)/(b.length-1),c=f,g=1;g<b.length-1;g++){var n=this.view.getState(this.model.getParent(b[g].cell)),
-r=this.getCellGeometry(b[g].cell),c=c+p;null!=r&&null!=n&&(r=r.clone(),a?r.x=Math.round(c-r.width/2)-n.origin.x:r.y=Math.round(c-r.height/2)-n.origin.y,this.getModel().setGeometry(b[g].cell,r))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var d=this.cloneCells(a),b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(c=0;c<d.length;c++){var f=
+if(null!=d&&1<d.length){for(var b=[],c=null,f=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var e=this.view.getState(d[g]);if(null!=e){var h=a?e.getCenterX():e.getCenterY(),c=null!=c?Math.max(c,h):h,f=null!=f?Math.min(f,h):h;b.push(e)}}if(2<b.length){b.sort(function(d,b){return a?d.x-b.x:d.y-b.y});e=this.view.translate;h=this.view.scale;f=f/h-(a?e.x:e.y);c=c/h-(a?e.x:e.y);this.getModel().beginUpdate();try{for(var p=(c-f)/(b.length-1),c=f,g=1;g<b.length-1;g++){var m=this.view.getState(this.model.getParent(b[g].cell)),
+u=this.getCellGeometry(b[g].cell),c=c+p;null!=u&&null!=m&&(u=u.clone(),a?u.x=Math.round(c-u.width/2)-m.origin.x:u.y=Math.round(c-u.height/2)-m.origin.y,this.getModel().setGeometry(b[g].cell,u))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var d=this.cloneCells(a),b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(c=0;c<d.length;c++){var f=
this.view.getState(a[c]);if(null!=f){var g=this.getCellGeometry(d[c]);null==g||!g.relative||this.model.isEdge(a[c])||b.get(this.model.getParent(a[c]))||(g.relative=!1,g.x=f.x/f.view.scale-f.view.translate.x,g.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;g=f.getChildAt(f.getRoot(),0);for(c=0;c<a.length;c++)f.add(g,d[c]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,d){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,d,b,c,f,g,e){d=null!=d?d:1;b=null!=b?b:0;f=null!=f?f:!0;g=null!=g?g:!0;e=null!=e?e:!0;var h=g||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==h)throw Error(mxResources.get("drawingEmpty"));var p=this.view.scale,n=mxUtils.createXmlDocument();c=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"svg"):n.createElement("svg");null!=a&&(null!=c.style?c.style.backgroundColor=a:c.setAttribute("style","background-color:"+
-a));null==n.createElementNS?(c.setAttribute("xmlns",mxConstants.NS_SVG),c.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=d/p;c.setAttribute("width",Math.max(1,Math.ceil(h.width*a)+2*b)+"px");c.setAttribute("height",Math.max(1,Math.ceil(h.height*a)+2*b)+"px");c.setAttribute("version","1.1");var r=c;f&&(r=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"g"):n.createElement("g"),r.setAttribute("transform",
-"translate(0.5,0.5)"),c.appendChild(r));n.appendChild(c);n=this.createSvgCanvas(r);n.foOffset=f?-.5:0;n.textOffset=f?-.5:0;n.imageOffset=f?-.5:0;n.translate(Math.floor((b/d-h.x)/p),Math.floor((b/d-h.y)/p));var u=document.createElement("textarea"),x=n.createAlternateContent;n.createAlternateContent=function(a,d,b,c,f,g,e,h,n,p,r,k,q){var w=this.state;if(null!=this.foAltText&&(0==c||0!=w.fontSize&&g.length<5*c/w.fontSize)){var y=this.createElement("text");y.setAttribute("x",Math.round(c/2));y.setAttribute("y",
-Math.round((f+w.fontSize)/2));y.setAttribute("fill",w.fontColor||"black");y.setAttribute("text-anchor","middle");y.setAttribute("font-size",Math.round(w.fontSize)+"px");y.setAttribute("font-family",w.fontFamily);(w.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&y.setAttribute("font-weight","bold");(w.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&y.setAttribute("font-style","italic");(w.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&y.setAttribute("text-decoration",
-"underline");try{return u.innerHTML=g,y.textContent=u.value,y}catch(ga){return x.apply(this,arguments)}}else return x.apply(this,arguments)};b=this.backgroundImage;null!=b&&(f=p/d,d=this.view.translate,f=new mxRectangle(d.x*f,d.y*f,b.width*f,b.height*f),mxUtils.intersects(h,f)&&n.image(d.x,d.y,b.width,b.height,b.src,!0));n.scale(a);n.textEnabled=e;e=this.createSvgImageExport();var k=e.drawCellState;e.drawCellState=function(a,d){(g||a.view.graph.isCellSelected(a.cell))&&k.apply(this,arguments)};e.drawState(this.getView().getState(this.model.root),
-n);return c};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(a=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,d,b){for(;null!=a&&a.nodeName!=d;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=
-function(a){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var b=document.createRange();b.selectNode(a);d.removeAllRanges();d.addRange(b)}}else(d=document.selection)&&"Control"!=d.type&&(a=d.createRange(),a.collapse(!0),b=d.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,d){for(var b=a.tBodies[0],c=0<b.rows.length?b.rows[0].cells.length:1,b=b.insertRow(d),f=0;f<c;f++)mxUtils.br(b.insertCell(-1));return b.cells[0]};
-Graph.prototype.deleteRow=function(a,d){a.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(a,d){var b=a.tHead;if(null!=b)for(var c=0;c<b.rows.length;c++){var f=document.createElement("th");b.rows[c].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(c=0;c<b.rows.length;c++)f=b.rows[c].insertCell(d),mxUtils.br(f);return b.rows[0].cells[0<=d?d:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,d){if(0<=d)for(var b=a.tBodies[0].rows,c=0;c<b.length;c++)b[c].cells.length>d&&
-b[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(a){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var c;c=b.firstChild;)lastNode=a.appendChild(c);d.insertNode(a)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,d){d=null!=d?d:a;var b=document.createElement("a");
-b.setAttribute("href",this.getAbsoluteUrl(a));b.setAttribute("title",a);null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);40<d.length&&(d=d.substring(0,26)+"..."+d.substring(d.length-10));mxUtils.write(b,d);return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,d){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=
-function(d){d=a.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var b=this.getCellAt(d.graphX,d.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,d.graphX,d.graphY)||(d.state=this.view.getState(b),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,b=!1,c=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,
-g,e){a==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),d=this.isCellSelected(g.getCell()),b=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||d&&
-this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var d=[],b=0,c=a.rangeCount;b<c;++b)d.push(a.getRangeAt(b));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,b=a.length;d<b;++d)sel.addRange(a[d])}else document.selection&&a.select&&a.select()}catch(S){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));k.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(a,d){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?m.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var l=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,d){l.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=
-b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),c=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=c&&c.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":
-"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function d(a,b){b.originalNode=a;a=a.firstChild;for(var c=b.firstChild;null!=a&&null!=c;)d(a,c),a=a.nextSibling,c=c.nextSibling;return b}function b(a,d){if(null!=a)if(d.originalNode!=a)c(a);else for(a=a.firstChild,d=d.firstChild;null!=a;){var f=a.nextSibling;null==d?c(a):(b(a,d),d=d.nextSibling);a=f}}function c(a){for(var d=
-a.firstChild;null!=d;){var b=d.nextSibling;c(d);d=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);
-mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,c)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),d=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
-0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=
-g?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");
-var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+
-"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()};var t=mxCellEditor.prototype.resize;
-mxCellEditor.prototype.resize=function(a,d){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var c=null!=a.text?a.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,
-mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*
-b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow=
-"",t.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,d){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,d);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=
-function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(a.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var d=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();d.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=
-function(){try{this.graph.container.focus()}catch(J){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,d){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==d&&b==mxConstants.NONE&&c==mxConstants.NONE&&this.graph.removeCells([a.cell],
-!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var d=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(a){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*d+20,30)};var g=mxGraphHandler.prototype.moveCells;
-mxGraphHandler.prototype.moveCells=function(a,d,b,c,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,c=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/c-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/c-b.y);this.hint.innerHTML=d+", "+b;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-
-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,d){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!mxEvent.isControlDown(d.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==
-mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,d){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(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=
-new mxPoint(0,0),d=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,a.x=this.sizers[0].bounds.width+d,a.y=this.sizers[0].bounds.height+d):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(d){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+
-"&deg;":(d=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/d)+" x "+this.roundLength(this.bounds.height/d)),d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==d&&(d=this.bounds),this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=d.y+d.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(d,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var c=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(b.x/f-c.x),c=this.roundLength(b.y/f-c.y);this.hint.innerHTML=g+", "+c;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(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;
-HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
+return a};Graph.prototype.getSvg=function(a,d,b,c,f,g,e,h){d=null!=d?d:1;b=null!=b?b:0;f=null!=f?f:!0;g=null!=g?g:!0;e=null!=e?e:!0;c=g||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var p=this.view.scale,m=mxUtils.createXmlDocument(),u=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=u.style?u.style.backgroundColor=a:u.setAttribute("style","background-color:"+
+a));null==m.createElementNS?(u.setAttribute("xmlns",mxConstants.NS_SVG),u.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):u.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=d/p;u.setAttribute("width",Math.max(1,Math.ceil(c.width*a)+2*b)+"px");u.setAttribute("height",Math.max(1,Math.ceil(c.height*a)+2*b)+"px");u.setAttribute("version","1.1");var r=u;f&&(r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),r.setAttribute("transform",
+"translate(0.5,0.5)"),u.appendChild(r));m.appendChild(u);m=this.createSvgCanvas(r);m.foOffset=f?-.5:0;m.textOffset=f?-.5:0;m.imageOffset=f?-.5:0;m.translate(Math.floor((b/d-c.x)/p),Math.floor((b/d-c.y)/p));var v=document.createElement("textarea"),k=m.createAlternateContent;m.createAlternateContent=function(a,d,b,c,f,g,e,h,m,p,u,r,q){var x=this.state;if(null!=this.foAltText&&(0==c||0!=x.fontSize&&g.length<5*c/x.fontSize)){var w=this.createElement("text");w.setAttribute("x",Math.round(c/2));w.setAttribute("y",
+Math.round((f+x.fontSize)/2));w.setAttribute("fill",x.fontColor||"black");w.setAttribute("text-anchor","middle");w.setAttribute("font-size",Math.round(x.fontSize)+"px");w.setAttribute("font-family",x.fontFamily);(x.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&w.setAttribute("font-weight","bold");(x.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&w.setAttribute("font-style","italic");(x.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&w.setAttribute("text-decoration",
+"underline");try{return v.innerHTML=g,w.textContent=v.value,w}catch(Ba){return k.apply(this,arguments)}}else return k.apply(this,arguments)};b=this.backgroundImage;null!=b&&(f=p/d,d=this.view.translate,f=new mxRectangle(d.x*f,d.y*f,b.width*f,b.height*f),mxUtils.intersects(c,f)&&m.image(d.x,d.y,b.width,b.height,b.src,!0));m.scale(a);m.textEnabled=e;h=null!=h?h:this.createSvgImageExport();var q=h.drawCellState;h.drawCellState=function(a,d){(g||a.view.graph.isCellSelected(a.cell))&&q.apply(this,arguments)};
+h.drawState(this.getView().getState(this.model.root),m);return u};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(a=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,d,b){for(;null!=a&&a.nodeName!=d;){if(a==b)return null;
+a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var b=document.createRange();b.selectNode(a);d.removeAllRanges();d.addRange(b)}}else(d=document.selection)&&"Control"!=d.type&&(a=d.createRange(),a.collapse(!0),b=d.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.insertRow=function(a,d){for(var b=a.tBodies[0],c=0<b.rows.length?b.rows[0].cells.length:1,b=b.insertRow(d),
+f=0;f<c;f++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,d){a.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(a,d){var b=a.tHead;if(null!=b)for(var c=0;c<b.rows.length;c++){var f=document.createElement("th");b.rows[c].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(c=0;c<b.rows.length;c++)f=b.rows[c].insertCell(d),mxUtils.br(f);return b.rows[0].cells[0<=d?d:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,d){if(0<=d)for(var b=
+a.tBodies[0].rows,c=0;c<b.length;c++)b[c].cells.length>d&&b[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(a){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var c;c=b.firstChild;)lastNode=a.appendChild(c);d.insertNode(a)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=
+function(a,d){d=null!=d?d:a;var b=document.createElement("a");b.setAttribute("href",this.getAbsoluteUrl(a));b.setAttribute("title",a);null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);40<d.length&&(d=d.substring(0,26)+"..."+d.substring(d.length-10));mxUtils.write(b,d);return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,d){this.popupMenuHandler.hideMenu()});
+var a=this.updateMouseEvent;this.updateMouseEvent=function(d){d=a.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var b=this.getCellAt(d.graphX,d.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,d.graphX,d.graphY)||(d.state=this.view.getState(b),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,b=!1,c=!1,f=
+this.fireMouseEvent;this.fireMouseEvent=function(a,g,e){a==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),d=this.isCellSelected(g.getCell()),b=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!mxEvent.isMouseEvent(f.getEvent())&&
+(b&&null==f.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var d=[],b=0,c=a.rangeCount;b<c;++b)d.push(a.getRangeAt(b));return d}}else if(document.selection&&
+document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,b=a.length;d<b;++d)sel.addRange(a[d])}else document.selection&&a.select&&a.select()}catch(J){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"));k.apply(this,arguments)};var l=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,d){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?l.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var n=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,d){n.apply(this,
+arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),c=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=c&&c.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||
+mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function d(a,b){b.originalNode=a;a=a.firstChild;for(var c=b.firstChild;null!=a&&null!=c;)d(a,c),a=a.nextSibling,c=c.nextSibling;return b}function b(a,d){if(null!=a)if(d.originalNode!=a)c(a);else for(a=a.firstChild,d=d.firstChild;null!=a;){var f=
+a.nextSibling;null==d?c(a):(b(a,d),d=d.nextSibling);a=f}}function c(a){for(var d=a.firstChild;null!=d;){var b=d.nextSibling;c(d);d=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,c)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),d=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br",
+"1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,
+mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
+this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=g?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=
+!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
+Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
+this.switchSelectionState=b;this.resize()};var t=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,d){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var c=null!=a.text?a.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
+mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-
+this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style,
+"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",t.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,d){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,d);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};
+mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(a.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var d=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
+this.toggleViewMode();d.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(G){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,d){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==d&&b==mxConstants.NONE&&c==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var d=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=
+function(a){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*d+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,d,b,c,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,c=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/
+c-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/c-b.y);this.hint.innerHTML=d+", "+b;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,d){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+!mxEvent.isControlDown(d.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,d){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(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};
+var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),d=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,a.x=this.sizers[0].bounds.width+d,a.y=this.sizers[0].bounds.height+d):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(d){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"&deg;":(d=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/d)+" x "+this.roundLength(this.bounds.height/d)),d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==d&&(d=this.bounds),this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=d.y+d.height+12+"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="")};mxEdgeHandler.prototype.updateHint=function(d,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var c=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(b.x/f-c.x),c=this.roundLength(b.y/f-c.y);this.hint.innerHTML=g+", "+c;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(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&&
+(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",
+17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="#007dfc" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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":
IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#007dfc"/>'));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=
HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,
Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,
(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxVertexHandler.prototype.rotationHandleVSpacing=
-20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};
if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return null==
-a.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==a.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var n=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,d){n.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return mxEvent.isLeftMouseButton(d)&&
+a.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==a.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var m=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,d){m.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var d=a.getEvent();return mxEvent.isLeftMouseButton(d)&&
(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,d){var b=null!=this.div&&"none"!=this.div.style.display,c=null,f=null,g=null,e=null;null!=this.first&&
null!=this.currentX&&null!=this.currentY&&(c=this.first.x,f=this.first.y,g=(this.currentX-c)/this.graph.view.scale,e=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),e=this.graph.snap(e),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(e)<this.graph.tolerance&&(e=0))));this.reset();if(b){if(mxEvent.isAltDown(d.getEvent())&&this.graph.isToggleEvent(d.getEvent())){var g=new mxRectangle(this.x,this.y,this.width,this.height),h=
-this.graph.getCells(g.x,g.y,g.width,g.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(c,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var n=this.graph.view.getState(h[b]),p=this.graph.getCellGeometry(h[b]);null!=n&&null!=p&&(p=p.clone(),p.translate(g,e),this.graph.model.setGeometry(h[b],p))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,
+this.graph.getCells(g.x,g.y,g.width,g.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(c,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var m=this.graph.view.getState(h[b]),p=this.graph.getCellGeometry(h[b]);null!=m&&null!=p&&(p=p.clone(),p.translate(g,e),this.graph.model.setGeometry(h[b],p))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,
this.width,this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}};mxRubberband.prototype.mouseMove=function(a,d){if(!d.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);b.x-=c.x;b.y-=c.y;var c=d.getX()+b.x,b=d.getY()+b.y,f=this.first.x-c,g=this.first.y-b,e=this.graph.tolerance;if(null!=this.div||Math.abs(f)>e||Math.abs(g)>e)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,b),
this.isSpaceEvent(d)?(c=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,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=c-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=
this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=
Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var h=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);h.apply(this,
-arguments)};var w=(new Date).getTime(),u=0,x=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,d,b,c){x.apply(this,arguments);b!=this.currentTerminalState?(w=(new Date).getTime(),u=0):u=(new Date).getTime()-w;this.currentTerminalState=b};var r=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<u||(null==this.currentTerminalState||
+arguments)};var w=(new Date).getTime(),u=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,d,b,c){v.apply(this,arguments);b!=this.currentTerminalState?(w=(new Date).getTime(),u=0):u=(new Date).getTime()-w;this.currentTerminalState=b};var r=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<u||(null==this.currentTerminalState||
"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&r.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,d){var b=null!=a&&0==a,c=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,c,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),
-f):null)?this.fixedHandleImage:null!=f&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,d,b){this.handleImage=d==mxEvent.ROTATION_HANDLE?
-HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var v=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var d=this.graph.getModel(),b=d.getParent(a[0]),c=this.graph.getCellGeometry(a[0]);if(d.isEdge(b)&&null!=c&&c.relative&&(d=this.graph.view.getState(a[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return v.apply(this,
-arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var d=this.graph.getModel(),b=d.getParent(a.cell),c=this.graph.getCellGeometry(a.cell);return d.isEdge(b)&&null!=c&&c.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(d=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):A.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;
-mxVertexHandler.prototype.mouseDown=function(a,d){var b=this.graph.getModel(),c=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!b.isEdge(c)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
-this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var B=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,d){B.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var G=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
-function(a,d){G.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var d=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
+f):null)?this.fixedHandleImage:null!=f&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var A=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,d,b){this.handleImage=d==mxEvent.ROTATION_HANDLE?
+HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return A.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var d=this.graph.getModel(),b=d.getParent(a[0]),c=this.graph.getCellGeometry(a[0]);if(d.isEdge(b)&&null!=c&&c.relative&&(d=this.graph.view.getState(a[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return C.apply(this,
+arguments)};var y=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var d=this.graph.getModel(),b=d.getParent(a.cell),c=this.graph.getCellGeometry(a.cell);return d.isEdge(b)&&null!=c&&c.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(d=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):y.apply(this,arguments)};var z=mxVertexHandler.prototype.mouseDown;
+mxVertexHandler.prototype.mouseDown=function(a,d){var b=this.graph.getModel(),c=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!b.isEdge(c)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&z.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||
+this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var B=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,d){B.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var F=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
+function(a,d){F.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var H=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){H.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var d=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,b){d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,d){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);this.updateLinkHint(b,c);if(null!=b||null!=c&&0<c.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,b){if(null==d&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=
this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=d||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));this.linkHint.innerHTML="";if(null!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var c=
document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/edit.gif");c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));c=document.createElement("img");c.setAttribute("src",Dialog.prototype.clearImage);
c.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));c.setAttribute("width","13");c.setAttribute("height","10");c.style.marginLeft="4px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(c=0;c<b.length;c++){var f=document.createElement("div");f.style.marginTop=null!=d||0<c?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[c].getAttribute("href"),
-mxUtils.getTextContent(b[c])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var H=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){H.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=
+mxUtils.getTextContent(b[c])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var L=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){L.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=
this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(d,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(d,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,
-this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=d||null!=b&&0<b.length)this.updateLinkHint(d,b),this.redrawHandles()};var y=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){y.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this);
+this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=d||null!=b&&0<b.length)this.updateLinkHint(d,b),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this);
if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=d&&(b=Math.max(b,
-d.y+d.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var E=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var I=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
-function(){I.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(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+6+this.state.view.graph.tolerance)+"px"}};var R=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=
-function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var P=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){P.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),
-this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function m(){mxActor.call(this)}function l(){mxCylinder.call(this)}function q(){mxActor.call(this)}function t(){mxActor.call(this)}function d(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function p(){mxActor.call(this)}function n(){mxActor.call(this)}function h(a,d){this.canvas=
+d.y+d.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var E=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var Q=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
+function(){Q.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var X=mxEdgeHandler.prototype.redrawHandles;
+mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(X.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+6+this.state.view.graph.tolerance)+"px"}};var R=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=
+function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var Z=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){Z.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),
+this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function n(){mxCylinder.call(this)}function q(){mxActor.call(this)}function t(){mxActor.call(this)}function d(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function p(){mxActor.call(this)}function m(){mxActor.call(this)}function h(a,d){this.canvas=
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,h.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,h.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,h.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,h.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function w(){mxRectangleShape.call(this)}function u(){mxRectangleShape.call(this)}function x(){mxActor.call(this)}function r(){mxActor.call(this)}function z(){mxActor.call(this)}function v(){mxRectangleShape.call(this)}function A(){mxRectangleShape.call(this)}function F(){mxCylinder.call(this)}function B(){mxShape.call(this)}function G(){mxShape.call(this)}
-function C(){mxEllipse.call(this)}function H(){mxShape.call(this)}function y(){mxShape.call(this)}function L(){mxRectangleShape.call(this)}function E(){mxShape.call(this)}function I(){mxShape.call(this)}function Y(){mxShape.call(this)}function R(){mxCylinder.call(this)}function P(){mxDoubleEllipse.call(this)}function J(){mxDoubleEllipse.call(this)}function K(){mxArrowConnector.call(this);this.spacing=0}function M(){mxArrowConnector.call(this);this.spacing=0}function S(){mxActor.call(this)}function D(){mxRectangleShape.call(this)}
-function W(){mxActor.call(this)}function Q(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function T(){mxActor.call(this)}function O(){mxActor.call(this)}function ca(){mxActor.call(this)}function V(){mxActor.call(this)}function Z(){mxActor.call(this)}function aa(){mxActor.call(this)}function ja(){mxEllipse.call(this)}function da(){mxEllipse.call(this)}function ma(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function ka(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}
-function qa(){mxEllipse.call(this)}function na(){mxEllipse.call(this)}function ta(){mxActor.call(this)}function oa(){mxActor.call(this)}function pa(){mxActor.call(this)}function la(){mxConnector.call(this)}function Aa(a,d,b,c,f,g,e,h,p,n){e+=p;var ha=c.clone();c.x-=f*(2*e+p);c.y-=g*(2*e+p);f*=e+p;g*=e+p;return function(){a.ellipse(ha.x-f-e,ha.y-g-e,2*e,2*e);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,
+this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function w(){mxRectangleShape.call(this)}function u(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function r(){mxActor.call(this)}function A(){mxActor.call(this)}function C(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxCylinder.call(this)}function B(){mxShape.call(this)}function F(){mxShape.call(this)}
+function H(){mxEllipse.call(this)}function L(){mxShape.call(this)}function x(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function E(){mxShape.call(this)}function Q(){mxShape.call(this)}function X(){mxShape.call(this)}function R(){mxCylinder.call(this)}function Z(){mxDoubleEllipse.call(this)}function G(){mxDoubleEllipse.call(this)}function K(){mxArrowConnector.call(this);this.spacing=0}function S(){mxArrowConnector.call(this);this.spacing=0}function J(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}
+function U(){mxActor.call(this)}function D(){mxActor.call(this)}function W(){mxActor.call(this)}function O(){mxActor.call(this)}function T(){mxActor.call(this)}function V(){mxActor.call(this)}function Y(){mxActor.call(this)}function M(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function aa(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function ha(){mxRhombus.call(this)}function ra(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
+function ma(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function pa(){mxActor.call(this)}function ia(){mxActor.call(this)}function qa(){mxActor.call(this)}function na(){mxConnector.call(this)}function Aa(a,d,b,c,f,g,e,h,p,m){e+=p;var ja=c.clone();c.x-=f*(2*e+p);c.y-=g*(2*e+p);f*=e+p;g*=e+p;return function(){a.ellipse(ja.x-f-e,ja.y-g-e,2*e,2*e);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,
Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(d,f),a.lineTo(d,d),a.lineTo(0,0),a.moveTo(d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(d,f),a.lineTo(0,f-d),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",
-a);var xa=Math.tan(mxUtils.toRadians(30)),ga=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/xa);a.translate((c-d)/2,(f-d)/2+d/4);a.moveTo(0,.25*d);a.lineTo(.5*d,d*ga);a.lineTo(d,.25*d);a.lineTo(.5*d,(.5-ga)*d);a.lineTo(0,.25*d);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=20;e.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(c,f/(.5+xa));g?(a.moveTo(0,.25*d),a.lineTo(.5*
-d,(.5-ga)*d),a.lineTo(d,.25*d),a.moveTo(.5*d,(.5-ga)*d),a.lineTo(.5*d,(1-ga)*d)):(a.translate((c-d)/2,(f-d)/2),a.moveTo(0,.25*d),a.lineTo(.5*d,d*ga),a.lineTo(d,.25*d),a.lineTo(d,.75*d),a.lineTo(.5*d,(1-ga)*d),a.lineTo(0,.75*d),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(c,mxCylinder);c.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||
+a);var xa=Math.tan(mxUtils.toRadians(30)),oa=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/xa);a.translate((c-d)/2,(f-d)/2+d/4);a.moveTo(0,.25*d);a.lineTo(.5*d,d*oa);a.lineTo(d,.25*d);a.lineTo(.5*d,(.5-oa)*d);a.lineTo(0,.25*d);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=20;e.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(c,f/(.5+xa));g?(a.moveTo(0,.25*d),a.lineTo(.5*
+d,(.5-oa)*d),a.lineTo(d,.25*d),a.moveTo(.5*d,(.5-oa)*d),a.lineTo(.5*d,(1-oa)*d)):(a.translate((c-d)/2,(f-d)/2),a.moveTo(0,.25*d),a.lineTo(.5*d,d*oa),a.lineTo(d,.25*d),a.lineTo(d,.75*d),a.lineTo(.5*d,(1-oa)*d),a.lineTo(0,.75*d),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(c,mxCylinder);c.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||
(a.stroke(),a.begin()),a.translate(0,d/2),a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||(a.stroke(),a.begin()),a.translate(0,d/2),a.moveTo(0,d),a.curveTo(0,2*d,c,2*d,c,d),g||(a.stroke(),a.begin()),a.translate(0,-d);g||(a.moveTo(0,d),a.curveTo(0,-d/3,c,-d/3,c,d),a.lineTo(c,f-d),a.curveTo(c,f+d/3,0,f+d/3,0,f-d),a.close())};c.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",
-c);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(c-d,0),a.lineTo(c-d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c/2,.5*f,c,0);a.quadTo(.5*
-c,f/2,c,f);a.quadTo(c/2,.5*f,0,f);a.quadTo(.5*c,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(l,mxCylinder);l.prototype.tabWidth=60;l.prototype.tabHeight=20;l.prototype.tabPosition="right";l.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var e=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
-g?"left"==e?(a.moveTo(0,b),a.lineTo(d,b)):(a.moveTo(c-d,b),a.lineTo(c,b)):("left"==e?(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,b),a.lineTo(c,b)):(a.moveTo(0,b),a.lineTo(c-d,b),a.lineTo(c-d,0),a.lineTo(c,0)),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",l);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,
+c);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));g?(a.moveTo(c-d,0),a.lineTo(c-d,d),a.lineTo(c,d)):(a.moveTo(0,0),a.lineTo(c-d,0),a.lineTo(c,d),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c/2,.5*f,c,0);a.quadTo(.5*
+c,f/2,c,f);a.quadTo(c/2,.5*f,0,f);a.quadTo(.5*c,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=20;n.prototype.tabPosition="right";n.prototype.redrawPath=function(a,d,b,c,f,g){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var e=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);
+g?"left"==e?(a.moveTo(0,b),a.lineTo(d,b)):(a.moveTo(c-d,b),a.lineTo(c,b)):("left"==e?(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,b),a.lineTo(c,b)):(a.moveTo(0,b),a.lineTo(c-d,b),a.lineTo(c-d,0),a.lineTo(c,0)),a.lineTo(c,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",n);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(t,mxActor);t.prototype.size=.4;t.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,d/2);a.quadTo(c/4,1.4*d,c/2,d/2);a.quadTo(3*c/4,d*(1-1.4),c,d/2);a.lineTo(c,f-d/2);a.quadTo(3*
c/4,f-1.4*d,c/2,f-d/2);a.quadTo(c/4,f-d*(1-1.4),0,f-d/2);a.lineTo(0,d/2);a.close();a.end()};t.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),b=a.width,c=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(a.x,a.y+d,b,c-2*d);d*=b;return new mxRectangle(a.x+d,a.y,b-2*d,c)}return a};mxCellRenderer.registerShape("tape",
t);mxUtils.extend(d,mxActor);d.prototype.size=.3;d.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};d.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(c,0);a.lineTo(c,f-d/2);a.quadTo(3*c/4,f-1.4*d,c/2,f-d/2);a.quadTo(c/4,f-d*(1-1.4),0,f-d/2);a.lineTo(0,d/2);a.close();
a.end()};mxCellRenderer.registerShape("document",d);mxCylinder.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,Math.min(this.maxHeight*this.scale,.3*a.height),0,0):null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
[new mxPoint(0,f),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,f)],this.isRounded,
b,!0)};mxCellRenderer.registerShape("trapezoid",g);mxUtils.extend(p,mxActor);p.prototype.size=.5;p.prototype.redrawPath=function(a,d,b,c,f){a.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f/2),new mxPoint(0,f/2),new mxPoint(d,f/2),new mxPoint(d,f),new mxPoint(c,f)],this.isRounded,b,!1);a.end()};
-mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(n,mxActor);n.prototype.redrawPath=function(a,d,b,c,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);d=c/5;a.rect(0,0,d,f);a.fillAndStroke();a.rect(2*d,0,d,f);a.fillAndStroke();a.rect(4*d,0,d,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",n);h.prototype.moveTo=function(a,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;this.firstX=a;this.firstY=d};h.prototype.close=function(){null!=this.firstX&&
+mxCellRenderer.registerShape("curlyBracket",p);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,d,b,c,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);d=c/5;a.rect(0,0,d,f);a.fillAndStroke();a.rect(2*d,0,d,f);a.fillAndStroke();a.rect(4*d,0,d,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",m);h.prototype.moveTo=function(a,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;this.firstX=a;this.firstY=d};h.prototype.close=function(){null!=this.firstX&&
null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};h.prototype.quadTo=function(a,d,b,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=c};h.prototype.curveTo=function(a,d,b,c,f,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};h.prototype.arcTo=function(a,d,b,c,f,g,e){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=
-e};h.prototype.lineTo=function(a,d){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),g=Math.sqrt(c*c+f*f);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var e=Math.round(g/10),ha=this.defaultVariation;5>e&&(e=5,ha/=3);for(var h=b(a-this.lastX)*c/e,b=b(d-this.lastY)*f/e,c=c/g,f=f/g,g=0;g<e;g++){var p=(Math.random()-.5)*ha;this.originalLineTo.call(this.canvas,
-h*g+this.lastX-p*f,b*g+this.lastY-p*c)}this.originalLineTo.call(this.canvas,a,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d};h.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};var Ea=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
-function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ea.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Fa=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Fa.apply(this,arguments)};
+e};h.prototype.lineTo=function(a,d){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),g=Math.sqrt(c*c+f*f);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var e=Math.round(g/10),ja=this.defaultVariation;5>e&&(e=5,ja/=3);for(var h=b(a-this.lastX)*c/e,b=b(d-this.lastY)*f/e,c=c/g,f=f/g,g=0;g<e;g++){var p=(Math.random()-.5)*ja;this.originalLineTo.call(this.canvas,
+h*g+this.lastX-p*f,b*g+this.lastY-p*c)}this.originalLineTo.call(this.canvas,a,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d};h.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};var Ba=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=
+function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ba.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Fa=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Fa.apply(this,arguments)};
var Ga=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,d,b,c,f){if(null==a.handJiggle)Ga.apply(this,arguments);else{var g=!0;null!=this.style&&(g="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(g||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)g||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
0)?g=Math.min(c/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.min(c*g,f*g)),a.moveTo(d+g,b),a.lineTo(d+c-g,b),a.quadTo(d+c,b,d+c,b+g),a.lineTo(d+c,b+f-g),a.quadTo(d+c,b+f,d+c-g,b+f),a.lineTo(d+g,b+f),a.quadTo(d,b+f,d,b+f-g),a.lineTo(d,b+g),a.quadTo(d,b,d+g,b)):(a.moveTo(d,b),a.lineTo(d+c,b),a.lineTo(d+c,b+f),a.lineTo(d,b+f),a.lineTo(d,
b)),a.close(),a.end(),a.fillAndStroke()}};var Ha=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,d,b,c,f){null==a.handJiggle&&Ha.apply(this,arguments)};mxUtils.extend(w,mxRectangleShape);w.prototype.size=.1;w.prototype.isHtmlAllowed=function(){return!1};w.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 d=
a.width,b=a.height;a=new mxRectangle(a.x,a.y,d,b);var c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.max(c,Math.min(d*f,b*f));a.x+=Math.round(c);a.width-=Math.round(2*c)}return a};w.prototype.paintForeground=function(a,d,b,c,f){var g=c*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,g=Math.max(g,Math.min(c*e,f*e));g=Math.round(g);a.begin();a.moveTo(d+g,b);a.lineTo(d+g,b+f);a.moveTo(d+c-g,b);a.lineTo(d+c-g,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",w);mxUtils.extend(u,mxRectangleShape);u.prototype.paintBackground=function(a,d,b,c,f){a.setFillColor(mxConstants.NONE);a.rect(d,b,c,f);a.fill()};u.prototype.paintForeground=
-function(a,d,b,c,f){};mxCellRenderer.registerShape("transparent",u);mxUtils.extend(x,mxHexagon);x.prototype.size=30;x.prototype.position=.5;x.prototype.position2=.5;x.prototype.base=20;x.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};x.prototype.redrawPath=function(a,d,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+function(a,d,b,c,f){};mxCellRenderer.registerShape("transparent",u);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.redrawPath=function(a,d,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));var g=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),e=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-b),new mxPoint(Math.min(c,g+h),f-b),new mxPoint(e,f),new mxPoint(Math.max(0,g),f-b),new mxPoint(0,f-b)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",
-x);mxUtils.extend(r,mxActor);r.prototype.size=.2;r.prototype.fixedSize=20;r.prototype.redrawPath=function(a,d,b,c,f){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=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-
-d,f),new mxPoint(0,f),new mxPoint(d,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",r);mxUtils.extend(z,mxHexagon);z.prototype.size=.25;z.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*f),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(0,.5*f)],
-this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",z);mxUtils.extend(v,mxRectangleShape);v.prototype.isHtmlAllowed=function(){return!1};v.prototype.paintForeground=function(a,d,b,c,f){var g=Math.min(c/5,f/5)+1;a.begin();a.moveTo(d+c/2,b+g);a.lineTo(d+c/2,b+f-g);a.moveTo(d+g,b+f/2);a.lineTo(d+c-g,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",v);var Ba=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=
-function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};mxRhombus.prototype.paintVertexShape=function(a,d,b,c,f){Ba.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&(a.setShadow(!1),Ba.apply(this,[a,d,
-b,c,f]))}};mxUtils.extend(A,mxRectangleShape);A.prototype.isHtmlAllowed=function(){return!1};A.prototype.getLabelBounds=function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};A.prototype.paintForeground=function(a,d,b,c,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,e;do{e=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=e){var h=this.style["symbol"+g+"Align"],ha=this.style["symbol"+g+"VerticalAlign"],p=this.style["symbol"+g+"Width"],n=this.style["symbol"+g+"Height"],r=this.style["symbol"+g+"Spacing"]||0,u=this.style["symbol"+g+"VSpacing"]||r,x=this.style["symbol"+g+"ArcSpacing"];null!=x&&(x*=this.getArcSize(c+this.strokewidth,
-f+this.strokewidth),r+=x,u+=x);var x=d,k=b,x=h==mxConstants.ALIGN_CENTER?x+(c-p)/2:h==mxConstants.ALIGN_RIGHT?x+(c-p-r):x+r,k=ha==mxConstants.ALIGN_MIDDLE?k+(f-n)/2:ha==mxConstants.ALIGN_BOTTOM?k+(f-n-u):k+u;a.save();h=new e;h.style=this.style;e.prototype.paintVertexShape.call(h,a,x,k,p,n);a.restore()}g++}while(null!=e)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",A);mxUtils.extend(F,mxCylinder);F.prototype.redrawPath=function(a,d,b,c,f,g){g?
-(a.moveTo(0,0),a.lineTo(c/2,f/2),a.lineTo(c,0),a.end()):(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",F);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.ellipse(c/4,0,c/2,f/4);a.fillAndStroke();a.begin();a.moveTo(c/2,f/4);a.lineTo(c/2,2*f/3);a.moveTo(c/2,f/3);a.lineTo(0,f/3);a.moveTo(c/2,f/3);a.lineTo(c,f/3);a.moveTo(c/2,2*f/3);a.lineTo(0,f);a.moveTo(c/2,2*f/3);a.lineTo(c,f);a.end();a.stroke()};
-mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(G,mxShape);G.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};G.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(c/6,f/2);a.end();a.stroke();a.ellipse(c/6,0,5*c/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",G);mxUtils.extend(C,mxEllipse);C.prototype.paintVertexShape=function(a,d,
-b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/8,b+f);a.lineTo(d+7*c/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",C);mxUtils.extend(H,mxShape);H.prototype.paintVertexShape=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(c,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(c,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",H);mxUtils.extend(y,mxShape);y.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
-a.height/8,a.width,7*a.height/8)};y.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,0);a.end();a.stroke();a.ellipse(0,f/8,c,7*f/8);a.fillAndStroke()};y.prototype.paintForeground=function(a,d,b,c,f){a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",y);mxUtils.extend(L,mxRectangleShape);L.prototype.size=40;L.prototype.isHtmlAllowed=function(){return!1};L.prototype.getLabelBounds=
-function(a){var d=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,d)};L.prototype.paintBackground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"participant");null==e||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,d,b,c,g):(e=this.state.view.graph.cellRenderer.getShape(e),null!=e&&e!=L&&(e=new e,
-e.apply(this.state),a.save(),e.paintVertexShape(a,d,b,c,g),a.restore()));g<f&&(a.setDashed(!0),a.begin(),a.moveTo(d+c/2,b+g),a.lineTo(d+c/2,b+f),a.end(),a.stroke())};L.prototype.paintForeground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,d,b,c,Math.min(f,g))};mxCellRenderer.registerShape("umlLifeline",L);mxUtils.extend(E,mxShape);E.prototype.width=60;E.prototype.height=30;E.prototype.corner=
+v);mxUtils.extend(r,mxActor);r.prototype.size=.2;r.prototype.fixedSize=20;r.prototype.redrawPath=function(a,d,b,c,f){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=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-
+d,f),new mxPoint(0,f),new mxPoint(d,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",r);mxUtils.extend(A,mxHexagon);A.prototype.size=.25;A.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*f),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(0,.5*f)],
+this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",A);mxUtils.extend(C,mxRectangleShape);C.prototype.isHtmlAllowed=function(){return!1};C.prototype.paintForeground=function(a,d,b,c,f){var g=Math.min(c/5,f/5)+1;a.begin();a.moveTo(d+c/2,b+g);a.lineTo(d+c/2,b+f-g);a.moveTo(d+g,b+f/2);a.lineTo(d+c-g,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",C);var Ca=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=
+function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};mxRhombus.prototype.paintVertexShape=function(a,d,b,c,f){Ca.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&(a.setShadow(!1),Ca.apply(this,[a,d,
+b,c,f]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(a){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(a.x+d,a.y+d,a.width-2*d,a.height-2*d)}return a};y.prototype.paintForeground=function(a,d,b,c,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=g;b+=g;c-=2*g;f-=2*g;0<c&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,e;do{e=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=e){var h=this.style["symbol"+g+"Align"],ja=this.style["symbol"+g+"VerticalAlign"],p=this.style["symbol"+g+"Width"],m=this.style["symbol"+g+"Height"],u=this.style["symbol"+g+"Spacing"]||0,r=this.style["symbol"+g+"VSpacing"]||u,v=this.style["symbol"+g+"ArcSpacing"];null!=v&&(v*=this.getArcSize(c+this.strokewidth,
+f+this.strokewidth),u+=v,r+=v);var v=d,k=b,v=h==mxConstants.ALIGN_CENTER?v+(c-p)/2:h==mxConstants.ALIGN_RIGHT?v+(c-p-u):v+u,k=ja==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:ja==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new e;h.style=this.style;e.prototype.paintVertexShape.call(h,a,v,k,p,m);a.restore()}g++}while(null!=e)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",y);mxUtils.extend(z,mxCylinder);z.prototype.redrawPath=function(a,d,b,c,f,g){g?
+(a.moveTo(0,0),a.lineTo(c/2,f/2),a.lineTo(c,0),a.end()):(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",z);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.ellipse(c/4,0,c/2,f/4);a.fillAndStroke();a.begin();a.moveTo(c/2,f/4);a.lineTo(c/2,2*f/3);a.moveTo(c/2,f/3);a.lineTo(0,f/3);a.moveTo(c/2,f/3);a.lineTo(c,f/3);a.moveTo(c/2,2*f/3);a.lineTo(0,f);a.moveTo(c/2,2*f/3);a.lineTo(c,f);a.end();a.stroke()};
+mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};F.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(c/6,f/2);a.end();a.stroke();a.ellipse(c/6,0,5*c/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(H,mxEllipse);H.prototype.paintVertexShape=function(a,d,
+b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/8,b+f);a.lineTo(d+7*c/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",H);mxUtils.extend(L,mxShape);L.prototype.paintVertexShape=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(c,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(c,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",L);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,d,b,c,f){a.translate(d,b);a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,0);a.end();a.stroke();a.ellipse(0,f/8,c,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,d,b,c,f){a.begin();a.moveTo(3*c/8,f/8*1.1);a.lineTo(5*c/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(I,mxRectangleShape);I.prototype.size=40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=
+function(a){var d=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,d)};I.prototype.paintBackground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"participant");null==e||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,d,b,c,g):(e=this.state.view.graph.cellRenderer.getShape(e),null!=e&&e!=I&&(e=new e,
+e.apply(this.state),a.save(),e.paintVertexShape(a,d,b,c,g),a.restore()));g<f&&(a.setDashed(!0),a.begin(),a.moveTo(d+c/2,b+g),a.lineTo(d+c/2,b+f),a.end(),a.stroke())};I.prototype.paintForeground=function(a,d,b,c,f){var g=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,d,b,c,Math.min(f,g))};mxCellRenderer.registerShape("umlLifeline",I);mxUtils.extend(E,mxShape);E.prototype.width=60;E.prototype.height=30;E.prototype.corner=
10;E.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};E.prototype.paintBackground=function(a,d,b,c,f){var g=this.corner,e=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5*g,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),p=mxUtils.getValue(this.style,
mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);p!=mxConstants.NONE&&(a.setFillColor(p),a.rect(d,b,c,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,d,b,c,f),a.setGradient(this.fill,this.gradient,d,b,c,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(d,b);a.lineTo(d+e,b);a.lineTo(d+e,b+Math.max(0,h-1.5*g));a.lineTo(d+Math.max(0,e-g),b+h);a.lineTo(d,b+h);a.close();a.fillAndStroke();a.begin();
-a.moveTo(d+e,b);a.lineTo(d+c,b);a.lineTo(d+c,b+f);a.lineTo(d,b+f);a.lineTo(d,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",E);mxPerimeter.LifelinePerimeter=function(a,d,b,c){c=L.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;b.x<a.getCenterX()&&(d=-1*(d+1));return new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y+c,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);
+a.moveTo(d+e,b);a.lineTo(d+c,b);a.lineTo(d+c,b+f);a.lineTo(d,b+f);a.lineTo(d,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",E);mxPerimeter.LifelinePerimeter=function(a,d,b,c){c=I.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;b.x<a.getCenterX()&&(d=-1*(d+1));return new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y+c,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);
mxPerimeter.OrthogonalPerimeter=function(a,d,b,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,d,b,c){c=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(c+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return b.x<
-a.getCenterX()&&(c=-1*(c+1)),new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,d,b,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(d.style,"size",x.prototype.size))*
-d.view.scale))),d.style),d,b,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,d,b,c){var g=f.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(g=n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+
-p,h+g),new mxPoint(e+p,h+n),new mxPoint(e,h+n-g),new mxPoint(e,h)]):(g=p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+g,h),new mxPoint(e+p,h),new mxPoint(e+p-g,h+n),new mxPoint(e,h+n),new mxPoint(e+g,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f=
-mxUtils.getValue(d.style,"size",f));var e=a.x,h=a.y,p=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+p-f,h),new mxPoint(e+p,h+n),new mxPoint(e,h+n),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_WEST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h),new mxPoint(e+p-f,h+n),new mxPoint(e+f,h+n),new mxPoint(e,
-h)]):d==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+n),new mxPoint(e,h+n-f),new mxPoint(e,h+f)]):(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h+f),new mxPoint(e+p,h+n-f),new mxPoint(e,h+n),new mxPoint(e,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);
-mxPerimeter.StepPerimeter=function(a,d,b,c){var f="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=f?r.prototype.fixedSize:r.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,n=a.height,u=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+p-
-f,h),new mxPoint(e+p,a),new mxPoint(e+p-f,h+n),new mxPoint(e,h+n),new mxPoint(e+f,a),new mxPoint(e,h)]):d==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+f,h),new mxPoint(e+p,h),new mxPoint(e+p-f,a),new mxPoint(e+p,h+n),new mxPoint(e+f,h+n),new mxPoint(e,a),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,g)):n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h+f),new mxPoint(u,h),new mxPoint(e+p,h+f),new mxPoint(e+p,
-h+n),new mxPoint(u,h+n-f),new mxPoint(e,h+n),new mxPoint(e,h+f)]):(f=f?Math.max(0,Math.min(n,g)):n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(u,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+n-f),new mxPoint(u,h+n),new mxPoint(e,h+n-f),new mxPoint(e,h)]);u=new mxPoint(u,a);c&&(b.x<e||b.x>e+p?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=z.prototype.size;null!=
-d&&(f=mxUtils.getValue(d.style,"size",f));var g=a.x,e=a.y,h=a.width,p=a.height,n=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=p*Math.max(0,Math.min(1,f)),e=[new mxPoint(n,e),new mxPoint(g+h,e+f),new mxPoint(g+h,e+p-f),new mxPoint(n,e+p),new mxPoint(g,e+p-f),new mxPoint(g,e+f),new mxPoint(n,e)]):(f=h*Math.max(0,Math.min(1,f)),e=[new mxPoint(g+
-f,e),new mxPoint(g+h-f,e),new mxPoint(g+h,a),new mxPoint(g+h-f,e+p),new mxPoint(g+f,e+p),new mxPoint(g,a),new mxPoint(g+f,e)]);n=new mxPoint(n,a);c&&(b.x<g||b.x>g+h?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(e,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(I,mxShape);I.prototype.size=10;I.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-g)/2,0,g,g);a.fillAndStroke();
-a.begin();a.moveTo(c/2,g);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",I);mxUtils.extend(Y,mxShape);Y.prototype.size=10;Y.prototype.inset=2;Y.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,g+e);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-g)/2-e,g/2);a.quadTo((c-g)/2-e,g+e,c/
-2,g+e);a.quadTo((c+g)/2+e,g+e,(c+g)/2+e,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",Y);mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,d,b,c,f,g){var e=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=e/2;var e=b+e/2,h=.3*f-d/2,p=.7*f-d/2;g?(a.moveTo(b,h),a.lineTo(e,h),a.lineTo(e,h+d),a.lineTo(b,h+d),a.moveTo(b,p),
-a.lineTo(e,p),a.lineTo(e,p+d),a.lineTo(b,p+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,p+d),a.lineTo(0,p+d),a.lineTo(0,p),a.lineTo(b,p),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",R);mxUtils.extend(P,mxDoubleEllipse);P.prototype.outerStroke=!0;P.prototype.paintVertexShape=function(a,d,b,c,f){var g=Math.min(4,Math.min(c/5,f/5));0<c&&0<f&&(a.ellipse(d+g,b+g,c-2*g,f-2*g),a.fillAndStroke());a.setShadow(!1);
-this.outerStroke&&(a.ellipse(d,b,c,f),a.stroke())};mxCellRenderer.registerShape("endState",P);mxUtils.extend(J,P);J.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",J);mxUtils.extend(K,mxArrowConnector);K.prototype.defaultWidth=4;K.prototype.isOpenEnded=function(){return!0};K.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};K.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
-K);mxUtils.extend(M,mxArrowConnector);M.prototype.defaultWidth=10;M.prototype.defaultArrowWidth=20;M.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};M.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};M.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-M);mxUtils.extend(S,mxActor);S.prototype.size=30;S.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",S);mxUtils.extend(D,mxRectangleShape);D.prototype.dx=20;D.prototype.dy=20;D.prototype.isHtmlAllowed=
-function(){return!1};D.prototype.paintForeground=function(a,d,b,c,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*e,f*e));e=Math.max(g,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(d,b+g);a.lineTo(d+c,b+g);
-a.end();a.stroke();a.begin();a.moveTo(d+e,b);a.lineTo(d+e,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",D);mxUtils.extend(W,mxActor);W.prototype.dx=20;W.prototype.dy=20;W.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d,b),new mxPoint(d,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("corner",W);mxUtils.extend(Q,mxActor);Q.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(c,0);a.lineTo(c,f);a.end();a.moveTo(0,f/2);a.lineTo(c,f/2);a.end()};mxCellRenderer.registerShape("crossbar",Q);mxUtils.extend(X,mxActor);X.prototype.dx=20;X.prototype.dy=
-20;X.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint((c+d)/2,b),new mxPoint((c+d)/2,f),new mxPoint((c-d)/2,f),new mxPoint((c-
-d)/2,b),new mxPoint(0,b)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("tee",X);mxUtils.extend(U,mxActor);U.prototype.arrowWidth=.3;U.prototype.arrowSize=.2;U.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("singleArrow",U);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",U.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",U.prototype.arrowSize))));
-b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(d,g),new mxPoint(d,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",T);mxUtils.extend(O,mxActor);O.prototype.size=.1;O.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.moveTo(d,0);a.lineTo(c,0);a.quadTo(c-2*d,f/2,c,f);a.lineTo(d,f);a.quadTo(d-2*d,f/2,d,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",O);mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ca);mxUtils.extend(V,mxActor);V.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.quadTo(c/2,f/2,0,0);a.close();
-a.end()};mxCellRenderer.registerShape("xor",V);mxUtils.extend(Z,mxActor);Z.prototype.size=20;Z.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,.8*d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-Z);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-d),new mxPoint(c/2,f),new mxPoint(0,f-d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(ja,mxEllipse);ja.prototype.paintVertexShape=
-function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/2,b+f);a.lineTo(d+c,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",ja);mxUtils.extend(da,mxEllipse);da.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke();a.begin();a.moveTo(d+c/2,b);a.lineTo(d+c/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",
-da);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d+.145*c,b+.145*f);a.lineTo(d+.855*c,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(d+.855*c,b+.145*f);a.lineTo(d+.145*c,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ma);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,d,b,c,f){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,d,b,c,f){a.begin();a.moveTo(d,b);a.lineTo(d+c,b);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(d,b+f);a.lineTo(d+c,b+f);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ka);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=
-function(a,d,b,c,f){var g=b+f-5;a.begin();a.moveTo(d,b);a.lineTo(d,b+f);a.moveTo(d,g);a.lineTo(d+10,g-5);a.moveTo(d,g);a.lineTo(d+10,g+5);a.moveTo(d,g);a.lineTo(d+c,g);a.moveTo(d+c,b);a.lineTo(d+c,b+f);a.moveTo(d+c,g);a.lineTo(d+c-10,g-5);a.moveTo(d+c,g);a.lineTo(d+c-10,g+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ba);mxUtils.extend(qa,mxEllipse);qa.prototype.paintVertexShape=function(a,d,b,c,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
-arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(d,b,c,f),a.fill(),a.begin(),a.moveTo(d,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(d+c,b):a.moveTo(d+c,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(d+c,b+f):a.moveTo(d+c,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(d,b+f):a.moveTo(d,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(d,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",qa);mxUtils.extend(na,
-mxEllipse);na.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(d+c/2,b),a.lineTo(d+c/2,b+f)):(a.moveTo(d,b+f/2),a.lineTo(d+c,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",na);mxUtils.extend(ta,mxActor);ta.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);a.moveTo(0,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(0,
-f);a.close();a.end()};mxCellRenderer.registerShape("delay",ta);mxUtils.extend(oa,mxActor);oa.prototype.size=.2;oa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(f-g)/2;b=d+g;var e=(c-g)/2,g=e+g;a.moveTo(0,d);a.lineTo(e,d);a.lineTo(e,0);a.lineTo(g,0);a.lineTo(g,d);a.lineTo(c,d);a.lineTo(c,b);a.lineTo(g,b);a.lineTo(g,f);a.lineTo(e,f);a.lineTo(e,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",
-oa);mxUtils.extend(pa,mxActor);pa.prototype.size=.25;pa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);b=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",pa);mxUtils.extend(la,mxConnector);la.prototype.origPaintEdgeShape=la.prototype.paintEdgeShape;la.prototype.paintEdgeShape=function(a,d,b){for(var c=
-[],f=0;f<d.length;f++)c.push(mxUtils.clone(d[f]));var f=a.state.dashed,g=a.state.fixDash;la.prototype.origPaintEdgeShape.apply(this,[a,c,b]);3<=a.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(a.setStrokeColor(c),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,g),la.prototype.origPaintEdgeShape.apply(this,[a,d,b])))};mxCellRenderer.registerShape("filledEdge",la);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==d.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,d,b,c,f,g,e,h,p,n){var r=f*(e+p+1),u=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-r/2-u/2,c.y-u/2+r/2);a.lineTo(c.x+u/2-3*r/2,c.y-3*u/2-r/2);a.stroke()}});mxMarker.addMarker("cross",function(a,d,b,c,f,g,e,h,p,
-n){var r=f*(e+p+1),u=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-r/2-u/2,c.y-u/2+r/2);a.lineTo(c.x+u/2-3*r/2,c.y-3*u/2-r/2);a.moveTo(c.x-r/2+u/2,c.y-u/2-r/2);a.lineTo(c.x-u/2-3*r/2,c.y-3*u/2+r/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,d,b,c,f,g,e,h,p,n){var r=c.clone(),u=Aa.apply(this,arguments),x=f*(e+2*p),k=g*(e+2*p);return function(){u.apply(this,arguments);a.begin();a.moveTo(r.x-f*p,r.y-g*p);a.lineTo(r.x-2*x+f*p,r.y-2*k+g*p);a.moveTo(r.x-
-x-k+g*p,r.y-k+x-f*p);a.lineTo(r.x+k-x-g*p,r.y-k-x+f*p);a.stroke()}});mxMarker.addMarker("async",function(a,d,b,c,f,g,e,h,p,n){d=f*p*1.118;b=g*p*1.118;f*=e+p;g*=e+p;var r=c.clone();r.x-=d;r.y-=b;c.x+=1*-f-d;c.y+=1*-g-b;return function(){a.begin();a.moveTo(r.x,r.y);h?a.lineTo(r.x-f-g/2,r.y-g+f/2):a.lineTo(r.x+g/2-f,r.y-g-f/2);a.lineTo(r.x-f,r.y-g);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(d,b,c,f,g,e,h,p,n,r){g*=h+n;e*=h+n;var u=
-f.clone();return function(){d.begin();d.moveTo(u.x,u.y);p?d.lineTo(u.x-g-e/a,u.y-e+g/a):d.lineTo(u.x+e/a-g,u.y-e-g/a);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,d,b){return ra(a,["width"],d,function(d,c,f,g,e){e=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(g.x+c*d/4+f*e/2,g.y+f*d/4-c*e/2)},function(d,c,f,g,e,h){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));a.style.width=Math.round(2*d)/a.view.scale-b})},ra=function(a,d,b,c,f){return N(a,d,
-function(d){var f=a.absolutePoints,g=f.length-1;d=a.view.translate;var e=a.view.scale,h=b?f[0]:f[g],f=b?f[1]:f[g-1],g=f.x-h.x,p=f.y-h.y,n=Math.sqrt(g*g+p*p),h=c.call(this,n,g/n,p/n,h,f);return new mxPoint(h.x/e-d.x,h.y/e-d.y)},function(d,c,g){var e=a.absolutePoints,h=e.length-1;d=a.view.translate;var p=a.view.scale,n=b?e[0]:e[h],e=b?e[1]:e[h-1],h=e.x-n.x,r=e.y-n.y,u=Math.sqrt(h*h+r*r);c.x=(c.x+d.x)*p;c.y=(c.y+d.y)*p;f.call(this,u,h/u,r/u,n,e,c,g)})},ia=function(a){return function(d){return[N(d,["arrowWidth",
-"arrowSize"],function(d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),c=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-b)*d.height/2)},function(d,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-b.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(d.x+d.width-b.x)/d.width))})]}},ya=function(a,d,b){return function(c){var f=
-[N(c,["size"],function(b){var c=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*a;return new mxPoint(b.x+c,b.y+c)},function(d,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,b.x-d.x),Math.min(d.height,b.y-d.y)))/a)})];b&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ea(c));return f}},ua=function(a,d,b,c,f){b=null!=b?b:1;return function(g){var e=[N(g,["size"],function(d){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(d.x+Math.max(0,Math.min(d.width,c*(b?1:d.width))),d.getCenterY())},function(a,d,c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=e?d.x-a.x:Math.max(0,Math.min(b,(d.x-a.x)/a.width));e&&!mxEvent.isAltDown(c.getEvent())&&(a=g.view.graph.snap(a));this.state.style.size=a},null,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(g));return e}},Da=function(a){return function(d){var b=
-[N(d,["size"],function(d){var b=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(d.x+b*d.width*.75,d.y+d.height/4)},function(d,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-d.x)/(.75*d.width)))},null,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(d));return b}},sa=function(){return function(a){var d=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d}},ea=function(a,d){return N(a,
+a.getCenterX()&&(c=-1*(c+1)),new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,d,b,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(d.style,"size",v.prototype.size))*
+d.view.scale))),d.style),d,b,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,d,b,c){var g=f.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,m=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(g=m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+
+p,h+g),new mxPoint(e+p,h+m),new mxPoint(e,h+m-g),new mxPoint(e,h)]):(g=p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+g,h),new mxPoint(e+p,h),new mxPoint(e+p-g,h+m),new mxPoint(e,h+m),new mxPoint(e+g,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f=
+mxUtils.getValue(d.style,"size",f));var e=a.x,h=a.y,p=a.width,m=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+p-f,h),new mxPoint(e+p,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_WEST?(f=p*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h),new mxPoint(e+p-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,
+h)]):d==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h+f)]):(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+p,h+f),new mxPoint(e+p,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);c&&(b.x<e||b.x>e+p?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);
+mxPerimeter.StepPerimeter=function(a,d,b,c){var f="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=f?r.prototype.fixedSize:r.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,p=a.width,m=a.height,u=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+p-
+f,h),new mxPoint(e+p,a),new mxPoint(e+p-f,h+m),new mxPoint(e,h+m),new mxPoint(e+f,a),new mxPoint(e,h)]):d==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(p,g)):p*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+f,h),new mxPoint(e+p,h),new mxPoint(e+p-f,a),new mxPoint(e+p,h+m),new mxPoint(e+f,h+m),new mxPoint(e,a),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h+f),new mxPoint(u,h),new mxPoint(e+p,h+f),new mxPoint(e+p,
+h+m),new mxPoint(u,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h+f)]):(f=f?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(u,h+f),new mxPoint(e+p,h),new mxPoint(e+p,h+m-f),new mxPoint(u,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h)]);u=new mxPoint(u,a);c&&(b.x<e||b.x>e+p?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=A.prototype.size;null!=
+d&&(f=mxUtils.getValue(d.style,"size",f));var g=a.x,e=a.y,h=a.width,p=a.height,m=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=p*Math.max(0,Math.min(1,f)),e=[new mxPoint(m,e),new mxPoint(g+h,e+f),new mxPoint(g+h,e+p-f),new mxPoint(m,e+p),new mxPoint(g,e+p-f),new mxPoint(g,e+f),new mxPoint(m,e)]):(f=h*Math.max(0,Math.min(1,f)),e=[new mxPoint(g+
+f,e),new mxPoint(g+h-f,e),new mxPoint(g+h,a),new mxPoint(g+h-f,e+p),new mxPoint(g+f,e+p),new mxPoint(g,a),new mxPoint(g+f,e)]);m=new mxPoint(m,a);c&&(b.x<g||b.x>g+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(e,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-g)/2,0,g,g);a.fillAndStroke();
+a.begin();a.moveTo(c/2,g);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",Q);mxUtils.extend(X,mxShape);X.prototype.size=10;X.prototype.inset=2;X.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,g+e);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-g)/2-e,g/2);a.quadTo((c-g)/2-e,g+e,c/
+2,g+e);a.quadTo((c+g)/2+e,g+e,(c+g)/2+e,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",X);mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,d,b,c,f,g){var e=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=e/2;var e=b+e/2,h=.3*f-d/2,p=.7*f-d/2;g?(a.moveTo(b,h),a.lineTo(e,h),a.lineTo(e,h+d),a.lineTo(b,h+d),a.moveTo(b,p),
+a.lineTo(e,p),a.lineTo(e,p+d),a.lineTo(b,p+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,p+d),a.lineTo(0,p+d),a.lineTo(0,p),a.lineTo(b,p),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",R);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(a,d,b,c,f){var g=Math.min(4,Math.min(c/5,f/5));0<c&&0<f&&(a.ellipse(d+g,b+g,c-2*g,f-2*g),a.fillAndStroke());a.setShadow(!1);
+this.outerStroke&&(a.ellipse(d,b,c,f),a.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(G,Z);G.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",G);mxUtils.extend(K,mxArrowConnector);K.prototype.defaultWidth=4;K.prototype.isOpenEnded=function(){return!0};K.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};K.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+K);mxUtils.extend(S,mxArrowConnector);S.prototype.defaultWidth=10;S.prototype.defaultArrowWidth=20;S.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};S.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};S.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
+S);mxUtils.extend(J,mxActor);J.prototype.size=30;J.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",J);mxUtils.extend(N,mxRectangleShape);N.prototype.dx=20;N.prototype.dy=20;N.prototype.isHtmlAllowed=
+function(){return!1};N.prototype.paintForeground=function(a,d,b,c,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*e,f*e));e=Math.max(g,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(d,b+g);a.lineTo(d+c,b+g);
+a.end();a.stroke();a.begin();a.moveTo(d+e,b);a.lineTo(d+e,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",N);mxUtils.extend(U,mxActor);U.prototype.dx=20;U.prototype.dy=20;U.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d,b),new mxPoint(d,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("corner",U);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(c,0);a.lineTo(c,f);a.end();a.moveTo(0,f/2);a.lineTo(c,f/2);a.end()};mxCellRenderer.registerShape("crossbar",D);mxUtils.extend(W,mxActor);W.prototype.dx=20;W.prototype.dy=
+20;W.prototype.redrawPath=function(a,d,b,c,f){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,b),new mxPoint((c+d)/2,b),new mxPoint((c+d)/2,f),new mxPoint((c-d)/2,f),new mxPoint((c-
+d)/2,b),new mxPoint(0,b)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("tee",W);mxUtils.extend(O,mxActor);O.prototype.arrowWidth=.3;O.prototype.arrowSize=.2;O.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("singleArrow",O);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(a,d,b,c,f){var g=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",O.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",O.prototype.arrowSize))));
+b=(f-g)/2;var g=b+g,e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c-d,b),new mxPoint(c-d,0),new mxPoint(c,f/2),new mxPoint(c-d,f),new mxPoint(c-d,g),new mxPoint(d,g),new mxPoint(d,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",T);mxUtils.extend(V,mxActor);V.prototype.size=.1;V.prototype.redrawPath=function(a,d,b,c,f){d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.moveTo(d,0);a.lineTo(c,0);a.quadTo(c-2*d,f/2,c,f);a.lineTo(d,f);a.quadTo(d-2*d,f/2,d,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",V);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,d,b,c,f){a.moveTo(0,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,0,f);a.quadTo(c/2,f/2,0,0);a.close();
+a.end()};mxCellRenderer.registerShape("xor",M);mxUtils.extend(ca,mxActor);ca.prototype.size=20;ca.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,f),new mxPoint(0,f),new mxPoint(0,.8*d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
+ca);mxUtils.extend(da,mxActor);da.prototype.size=.375;da.prototype.redrawPath=function(a,d,b,c,f){d=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f-d),new mxPoint(c/2,f),new mxPoint(0,f-d)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",da);mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=
+function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(d+c/2,b+f);a.lineTo(d+c,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",aa);mxUtils.extend(ea,mxEllipse);ea.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke();a.begin();a.moveTo(d+c/2,b);a.lineTo(d+c/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",
+ea);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(d+.145*c,b+.145*f);a.lineTo(d+.855*c,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(d+.855*c,b+.145*f);a.lineTo(d+.145*c,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",la);mxUtils.extend(ha,mxRhombus);ha.prototype.paintVertexShape=function(a,d,b,c,f){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(d,b+f/2);a.lineTo(d+c,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",ha);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,d,b,c,f){a.begin();a.moveTo(d,b);a.lineTo(d+c,b);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(d,b+f);a.lineTo(d+c,b+f);a.lineTo(d+c/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ra);mxUtils.extend(fa,mxEllipse);fa.prototype.paintVertexShape=
+function(a,d,b,c,f){var g=b+f-5;a.begin();a.moveTo(d,b);a.lineTo(d,b+f);a.moveTo(d,g);a.lineTo(d+10,g-5);a.moveTo(d,g);a.lineTo(d+10,g+5);a.moveTo(d,g);a.lineTo(d+c,g);a.moveTo(d+c,b);a.lineTo(d+c,b+f);a.moveTo(d+c,g);a.lineTo(d+c-10,g-5);a.moveTo(d+c,g);a.lineTo(d+c-10,g+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,d,b,c,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,
+arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(d,b,c,f),a.fill(),a.begin(),a.moveTo(d,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(d+c,b):a.moveTo(d+c,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(d+c,b+f):a.moveTo(d+c,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(d,b+f):a.moveTo(d,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(d,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",ma);mxUtils.extend(ba,
+mxEllipse);ba.prototype.paintVertexShape=function(a,d,b,c,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(d+c/2,b),a.lineTo(d+c/2,b+f)):(a.moveTo(d,b+f/2),a.lineTo(d+c,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",ba);mxUtils.extend(pa,mxActor);pa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);a.moveTo(0,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(0,
+f);a.close();a.end()};mxCellRenderer.registerShape("delay",pa);mxUtils.extend(ia,mxActor);ia.prototype.size=.2;ia.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(f,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(f-g)/2;b=d+g;var e=(c-g)/2,g=e+g;a.moveTo(0,d);a.lineTo(e,d);a.lineTo(e,0);a.lineTo(g,0);a.lineTo(g,d);a.lineTo(c,d);a.lineTo(c,b);a.lineTo(g,b);a.lineTo(g,f);a.lineTo(e,f);a.lineTo(e,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",
+ia);mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.prototype.redrawPath=function(a,d,b,c,f){d=Math.min(c,f/2);b=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(c-d,0);a.quadTo(c,0,c,f/2);a.quadTo(c,f,c-d,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",qa);mxUtils.extend(na,mxConnector);na.prototype.origPaintEdgeShape=na.prototype.paintEdgeShape;na.prototype.paintEdgeShape=function(a,d,b){for(var c=
+[],f=0;f<d.length;f++)c.push(mxUtils.clone(d[f]));var f=a.state.dashed,g=a.state.fixDash;na.prototype.origPaintEdgeShape.apply(this,[a,c,b]);3<=a.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(a.setStrokeColor(c),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,g),na.prototype.origPaintEdgeShape.apply(this,[a,d,b])))};mxCellRenderer.registerShape("filledEdge",na);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
+StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==d.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,d,b,c,f,g,e,h,p,m){var u=f*(e+p+1),r=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-u/2-r/2,c.y-r/2+u/2);a.lineTo(c.x+r/2-3*u/2,c.y-3*r/2-u/2);a.stroke()}});mxMarker.addMarker("cross",function(a,d,b,c,f,g,e,h,p,
+m){var u=f*(e+p+1),r=g*(e+p+1);return function(){a.begin();a.moveTo(c.x-u/2-r/2,c.y-r/2+u/2);a.lineTo(c.x+r/2-3*u/2,c.y-3*r/2-u/2);a.moveTo(c.x-u/2+r/2,c.y-r/2-u/2);a.lineTo(c.x-r/2-3*u/2,c.y-3*r/2+u/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,d,b,c,f,g,e,h,p,m){var u=c.clone(),r=Aa.apply(this,arguments),v=f*(e+2*p),k=g*(e+2*p);return function(){r.apply(this,arguments);a.begin();a.moveTo(u.x-f*p,u.y-g*p);a.lineTo(u.x-2*v+f*p,u.y-2*k+g*p);a.moveTo(u.x-
+v-k+g*p,u.y-k+v-f*p);a.lineTo(u.x+k-v-g*p,u.y-k-v+f*p);a.stroke()}});mxMarker.addMarker("async",function(a,d,b,c,f,g,e,h,p,m){d=f*p*1.118;b=g*p*1.118;f*=e+p;g*=e+p;var u=c.clone();u.x-=d;u.y-=b;c.x+=1*-f-d;c.y+=1*-g-b;return function(){a.begin();a.moveTo(u.x,u.y);h?a.lineTo(u.x-f-g/2,u.y-g+f/2):a.lineTo(u.x+g/2-f,u.y-g-f/2);a.lineTo(u.x-f,u.y-g);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(d,b,c,f,g,e,h,p,m,u){g*=h+m;e*=h+m;var r=
+f.clone();return function(){d.begin();d.moveTo(r.x,r.y);p?d.lineTo(r.x-g-e/a,r.y-e+g/a):d.lineTo(r.x+e/a-g,r.y-e-g/a);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Da=function(a,d,b){return sa(a,["width"],d,function(d,c,f,g,e){e=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(g.x+c*d/4+f*e/2,g.y+f*d/4-c*e/2)},function(d,c,f,g,e,h){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));a.style.width=Math.round(2*d)/a.view.scale-b})},sa=function(a,d,b,c,f){return P(a,d,
+function(d){var f=a.absolutePoints,g=f.length-1;d=a.view.translate;var e=a.view.scale,h=b?f[0]:f[g],f=b?f[1]:f[g-1],g=f.x-h.x,p=f.y-h.y,m=Math.sqrt(g*g+p*p),h=c.call(this,m,g/m,p/m,h,f);return new mxPoint(h.x/e-d.x,h.y/e-d.y)},function(d,c,g){var e=a.absolutePoints,h=e.length-1;d=a.view.translate;var p=a.view.scale,m=b?e[0]:e[h],e=b?e[1]:e[h-1],h=e.x-m.x,u=e.y-m.y,r=Math.sqrt(h*h+u*u);c.x=(c.x+d.x)*p;c.y=(c.y+d.y)*p;f.call(this,r,h/r,u/r,m,e,c,g)})},ka=function(a){return function(d){return[P(d,["arrowWidth",
+"arrowSize"],function(d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",O.prototype.arrowWidth))),c=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",O.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-b)*d.height/2)},function(d,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-b.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(d.x+d.width-b.x)/d.width))})]}},ya=function(a,d,b){return function(c){var f=
+[P(c,["size"],function(b){var c=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*a;return new mxPoint(b.x+c,b.y+c)},function(d,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,b.x-d.x),Math.min(d.height,b.y-d.y)))/a)})];b&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ga(c));return f}},ua=function(a,d,b,c,f){b=null!=b?b:1;return function(g){var e=[P(g,["size"],function(d){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(d.x+Math.max(0,Math.min(d.width,c*(b?1:d.width))),d.getCenterY())},function(a,d,c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=e?d.x-a.x:Math.max(0,Math.min(b,(d.x-a.x)/a.width));e&&!mxEvent.isAltDown(c.getEvent())&&(a=g.view.graph.snap(a));this.state.style.size=a},null,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(g));return e}},Ea=function(a){return function(d){var b=
+[P(d,["size"],function(d){var b=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(d.x+b*d.width*.75,d.y+d.height/4)},function(d,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-d.x)/(.75*d.width)))},null,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(d));return b}},ta=function(){return function(a){var d=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d}},ga=function(a,d){return P(a,
[mxConstants.STYLE_ARCSIZE],function(b){var c=null!=d?d:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+c)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*
-f),b.y+c)},function(d,b,c){"1"==mxUtils.getValue(a.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-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-b.x+d.x)/Math.min(d.width,d.height))))})},N=function(a,d,b,c,f,g){var e=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);e.execute=function(){for(var a=0;a<d.length;a++)this.copyStyle(d[a])};
-e.getPosition=b;e.setPosition=c;e.ignoreGrid=null!=f?f:!0;if(g){var h=e.positionChanged;e.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return e},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var d=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ra(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
+f),b.y+c)},function(d,b,c){"1"==mxUtils.getValue(a.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-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-b.x+d.x)/Math.min(d.width,d.height))))})},P=function(a,d,b,c,f,g){var e=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);e.execute=function(){for(var a=0;a<d.length;a++)this.copyStyle(d[a])};
+e.getPosition=b;e.setPosition=c;e.ignoreGrid=null!=f?f:!0;if(g){var h=e.positionChanged;e.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return e},za={link:function(a){return[Da(a,!0,10),Da(a,!1,10)]},flexArrow:function(a){var d=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)+c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)-b*d/2)},function(b,c,f,g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;
-a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ra(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,b,c,f,g){d=(a.shape.getStartArrowWidth()-
+a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,b,c,f,g){d=(a.shape.getStartArrowWidth()-
a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)+c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)-b*d/2)},function(b,c,f,g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,
Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(p.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<d&&(a.style.startWidth=
-a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ra(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,
+a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,
g,e,h,p){b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(p.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ra(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,g,e,h,p){b=
+d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,b,c,f,g){d=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;g=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(g+a.shape.strokewidth*a.view.scale)-c*d/2,f.y+c*(g+a.shape.strokewidth*a.view.scale)+b*d/2)},function(b,c,f,g,e,h,p){b=
Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,e.x,e.y,h.x,h.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+f,g.y-c,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(p.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(p.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<d&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var d=[N(a,[mxConstants.STYLE_STARTSIZE],function(d){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),
-d.y+Math.max(0,Math.min(d.height,b))):new mxPoint(d.x+Math.max(0,Math.min(d.width,b)),d.getCenterY())},function(d,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,b.y-d.y))):Math.round(Math.max(0,Math.min(d.width,b.x-d.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(ea(a,b/2))}return d},
-label:sa(),ext:sa(),rectangle:sa(),triangle:sa(),rhombus:sa(),umlLifeline:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",L.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))},!1)]},umlFrame:function(a){return[N(a,["width","height"],function(a){var d=Math.max(E.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,
-"width",E.prototype.width))),b=Math.max(1.5*E.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",E.prototype.height)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.width=Math.round(Math.max(E.prototype.corner,Math.min(a.width,d.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*E.prototype.corner,Math.min(a.height,d.y-a.y)))},!1)]},process:function(a){var d=[N(a,["size"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
-"size",w.prototype.size))));return new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,Math.min(.5,(d.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},cross:function(a){return[N(a,["size"],function(a){var d=Math.min(a.width,a.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",oa.prototype.size)))*d/2;return new mxPoint(a.getCenterX()-d,a.getCenterY()-d)},function(a,d){var b=Math.min(a.width,
-a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-d.y)/b*2,Math.max(0,a.getCenterX()-d.x)/b*2)))})]},note:function(a){return[N(a,["size"],function(a){var d=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-d,a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-d.x),Math.min(a.height,d.y-a.y))))})]},manualInput:function(a){var d=
-[N(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",S.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*d/4)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(d.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},dataStorage:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.x+
-(1-d)*a.width,a.getCenterY())},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-d.x)/a.width))})]},callout:function(a){var d=[N(a,["size","position"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",x.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position)));mxUtils.getValue(this.state.style,"base",x.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-d)},function(a,d){mxUtils.getValue(this.state.style,
-"base",x.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),N(a,["position2"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",x.prototype.position2)));return new mxPoint(a.x+d*a.width,a.y+a.height)},function(a,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),N(a,["base"],function(a){var d=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",x.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position))),c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",x.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+c),a.y+a.height-d)},function(a,d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",x.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,
-d.x-a.x-b*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},internalStorage:function(a){var d=[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",D.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",D.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(a.height,d.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ea(a));return d},corner:function(a){return[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",W.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",W.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(a.height,d.y-a.y)))})]},tee:function(a){return[N(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+d)/2,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,d.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),
-folder:function(a){return[N(a,["tabWidth","tabHeight"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",l.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",l.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",l.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);return new mxPoint(a.x+d,a.y+b)},function(a,d){var b=Math.max(0,Math.min(a.width,d.x-a.x));mxUtils.getValue(this.state.style,
-"tabPosition",l.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},document:function(a){return[N(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},
-tape:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d*a.height/2)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[N(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-d)*a.height)},
-function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},step:ua(r.prototype.size,!0,null,!0,r.prototype.fixedSize),hexagon:ua(z.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(pa.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,q.prototype.size,!0),loopLimit:ya(.5,Z.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=N;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<d&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var d=[P(a,[mxConstants.STYLE_STARTSIZE],function(d){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),
+d.y+Math.max(0,Math.min(d.height,b))):new mxPoint(d.x+Math.max(0,Math.min(d.width,b)),d.getCenterY())},function(d,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,b.y-d.y))):Math.round(Math.max(0,Math.min(d.width,b.x-d.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(ga(a,b/2))}return d},
+label:ta(),ext:ta(),rectangle:ta(),triangle:ta(),rhombus:ta(),umlLifeline:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",I.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))},!1)]},umlFrame:function(a){return[P(a,["width","height"],function(a){var d=Math.max(E.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,
+"width",E.prototype.width))),b=Math.max(1.5*E.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",E.prototype.height)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.width=Math.round(Math.max(E.prototype.corner,Math.min(a.width,d.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*E.prototype.corner,Math.min(a.height,d.y-a.y)))},!1)]},process:function(a){var d=[P(a,["size"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,
+"size",w.prototype.size))));return new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,Math.min(.5,(d.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},cross:function(a){return[P(a,["size"],function(a){var d=Math.min(a.width,a.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ia.prototype.size)))*d/2;return new mxPoint(a.getCenterX()-d,a.getCenterY()-d)},function(a,d){var b=Math.min(a.width,
+a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-d.y)/b*2,Math.max(0,a.getCenterX()-d.x)/b*2)))})]},note:function(a){return[P(a,["size"],function(a){var d=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-d,a.y+d)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-d.x),Math.min(a.height,d.y-a.y))))})]},manualInput:function(a){var d=
+[P(a,["size"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",J.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*d/4)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(d.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},dataStorage:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",V.prototype.size))));return new mxPoint(a.x+
+(1-d)*a.width,a.getCenterY())},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-d.x)/a.width))})]},callout:function(a){var d=[P(a,["size","position"],function(a){var d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));mxUtils.getValue(this.state.style,"base",v.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-d)},function(a,d){mxUtils.getValue(this.state.style,
+"base",v.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),P(a,["position2"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+d*a.width,a.y+a.height)},function(a,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-a.x)/a.width)))/100}),P(a,["base"],function(a){var d=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position))),c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",v.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+c),a.y+a.height-d)},function(a,d){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,
+d.x-a.x-b*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},internalStorage:function(a){var d=[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,d.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ga(a));return d},corner:function(a){return[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",U.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",U.prototype.dy)));return new mxPoint(a.x+d,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,d.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,d.y-a.y)))})]},tee:function(a){return[P(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",W.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",W.prototype.dy)));return new mxPoint(a.x+(a.width+d)/2,a.y+b)},function(a,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,d.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},singleArrow:ka(1),doubleArrow:ka(.5),
+folder:function(a){return[P(a,["tabWidth","tabHeight"],function(a){var d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);return new mxPoint(a.x+d,a.y+b)},function(a,d){var b=Math.max(0,Math.min(a.width,d.x-a.x));mxUtils.getValue(this.state.style,
+"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,d.y-a.y)))})]},document:function(a){return[P(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},
+tape:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+d*a.height/2)},function(a,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[P(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-d)*a.height)},
+function(a,d){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-d.y)/a.height))})]},step:ua(r.prototype.size,!0,null,!0,r.prototype.fixedSize),hexagon:ua(A.prototype.size,!0,.5,!0),curlyBracket:ua(p.prototype.size,!1),display:ua(qa.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,q.prototype.size,!0),loopLimit:ya(.5,ca.prototype.size,!0),trapezoid:Ea(.5),parallelogram:Ea(1)};Graph.createHandle=P;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==
this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var va=new mxPoint(1,0),wa=new mxPoint(1,0),ia=mxUtils.toRadians(-30),va=mxUtils.getRotatedPoint(va,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),wa=mxUtils.getRotatedPoint(wa,Math.cos(ia),Math.sin(ia));mxEdgeStyle.IsometricConnector=function(a,d,b,c,f){var g=a.view;c=null!=c&&0<c.length?c[0]:null;var e=a.absolutePoints,h=e[0],e=e[e.length-1];null!=c&&(c=g.transformControlPoint(a,
-c));null==h&&null!=d&&(h=new mxPoint(d.getCenterX(),d.getCenterY()));null==e&&null!=b&&(e=new mxPoint(b.getCenterX(),b.getCenterY()));var p=va.x,n=va.y,r=wa.x,u=wa.y,x="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=e&&null!=h){a=function(a,d,b){a-=k.x;var c=d-k.y;d=(u*a-r*c)/(p*u-n*r);a=(n*a-p*c)/(n*r-p*u);x?(b&&(k=new mxPoint(k.x+p*d,k.y+n*d),f.push(k)),k=new mxPoint(k.x+r*a,k.y+u*a)):(b&&(k=new mxPoint(k.x+r*a,k.y+u*a),f.push(k)),k=new mxPoint(k.x+p*d,k.y+n*d));f.push(k)};
-var k=h;null==c&&(c=new mxPoint(h.x+(e.x-h.x)/2,h.y+(e.y-h.y)/2));a(c.x,c.y,!0);a(e.x,e.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,d){if(d==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return Ia.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];x.prototype.constraints=[];mxRectangleShape.prototype.constraints=
+a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var va=new mxPoint(1,0),wa=new mxPoint(1,0),ka=mxUtils.toRadians(-30),va=mxUtils.getRotatedPoint(va,Math.cos(ka),Math.sin(ka)),ka=mxUtils.toRadians(-150),wa=mxUtils.getRotatedPoint(wa,Math.cos(ka),Math.sin(ka));mxEdgeStyle.IsometricConnector=function(a,d,b,c,f){var g=a.view;c=null!=c&&0<c.length?c[0]:null;var e=a.absolutePoints,h=e[0],e=e[e.length-1];null!=c&&(c=g.transformControlPoint(a,
+c));null==h&&null!=d&&(h=new mxPoint(d.getCenterX(),d.getCenterY()));null==e&&null!=b&&(e=new mxPoint(b.getCenterX(),b.getCenterY()));var p=va.x,m=va.y,u=wa.x,r=wa.y,v="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=e&&null!=h){a=function(a,d,b){a-=k.x;var c=d-k.y;d=(r*a-u*c)/(p*r-m*u);a=(m*a-p*c)/(m*u-p*r);v?(b&&(k=new mxPoint(k.x+p*d,k.y+m*d),f.push(k)),k=new mxPoint(k.x+u*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+u*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+p*d,k.y+m*d));f.push(k)};
+var k=h;null==c&&(c=new mxPoint(h.x+(e.x-h.x)/2,h.y+(e.y-h.y)/2));a(c.x,c.y,!0);a(e.x,e.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,d){if(d==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return Ia.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,
1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=
-mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;l.prototype.constraints=mxRectangleShape.prototype.constraints;D.prototype.constraints=
-mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxEllipse.prototype.constraints;da.prototype.constraints=mxEllipse.prototype.constraints;ma.prototype.constraints=mxEllipse.prototype.constraints;na.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;ta.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;
-Z.prototype.constraints=mxRectangleShape.prototype.constraints;aa.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,
+mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=
+mxRectangleShape.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;ea.prototype.constraints=mxEllipse.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;
+ca.prototype.constraints=mxRectangleShape.prototype.constraints;da.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)];B.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)];R.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)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,
+.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)];l.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)];r.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)];I.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=
+.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)];Q.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)];f.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;d.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;X.prototype.constraints=null;W.prototype.constraints=null;Q.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)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
-new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];L.prototype.constraints=null;ca.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)];V.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
+.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;W.prototype.constraints=null;U.prototype.constraints=null;D.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)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
+new mxConnectionConstraint(new mxPoint(1,.5),!1)];ia.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];I.prototype.constraints=null;Y.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)];M.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){c.escape();var b=c.getDeletableCells(c.getSelectionCells());if(null!=b&&0<b.length){var d=c.model.getParents(b);c.removeCells(b,a);if(null!=d){a=[];for(b=0;b<d.length;b++)c.model.contains(d[b])&&(c.model.isVertex(d[b])||c.model.isEdge(d[b]))&&a.push(d[b]);c.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,c=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&c.isEnabled()};this.addAction("new...",function(){c.openLink(b.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));b.showDialog((new OpenDialog(this)).container,
320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=k;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=k;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(c,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
function(){mxClipboard.cut(c)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(c)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&mxClipboard.paste(c)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())){c.getModel().beginUpdate();try{var b=mxClipboard.paste(c);if(null!=b){a=!0;for(var d=0;d<b.length&&
-a;d++)a=a&&c.model.isEdge(b[d]);var f=c.view.translate,g=c.view.scale,e=f.x,n=f.y,f=null;if(1==b.length&&a){var h=c.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:c.getBoundingBoxFromGeometry(b,a);if(null!=f){var k=Math.round(c.snap(c.popupMenuHandler.triggerX/g-e)),u=Math.round(c.snap(c.popupMenuHandler.triggerY/g-n));c.cellsMoved(b,k-f.x,u-f.y)}}}finally{c.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
+a;d++)a=a&&c.model.isEdge(b[d]);var f=c.view.translate,g=c.view.scale,e=f.x,m=f.y,f=null;if(1==b.length&&a){var h=c.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:c.getBoundingBoxFromGeometry(b,a);if(null!=f){var k=Math.round(c.snap(c.popupMenuHandler.triggerX/g-e)),u=Math.round(c.snap(c.popupMenuHandler.triggerY/g-m));c.cellsMoved(b,k-f.x,u-f.y)}}}finally{c.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");
this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){c.setSelectionCells(c.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){c.turnShapes(c.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){c.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){c.selectEdges()},
null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){c.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){c.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!c.isSelectionEmpty()){c.getModel().beginUpdate();try{var a=c.isCellMovable(c.getSelectionCell())?1:0;c.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);c.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);c.toggleCellStyles(mxConstants.STYLE_ROTATABLE,
a);c.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);c.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);c.toggleCellStyles("connectable",a)}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){c.home()},null,null,"Home");this.addAction("exitGroup",function(){c.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){c.enterGroup()},null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){c.foldCells(!0)},
@@ -2583,14 +2584,14 @@ this.addAction("zoomOut",function(a){c.zoomOut()},null,null,Editor.ctrlKey+" - (
a.y*c.view.scale,c.container.scrollLeft=Math.min(a.x*c.view.scale,(c.container.scrollWidth-c.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){c.pageVisible||this.get("pageView").funct();var a=c.pageFormat,b=c.pageScale;c.zoomTo(Math.floor(20*Math.min((c.container.clientWidth-10)/(2*a.width)/b,(c.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(c.container)&&(a=c.getPagePadding(),c.container.scrollTop=Math.min(a.y,
(c.container.scrollHeight-c.container.clientHeight)/2),c.container.scrollLeft=Math.min(a.x,(c.container.scrollWidth-c.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){c.pageVisible||this.get("pageView").funct();c.zoomTo(Math.floor(20*(c.container.clientWidth-10)/c.pageFormat.width/c.pageScale)/20);if(mxUtils.hasScrollbars(c.container)){var a=c.getPagePadding();c.container.scrollLeft=Math.min(a.x*c.view.scale,(c.container.scrollWidth-
c.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*c.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&c.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,
-parseInt(100*c.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){c.setGridEnabled(!c.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.isGridEnabled()});m.setEnabled(!1);
-m=this.addAction("guides",function(){c.graphHandler.guidesEnabled=!c.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){c.tooltipHandler.setEnabled(!c.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a=
-new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!c.foldingEnabled;c.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.foldingEnabled});m.isEnabled=k;m=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!c.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return c.pageVisible});
-m=this.addAction("connectionArrows",function(){c.connectionArrowsEnabled=!c.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){c.setConnectable(!c.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionHandler.isEnabled()});
-m=this.addAction("copyConnect",function(){c.connectionHandler.setCreateTarget(!c.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return c.connectionHandler.isCreateTarget()});m.isEnabled=k;m=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.editor.autosave});m.isEnabled=k;m.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);c.openLink(RESOURCES_PATH+"/help"+a+".html")});var l=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){l||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){l=!1}),l=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,b,d,f){return this.addAction(a,function(){if(null!=d&&c.cellEditor.isContentEditing())d();else{c.stopEditing(!1);c.getModel().beginUpdate();try{c.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+parseInt(100*c.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){c.setGridEnabled(!c.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.isGridEnabled()});l.setEnabled(!1);
+l=this.addAction("guides",function(){c.graphHandler.guidesEnabled=!c.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){c.tooltipHandler.setEnabled(!c.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a=
+new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!c.foldingEnabled;c.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!c.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return c.pageVisible});
+l=this.addAction("connectionArrows",function(){c.connectionArrowsEnabled=!c.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){c.setConnectable(!c.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionHandler.isEnabled()});
+l=this.addAction("copyConnect",function(){c.connectionHandler.setCreateTarget(!c.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return c.connectionHandler.isCreateTarget()});l.isEnabled=k;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=k;l.visible=!1;this.addAction("help",function(){var a=
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);c.openLink(RESOURCES_PATH+"/help"+a+".html")});var n=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){n||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){n=!1}),n=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,d,f){return this.addAction(a,function(){if(null!=d&&c.cellEditor.isContentEditing())d();else{c.stopEditing(!1);c.getModel().beginUpdate();try{c.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?c.updateLabelElements(c.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&c.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?c.updateLabelElements(c.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&c.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&c.updateLabelElements(c.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
-c.replaceElement(a)})}finally{c.getModel().endUpdate()}}},null,null,f)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
+c.replaceElement(a)})}finally{c.getModel().endUpdate()}}},null,null,f)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,null),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}});
this.addAction("dashed",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,"1"),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}});this.addAction("dotted",function(){c.getModel().beginUpdate();try{c.setCellStyles(mxConstants.STYLE_DASHED,"1"),c.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
@@ -2601,14 +2602,14 @@ d=null!=e?e.style:c.getCellStyle(a[0]),f="1"==mxUtils.getValue(d,mxConstants.STY
mxUtils.bind(this,function(){var a=c.getSelectionCells();if(null!=a&&0<a.length){var b=c.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(d){null!=d&&c.setCellStyle(mxUtils.trim(d),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){c.isEnabled()&&!c.isSelectionEmpty()&&b.setDefaultStyle(c.getSelectionCell())},null,null,Editor.ctrlKey+
"+Shift+D");this.addAction("clearDefaultStyle",function(){c.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=c.getSelectionCell();if(null!=a&&c.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var d=c.view.translate,f=c.view.scale,g=d.x,d=d.y,a=c.getModel().getParent(a),p=c.getCellGeometry(a);c.getModel().isVertex(a)&&null!=p;)g+=p.x,d+=p.y,a=c.getModel().getParent(a),p=
c.getCellGeometry(a);g=Math.round(c.snap(c.popupMenuHandler.triggerX/f-g));f=Math.round(c.snap(c.popupMenuHandler.triggerY/f-d));b.addPointAt(b.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=c.getSelectionCells();if(null!=a){a=c.addAllEdges(a);c.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var d=a[b];if(c.getModel().isEdge(d)){var f=
-c.getCellGeometry(d);null!=f&&(f=f.clone(),f.points=null,c.getModel().setGeometry(d,f))}}}finally{c.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
+c.getCellGeometry(d);null!=f&&(f=f.clone(),f.points=null,c.getModel().setGeometry(d,f))}}}finally{c.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
function(){if(c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=c.getView().getState(c.getSelectionCell()),d="";null!=e&&(d=e.style[mxConstants.STYLE_IMAGE]||d);var f=c.cellEditor.saveSelection();b.showImageDialog(a,d,function(a,d,b){if(c.cellEditor.isContentEditing())c.cellEditor.restoreSelection(f),c.insertImage(a,d,b);else{var g=c.getSelectionCells();if(null!=a&&(0<a.length||0<g.length)){var e=null;c.getModel().beginUpdate();
-try{if(0==g.length){var p=c.getFreeInsertPoint(),e=g=[c.insertVertex(c.getDefaultParent(),null,"",p.x,p.y,d,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];c.fireEvent(new mxEventObject("cellsInserted","cells",e))}c.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,g);var n=c.view.getState(g[0]),r=null!=n?n.style:c.getCellStyle(g[0]);"image"!=r[mxConstants.STYLE_SHAPE]&&"label"!=r[mxConstants.STYLE_SHAPE]?c.setCellStyles(mxConstants.STYLE_SHAPE,"image",
-g):0==a.length&&c.setCellStyles(mxConstants.STYLE_SHAPE,null,g);if(1==c.getSelectionCount()&&null!=d&&null!=b){var k=g[0],m=c.getModel().getGeometry(k);null!=m&&(m=m.clone(),m.width=d,m.height=b,c.getModel().setGeometry(k,m))}}finally{c.getModel().endUpdate()}null!=e&&(c.setSelectionCells(e),c.scrollCellToVisible(e[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-(c.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));m=this.addAction("outline",
+try{if(0==g.length){var p=c.getFreeInsertPoint(),e=g=[c.insertVertex(c.getDefaultParent(),null,"",p.x,p.y,d,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];c.fireEvent(new mxEventObject("cellsInserted","cells",e))}c.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,g);var m=c.view.getState(g[0]),r=null!=m?m.style:c.getCellStyle(g[0]);"image"!=r[mxConstants.STYLE_SHAPE]&&"label"!=r[mxConstants.STYLE_SHAPE]?c.setCellStyles(mxConstants.STYLE_SHAPE,"image",
+g):0==a.length&&c.setCellStyles(mxConstants.STYLE_SHAPE,null,g);if(1==c.getSelectionCount()&&null!=d&&null!=b){var k=g[0],l=c.getModel().getGeometry(k);null!=l&&(l=l.clone(),l.width=d,l.height=b,c.getModel().setGeometry(k,l))}}finally{c.getModel().endUpdate()}null!=e&&(c.setSelectionCells(e),c.scrollCellToVisible(e[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
+(c.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
+this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline",
mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,
-null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,c,k){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,b,e,c,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
+null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,c,k){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,c,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
function Action(a,b,e,c,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=c;this.shortcut=k;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};
Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=18E5;DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};
DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,e,c){this.updateFileData();this.clearAutosave()};DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this))};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,c){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
@@ -2623,15 +2624,15 @@ DrawioFile.prototype.autosave=function(a,b,e,c){null==this.lastAutosave&&(this.l
mxUtils.bind(this,function(a){null!=c&&c(a)}))}else null!=e&&e(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};
DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),c=0<e?a.substring(e):"",e=b.lastIndexOf(".");return c===(0<e?b.substring(e):"")}return a==b};
DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,e,c){DrawioFile.call(this,a,b);this.title=e;this.mode=c?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};
-LocalFile.prototype.saveFile=function(a,b,e,c){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),m=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
-(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):m(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
+LocalFile.prototype.saveFile=function(a,b,e,c){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),l=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var c=a.lastIndexOf("."),c=0<c?a.substring(c+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+c+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
+(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):l(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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":
IMAGE_PATH+"/spin.gif";Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=":
IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
IMAGE_PATH+"/img-lo-res.png";Editor.cameraLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/BJREFUWAnFl0uIjWEYx885buPSuGwmSYwtwsY1ikKSNYNclmQnadgrZSPlsnBLSlaGBdNYKY0Vdi4L4zYzIqxGxmXG//d+7//0+uY7nWMiT/2/53mf+3v7vnNKpf9M5UbrDw8Pj4m+wzmeT1FBUS6Xf+YNox6reMONukijMXUTM3NmI75PyXcJPwRWg5kS7xysDLNmfEUxpx2rceNE50IlYjyRklcLf0prY+x4BTqfmx3ZUHQaO9ISGngYq38V/1EH+ECPa+QaK1u1kVBQirDMChiS3CTeIkwWvghtwhKBpZ8g1CO2B99FynVU/KowSRgQ3mlrBsVZ1awmQlS0SGbfXglfBPbdRGMm5O8RXg2P835pDCvzWjghTHETcLpZLHwS8kTCtBEK1SN83Egam8YxyVZqc+Do5qkwS+gT9grNwkUBG6cbsG/gs3BTuC/0ChCxq4QtwgzBMdwUZBPyN4Ftfi4sYPZHktbOSRlIuutRP5jYj0ueZp88xyYcS/zZoiLyQT1IA/cTj7eSlwnrhI+JnkQbCwo2Sx/2M7VJt17wdhVtgxvrpoFnAuSAbJQ97biZAlKxBfD9wgOhV+BgIR/AZtJ4kwD5PGSj7OmmekjWEy0oAQHAS3+KpBpzXqYK3UItopHpSRMno2N+cm7gDYnfRCcr3QBqriMHLJDkeyhFfiG5aVbK+8rhtP9M6QcIEJHX5Fp9NMAyQlYiu+OOJNlODCIXyka/P23bncTdiC7OydC1+v1Bsb+5r84DK8S3Rdmf5cRUFW3bXtWUSt1Rdk6G4SyJV2o1YId+vNUxr+x5yCJiapFtcxQzLjrxboGcMxvFJwEOKnLwjIbkx/sdSmeSaUY++SwTAxV+4DJT7RVwkbk46gNCsifIItuy0e9PF33Cb4homhN5YRyzL5q5V2VNkv98kqgoGTo3YF9CnMM5Y5rItFfvBSi9JulVXOgI+VwIntkt+SaZ6weQfcovJf7zpTfl86P/wAF7Fz18NeKwmvAWCaX0Z/uMHQr42ZxvR/Rxcw5xM+9J/CJq8w2gduDhmDgso/QrBH47dEXQ1IqczyHpIOfIRtnTtV7SwO1oKXKkU3fbToFGSDHtMWcaH1WBuVYnDbRFi99iqSMySdzxXckrazUh23KBVYGIcfNBkTxca0e4ATJ0KukGYVBgr/MnlhPOtQq/ksUfCbzh+EFCjtnCUoHfjhA/OsiTv2HcEvJMELp0VakZDliTmriTdPivxU4VmEhtPrGV+KJhO7ZKt0doFZh1fgZSBWIW2AGEHwg3BUWOnKtH+suqdw07tYMfglCrWPD5mw9qVYuniaXkT0OtWaSuo5LJTY1RBf+roF9X5+y/5qU+DAAAAABJRU5ErkJggg==";
-Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node width. Possible value are px or auto. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value are px or auto. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
+Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=
a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var d=document.createElement("style");d.setAttribute("type","text/css");d.appendChild(document.createTextNode(a.css));var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(d,b)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=
a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(d=document.createElement("style"),d.setAttribute("type",
@@ -2640,15 +2641,15 @@ null;if(null!=d){var b=d.getElementsByTagName("parsererror");if(null!=b&&0<b.len
this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var f=new mxCodec(c.ownerDocument);f.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==d.getAttribute("math");b=d.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);
mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==d.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var d=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&d.setAttribute("style",this.graph.currentStyle);
null!=this.graph.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));d.setAttribute("math",this.graph.mathEnabled?"1":"0");d.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return d};Editor.prototype.isDataSvg=function(a){try{var d=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=d&&(null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),
-null!=d&&0<d.length)){var b=mxUtils.parseXml(d).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(z){}return!1};Editor.prototype.extractGraphModel=function(a,d){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),c=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){c.push(b[f]);break}0<c.length&&(b=c[0].getAttribute("data-mxgraph"),null!=b?(c=JSON.parse(b),null!=c&&null!=c.xml&&(c=mxUtils.parseXml(c.xml),
+null!=d&&0<d.length)){var b=mxUtils.parseXml(d).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(A){}return!1};Editor.prototype.extractGraphModel=function(a,d){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),c=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){c.push(b[f]);break}0<c.length&&(b=c[0].getAttribute("data-mxgraph"),null!=b?(c=JSON.parse(b),null!=c&&null!=c.xml&&(c=mxUtils.parseXml(c.xml),
a=c.documentElement)):(c=c[0].getElementsByTagName("div"),0<c.length&&(b=mxUtils.getTextContent(c[0]),b=this.graph.decompress(b),0<b.length&&(c=mxUtils.parseXml(b),a=c.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(b=a.getAttribute("content"),null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)a=mxUtils.parseXml(b).documentElement;else throw{message:mxResources.get("notADiagramFile")};
null==a||d||(c=null,"diagram"==a.nodeName?c=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(c=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=c&&(b=this.graph.decompress(mxUtils.getTextContent(c)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||d&&"mxfile"==a.nodeName||(a=null);return a};var e=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?!0:this.originalNoForeignObject;e.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var c=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){c.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,d){a=null!=a?a:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(d||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var b=Editor.prototype.init;Editor.prototype.init=function(){b.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,
-d){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;c[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+d){this.graph.mathEnabled&&"hidden"!=this.graph.container.style.visibility&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;c[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
var d=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,c,f){void 0!==b?d.push(b.replace(/\\'/g,"'")):void 0!==c?d.push(c.replace(/\\"/g,'"')):void 0!==f&&d.push(f);return""});/,\s*$/.test(a)&&d.push("");return d};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,d){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
-var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}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?
+var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}if(null!=window.StyleFormatPanel){var n=Format.prototype.init;Format.prototype.init=function(){n.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()};var t=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=t.apply(this,arguments);if(mxClient.IS_SVG){var d=this.editorUi,b=d.editor.graph,c=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var c=new ChangePageSetup(d);c.ignoreColor=!0;c.ignoreImage=!0;c.shadowVisible=a;b.model.execute(c)},{install:function(a){this.listener=function(){a(b.shadowVisible)};d.addListener("shadowVisibleChanged",
this.listener)},destroy:function(){d.removeListener(this.listener)}});Editor.shadowOptionEnabled||(c.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(c,60));a.appendChild(c)}return a};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),
function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};StyleFormatPanel.prototype.defaultColorSchemes=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},
@@ -2667,7 +2668,7 @@ function(a){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("ti
(b.style.width="100px",d.style.width="100px",d.style.marginLeft="2px"),a.appendChild(d));return a}}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;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(a){d=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)d=mxUtils.clone(a)}p.apply(this,arguments);var d=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){d=null});this.isMouseInsertPoint=function(){return null!=d};var b=this.getInsertPoint;
this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):b.apply(this,arguments)};var c=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a),d=null!=d?d.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==d.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,d){d.height=Math.max(d.height,20);if(1<d.height/20){var b=d.height%20;d.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a,
-d)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=d.marginLeft||0;b.marginRight=d.marginRight||0;b.marginTop=d.marginTop||0;b.marginBottom=d.marginBottom||0;b.resizeParent=!1;return b}return c.apply(this,arguments)}};var n=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){n.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.highlightCell=function(a,
+d)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=d.marginLeft||0;b.marginRight=d.marginRight||0;b.marginTop=d.marginTop||0;b.marginBottom=d.marginBottom||0;b.resizeParent=!1;return b}return c.apply(this,arguments)}};var m=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){m.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.highlightCell=function(a,
d,b){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var c=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),f=new mxCellHighlight(this,d,c,!1);f.highlight(a);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)},b)}};Graph.prototype.addSvgShadow=function(a,d,b){b=null!=b?b:!1;
var c=a.ownerDocument,f=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"filter"):c.createElement("filter");f.setAttribute("id",this.shadowId);var g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):c.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",this.svgShadowBlur);g.setAttribute("result","blur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feOffset"):c.createElement("feOffset");
g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feFlood"):c.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",this.svgShadowOpacity);g.setAttribute("result","offsetColor");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feComposite"):
@@ -2680,224 +2681,224 @@ mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegist
[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=
[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.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.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(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,n,k){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){m.value=Math.max(1,
-Math.min(h,Math.max(parseInt(m.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(m.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=ca.get(),n=1/d.pageScale,k=t.checked;if(k)var n=parseInt(T.value),r=parseInt(O.value),n=Math.min(p.height*r/(g.height/d.view.scale),p.width*n/(g.width/d.view.scale));else n=parseInt(q.value)/(100*d.pageScale),isNaN(n)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*
-c);p.height=Math.ceil(p.height*c);n*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,n,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=
-function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,n,e,h,f,!0)}return b}var c=parseInt(V.value)/100;isNaN(c)&&(c=1,V.value="100 %");var c=.75*c,g=w.value,e=m.value,h=!k.checked,n=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||
-(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var y=a.pages[u],g=y==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,l=null,x=null;null==y.viewState&&null==y.mapping&&null==y.root&&a.updatePageRoot(y);null!=y.viewState?(e=y.viewState.pageVisible,r=y.viewState.mathEnabled,l=y.viewState.background,x=y.viewState.backgroundImage):null!=y.mapping&&null!=y.mapping.diagramMap&&(r="0"!=y.mapping.diagramMap.get("mathEnabled"),l=y.mapping.diagramMap.get("background"),
-x=y.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);g.background=l;g.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;g.pageVisible=e;g.mathEnabled=r;var v=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?u+1:v.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(y);g.model.setRoot(y.root)}n=b(g,n,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else n=b(f);n.mathEnabled&&
-(h=n.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),
-h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));n.closeDocument();!n.mathEnabled&&d&&PrintDialog.printPreview(n)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");
-e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");n.appendChild(k);e=document.createElement("span");
-mxUtils.write(e,mxResources.get("printAllPages"));n.appendChild(e);mxUtils.br(n);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");n.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";n.appendChild(w);e=document.createElement("span");
-mxUtils.write(e,mxResources.get("to"));n.appendChild(e);var m=w.cloneNode(!0);n.appendChild(m);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(m,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(m,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;m.value=p;break}w.setAttribute("max",h);m.setAttribute("max",h);1<h&&g.appendChild(n);var l=document.createElement("div");
-l.style.marginBottom="10px";var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");l.appendChild(x);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));l.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";l.appendChild(q);mxEvent.addListener(q,"focus",function(){x.checked=!0});
-g.appendChild(l);var n=n.cloneNode(!1),t=x.cloneNode(!0);t.setAttribute("value","fit");x.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);n.appendChild(e);l=document.createElement("table");l.style.display="inline-block";var J=document.createElement("tbody"),K=document.createElement("tr"),M=K.cloneNode(!0),S=document.createElement("td"),D=S.cloneNode(!0),W=S.cloneNode(!0),Q=S.cloneNode(!0),
-X=S.cloneNode(!0),U=S.cloneNode(!0);S.style.textAlign="right";Q.style.textAlign="right";mxUtils.write(S,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";D.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));W.appendChild(e);mxUtils.write(Q,mxResources.get("fitToBy"));var O=T.cloneNode(!0);X.appendChild(O);
-mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(O,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));U.appendChild(e);K.appendChild(S);K.appendChild(D);K.appendChild(W);M.appendChild(Q);M.appendChild(X);M.appendChild(U);J.appendChild(K);J.appendChild(M);l.appendChild(J);n.appendChild(l);g.appendChild(n);n=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
-"12px";mxUtils.write(e,mxResources.get("paperSize"));n.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var ca=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));n.appendChild(e);var V=document.createElement("input");V.style.cssText="margin:0 8px 0 8px;";V.setAttribute("value","100 %");V.style.width="60px";n.appendChild(V);
-g.appendChild(n);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&e.appendChild(n);a.isOffline()||(l=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),l.className="geBtn",e.appendChild(l));PrintDialog.previewEnabled&&(l=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
-c(!1)}),l.className="geBtn",e.appendChild(l));l=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});l.className="geBtn gePrimaryBtn";e.appendChild(l);a.editor.cancelFirst||e.appendChild(n);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1,
+Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*
+c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=
+function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||
+(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"),
+v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m=b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&&
+(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),
+h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");
+e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span");
+mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span");
+mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div");
+n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0});
+g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"),K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0),
+W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V);
+mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G);m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom=
+"12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e);var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M);
+g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
+c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=
this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),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)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=
this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,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(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";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.sidebarFooterHeight=36;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.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
-!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(n){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
-6<a.length}catch(h){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(n){}})();
+!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(m){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&
+6<a.length}catch(h){}};c.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{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(m){}})();
EditorUi.prototype.openLink=function(a,b){return this.editor.graph.openLink(a,b)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return"1"==urlParams.appcache||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,
length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=d.spin;d.spin=function(c,g){var e=!1;this.active||(f.call(this,c),this.active=!0,null!=g&&(e=document.createElement("div"),e.style.position="absolute",e.style.whiteSpace="nowrap",e.style.background="#4B4243",e.style.color="white",e.style.fontFamily="Helvetica, Arial",e.style.fontSize="9pt",e.style.padding="6px",e.style.paddingLeft="10px",e.style.paddingRight=
"10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=g+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0,
b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,g)}));this.stop();return a}),e=!0);return e};var g=d.stop;d.stop=function(){g.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,d){var b=g;g+=d;return a.substring(b,g)}function f(a){a=d(a,4);return a.charCodeAt(3)+
(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var g=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(g-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var d=mxUtils.parseXml(a),b=this.editor.extractGraphModel(d.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(p){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var n=mxUtils.parseXml(d),h=this.editor.extractGraphModel(n.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(w){}return b};EditorUi.prototype.validateFileData=
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var b=a.apply(this,arguments);if(null==b)try{var c=d.indexOf("&lt;mxfile ");if(0<=c){var e=d.lastIndexOf("&lt;/mxfile&gt;");e>c&&(b=d.substring(c,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var m=mxUtils.parseXml(d),h=this.editor.extractGraphModel(m.documentElement,null!=this.pages),b=null!=h?mxUtils.getXml(h):""}catch(w){}return b};EditorUi.prototype.validateFileData=
function(a){if(null!=a&&0<a.length){var d=a.indexOf('<meta charset="utf-8">');0<=d&&(a=a.slice(0,d)+'<meta charset="utf-8"/>'+a.slice(d+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var d=null!=a?this.editor.extractGraphModel(a,!0):null;null!=d&&(a=d);if(null!=a){d=this.editor.graph;d.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");
if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=c.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(c[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));d.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
-this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,n,h,k,u,m,r){b=null!=b?b:this.editor.graph;n=null!=n?n:!1;m=null!=m?m:!0;var d,f=null;null==c||
+this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)d.model.execute(new ChangePage(this,b[e],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,e,m,h,k,u,l,r){b=null!=b?b:this.editor.graph;m=null!=m?m:!1;l=null!=l?l:!0;var d,f=null;null==c||
c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?d="_blank":f=d=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var p=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(p);if(b.decompress(g)!=p)return p;p=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(p,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(p)}r?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",
-navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!n&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!n&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,m,f);return a};EditorUi.prototype.getXmlFileData=
+navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!m&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=c?c.getTitle():null,d,f);else if(h||!m&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,u,l,f);return a};EditorUi.prototype.getXmlFileData=
function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var d=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d)));mxUtils.setTextContent(this.currentPage.node,c);d=this.fileNode.cloneNode(!1);if(b)d.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping;this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(c=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,n,h,k,u,m){n=null!=n?n:!0;k=null!=k?k:this.getXmlFileData(n,null!=h?h:!1);m=null!=m?m:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
-var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(k,h,m,window.location.href,a,b,c,e,n,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,n,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
-b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==n&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
-n&&(n=n.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==n?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=n?
-'<meta http-equiv="refresh" content="0;URL=\''+n+"'\"/>\n":"")+"</head>\n<body"+(null==n&&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;">'+e+"</div>\n</div>\n"+(null==n?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+n+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,n){null!=n&&(n=n.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':
-">")+"\n<head>\n"+(null==n?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=n?'<meta http-equiv="refresh" content="0;URL=\''+n+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==n?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-n+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
+e.writeRealtimeToNode(c),c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.pages[f].node,c),e.needsUpdate=!1);d.appendChild(this.pages[f].node)}}return d};EditorUi.prototype.getFileData=function(a,b,c,e,m,h,k,u,l){m=null!=m?m:!0;k=null!=k?k:this.getXmlFileData(m,null!=h?h:!1);l=null!=l?l:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());
+var d=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:d.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(k,h,l,window.location.href,a,b,c,e,m,u);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=function(a,b,c,e,m,h){h=null!=h?h:!0;var d=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var d=h?b.getGraphBounds():
+b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(d.x/g-b.view.translate.x);g=Math.floor(d.y/g-b.view.translate.y);d=b.background;null==m&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=
+m&&(m=m.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=m?
+'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&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;">'+e+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+
+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,e,m){null!=m&&(m=m.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':
+">")+"\n<head>\n"+(null==m?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==m?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
+m+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var d=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=d?this.editor.extractGraphModel(d,!0):null;null!=a&&(d=a);if(null!=d&&"mxfile"==d.nodeName&&(a=d.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=
d;this.pages=[];for(d=0;d<a.length;d++){var b=new DiagramPage(a[d]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];d=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=d&&(this.fileNode=d.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(d.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,c,e,n,h){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
-var d=this.getBaseFilename(),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,n));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,
-function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b);this.editor.graph.pageVisible=c;return f}catch(H){this.handleError(H)}}));else{var p=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var m=this.editor.graph.background;
-m==mxConstants.NONE&&(m=null);var l=this.editor.graph.getSvg(m,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(l);this.convertImages(l,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(F){this.handleError(F)}};
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(d);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(){var a=this.getCurrentFile(),a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));return a};EditorUi.prototype.downloadFile=function(a,b,c,e,m,h){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
+var d=this.getBaseFilename(),f=d+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,m));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=d+".png":"jpeg"==a&&(f=d+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,
+function(d,b){try{var c=this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(d,a,e,b);this.editor.graph.pageVisible=c;return f}catch(L){this.handleError(L)}}));else{var p=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var l=this.editor.graph.background;
+l==mxConstants.NONE&&(l=null);var n=this.editor.graph.getSvg(l,null,null,null,null,e);c&&this.editor.graph.addSvgShadow(n);this.convertImages(n,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=d+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(z){this.handleError(z)}};
EditorUi.prototype.createDownloadRequest=function(a,b,c,e){var d=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(d.width*d.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};d="0";if("xmlpng"==b&&(d="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&base64="+e+"&embedXml="+
d+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){var d=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();
this.editor.graph.model.clear();this.editor.undoManager.clear();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.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();
this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.chromeless||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):
-this.editor.graph.lightbox&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(n){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(n){}}catch(n){null!=
-window.console&&console.log("error in fileLoaded:",a,n);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=n&&null!=n.message?":err:"+encodeURIComponent(n.message):"")+(null!=n&&null!=n.stack?"&stack="+encodeURIComponent(n.stack):"")}catch(h){}this.handleError(n,mxResources.get("errorLoadingFile"),mxUtils.bind(this,
+this.editor.graph.lightbox&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(m){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(m){}}catch(m){null!=
+window.console&&console.log("error in fileLoaded:",a,m);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=m&&null!=m.message?":err:"+encodeURIComponent(m.message):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}catch(h){}this.handleError(m,mxResources.get("errorLoadingFile"),mxUtils.bind(this,
function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):c()}))}else c();return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){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!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,n,h,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,e,m,h,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var d=mxUtils.createXmlDocument(),b=d.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));d.appendChild(b);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=
function(a){var d=this.sidebar.palettes[a];if(null!=d){for(var b=0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var d=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:d.firstChild.nextSibling.nextSibling;var b=d.lastChild,c=b.previousSibling;d.insertBefore(b,a);d.insertBefore(c,b)};EditorUi.prototype.loadLibrary=
function(a){var d=mxUtils.parseXml(a.getData());if("mxlibrary"==d.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(a,b,d.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&
(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(d,b){if(0==d.length&&a.isEditable())null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f);else for(var c=
0;c<d.length;c++){var e=d[c],g=e.data;if(null!=g){var g=this.convertDataUri(g),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(this.editor.graph.decompress(e.xml)),0<g.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}});if(null!=this.sidebar&&null!=
b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var d=a.data;null!=d&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){d=this.convertDataUri(d);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+d,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var d=this.stringToCells(this.editor.graph.decompress(a.xml));
-return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;c=m.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&m.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var r=document.createElement("div");r.style.position="absolute";r.style.right="0px";r.style.top=
-"5px";mxClient.IS_QUIRKS||8==document.documentMode||(r.style.backgroundColor="inherit");m.style.position="relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title",mxResources.get("close"));l.setAttribute("align","top");l.setAttribute("border","0");l.className="geButton";l.style.marginRight="1px";l.style.marginTop="-1px";r.appendChild(l);var v=null;mxEvent.addListener(l,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=
-mxUtils.bind(this,function(){this.closeLibrary(a)});null!=v?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var q=this.editor.graph,t=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=l.cloneNode(!1),
-t.setAttribute("src",Editor.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="2px",t.style.marginTop="-2px",r.insertBefore(t,r.firstChild),m.style.paddingRight=18*r.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&(t.parentNode.removeChild(t),m.style.paddingRight=18*r.childNodes.length+"px")})):null==v&&(v=l.cloneNode(!1),v.setAttribute("src",IMAGE_PATH+"/download.png"),v.setAttribute("title",
-mxResources.get("save")),r.insertBefore(v,r.firstChild),mxEvent.addListener(v,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==v||a.isModified()||(m.style.paddingRight=18*r.childNodes.length+"px",v.parentNode.removeChild(v),v=null)});mxEvent.consume(d)})),m.style.paddingRight=18*r.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,d,c,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=
-0;g<a.length;g++){var h=q.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);G(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),H=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),
-q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=q.getSelectionCells(),b=q.view.getBounds(d),c=q.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=q.view.translate.x;b.y-=q.view.translate.y;C(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility=
-"hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),
-k.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,H(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility=
+return this.sidebar.createVertexTemplateFromCells(d,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var l=k.parentNode.previousSibling;c=l.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var r=document.createElement("div");r.style.position="absolute";r.style.right="0px";r.style.top=
+"5px";mxClient.IS_QUIRKS||8==document.documentMode||(r.style.backgroundColor="inherit");l.style.position="relative";var n=document.createElement("img");n.setAttribute("src",Dialog.prototype.closeImage);n.setAttribute("title",mxResources.get("close"));n.setAttribute("align","top");n.setAttribute("border","0");n.className="geButton";n.style.marginRight="1px";n.style.marginTop="-1px";r.appendChild(n);var q=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var b=
+mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(d)}}));if(a.isEditable()){var y=this.editor.graph,t=null,B=mxUtils.bind(this,function(d){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(d)}),F=mxUtils.bind(this,function(d){a.setModified(!0);a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=n.cloneNode(!1),
+t.setAttribute("src",Editor.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="2px",t.style.marginTop="-2px",r.insertBefore(t,r.firstChild),l.style.paddingRight=18*r.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&(t.parentNode.removeChild(t),l.style.paddingRight=18*r.childNodes.length+"px")})):null==q&&(q=n.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",
+mxResources.get("save")),r.insertBefore(q,r.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*r.childNodes.length+"px",q.parentNode.removeChild(q),q=null)});mxEvent.consume(d)})),l.style.paddingRight=18*r.childNodes.length+"px")}),H=mxUtils.bind(this,function(a,d,c,e){a=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(a)));for(var g=
+0;g<a.length;g++){var h=y.getCellGeometry(a[g]);null!=h&&h.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,d.width,d.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:d.width,h:d.height};null!=e&&(a.title=e);b.push(a);F(c);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),L=mxUtils.bind(this,function(a){if(y.isSelectionEmpty())y.getRubberband().isActive()?(y.getRubberband().execute(a),
+y.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=y.getSelectionCells(),b=y.view.getBounds(d),c=y.view.scale;b.x/=c;b.y/=c;b.width/=c;b.height/=c;b.x-=y.view.translate.x;b.y-=y.view.translate.y;H(d,b)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.shape&&(y.graphHandler.shape.node.style.visibility=
+"hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,null!=y.graphHandler.guide&&y.graphHandler.guide.setVisible(!1),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),
+k.style.cursor="default",this.sidebar.showTooltips=!0,y.panningManager.stop(),y.graphHandler.reset(),y.isMouseDown=!1,y.autoScroll=!0,L(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){y.isMouseDown&&null!=y.graphHandler.shape&&(y.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",y.autoScroll=!0,null!=y.graphHandler.guide&&y.graphHandler.guide.setVisible(!0),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility=
"visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border=
-"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,p,n,r,m,l){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,n),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&
-0<b.length&&(f.parentNode.removeChild(f),f=null);else{var w=!1,u=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);G(a);this.spinner.stop();w=!0}catch(V){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),g=0;g<p.length;g++){var h=mxUtils.getTextContent(p[g]),n=this.stringToCells(this.editor.graph.decompress(h)),
-r=this.editor.graph.getBoundingBoxFromGeometry(n);C(n,new mxRectangle(0,0,r.width,r.height),a)}w=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}}w||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=l&&null!=r&&(/(\.vsdx)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(l,function(a){u(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(d,r)&&null!=l?this.parseFile(l,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?u(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",
-k.style.cursor="");a.stopPropagation();a.preventDefault()}));l=l.cloneNode(!1);l.setAttribute("src",IMAGE_PATH+"/edit.gif");l.setAttribute("title",mxResources.get("edit"));r.insertBefore(l,r.firstChild);mxEvent.addListener(l,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=l.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));r.insertBefore(c,r.firstChild);mxEvent.addListener(c,"click",H);this.isOffline()||".scratchpad"!=
-a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:gray;text-decoration:none;",c.className="geButton",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),r.insertBefore(c,r.firstChild))}m.appendChild(r);m.style.paddingRight=18*r.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
+"3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,c,g,h,p,m,r,u,l){if(null!=d&&"image/"==c.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,m),d)],d[0].vertex=!0,H(d,new mxRectangle(0,0,p,m),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&
+0<b.length&&(f.parentNode.removeChild(f),f=null);else{var n=!1,w=mxUtils.bind(this,function(d,c){if(null!=d&&"text/xml"==c){var g=mxUtils.parseXml(d);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);F(a);this.spinner.stop();n=!0}catch(M){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),g=0;g<p.length;g++){var h=mxUtils.getTextContent(p[g]),m=this.stringToCells(this.editor.graph.decompress(h)),
+r=this.editor.graph.getBoundingBoxFromGeometry(m);H(m,new mxRectangle(0,0,r.width,r.height),a)}n=!0}catch(M){null!=window.console&&console.log("error in drop handler:",M)}}n||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=l&&null!=r&&(/(\.vsdx)($|\?)/i.test(r)||/(\.vssx)($|\?)/i.test(r))?this.importVisio(l,function(a){w(a,"text/xml")}):!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(d,r)&&null!=l?this.parseFile(l,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(d,c)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",
+k.style.cursor="");a.stopPropagation();a.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",IMAGE_PATH+"/edit.gif");n.setAttribute("title",mxResources.get("edit"));r.insertBefore(n,r.firstChild);mxEvent.addListener(n,"click",B);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==k&&B(a)});c=n.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));r.insertBefore(c,r.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=
+a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:gray;text-decoration:none;",c.className="geButton",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),r.insertBefore(c,r.firstChild))}l.appendChild(r);l.style.paddingRight=18*r.childNodes.length+"px"}};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=
4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position=
"relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),
Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",
Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity="0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor=
"#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=",Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};
-EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,n){a=new ImageDialog(this,a,b,c,e,n);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
-!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,n){a=new LibraryDialog(this,a,b,c,e,n);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
+EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showFooter=function(a){var d=document.getElementById("geFooter");null!=d&&(this.footerHeight=a,d.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,e,m){a=new ImageDialog(this,a,b,c,e,m);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,
+!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=new BackgroundImageDialog(this,mxUtils.bind(this,function(d){a(d)}));this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,e,m){a=new LibraryDialog(this,a,b,c,e,m);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==
this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,
function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){d();f.retry()}),"undefined"!=
typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden"));else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),
a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=f.message?a=mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error&&(a=mxUtils.htmlEntities(f.response.error));this.showError(b,a,e,c,g)}else null!=c&&c()};EditorUi.prototype.showError=
-function(a,b,c,e,n,h,k){a=new ErrorDialog(this,a,b,c,e,n,h,k);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,n)).container,
+function(a,b,c,e,m,h,k){a=new ErrorDialog(this,a,b,c,e,m,h,k);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var d=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(d.container,340,100,!0,!1);d.init()};EditorUi.prototype.confirm=function(a,b,c,e,m){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},function(){d();null!=c&&c()},e,m)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||
d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
-"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,n){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",
+"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,e,m){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",
!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var d=document.createElement("a"),f=!mxClient.IS_SF&&"undefined"!==typeof d.download;if(f||this.isOffline()){d.href=URL.createObjectURL(e?this.base64ToBlob(a,c):new Blob([a],{type:c}));f?d.download=b:d.setAttribute("target","_blank");
-document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(u){}}else this.createEchoRequest(a,b,c,e,n).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,n,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=n?"&format="+n:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
-function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),k=0;k<f;++k){for(var m=1024*k,l=Math.min(m+1024,c),r=Array(l-m),q=0;m<l;++q,++m)r[q]=d[m].charCodeAt(0);e[k]=new Uint8Array(r)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,n,h,k){h=null!=h?h:!1;k=null!=k?k:"vsdx"!=n&&(!mxClient.IS_IOS||!navigator.standalone);n=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,
-6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(v){this.handleError(v)}}))}catch(z){this.handleError(z)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
-mxResources.get("download"),!1,h,k,null,null,4<n?3:4,a,c,e);this.showDialog(b.container,420,n==(mxClient.IS_IOS?0:1)?160:4<n?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
+document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},0),d.click(),d.parentNode.removeChild(d)}catch(u){}}else this.createEchoRequest(a,b,c,e,m).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,e,m,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=m?"&format="+m:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
+function(a,b){b=b||"";for(var d=atob(a),c=d.length,f=Math.ceil(c/1024),e=Array(f),k=0;k<f;++k){for(var l=1024*k,n=Math.min(l+1024,c),r=Array(n-l),q=0;l<n;++q,++l)r[q]=d[l].charCodeAt(0);e[k]=new Uint8Array(r)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,e,m,h,k){h=null!=h?h:!1;k=null!=k?k:"vsdx"!=m&&(!mxClient.IS_IOS||!navigator.standalone);m=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(d,b){try{if("_blank"==b)if(null==c||"image/"!=c.substring(0,
+6)||"image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,c,e);else b==App.MODE_DEVICE?this.doSaveLocalFile(a,d,c,e):null!=d&&0<d.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,d,c,e,b,f)}catch(C){this.handleError(C)}}))}catch(A){this.handleError(A)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
+mxResources.get("download"),!1,h,k,null,null,4<m?3:4,a,c,e);this.showDialog(b.container,420,m==(mxClient.IS_IOS?0:1)?160:4<m?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
'"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var d=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var c=d.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=c.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=c.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var d=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",d);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,
-function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,n){this.isLocalFileSave()?this.saveLocalFile(c,
-a,e,n,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,n,b,d)}),c,n,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,n,h,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,
-mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(A){this.handleError(A)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(A){this.handleError(A)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
-mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,null,4<d?3:4,e,h,n);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,n,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,n,h,k,m,l){if(this.spinner.spin(document.body,
-mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,k,m,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",p=mxUtils.bind(this,function(a){this.spinner.stop();n&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,l));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
+function(){this.openInNewWindow(d.substring(d.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,e,m){this.isLocalFileSave()?this.saveLocalFile(c,
+a,e,m,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,d){return this.createEchoRequest(c,a,e,m,b,d)}),c,m,e)};EditorUi.prototype.saveRequest=function(a,b,c,e,m,h,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var f=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,
+mxUtils.bind(this,function(c){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,d,c)}catch(y){this.handleError(y)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,d,c)}catch(y){this.handleError(y)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,null,4<d?3:4,e,h,m);this.showDialog(a.container,380,d==(mxClient.IS_IOS?0:1)?160:4<d?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,e,m,h){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,e,m,h,k,l,n){if(this.spinner.spin(document.body,
+mxResources.get("export"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;d=b?null:this.editor.graph.background;d==mxConstants.NONE&&(d=null);null==d&&0==b&&(d="#ffffff");var f=this.editor.graph.getSvg(d,a,k,l,null,c);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",p=mxUtils.bind(this,function(a){this.spinner.stop();m&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,n));if(null!=this.editor.fontCss){var d=a.ownerDocument,d=null!=d.createElementNS?
d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(d)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||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(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,p,this.thumbImageCache)):p(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,n,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
-"disabled");h&&(a.appendChild(d),mxUtils.write(a,b),n||mxUtils.br(a));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,p,this.thumbImageCache)):p(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,e,m,h){h=null!=h?h:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type","checkbox");c&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);e&&d.setAttribute("disabled",
+"disabled");h&&(a.appendChild(d),mxUtils.write(a,b),m||mxUtils.br(a));return d};EditorUi.prototype.addEditButton=function(a,b){var d=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var c=this.getCurrentFile(),f="";null!=c&&c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";c=document.createElement("option");
c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("makeCopy"));e.appendChild(c);c=document.createElement("option");c.setAttribute("value","custom");mxUtils.write(c,mxResources.get("custom")+"...");e.appendChild(c);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,
300,80,!0,!1);a.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return d.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function d(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?
"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var c=document.createElement("select");c.style.width="100px";c.style.marginLeft="8px";c.style.marginRight="10px";c.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));c.appendChild(f);f=document.createElement("option");
f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));c.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));c.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),c.appendChild(f));a.appendChild(c);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",k=
null,k=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;d()});mxEvent.consume(a)}));d();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";a.appendChild(k);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return c.value},focus:function(){c.focus()}}};
-EditorUi.prototype.createLink=function(a,b,c,e,n,h,k,m){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=n&&0<n.length&&f.push("edit="+encodeURIComponent(n)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);
-break}a=!0;null!=k?c="#U"+encodeURIComponent(k):(d=this.getCurrentFile(),m||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
-"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,n,h,k,m,l,r,q){this.getBasenames();var d={};""!=n&&n!=mxConstants.NONE&&(d.highlight=n);"auto"!==e&&(d.target=e);l||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];k&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
-d.resize=!0);m&&c.push("layers");0<c.length&&(l&&c.push("lightbox"),d.toolbar=c.join(" "));null!=r&&0<r.length&&(d.edit=r);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+EditorUi.prototype.createLink=function(a,b,c,e,m,h,k,l){var d=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!=b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=m&&0<m.length&&f.push("edit="+encodeURIComponent(m)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a<this.pages.length;a++)if(this.pages[a]==this.currentPage){0<a&&f.push("page="+a);
+break}a=!0;null!=k?c="#U"+encodeURIComponent(k):(d=this.getCurrentFile(),l||null==d||d.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+d.getHash(),a=!1));a&&null!=d&&null!=d.getTitle()&&d.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(d.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,e,m,h,k,l,n,r,q){this.getBasenames();var d={};""!=m&&m!=mxConstants.NONE&&(d.highlight=m);"auto"!==e&&(d.target=e);n||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(d.zoom=c/100);c=[];k&&(c.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
+d.resize=!0);l&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),d.toolbar=c.join(" "));null!=r&&0<r.length&&(d.edit=r);null!=a?d.url=a:d.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(h?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";
var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";p.setAttribute("value","url");p.setAttribute("type","radio");p.setAttribute("name","type-embedhtmldialog");f=p.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(p);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));
-g.appendChild(k);var r=this.getCurrentFile();null==c&&null!=r&&r.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(r.getId())})));f.setAttribute("checked","checked");null==c&&p.setAttribute("disabled","disabled");d.appendChild(g);var m=
-this.addLinkSection(d),l=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");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="100%";d.appendChild(q);var t=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),G=this.addCheckbox(d,mxResources.get("layers"),!0),
-C=this.addCheckbox(d,mxResources.get("lightbox"),!0),H=this.addEditButton(d,C),y=H.getEditInput();y.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled");y.checked&&C.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(p.checked?c:null,l.checked,q.value,m.getTarget(),m.getColor(),t.checked,B.checked,
-G.checked,C.checked,H.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,n,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
+g.appendChild(k);var r=this.getCurrentFile();null==c&&null!=r&&r.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href","javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(r.getId())})));f.setAttribute("checked","checked");null==c&&p.setAttribute("disabled","disabled");d.appendChild(g);var l=
+this.addLinkSection(d),n=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");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="100%";d.appendChild(q);var t=this.addCheckbox(d,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,B=B=this.addCheckbox(d,mxResources.get("allPages"),g,!g),F=this.addCheckbox(d,mxResources.get("layers"),!0),
+H=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,H),x=L.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(H,"change",function(){H.checked?x.removeAttribute("disabled"):x.setAttribute("disabled","disabled");x.checked&&H.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,d,mxUtils.bind(this,function(){e(p.checked?c:null,n.checked,q.value,l.getTarget(),l.getColor(),t.checked,B.checked,
+F.checked,H.checked,L.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,e,m,h){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=
g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var k=document.createElement("div");k.style.whiteSpace="normal";mxUtils.write(k,mxResources.get("linkAccountRequired"));p.appendChild(k);k=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));
k.style.marginTop="12px";k.className="geBtn";p.appendChild(k);d.appendChild(p);k=document.createElement("a");k.style.paddingLeft="12px";k.style.color="gray";k.style.fontSize="11px";k.setAttribute("href","javascript:void(0);");mxUtils.write(k,mxResources.get("check"));p.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,
-null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,l=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",d.appendChild(m),mxUtils.write(d,mxResources.get("height")+
-":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=e+"px",d.appendChild(l),mxUtils.br(d);var q=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var t=null;if(null==g||g.constructor!=window.DriveFile||b)t=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var G=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,G),H=C.getEditInput(),y=this.addCheckbox(d,mxResources.get("layers"),
-!0);y.style.marginLeft=H.style.marginLeft;y.style.marginBottom="16px";y.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(y.removeAttribute("disabled"),H.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&G.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){n(q.getTarget(),q.getColor(),null==t?
-!0:t.checked,G.checked,C.getLink(),y.checked,null!=m?m.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
+null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,n=null;if(null!=c||null!=e)a+=30,mxUtils.write(d,mxResources.get("width")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",d.appendChild(l),mxUtils.write(d,mxResources.get("height")+
+":"),n=document.createElement("input"),n.setAttribute("type","text"),n.style.width="50px",n.style.marginLeft="6px",n.style.marginBottom="10px",n.value=e+"px",d.appendChild(n),mxUtils.br(d);var q=this.addLinkSection(d,h);c=null!=this.pages&&1<this.pages.length;var t=null;if(null==g||g.constructor!=window.DriveFile||b)t=this.addCheckbox(d,mxResources.get("allPages"),c,!c);var F=this.addCheckbox(d,mxResources.get("lightbox"),!0),H=this.addEditButton(d,F),L=H.getEditInput(),x=this.addCheckbox(d,mxResources.get("layers"),
+!0);x.style.marginLeft=L.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(x.removeAttribute("disabled"),L.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"));L.checked&&F.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){m(q.getTarget(),q.getColor(),null==t?
+!0:t.checked,F.checked,H.getLink(),x.checked,null!=l?l.value:null,null!=n?n.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(f);var g=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),!0);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,d,mxUtils.bind(this,function(){c(!g.checked,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:146,!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,c,e,k,h,m,l){m=null!=m?m:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==l?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(p);mxUtils.write(d,mxResources.get("zoom")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight=
-"12px";n.value=this.lastExportZoom||"100%";d.appendChild(n);mxUtils.write(d,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.value=this.lastExportBorder||"0";d.appendChild(q);mxUtils.br(d);var u=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),w=this.addCheckbox(d,mxResources.get("selectionOnly"),
-!1,f.isSelectionEmpty()),t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.style.marginLeft="24px";t.setAttribute("disabled","disabled");t.setAttribute("type","checkbox");h&&(d.appendChild(t),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(w,"change",function(){w.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(t.setAttribute("checked","checked"),t.defaultChecked=!0);var H=this.addCheckbox(d,
-mxResources.get("shadow"),f.shadowVisible),y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||y.setAttribute("disabled","disabled");b&&(d.appendChild(y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var L=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),E=null!=this.pages&&1<this.pages.length,I=this.addCheckbox(d,E?mxResources.get("allPages"):
-"",E,!E,null,"jpeg"!=l);I.style.marginLeft="24px";I.style.marginBottom="16px";E||(I.style.visibility="hidden");mxEvent.addListener(L,"change",function(){L.checked&&E?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")});m&&E||I.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,u.checked,!w.checked,H.checked,L.checked,y.checked,q.value,t.checked,!I.checked)}),null,c,e);this.showDialog(a.container,
-340,g,!0,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var p=this.addCheckbox(d,mxResources.get("fit"),
-!0),n=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(d,c),l=this.addCheckbox(d,mxResources.get("lightbox"),!0),q=this.addEditButton(d,l),t=q.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),B,!B);G.style.marginLeft=t.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?(B&&G.removeAttribute("disabled"),t.removeAttribute("disabled")):
-(G.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&l.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(p.checked,n.checked,m.checked,l.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,m,l){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var p="";c&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+d+'"'+p+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),
-null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};
-EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,m){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var n=" ",l="";e&&(n="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+n+"/>")}))}else l="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=l&&d.setAttribute("style",l),m(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
+function(a,b,c,e,k,h,l,n){l=null!=l?l:!0;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==n?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(p);mxUtils.write(d,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%";d.appendChild(m);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 q=this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=n),w=this.addCheckbox(d,mxResources.get("selectionOnly"),
+!1,f.isSelectionEmpty()),t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.style.marginLeft="24px";t.setAttribute("disabled","disabled");t.setAttribute("type","checkbox");h&&(d.appendChild(t),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),g+=26,mxEvent.addListener(w,"change",function(){w.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(t.setAttribute("checked","checked"),t.defaultChecked=!0);var L=this.addCheckbox(d,
+mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(d.appendChild(x),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),g+=26);var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=n),E=null!=this.pages&&1<this.pages.length,Q=this.addCheckbox(d,E?mxResources.get("allPages"):
+"",E,!E,null,"jpeg"!=n);Q.style.marginLeft="24px";Q.style.marginBottom="16px";E||(Q.style.visibility="hidden");mxEvent.addListener(I,"change",function(){I.checked&&E?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled")});l&&E||Q.setAttribute("disabled","disabled");a=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=m.value;k(m.value,q.checked,!w.checked,L.checked,I.checked,x.checked,u.value,t.checked,!Q.checked)}),null,c,e);this.showDialog(a.container,
+340,g,!0,!0);m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,e,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(g)}var p=this.addCheckbox(d,mxResources.get("fit"),
+!0),m=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(d,c),n=this.addCheckbox(d,mxResources.get("lightbox"),!0),q=this.addEditButton(d,n),t=q.getEditInput(),B=1<f.model.getChildCount(f.model.getRoot()),F=this.addCheckbox(d,mxResources.get("layers"),B,!B);F.style.marginLeft=t.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?(B&&F.removeAttribute("disabled"),t.removeAttribute("disabled")):
+(F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){a(p.checked,m.checked,l.checked,n.checked,q.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,e,k,h,l,n){function d(d){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");a&&(g+="max-width:100%;");var p="";c&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+d+'"'+p+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");d(a)}),null,null,null,mxUtils.bind(this,function(a){n({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";c&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):n({message:mxResources.get("unknownError")})}))}else n({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,e,k,h,l){var d=this.editor.graph.getSvg(),f=d.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&d.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(d);if(c){var m=" ",n="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");a&&(n+="max-width:100%;");this.convertImages(d,mxUtils.bind(this,function(a){l('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=n?' style="'+n+'"':"")+m+"/>")}))}else n="",e&&(d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),n+="cursor:pointer;"),a&&(a=parseInt(d.getAttribute("width")),b=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","0 0 "+a+" "+b),n+="max-width:100%;max-height:"+b+"px;",d.removeAttribute("height")),""!=n&&d.setAttribute("style",n),l(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var d=Math.floor(a/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(a/2592E3);if(1<d)return d+
" "+mxResources.get("months");d=Math.floor(a/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(a/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(a/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,e){e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var d=null;if("diagram"==a.nodeName)d=a;else if("mxfile"==a.nodeName){var c=a.getElementsByTagName("diagram");if(0<
c.length){var d=c[0],f=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:f.apply(this,arguments)}}}null!=d&&(c=b.decompress(mxUtils.getTextContent(d)),null!=c&&0<c.length&&(a=mxUtils.parseXml(c).documentElement))}c=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=c}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){var d=this.editor.graph,
f=null;if(null!=c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),f=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),e=d.getGlobalVariable,g=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);
d.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==f&&(f=this.getFileData(!0));var e=c.toDataURL("image/png"),e=this.writeGraphModelToPng(e,"zTXt","mxGraphModel",atob(this.editor.graph.compress(f)));a(e.substring(e.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(r){null!=b&&b(r)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)};EditorUi.prototype.getEmbeddedSvg=
function(a,b,c,e,k,h,l){l=b.background;l==mxConstants.NONE&&(l=null);b=b.getSvg(l,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=c&&b.setAttribute("resource",c);if(null!=k)this.convertImages(b,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,e,k,h,l,m,q){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,c,m):null,q)}catch(v){"Invalid image"==v.message?this.downloadFile(q):this.handleError(v)}}),null,
-this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,e,null,null,h,l)}catch(z){this.spinner.stop(),this.handleError(z)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var d=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),c=0,e={},h=mxUtils.bind(this,function(){if(0==c){for(var f=[b[0]],g=1;g<b.length;g++){var h=
-b[g].indexOf(")");f.push('url("');f.push(e[d(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var k=1;k<b.length;k++){var l=b[k].indexOf(")"),m=null,r=b[k].indexOf("format(",l);0<r&&(m=d(b[k].substring(r+7,b[k].indexOf(")",r))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;c++;var d="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(a))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(a))d=
-"application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(a))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(a))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(a))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(a))d="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(d){e[a]=d;c--;h()}),mxUtils.bind(this,
-function(a){c--;h()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(d(b[k].substring(0,l)),m)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,e,k,h,m,l,q,r,t,v,A,F){h=null!=h?h:!0;v=null!=v?v:this.editor.graph;A=null!=A?A:0;var d=q?null:v.background;d==mxConstants.NONE&&(d=null);null==d&&(d=e);null==d&&0==q&&(d=this.editor.graph.defaultPageBackgroundColor);this.convertImages(v.getSvg(d,null,null,F,null,null!=m?m:!0),mxUtils.bind(this,function(c){var f=new Image;f.onload=mxUtils.bind(this,
-function(){try{var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),n=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*n),b/g)):b/g);g=Math.ceil(l*g)+2*A;n=Math.ceil(l*n)+2*A;e.setAttribute("width",g);e.setAttribute("height",n);var p=e.getContext("2d");null!=d&&(p.beginPath(),p.rect(0,0,g,n),p.fillStyle=d,p.fill());p.scale(l,l);p.drawImage(f,A/l,A/l);a(e)}catch(Y){null!=k&&k(Y)}});f.onerror=function(a){null!=k&&k(a)};try{r&&this.editor.graph.addSvgShadow(c);
-var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(v,c,!0,mxUtils.bind(this,function(){f.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(e)}catch(y){null!=k&&k(y)}}),c,t)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,e,k,h,l,n,q){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();c=null!=c?c:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,c,n):null,q)}catch(C){"Invalid image"==C.message?this.downloadFile(q):this.handleError(C)}}),null,
+this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,e,null,null,h,l)}catch(A){this.spinner.stop(),this.handleError(A)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var d=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),c=0,e={},h=mxUtils.bind(this,function(){if(0==c){for(var f=[b[0]],g=1;g<b.length;g++){var h=
+b[g].indexOf(")");f.push('url("');f.push(e[d(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var k=1;k<b.length;k++){var l=b[k].indexOf(")"),n=null,r=b[k].indexOf("format(",l);0<r&&(n=d(b[k].substring(r+7,b[k].indexOf(")",r))));mxUtils.bind(this,function(a){if(null==e[a]){e[a]=a;c++;var d="application/x-font-ttf";if("svg"==n||/(\.svg)($|\?)/i.test(a))d="image/svg+xml";else if("otf"==n||"embedded-opentype"==n||/(\.otf)($|\?)/i.test(a))d=
+"application/x-font-opentype";else if("woff"==n||/(\.woff)($|\?)/i.test(a))d="application/font-woff";else if("woff2"==n||/(\.woff2)($|\?)/i.test(a))d="application/font-woff2";else if("eot"==n||/(\.eot)($|\?)/i.test(a))d="application/vnd.ms-fontobject";else if("sfnt"==n||/(\.sfnt)($|\?)/i.test(a))d="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(d){e[a]=d;c--;h()}),mxUtils.bind(this,
+function(a){c--;h()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(d(b[k].substring(0,l)),n)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,e,k,h,l,n,q,r,t,C,y,z){h=null!=h?h:!0;C=null!=C?C:this.editor.graph;y=null!=y?y:0;var d=q?null:C.background;d==mxConstants.NONE&&(d=null);null==d&&(d=e);null==d&&0==q&&(d=this.editor.graph.defaultPageBackgroundColor);this.convertImages(C.getSvg(d,null,null,z,null,null!=l?l:!0),mxUtils.bind(this,function(c){var f=new Image;f.onload=mxUtils.bind(this,
+function(){try{var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));n=null!=n?n:1;null!=b&&(n=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(n*g)+2*y;m=Math.ceil(n*m)+2*y;e.setAttribute("width",g);e.setAttribute("height",m);var p=e.getContext("2d");null!=d&&(p.beginPath(),p.rect(0,0,g,m),p.fillStyle=d,p.fill());p.scale(n,n);p.drawImage(f,y/n,y/n);a(e)}catch(X){null!=k&&k(X)}});f.onerror=function(a){null!=k&&k(a)};try{r&&this.editor.graph.addSvgShadow(c);
+var e=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(C,c,!0,mxUtils.bind(this,function(){f.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(e)}catch(x){null!=k&&k(x)}}),c,t)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,
c=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=c.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"!=d.substring(0,19)&&(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,e){null==e&&(e=this.createImageUrlConverter());var d=0,f=c||{};c=mxUtils.bind(this,
function(c,g){for(var h=a.getElementsByTagName(c),k=0;k<h.length;k++)mxUtils.bind(this,function(c){var h=e.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(d++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,c.setAttribute(g,e));d--;0==d&&b(a)})):c.setAttribute(g,k)}else null!=h&&c.setAttribute(g,h)})(h[k])});c("image","xlink:href");c("img","src");0==d&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,e,k,h){try{var d=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||
/(\.gif)($|\?)/i.test(a);k=null!=k?k:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var f=a.getText();if(d){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var f=Array(a.length),e=0;e<a.length;e++)f[e]=String.fromCharCode(a[e]);f=f.join("")}h=null!=h?h:"data:image/png;base64,";f=h+this.base64Encode(f)}b(f)}}else null!=
-c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},d,this.timeout,function(){k&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(x){null!=c&&c(x)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
+c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},d,this.timeout,function(){k&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=c&&c(v)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,
23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var d=new Image,c=this;this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){var a=document.createElement("canvas"),f=a.getContext("2d");
-a.height=d.height;a.width=d.width;f.drawImage(d,0,0);try{b(a.toDataURL())}catch(w){b(c.svgBrokenImage.src)}};d.onerror=function(){b(c.svgBrokenImage.src)};d.src=a}};EditorUi.prototype.importXml=function(a,b,c,e,k){b=null!=b?b:0;c=null!=c?c:0;var d=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var p=n.getElementsByTagName("diagram");if(1==p.length)n=
-mxUtils.parseXml(f.decompress(mxUtils.getTextContent(p[0]))).documentElement;else if(1<p.length){f.model.beginUpdate();try{for(a=0;a<p.length;a++){var l=this.updatePageRoot(new DiagramPage(p[a])),m=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[m+1]));f.model.execute(new ChangePage(this,l,l,m))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(d=f.importGraphModel(n,b,c,e))}}catch(A){throw k||this.handleError(A,mxResources.get("invalidOrMissingFile")),
-A;}return d};EditorUi.prototype.importVisio=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)try{this.doImportVisio(a,b,c)}catch(n){c(n)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==
+a.height=d.height;a.width=d.width;f.drawImage(d,0,0);try{b(a.toDataURL())}catch(w){b(c.svgBrokenImage.src)}};d.onerror=function(){b(c.svgBrokenImage.src)};d.src=a}};EditorUi.prototype.importXml=function(a,b,c,e,k){b=null!=b?b:0;c=null!=c?c:0;var d=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),m=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length)m=
+mxUtils.parseXml(f.decompress(mxUtils.getTextContent(p[0]))).documentElement;else if(1<p.length){f.model.beginUpdate();try{for(a=0;a<p.length;a++){var l=this.updatePageRoot(new DiagramPage(p[a])),n=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[n+1]));f.model.execute(new ChangePage(this,l,l,n))}}finally{f.model.endUpdate()}}}null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,b,c,e))}}catch(y){throw k||this.handleError(y,mxResources.get("invalidOrMissingFile")),
+y;}return d};EditorUi.prototype.importVisio=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)try{this.doImportVisio(a,b,c)}catch(m){c(m)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==
typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.importLucidChart=function(a,b,c,e,k){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.pasteLucidChart)try{this.insertLucidChart(a,b,c,e,k)}catch(w){this.handleError(w)}finally{null!=k&&k()}});this.pasteLucidChart||this.loadingExtensions||
this.isOffline()?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.insertLucidChart=function(a,b,c,e,k){k=JSON.parse(a);a=[];if(null!=k.state){k=JSON.parse(k.state);for(var d in k.Pages)a.push(k.Pages[d]);a.sort(function(a,d){return a.Properties.Order<d.Properties.Order?-1:a.Properties.Order>d.Properties.Order?1:0})}else a.push(k);if(0<a.length){this.editor.graph.getModel().beginUpdate();
try{if(this.pasteLucidChart(a[0],b,c,e),null!=this.pages){var f=this.currentPage;for(b=1;b<a.length;b++)this.insertPage(),this.pasteLucidChart(a[b]);this.selectPage(f)}}finally{this.editor.graph.getModel().endUpdate()}}};EditorUi.prototype.insertTextAt=function(a,b,c,e,k,h,l){h=null!=h?h:!0;l=null!=l?l:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,
function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var d=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,c,h,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0,19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,
-26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,c,h,!0),0<g.length)return g}catch(z){}this.loadImage(a,mxUtils.bind(this,function(f){if("data:"==a.substring(0,5))this.resizeImage(f,a,mxUtils.bind(this,function(a,f,e){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),f,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,c,h,!0),0<g.length)return g}catch(A){}this.loadImage(a,mxUtils.bind(this,function(f){if("data:"==a.substring(0,5))this.resizeImage(f,a,mxUtils.bind(this,function(a,f,e){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),f,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
this.convertDataUri(a)+";"))}),l,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/f.width,this.maxImageSize/f.height)),g=Math.round(f.width*e);f=Math.round(f.height*e);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(b),d.snap(c),g,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;d.getModel().beginUpdate();try{f=d.insertVertex(d.getDefaultParent(),
null,a,d.snap(b),d.snap(c),1,1,"text;"+(e?"html=1;":"")),d.updateCellSize(f),d.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{d.getModel().endUpdate()}d.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,h);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26))this.importLucidChart(a,b,c,h);else{d=this.editor.graph;k=null;d.getModel().beginUpdate();try{k=d.insertVertex(d.getDefaultParent(),
null,"",d.snap(b),d.snap(c),1,1,"text;"+(e?"html=1;":"")),d.fireEvent(new mxEventObject("textInserted","cells",[k])),k.value=a,d.updateCellSize(k),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i.test(k.value)&&d.setLinkForCell(k,k.value),k.geometry.width+=d.gridSize,k.geometry.height+=d.gridSize}finally{d.getModel().endUpdate()}return[k]}}return[]};
-EditorUi.prototype.formatFileSize=function(a){var d=-1;do a/=1024,d++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var d=a.indexOf(";");0<d&&(a=a.substring(0,d)+a.substring(a.indexOf(",",d+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.importFile=function(a,b,c,e,k,h,l,m,
-q,r,t){r=null!=r?r:!0;var d=!1,f=null,g=mxUtils.bind(this,function(a){var d=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):d=this.importXml(a,c,e,r);null!=m&&m(d)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=t?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,c,e,r),q=!0)),q||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),r&&f.isGridEnabled()&&(c=f.snap(c),
-e=f.snap(e)),f=[f.insertVertex(null,null,"",c,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,e,r);null!=m&&m(a)})):null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?(d=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(a,l)?(d=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),l)):/(\.vsd)($|\?)/i.test(l)||(f=this.insertTextAt(this.validateFileData(a),c,e,!0,null,r));d||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var d="",b=0,c=a.length,e,h,k;b<c;){e=a.charCodeAt(b++)&255;if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+EditorUi.prototype.formatFileSize=function(a){var d=-1;do a/=1024,d++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var d=a.indexOf(";");0<d&&(a=a.substring(0,d)+a.substring(a.indexOf(",",d+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.importFile=function(a,b,c,e,k,h,l,n,
+q,r,t){r=null!=r?r:!0;var d=!1,f=null,g=mxUtils.bind(this,function(a){var d=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):d=this.importXml(a,c,e,r);null!=n&&n(d)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=t?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,c,e,r),q=!0)),q||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),r&&f.isGridEnabled()&&(c=f.snap(c),
+e=f.snap(e)),f=[f.insertVertex(null,null,"",c,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,e,r);null!=n&&n(a)})):null!=q&&null!=l&&(/(\.vsdx)($|\?)/i.test(l)||/(\.vssx)($|\?)/i.test(l))?(d=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a,l)?(d=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=n&&n(null))}),l)):/(\.vsd)($|\?)/i.test(l)||(f=this.insertTextAt(this.validateFileData(a),c,e,!0,null,r));d||null==n||n(f);return f};EditorUi.prototype.base64Encode=function(a){for(var d="",b=0,c=a.length,e,h,k;b<c;){e=a.charCodeAt(b++)&255;if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}h=a.charCodeAt(b++);if(b==c){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);d+="=";break}k=a.charCodeAt(b++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return d};EditorUi.prototype.importFiles=function(a,b,c,e,k,h,l,m,q,r,t,v){b=null!=b?b:0;c=null!=c?c:0;e=null!=e?e:this.maxImageSize;r=null!=r?r:this.maxImageBytes;var d=null!=b&&null!=c,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&
-null!=a)for(var p=t||this.resampleThreshold,n=0;n<a.length;n++)if("image/"==a[n].type.substring(0,6)&&a[n].size>p){g=!0;break}var u=mxUtils.bind(this,function(){var g=this.editor.graph,p=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,c,e,f,g,h,k,p){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,e,f,g,h,k,p,d,v)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,
-mxResources.get("loading")))for(var n=a.length,q=n,u=[],w=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var d=[];g.getModel().beginUpdate();try{for(var c=0;c<u.length;c++){var e=u[c]();null!=e&&(d=d.concat(e))}}finally{g.getModel().endUpdate()}}h(d)}}),x=0;x<n;x++)mxUtils.bind(this,function(d){var h=a[d],n=new FileReader;n.onload=mxUtils.bind(this,function(a){if(null==l||l(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var n=
-a.target.result,m=n.indexOf(","),q=decodeURIComponent(escape(atob(n.substring(m+1)))),y=mxUtils.parseXml(q),q=y.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=v?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?w(d,mxUtils.bind(this,function(){try{if(n.substring(0,m+1),null!=y){var a=
-y.getElementsByTagName("svg");if(0<a.length){var l=a[0],r=parseFloat(l.getAttribute("width")),q=parseFloat(l.getAttribute("height")),t=l.getAttribute("viewBox");if(null==t||0==t.length)l.setAttribute("viewBox","0 0 "+r+" "+q);else if(isNaN(r)||isNaN(q)){var u=t.split(" ");3<u.length&&(r=parseFloat(u[2]),q=parseFloat(u[3]))}n=this.createSvgDataUri(mxUtils.getXml(l));var w=Math.min(1,Math.min(e/Math.max(1,r)),e/Math.max(1,q)),E=k(n,h.type,b+d*p,c+d*p,Math.max(1,Math.round(r*w)),Math.max(1,Math.round(q*
-w)),h.name,f);if(isNaN(r)||isNaN(q)){var v=new Image;v.onload=mxUtils.bind(this,function(){r=Math.max(1,v.width);q=Math.max(1,v.height);E[0].geometry.width=r;E[0].geometry.height=q;l.setAttribute("viewBox","0 0 "+r+" "+q);n=this.createSvgDataUri(mxUtils.getXml(l));var a=n.indexOf(";");0<a&&(n=n.substring(0,a)+n.substring(n.indexOf(",",a+1)));g.setCellStyles("image",n,[E[0]])});v.src=this.createSvgDataUri(mxUtils.getXml(l))}return E}}}catch(ba){}return null})):w(d,mxUtils.bind(this,function(){return k(u,
-"text/xml",b+d*p,c+d*p,0,0,h.name)}))}}else{q=!1;if("image/png"==h.type){var E=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var x=new Image;x.src=a.target.result;w(d,mxUtils.bind(this,function(){return k(E,"text/xml",b+d*p,c+d*p,x.width,x.height,h.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
-mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,l){w(d,mxUtils.bind(this,function(){if(null!=g&&g.length<r){var m=f&&this.isResampleImage(a.target.result,t)?Math.min(1,Math.min(e/n,e/l)):1;return k(g,h.type,b+d*p,c+d*p,Math.round(n*m),Math.round(l*m),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,t)}),mxUtils.bind(this,
-function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})})});/(\.vsdx)($|\?)/i.test(h.name)||/(\.vssx)($|\?)/i.test(h.name)?k(null,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})},h):"image"==h.type.substring(0,5)?n.readAsDataURL(h):n.readAsText(h)})(x)});g?this.confirmImageResize(function(a){f=a;u()},q):u()};EditorUi.prototype.confirmImageResize=function(a,
+2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return d};EditorUi.prototype.importFiles=function(a,b,c,e,k,h,l,n,q,r,t,C){b=null!=b?b:0;c=null!=c?c:0;e=null!=e?e:this.maxImageSize;r=null!=r?r:this.maxImageBytes;var d=null!=b&&null!=c,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&
+null!=a)for(var p=t||this.resampleThreshold,m=0;m<a.length;m++)if("image/"==a[m].type.substring(0,6)&&a[m].size>p){g=!0;break}var u=mxUtils.bind(this,function(){var g=this.editor.graph,p=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,c,e,f,g,h,k,p){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,e,f,g,h,k,p,d,C)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var m=a.length,q=m,u=[],w=mxUtils.bind(this,function(a,b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=n)n(u);else{var d=[];g.getModel().beginUpdate();try{for(var c=0;c<u.length;c++){var e=u[c]();null!=e&&(d=d.concat(e))}}finally{g.getModel().endUpdate()}}h(d)}}),v=0;v<m;v++)mxUtils.bind(this,function(d){var h=a[d],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var m=
+a.target.result,n=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(n+1)))),x=mxUtils.parseXml(q),q=x.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=C?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?w(d,mxUtils.bind(this,function(){try{if(m.substring(0,n+1),null!=x){var a=
+x.getElementsByTagName("svg");if(0<a.length){var l=a[0],r=parseFloat(l.getAttribute("width")),q=parseFloat(l.getAttribute("height")),u=l.getAttribute("viewBox");if(null==u||0==u.length)l.setAttribute("viewBox","0 0 "+r+" "+q);else if(isNaN(r)||isNaN(q)){var t=u.split(" ");3<t.length&&(r=parseFloat(t[2]),q=parseFloat(t[3]))}m=this.createSvgDataUri(mxUtils.getXml(l));var w=Math.min(1,Math.min(e/Math.max(1,r)),e/Math.max(1,q)),E=k(m,h.type,b+d*p,c+d*p,Math.max(1,Math.round(r*w)),Math.max(1,Math.round(q*
+w)),h.name,f);if(isNaN(r)||isNaN(q)){var v=new Image;v.onload=mxUtils.bind(this,function(){r=Math.max(1,v.width);q=Math.max(1,v.height);E[0].geometry.width=r;E[0].geometry.height=q;l.setAttribute("viewBox","0 0 "+r+" "+q);m=this.createSvgDataUri(mxUtils.getXml(l));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[E[0]])});v.src=this.createSvgDataUri(mxUtils.getXml(l))}return E}}}catch(fa){}return null})):w(d,mxUtils.bind(this,function(){return k(u,
+"text/xml",b+d*p,c+d*p,0,0,h.name)}))}}else{q=!1;if("image/png"==h.type){var E=C?null:this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var v=new Image;v.src=a.target.result;w(d,mxUtils.bind(this,function(){return k(E,"text/xml",b+d*p,c+d*p,v.width,v.height,h.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),
+mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,m,l){w(d,mxUtils.bind(this,function(){if(null!=g&&g.length<r){var n=f&&this.isResampleImage(a.target.result,t)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+d*p,c+d*p,Math.round(m*n),Math.round(l*n),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,t)}),mxUtils.bind(this,
+function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})})});/(\.vsdx)($|\?)/i.test(h.name)||/(\.vssx)($|\?)/i.test(h.name)?k(null,h.type,b+d*p,c+d*p,240,160,h.name,function(a){w(d,function(){return a})},h):"image"==h.type.substring(0,5)?m.readAsDataURL(h):m.readAsText(h)})(v)});g?this.confirmImageResize(function(a){f=a;u()},q):u()};EditorUi.prototype.confirmImageResize=function(a,
b){b=null!=b?b:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},c=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(c,e){if(c||b)mxSettings.setResizeImages(c?e:null),mxSettings.save();d();a(e)};null==c||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,c)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>
-b};EditorUi.prototype.resizeImage=function(a,b,c,e,k,h){k=null!=k?k:this.maxImageSize;var d=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(d/k,f/k);if(1<g){var p=Math.round(d/g),n=Math.round(f/g),l=document.createElement("canvas");l.width=p;l.height=n;l.getContext("2d").drawImage(a,0,0,p,n);var m=l.toDataURL();if(m.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=n;var t=q.toDataURL();m!==t&&(b=m,d=p,f=n)}}}catch(G){}c(b,d,f)};
+b};EditorUi.prototype.resizeImage=function(a,b,c,e,k,h){k=null!=k?k:this.maxImageSize;var d=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(d/k,f/k);if(1<g){var p=Math.round(d/g),m=Math.round(f/g),l=document.createElement("canvas");l.width=p;l.height=m;l.getContext("2d").drawImage(a,0,0,p,m);var n=l.toDataURL();if(n.length<b.length){var q=document.createElement("canvas");q.width=p;q.height=m;var t=q.toDataURL();n!==t&&(b=n,d=p,f=m)}}}catch(F){}c(b,d,f)};
EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var c=e,k=0;8>k;k++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[e]=c;EditorUi.prototype.updateCRC=function(a,b,c,e){for(var d=0;d<e;d++)a=EditorUi.prototype.crcTable[(a^b[c+d])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,e,k){function d(a,b){var d=p;p+=b;return a.substring(d,p)}function f(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>
-24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var p=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(d(a,4),"IHDR"!=d(a,4))null!=k&&k();else{d(a,17);k=a.substring(0,p);do{var n=f(a);if("IDAT"==d(a,4)){k=a.substring(0,p-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,c,0,c.length);k+=g(c.length)+b+c+g(e^4294967295);
-k+=a.substring(p-8,a.length);break}k+=a.substring(p-8,p-4+n);d(a,n);d(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var d=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(d):Base64.decode(d,!0);EditorUi.parsePng(c,mxUtils.bind(this,function(a,d,e){a=c.substring(a+8,a+8+e);"zTXt"==d?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
-2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==d&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==d)return!0}))}catch(n){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a){var d=
+24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var p=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(d(a,4),"IHDR"!=d(a,4))null!=k&&k();else{d(a,17);k=a.substring(0,p);do{var m=f(a);if("IDAT"==d(a,4)){k=a.substring(0,p-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,c,0,c.length);k+=g(c.length)+b+c+g(e^4294967295);
+k+=a.substring(p-8,a.length);break}k+=a.substring(p-8,p-4+m);d(a,m);d(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var d=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(d):Base64.decode(d,!0);EditorUi.parsePng(c,mxUtils.bind(this,function(a,d,e){a=c.substring(a+8,a+8+e);"zTXt"==d?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+
+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==d&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==d)return!0}))}catch(m){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a){var d=
a.indexOf(",");0<d&&(a=b.getPageById(a.substring(d+1)))&&b.selectPage(a)}"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;c.addListener("pageLinkClicked",function(b,d){a(d.getProperty("href"))});var e=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";if(null!=b.pages&&null!=b.currentPage)for(var d=0;d<b.pages.length;d++)if(b.pages[d]==b.currentPage){0<d&&(a+=(0<a.length?"&":"?")+"page="+d);break}"1"==
-urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var k=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null==d||!c.isPageLink(d)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(d),mxEvent.consume(b));null!=f&&f(b,d)};k.call(this,b,d,e)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,
-null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:h.apply(this,arguments)};var l=c.createLinkForHint;c.createLinkForHint=function(d,e){var f=
-c.isPageLink(d);if(f){var g=d.indexOf(",");0<g&&(g=b.getPageById(d.substring(g+1)),e=null!=g?g.getName():mxResources.get("pageNotFound"))}g=l.call(this,d,e);f&&mxEvent.addListener(g,"click",function(b){a(d);mxEvent.consume(b)});return g};var q=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isPageLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))q.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))a(f),c.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,d=b.getCurrentFile();null!=d&&(a=null!=d.getTitle()?d.getTitle():a);return a};var t=this.actions.get("print");t.setEnabled(!mxClient.IS_IOS||!navigator.standalone);t.visible=t.isEnabled();if(!this.editor.chromeless||this.editor.editable){var r=function(){window.setTimeout(function(){z.innerHTML="&nbsp;";z.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,
+urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1&drawdev=1");return e.apply(this,arguments)};var k=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null==d||!c.isPageLink(d)||!mxEvent.isTouchEvent(b)&&mxEvent.isPopupTrigger(b)||(a(d),mxEvent.consume(b));null!=f&&f(b,d)};k.call(this,b,d,e)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,
+null,!0);b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:h.apply(this,arguments)};var n=c.createLinkForHint;c.createLinkForHint=function(d,e){var f=
+c.isPageLink(d);if(f){var g=d.indexOf(",");0<g&&(g=b.getPageById(d.substring(g+1)),e=null!=g?g.getName():mxResources.get("pageNotFound"))}g=n.call(this,d,e);f&&mxEvent.addListener(g,"click",function(b){a(d);mxEvent.consume(b)});return g};var q=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isPageLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))q.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))a(f),c.getRubberband().reset();
+mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,d=b.getCurrentFile();null!=d&&(a=null!=d.getTitle()?d.getTitle():a);return a};var t=this.actions.get("print");t.setEnabled(!mxClient.IS_IOS||!navigator.standalone);t.visible=t.isEnabled();if(!this.editor.chromeless||this.editor.editable){var r=function(){window.setTimeout(function(){A.innerHTML="&nbsp;";A.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||c.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var d=a.clipboardData||a.originalEvent.clipboardData,c=!1,e=0;e<d.types.length;e++)if("text/"===
-d.types[e].substring(0,5)){c=!0;break}if(!c){var f=d.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(J){}}),!1);var z=document.createElement("div");
-z.style.position="absolute";z.style.whiteSpace="nowrap";z.style.overflow="hidden";z.style.display="block";z.contentEditable=!0;mxUtils.setOpacity(z,0);z.style.width="1px";z.style.height="1px";z.innerHTML="&nbsp;";var v=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
-null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||v||(z.style.left=c.container.scrollLeft+10+"px",z.style.top=c.container.scrollTop+10+"px",c.container.appendChild(z),v=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){z.focus();document.execCommand("selectAll",!1,null)},0):(z.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
-a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!v||224!=b&&17!=b&&91!=b||(v=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),z.parentNode.removeChild(z))}),0)}));mxEvent.addListener(z,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(z),r())}));mxEvent.addListener(z,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(z,!0),r())}));mxEvent.addListener(z,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-(z.innerHTML="&nbsp;",z.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,z);z.innerHTML="&nbsp;"}),0))}),!0);var A=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==z?!0:A.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+d.types[e].substring(0,5)){c=!0;break}if(!c){var f=d.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(G){}}),!1);var A=document.createElement("div");
+A.style.position="absolute";A.style.whiteSpace="nowrap";A.style.overflow="hidden";A.style.display="block";A.contentEditable=!0;mxUtils.setOpacity(A,0);A.style.width="1px";A.style.height="1px";A.innerHTML="&nbsp;";var C=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||
+null!=this.dialog||"INPUT"==b.nodeName||"TEXTAREA"==b.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||C||(A.style.left=c.container.scrollLeft+10+"px",A.style.top=c.container.scrollTop+10+"px",c.container.appendChild(A),C=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){A.focus();document.execCommand("selectAll",!1,null)},0):(A.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var b=
+a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!C||224!=b&&17!=b&&91!=b||(C=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),A.parentNode.removeChild(A))}),0)}));mxEvent.addListener(A,"copy",mxUtils.bind(this,function(a){c.isEnabled()&&(mxClipboard.copy(c),this.copyCells(A),r())}));mxEvent.addListener(A,"cut",mxUtils.bind(this,function(a){c.isEnabled()&&(this.copyCells(A,!0),r())}));mxEvent.addListener(A,"paste",mxUtils.bind(this,function(a){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
+(A.innerHTML="&nbsp;",A.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,A);A.innerHTML="&nbsp;"}),0))}),!0);var y=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==A?!0:y.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
this.editor.graph,d=b.cellEditor.text2,c=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=this.highlightElement(d));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
0,0,this.maxImageSize,function(a,d,c,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var d=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
Math.min(e/Math.max(1,c)),e/Math.max(1,a));b.insertImage(decodeURIComponent(d),c*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==
-typeof mxRuler){t=document.createElement("div");t.style.position="absolute";t.style.top="95px";t.style.left="250px";t.style.width="2000px";t.style.height="30px";t.style.background="whiteSmoke";document.body.appendChild(t);var F=document.createElement("div");F.style.position="absolute";F.style.top="125px";F.style.left="220px";F.style.width="30px";F.style.height="1000px";F.style.background="whiteSmoke";document.body.appendChild(F);var B=document.createElement("div");B.style.position="absolute";B.style.top=
-"95px";B.style.left="220px";B.style.width="30px";B.style.height="30px";B.style.background="whiteSmoke";document.body.appendChild(B);this.vRuler=new mxRuler(this.editor.graph,F,!0);this.hRuler=new mxRuler(this.editor.graph,t,!1)}if("1"==urlParams.test){t=document.getElementById("geFooter");null!=t&&(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=
+typeof mxRuler){t=document.createElement("div");t.style.position="absolute";t.style.top="95px";t.style.left="250px";t.style.width="2000px";t.style.height="30px";t.style.background="whiteSmoke";document.body.appendChild(t);var z=document.createElement("div");z.style.position="absolute";z.style.top="125px";z.style.left="220px";z.style.width="30px";z.style.height="1000px";z.style.background="whiteSmoke";document.body.appendChild(z);var B=document.createElement("div");B.style.position="absolute";B.style.top=
+"95px";B.style.left="220px";B.style.width="30px";B.style.height="30px";B.style.background="whiteSmoke";document.body.appendChild(B);this.vRuler=new mxRuler(this.editor.graph,z,!0);this.hRuler=new mxRuler(this.editor.graph,t,!1)}if("1"==urlParams.test){t=document.getElementById("geFooter");null!=t&&(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)})),t.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){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(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}t=document.getElementById("geInfo");null!=t&&t.parentNode.removeChild(t);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var C=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=C&&(C.parentNode.removeChild(C),
-C=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==C&&(!mxClient.IS_IE||10<document.documentMode)&&(C=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=C&&(C.parentNode.removeChild(C),C=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
+this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}t=document.getElementById("geInfo");null!=t&&t.parentNode.removeChild(t);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var H=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=H&&(H.parentNode.removeChild(H),
+H=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null==H&&(!mxClient.IS_IE||10<document.documentMode)&&(H=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=H&&(H.parentNode.removeChild(H),H=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=c.view.translate,e=c.view.scale,f=b.x/e-d.x,g=b.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,b=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=b)c.setSelectionCells(this.importXml(b,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/html")){var k=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=k;var p=null,d=b.getElementsByTagName("img");null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(p=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(k=b[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(k,f,g,!0,p,null,n))});p&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=
+"text/html")){var k=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=k;var p=null,d=b.getElementsByTagName("img");null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(p=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(k=b[0].getAttribute("href")));var m=!0,l=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(k,f,g,!0,p,null,m))});p&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){m=
a;l()},mxEvent.isControlDown(a)):l()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,function(a){var b=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,b)),d/Math.max(1,a));c.setSelectionCell(c.insertVertex(null,null,"",f,g,b*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){c.setSelectionCells(this.insertTextAt(h,
f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=
mxSettings.getRecentColors();this.editor.graph.currentEdgeStyle=mxSettings.getCurrentEdgeStyle();this.editor.graph.currentVertexStyle=mxSettings.getCurrentVertexStyle();this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.addListener("styleChanged",mxUtils.bind(this,function(a,b){mxSettings.setCurrentEdgeStyle(this.editor.graph.currentEdgeStyle);mxSettings.setCurrentVertexStyle(this.editor.graph.currentVertexStyle);mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());
@@ -2905,8 +2906,8 @@ this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyCo
mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(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.copyCells=function(a,b){var d=this.editor.graph;if(d.isSelectionEmpty())a.innerHTML="";else{var c=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(c));mxUtils.setTextContent(a,encodeURIComponent(e));b?(d.removeCells(c,
!1),d.lastPasteXml=null):(d.lastPasteXml=e,d.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var d=b.getElementsByTagName("span");if(null!=d&&0<d.length&&"application/vnd.lucid.chart.objects"===d[0].getAttribute("data-lucid-type")){var c=d[0].getAttribute("data-lucid-content");null!=c&&0<c.length&&(this.importLucidChart(c,0,0),mxEvent.consume(a))}else{var c=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||
-8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(x){}try{var d=b.getElementsByTagName("span"),l=null!=d&&0<d.length?mxUtils.trim(decodeURIComponent(d[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(x){}c.lastPasteXml==e?c.pasteCounter++:(c.lastPasteXml=e,c.pasteCounter=0);d=c.pasteCounter*c.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?c.setSelectionCells(this.importXml(e,
-d,d)):(f=c.getInsertPoint(),c.isMouseInsertPoint()&&(d=0,c.lastPasteXml==e&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(e,f.x+d,f.y+d,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,d=0;d<a.length;d++)mxEvent.addListener(a[d],"dragleave",
+8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var d=b.getElementsByTagName("span"),l=null!=d&&0<d.length?mxUtils.trim(decodeURIComponent(d[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}c.lastPasteXml==e?c.pasteCounter++:(c.lastPasteXml=e,c.pasteCounter=0);d=c.pasteCounter*c.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?c.setSelectionCells(this.importXml(e,
+d,d)):(f=c.getInsertPoint(),c.isMouseInsertPoint()&&(d=0,c.lastPasteXml==e&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(e,f.x+d,f.y+d,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,d=0;d<a.length;d++)mxEvent.addListener(a[d],"dragleave",
function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[d],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[d],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||
"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var d=this.extractGraphModelFromEvent(a);if(null==d){var c=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=c&&(10==document.documentMode||11==document.documentMode?d=c.getData("Text"):(d=null,d=0<=mxUtils.indexOf(c.types,
"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(c.types,"text/html")?c.getData("text/html"):null,null!=d&&0<d.length?(c=document.createElement("div"),c.innerHTML=d,c=c.getElementsByTagName("img"),0<c.length&&(d=c[0].getAttribute("src"))):0<=mxUtils.indexOf(c.types,"text/plain")&&(d=c.getData("text/plain"))),null!=d&&("data:image/png;base64,"==d.substring(0,22)?(d=this.extractGraphModelFromPng(d),null!=d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?
@@ -2914,7 +2915,7 @@ function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.
EditorUi.prototype.highlightElement=function(a){var b=0,d=0,c,e;if(null==a){e=document.body;var h=document.documentElement;c=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-3}else b=a.offsetTop,d=a.offsetLeft,c=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=b+"px";h.style.left=d+"px";h.style.width=
Math.max(0,c-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var d=new mxCodec(b.ownerDocument),c=new mxGraphModel;d.decode(b,c);b=c.getChildAt(c.getRoot(),0);for(d=0;d<c.getChildCount(b);d++)a.push(c.getChildAt(b,d))}return a};EditorUi.prototype.openFiles=
function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){var c=d.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&
-"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(z){this.handleError(z,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.parseFile(a,mxUtils.bind(this,
+"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b)});if(/(\.vsdx)($|\?)/i.test(e)||/(\.vssx)($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.parseFile(a,mxUtils.bind(this,
function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if('{"state":"{\\"Properties\\":'==c.substring(0,26))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.openLocalFile(this.emptyDiagramXml,e,b),this.importLucidChart(c,0,0,null,mxUtils.bind(this,function(){this.editor.undoManager.clear();this.spinner.stop()}));
else if("<mxlibrary"==d.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,d.target.result,a.name))}catch(r){this.handleError(r,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,e,b)}});d.onerror=mxUtils.bind(this,function(a){this.spinner.stop();
this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?d.readAsDataURL(a):d.readAsText(a)})(a[d])};EditorUi.prototype.openLocalFile=function(a,b,c){var d=this.getCurrentFile(),e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(a);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,
@@ -2925,37 +2926,38 @@ a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebar
function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():this.showLayersDialog(),this.chromelessResize&&this.chromelessResize()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&
this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,
page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,d=!1,c=!1,e=null,h=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,h);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function g(a){if(null!=
-a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(I){}return a}if(f.source==(window.opener||window.parent)){var h=f.data;if("json"==urlParams.proto){try{h=JSON.parse(h)}catch(E){h=null}if(null==h)return;if("dialog"==h.action){this.showError(null!=
+a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(Q){}return a}if(f.source==(window.opener||window.parent)){var h=f.data;if("json"==urlParams.proto){try{h=JSON.parse(h)}catch(E){h=null}if(null==h)return;if("dialog"==h.action){this.showError(null!=
h.titleKey?mxResources.get(h.titleKey):h.title,null!=h.messageKey?mxResources.get(h.messageKey):h.message,null!=h.buttonKey?mxResources.get(h.buttonKey):h.button);null!=h.modified&&(this.editor.modified=h.modified);return}if("prompt"==h.action){this.spinner.stop();var l=new FilenameDialog(this,h.defaultValue||"",null!=h.okKey?mxResources.get(h.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:h}),"*")},null!=h.titleKey?mxResources.get(h.titleKey):h.title);
this.showDialog(l.container,300,80,!0,!1);l.init();return}if("draft"==h.action){l=null;l="data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):g(h.xml);this.spinner.stop();l=new DraftDialog(this,mxResources.get("draftFound",[h.name||this.defaultFilename]),l,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:h}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
result:"discard",message:h}),"*")}),h.editKey?mxResources.get(h.editKey):null,h.discardKey?mxResources.get(h.discardKey):null,h.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:h}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(E){k.postMessage(JSON.stringify({event:"draft",error:E.toString(),message:h}),"*")}return}if("template"==
-h.action){this.spinner.stop();var l=1==h.enableRecent,m=1==h.enableSearch,l=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,d){b=b||this.emptyDiagramXml;null!=h.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,l?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),
-"*")}):null,m?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,d){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:d}),"*")});this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("searchDocsList"==h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,
+h.action){this.spinner.stop();var l=1==h.enableRecent,n=1==h.enableSearch,l=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,d){b=b||this.emptyDiagramXml;null!=h.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,l?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),
+"*")}):null,n?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,d){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:d}),"*")});this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("searchDocsList"==h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,
h.errorMsg);else{if("status"==h.action){null!=h.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(h.messageKey))):null!=h.message&&this.editor.setStatus(mxUtils.htmlEntities(h.message));null!=h.modified&&(this.editor.modified=h.modified);return}if("spinner"==h.action){var p=null!=h.messageKey?mxResources.get(h.messageKey):h.message;null==h.show||h.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==h.action){if("png"==h.format||"xmlpng"==h.format){if(null==
-h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var n=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var q=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(n);k.postMessage(JSON.stringify(b),"*")}),u=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
-"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,y=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
-q.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
-h.xml&&0<h.xml.length&&this.setFileData(h.xml);p=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),p.xml=mxUtils.getXml(l),p.data=this.getFileData(null,null,!0,null,null,null,l),p.format=h.format;else if("html"==h.format)n=this.editor.getGraphXml(),p.data=this.getHtml(n,this.editor.graph),p.xml=mxUtils.getXml(n),p.format=h.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;
+h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var m=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var q=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(m);k.postMessage(JSON.stringify(b),"*")}),u=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);
+"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(m))));q!=this.editor.graph&&q.container.parentNode.removeChild(q.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var q=this.createTemporaryGraph(q.getStylesheet()),w=q.getGlobalVariable,x=this.pages[0];q.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this,arguments)};document.body.appendChild(q.container);
+q.model.setRoot(x.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,q)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(m)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=
+h.xml&&0<h.xml.length&&this.setFileData(h.xml);p=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),p.xml=mxUtils.getXml(l),p.data=this.getFileData(null,null,!0,null,null,null,l),p.format=h.format;else if("html"==h.format)m=this.editor.getGraphXml(),p.data=this.getHtml(m,this.editor.graph),p.xml=mxUtils.getXml(m),p.format=h.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;
l==mxConstants.NONE&&(l=null);p.xml=this.getFileData(!0);p.format="svg";if(h.embedImages||null==h.embedImages){if(null==h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==h.format?this.getEmbeddedSvg(p.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(a);k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(l),
mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(p),"*")}));return}l="xmlsvg"==h.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(l));p.data=this.createSvgDataUri(l)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==h.action)c=1==h.autosave,this.hideDialog(),null!=h.modified&&null==urlParams.modified&&(urlParams.modified=
h.modified),null!=h.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=h.saveAndExit),null!=h.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,h.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),h=null!=h.xmlpng?this.extractGraphModelFromPng(h.xmlpng):null!=h.xml&&"data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):h.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(h)}),"*");return}}}h=g(h);d=!0;try{a(h,f)}catch(E){this.handleError(E)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");var L=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
-1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=L();c&&null==b&&(b=mxUtils.bind(this,function(a,b){var c=L();if(c!=e&&!d){var f=this.createLoadMessage("autosave");f.xml=c;c=JSON.stringify(f);(window.opener||window.parent).postMessage(c,"*")}e=c}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
+this.buttonContainer.appendChild(l),this.embedFilenameSpan=l),h=null!=h.xmlpng?this.extractGraphModelFromPng(h.xmlpng):null!=h.xml&&"data:image/png;base64,"==h.xml.substring(0,22)?this.extractGraphModelFromPng(h.xml):h.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(h)}),"*");return}}}h=g(h);d=!0;try{a(h,f)}catch(E){this.handleError(E)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
+1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();c&&null==b&&(b=mxUtils.bind(this,function(a,b){var c=I();if(c!=e&&!d){var f=this.createLoadMessage("autosave");f.xml=c;c=JSON.stringify(f);(window.opener||window.parent).postMessage(c,"*")}e=c}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",
b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}}));var k=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):
urlParams.ready||"ready";k.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize=
"12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=
-function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),d=[];if(0<b.length){var c={},e=null,h=null,k="auto",l="auto",m=40,q=40,t=0,v=this.editor.graph;v.getGraphBounds();
-for(var A=function(){v.setSelectionCells(T);v.scrollCellToVisible(v.getSelectionCell())},F=v.getFreeInsertPoint(),B=F.x,G=F.y,F=G,C=null,H="auto",y=[],L=null,E=null,I=0;I<b.length&&"#"==b[I].charAt(0);){a=b[I];for(I++;I<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[I].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[I].substring(1)),I++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var R=mxUtils.trim(a.substring(1,Y)),P=mxUtils.trim(a.substring(Y+1));"label"==R?C=v.sanitizeHtml(P):"style"==
-R?e=P:"identity"==R&&0<P.length&&"-"!=P?h=P:"width"==R?k=P:"height"==R?l=P:"ignore"==R?E=P.split(","):"connect"==R?y.push(JSON.parse(P)):"link"==R?L=P:"padding"==R?t=parseFloat(P):"edgespacing"==R?m=parseFloat(P):"nodespacing"==R?q=parseFloat(P):"layout"==R&&(H=P)}}}var J=this.editor.csvToArray(b[I]);a=null;if(null!=h)for(var K=0;K<J.length;K++)if(h==J[K]){a=K;break}null==C&&(C="%"+J[0]+"%");if(null!=y)for(var M=0;M<y.length;M++)null==c[y[M].to]&&(c[y[M].to]={});v.model.beginUpdate();try{for(K=I+
-1;K<b.length;K++){var S=this.editor.csvToArray(b[K]);if(S.length==J.length){var D=null,W=null!=a?S[a]:null;null!=W&&(D=v.model.getCell(W));null==D&&(D=new mxCell(C,new mxGeometry(B,F,0,0),e||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=W);for(var Q=0;Q<S.length;Q++)v.setAttributeForCell(D,J[Q],S[Q]);v.setAttributeForCell(D,"placeholders","1");D.style=v.replacePlaceholders(D,D.style);for(M=0;M<y.length;M++)c[y[M].to][D.getAttribute(y[M].to)]=D;null!=L&&"link"!=L&&(v.setLinkForCell(D,D.getAttribute(L)),
-v.setAttributeForCell(D,L,null));v.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var X=this.editor.graph.getPreferredSizeForCell(D);D.geometry.width="auto"==k?X.width+t:parseFloat(k);D.geometry.height="auto"==l?X.height+t:parseFloat(l);F+=D.geometry.height+q;d.push(v.addCell(D))}}for(var U=d.slice(),T=d.slice(),M=0;M<y.length;M++)for(var O=y[M],K=0;K<d.length;K++){var D=d[K],ca=D.getAttribute(O.from);if(null!=ca){v.setAttributeForCell(D,O.from,null);for(var V=ca.split(","),Q=0;Q<V.length;Q++){var Z=
-c[O.to][V[Q]];null!=Z&&(C=O.label,null!=O.fromlabel&&(C=(D.getAttribute(O.fromlabel)||"")+(C||"")),null!=O.tolabel&&(C=(C||"")+(Z.getAttribute(O.tolabel)||"")),T.push(v.insertEdge(null,null,C||"",O.invert?Z:D,O.invert?D:Z,O.style||v.createCurrentEdgeStyle())),mxUtils.remove(O.invert?D:Z,U))}}}if(null!=E)for(K=0;K<d.length;K++)for(D=d[K],Q=0;Q<E.length;Q++)v.setAttributeForCell(D,mxUtils.trim(E[Q]),null);var aa=new mxParallelEdgeLayout(v);aa.spacing=m;var ja=function(){aa.execute(v.getDefaultParent());
-for(var a=0;a<d.length;a++){var b=v.getCellGeometry(d[a]);b.x=Math.round(v.snap(b.x));b.y=Math.round(v.snap(b.y));"auto"==k&&(b.width=Math.round(v.snap(b.width)));"auto"==l&&(b.height=Math.round(v.snap(b.height)))}};if("circle"==H){var da=new mxCircleLayout(v);da.resetEdges=!1;var ma=da.isVertexIgnored;da.isVertexIgnored=function(a){return ma.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){da.execute(v.getDefaultParent());ja()},!0,A);A=null}else if("horizontaltree"==H||
-"verticaltree"==H||"auto"==H&&T.length==2*d.length-1&&1==U.length){v.view.validate();var fa=new mxCompactTreeLayout(v,"horizontaltree"==H);fa.levelDistance=q;fa.edgeRouting=!1;fa.resetEdges=!1;this.executeLayout(function(){fa.execute(v.getDefaultParent(),0<U.length?U[0]:null)},!0,A);A=null}else if("horizontalflow"==H||"verticalflow"==H||"auto"==H&&1==U.length){v.view.validate();var ka=new mxHierarchicalLayout(v,"horizontalflow"==H?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ka.intraCellSpacing=
-q;ka.disableEdgeStyle=!1;this.executeLayout(function(){ka.execute(v.getDefaultParent(),T);v.moveCells(T,B,G)},!0,A);A=null}else if("organic"==H||"auto"==H&&T.length>d.length){v.view.validate();var ba=new mxFastOrganicLayout(v);ba.forceConstant=3*q;ba.resetEdges=!1;var qa=ba.isVertexIgnored;ba.isVertexIgnored=function(a){return qa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};aa=new mxParallelEdgeLayout(v);aa.spacing=m;this.executeLayout(function(){ba.execute(v.getDefaultParent());ja()},!0,A);A=null}this.hideDialog()}finally{v.model.endUpdate()}null!=
-A&&A()}}catch(na){this.handleError(na)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var d="?",c;for(c in urlParams)0>mxUtils.indexOf(a,c)&&null!=urlParams[c]&&(b+=d+c+"="+urlParams[c],d="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
-c;for(c in urlParams)0>mxUtils.indexOf(d,c)&&(a=0==b?a+"?":a+"&",null!=urlParams[c]&&(a+=c+"="+urlParams[c],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),d=this.editor.graph,c=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(d.container)&&d.pageVisible&&
+function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a){try{var b=a.split("\n"),d=[];if(0<b.length){var c={},e=null,h=null,k="auto",l="auto",n=null,q=null,t=40,C=40,y=0,z=this.editor.graph;
+z.getGraphBounds();for(var B=function(){z.setSelectionCells(Y);z.scrollCellToVisible(z.getSelectionCell())},F=z.getFreeInsertPoint(),H=F.x,L=F.y,F=L,x=null,I="auto",E=[],Q=null,X=null,R=0;R<b.length&&"#"==b[R].charAt(0);){a=b[R];for(R++;R<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[R].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[R].substring(1)),R++;if("#"!=a.charAt(1)){var Z=a.indexOf(":");if(0<Z){var G=mxUtils.trim(a.substring(1,Z)),K=mxUtils.trim(a.substring(Z+1));"label"==G?x=z.sanitizeHtml(K):
+"style"==G?e=K:"identity"==G&&0<K.length&&"-"!=K?h=K:"width"==G?k=K:"height"==G?l=K:"left"==G&&0<K.length?n=K:"top"==G&&0<K.length?q=K:"ignore"==G?X=K.split(","):"connect"==G?E.push(JSON.parse(K)):"link"==G?Q=K:"padding"==G?y=parseFloat(K):"edgespacing"==G?t=parseFloat(K):"nodespacing"==G?C=parseFloat(K):"layout"==G&&(I=K)}}}var S=this.editor.csvToArray(b[R]);a=null;if(null!=h)for(var J=0;J<S.length;J++)if(h==S[J]){a=J;break}null==x&&(x="%"+S[0]+"%");if(null!=E)for(var N=0;N<E.length;N++)null==c[E[N].to]&&
+(c[E[N].to]={});z.model.beginUpdate();try{for(J=R+1;J<b.length;J++){var U=this.editor.csvToArray(b[J]);if(U.length==S.length){var D=null,W=null!=a?U[a]:null;null!=W&&(D=z.model.getCell(W));null==D&&(D=new mxCell(x,new mxGeometry(H,F,0,0),e||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=W);for(var O=0;O<U.length;O++)z.setAttributeForCell(D,S[O],U[O]);z.setAttributeForCell(D,"placeholders","1");D.style=z.replacePlaceholders(D,D.style);for(N=0;N<E.length;N++)c[E[N].to][D.getAttribute(E[N].to)]=D;null!=
+Q&&"link"!=Q&&(z.setLinkForCell(D,D.getAttribute(Q)),z.setAttributeForCell(D,Q,null));z.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var T=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=n&&null!=D.getAttribute(n)&&(D.geometry.x=H+parseFloat(D.getAttribute(n))),null!=q&&null!=D.getAttribute(q)&&(D.geometry.y=L+parseFloat(D.getAttribute(q))),"@"==k.charAt(0)&&null!=D.getAttribute(k.substring(1))?D.geometry.width=parseFloat(D.getAttribute(k.substring(1))):D.geometry.width=
+"auto"==k?T.width+y:parseFloat(k),"@"==l.charAt(0)&&null!=D.getAttribute(l.substring(1))?D.geometry.height=parseFloat(D.getAttribute(l.substring(1))):D.geometry.height="auto"==l?T.height+y:parseFloat(l),F+=D.geometry.height+C);d.push(z.addCell(D))}}for(var V=d.slice(),Y=d.slice(),N=0;N<E.length;N++)for(var M=E[N],J=0;J<d.length;J++){var D=d[J],ca=D.getAttribute(M.from);if(null!=ca){z.setAttributeForCell(D,M.from,null);for(var da=ca.split(","),O=0;O<da.length;O++){var aa=c[M.to][da[O]];null!=aa&&(x=
+M.label,null!=M.fromlabel&&(x=(D.getAttribute(M.fromlabel)||"")+(x||"")),null!=M.tolabel&&(x=(x||"")+(aa.getAttribute(M.tolabel)||"")),Y.push(z.insertEdge(null,null,x||"",M.invert?aa:D,M.invert?D:aa,M.style||z.createCurrentEdgeStyle())),mxUtils.remove(M.invert?D:aa,V))}}}if(null!=X)for(J=0;J<d.length;J++)for(D=d[J],O=0;O<X.length;O++)z.setAttributeForCell(D,mxUtils.trim(X[O]),null);var ea=new mxParallelEdgeLayout(z);ea.spacing=t;var la=function(){ea.execute(z.getDefaultParent());for(var a=0;a<d.length;a++){var b=
+z.getCellGeometry(d[a]);b.x=Math.round(z.snap(b.x));b.y=Math.round(z.snap(b.y));"auto"==k&&(b.width=Math.round(z.snap(b.width)));"auto"==l&&(b.height=Math.round(z.snap(b.height)))}};if("circle"==I){var ha=new mxCircleLayout(z);ha.resetEdges=!1;var ra=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return ra.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ha.execute(z.getDefaultParent());la()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||"auto"==I&&Y.length==
+2*d.length-1&&1==V.length){z.view.validate();var fa=new mxCompactTreeLayout(z,"horizontaltree"==I);fa.levelDistance=C;fa.edgeRouting=!1;fa.resetEdges=!1;this.executeLayout(function(){fa.execute(z.getDefaultParent(),0<V.length?V[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==V.length){z.view.validate();var ma=new mxHierarchicalLayout(z,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ma.intraCellSpacing=C;ma.disableEdgeStyle=!1;this.executeLayout(function(){ma.execute(z.getDefaultParent(),
+Y);z.moveCells(Y,H,L)},!0,B);B=null}else if("organic"==I||"auto"==I&&Y.length>d.length){z.view.validate();var ba=new mxFastOrganicLayout(z);ba.forceConstant=3*C;ba.resetEdges=!1;var pa=ba.isVertexIgnored;ba.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ea=new mxParallelEdgeLayout(z);ea.spacing=t;this.executeLayout(function(){ba.execute(z.getDefaultParent());la()},!0,B);B=null}this.hideDialog()}finally{z.model.endUpdate()}null!=B&&B()}}catch(ia){this.handleError(ia)}};
+EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var d="?",c;for(c in urlParams)0>mxUtils.indexOf(a,c)&&null!=urlParams[c]&&(b+=d+c+"="+urlParams[c],d="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
+c;for(c in urlParams)0>mxUtils.indexOf(d,c)&&(a=0==b?a+"?":a+"&",null!=urlParams[c]&&(a+=c+"="+urlParams[c],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,440,130,!0,!0);a.init()};var n=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=n.apply(this,arguments),d=this.editor.graph,c=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(d.container)&&d.pageVisible&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return c.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(d.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*
b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(d.container)&&null!=this.source.minimumGraphSize){var c=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*c.x))/2)-c.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*c.y))/2)-c.y-5/a))}return new mxPoint(8/
a,8/a)};var h=b.init;b.init=function(){h.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=d.getPageLayout(),b=d.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)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,d){var c=d.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=
@@ -2971,8 +2973,8 @@ EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return
this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);
this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("rename").setEnabled(null!=c&&c.isRenamable());this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());
a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.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(a,b,c,e,k,h){var d=a.editor.graph;if("xml"==
-c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(d.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=d.getGraphBounds(),l=Math.floor(g.width*k/d.view.scale),m=Math.floor(g.height*k/d.view.scale);f.length<=MAX_REQUEST_SIZE&&l*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
-encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+m+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};
+c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(d.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=d.getGraphBounds(),l=Math.floor(g.width*k/d.view.scale),n=Math.floor(g.height*k/d.view.scale);f.length<=MAX_REQUEST_SIZE&&l*n<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+n+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};
DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b))}
@@ -2982,10 +2984,10 @@ mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){th
EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var c=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=!1,c=null,k=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=c&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
-a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?e||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){e=!0}))):"undefined"===typeof Editor.MathJaxClear||
-this.editor.graph.mathEnabled||(e=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,e=0;e<c.length;e++)if(c[e]instanceof SelectPage||c[e]instanceof RenamePage||c[e]instanceof MovePage||c[e]instanceof mxRootChange){k();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
-Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=a.getAttribute("pageScale"),c=a.getAttribute("pageWidth"),k=a.getAttribute("pageHeight"),m=a.getAttribute("background"),l=a.getAttribute("backgroundImage"),l=null!=l&&0<l.length?JSON.parse(l):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
-a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:null!=e?e:mxGraph.prototype.pageScale,pageFormat:null!=c&&null!=k?new mxRectangle(0,0,parseFloat(c),parseFloat(k)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
+a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?e||null==this.editor||(1!=MathJax.Hub.queue.pending||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){e=!0}))):"undefined"===
+typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||(e=!0,Editor.MathJaxClear())});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,e=0;e<c.length;e++)if(c[e]instanceof SelectPage||c[e]instanceof RenamePage||c[e]instanceof MovePage||c[e]instanceof mxRootChange){k();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=a.getAttribute("pageScale"),c=a.getAttribute("pageWidth"),k=a.getAttribute("pageHeight"),l=a.getAttribute("background"),n=a.getAttribute("backgroundImage"),n=null!=n&&0<n.length?JSON.parse(n):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==
+a.getAttribute("shadow"),pageVisible:this.lightbox?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=n?new mxImage(n.src,n.width,n.height):null,pageScale:null!=e?e:mxGraph.prototype.pageScale,pageFormat:null!=c&&null!=k?new mxRectangle(0,0,parseFloat(c),parseFloat(k)):this.pageFormat,tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"0"!=a.getAttribute("math"),
selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}};
@@ -3001,11 +3003,11 @@ EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,c=null;e.
EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))};
EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#dcdcdc";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a};
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="12px";b.style.marginLeft="30px";for(var e=this.editor.chromeless?29:59,c=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
-e)/this.pages.length)+1),k=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(c,e){this.pages[c]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",e.style.fontWeight="bold",e.style.borderTopStyle="none"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(e,
-"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(e)})(m,this.createTabForPage(this.pages[m],c,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
-c=this.createPageMenuTab();this.tabContainer.appendChild(c);c=null;this.isPageInsertTabVisible()&&(c=this.createPageInsertTab(),this.tabContainer.appendChild(c));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=c&&(c.style.position="absolute",c.style.right="0px",b.style.marginRight="30px");var l=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");l.style.position="absolute";l.style.right=this.editor.chromeless?"29px":"55px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var q=this.createControlTab(4,
-"&nbsp;&#10095;");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var t=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=t+"px";mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,t-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(l,
-0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,t-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(d,c){this.pages[d]==this.currentPage?(c.className="geActivePage",c.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",c.style.fontWeight="bold",c.style.borderTopStyle="none"):c.className="geInactivePage";c.setAttribute("draggable","true");mxEvent.addListener(c,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=d):mxEvent.consume(b)}));mxEvent.addListener(c,
+"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=k&&d!=k&&this.movePage(k,d);a.stopPropagation();a.preventDefault()}));b.appendChild(c)})(l,this.createTabForPage(this.pages[l],c,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
+c=this.createPageMenuTab();this.tabContainer.appendChild(c);c=null;this.isPageInsertTabVisible()&&(c=this.createPageInsertTab(),this.tabContainer.appendChild(c));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=c&&(c.style.position="absolute",c.style.right="0px",b.style.marginRight="30px");var n=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");n.style.position="absolute";n.style.right=this.editor.chromeless?"29px":"55px";n.style.fontSize="13pt";this.tabContainer.appendChild(n);var q=this.createControlTab(4,
+"&nbsp;&#10095;");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var t=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=t+"px";mxEvent.addListener(n,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,t-20);mxUtils.setOpacity(n,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(n,
+0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,t-20);mxUtils.setOpacity(n,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="8px 4px 8px 4px";b.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";b.style.borderBottomStyle="solid";b.style.backgroundColor=this.tabContainer.style.backgroundColor;
b.style.cursor="default";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b};
EditorUi.prototype.createControlTab=function(a,b){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
@@ -3014,46 +3016,46 @@ function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,funct
null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,arguments);b.destroy()});var c=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(c,k,null,a);this.setCurrentMenu(b);
mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var c=a.getName();e.setAttribute("title",c);mxUtils.write(e,c);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var c=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){c=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&k||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!c){var l=new mxPopupMenu(this.createPageMenu(a));l.div.className+=" geMenubarMenu";l.smartSeparators=!0;l.showDisabled=!0;l.autoExpand=!0;l.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(l,arguments);this.resetCurrentMenu();l.destroy()});var q=mxEvent.getClientX(m),t=mxEvent.getClientY(m);l.popup(q,t,null,m);this.setCurrentMenu(l,b)}mxEvent.consume(m)}}))};
+EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var c=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){c=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&k||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!c){var n=new mxPopupMenu(this.createPageMenu(a));n.div.className+=" geMenubarMenu";n.smartSeparators=!0;n.showDisabled=!0;n.autoExpand=!0;n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments);this.resetCurrentMenu();n.destroy()});var q=mxEvent.getClientX(l),t=mxEvent.getClientY(l);n.popup(q,t,null,l);this.setCurrentMenu(n,b)}mxEvent.consume(l)}}))};
EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,c){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),c);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),c);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),c);e.addSeparator(c);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
mxResources.get("copyOf",[a.getName()]))}),c)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page","previous"]);a.afterEncode=function(a,e,c){c.setAttribute("page",e.page.getId());return c};a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.page=a.ui.getPageById(e.getAttribute("page"));c.previous=c.name;return c};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new ChangePage,["ui","relatedPage","index","neverShown"]);a.afterEncode=function(a,e,c){c.setAttribute("relatedPage",e.relatedPage.getId());null==e.index&&(c.setAttribute("name",e.relatedPage.getName()),null!=e.relatedPage.root&&a.encodeCell(e.relatedPage.root,c));return c};a.beforeDecode=function(a,e,c){c.ui=a.ui;c.relatedPage=c.ui.getPageById(e.getAttribute("relatedPage"));if(null==c.relatedPage){var b=document.createElement("diagram");b.setAttribute("id",e.getAttribute("relatedPage"));
-b.setAttribute("name",e.getAttribute("name"));c.relatedPage=new DiagramPage(b);e=e.cloneNode(!0);b=e.firstChild;if(null!=b)for(c.relatedPage.root=a.decodeCell(b,!1),c=b.nextSibling,b.parentNode.removeChild(b),b=c;null!=b;){c=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var m=b.getAttribute("id");null==a.lookup(m)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=c}}return e};a.afterDecode=function(a,e,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png",b=Graph.prototype.foldCells;
+b.setAttribute("name",e.getAttribute("name"));c.relatedPage=new DiagramPage(b);e=e.cloneNode(!0);b=e.firstChild;if(null!=b)for(c.relatedPage.root=a.decodeCell(b,!1),c=b.nextSibling,b.parentNode.removeChild(b),b=c;null!=b;){c=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var l=b.getAttribute("id");null==a.lookup(l)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=c}}return e};a.afterDecode=function(a,e,c){c.index=c.previousIndex;return c};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png",b=Graph.prototype.foldCells;
Graph.prototype.foldCells=function(a,c,e,q,t){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var d=e.slice(),f=[],g=0;g<e.length;g++){var k=this.view.getState(e[g]),l=null!=k?k.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})),this.model.setCollapsed(e[g],
a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=d;e=b.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.chromeless&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return w.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=w.getParent(a),b=h.view.getState(a),h.view.getState(a),b="tree"==(null!=b?b.style:h.getCellStyle(a)).containerType);
return b}function e(a){var b=!1;null!=a&&(a=w.getParent(a),b=h.view.getState(a),h.view.getState(a),b=null!=(null!=b?b.style:h.getCellStyle(a)).childLayout);return b}function q(a){a=h.view.getState(a);if(null!=a){var b=h.getIncomingEdges(a.cell);if(0<b.length&&(b=h.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<
a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function t(a,b){b=null!=b?b:!0;h.model.beginUpdate();try{var c=h.model.getParent(a),d=h.getIncomingEdges(a),e=h.cloneCells([d[0],a]);h.model.setTerminal(e[0],h.model.getTerminal(d[0],!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+
-10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),l=h.view.scale;if(null!=k){var m=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var n=h.getOutgoingEdges(h.model.getTerminal(d[0],
-!0));if(null!=n){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,r=g=d=0;r<n.length;r++){var t=h.model.getTerminal(n[r],!1);if(f==q(t)){var y=h.view.getState(t);t!=a&&null!=y&&(p&&b!=y.getCenterX()<k.getCenterX()||!p&&b!=y.getCenterY()<k.getCenterY())&&mxUtils.intersects(m,y)&&(d=10+Math.max(d,(Math.min(m.x+m.width,y.x+y.width)-Math.max(m.x,y.x))/l),g=10+Math.max(g,(Math.min(m.y+m.height,y.y+y.height)-Math.max(m.y,y.y))/l))}}p?g=0:d=0;for(r=0;r<n.length;r++)if(t=h.model.getTerminal(n[r],
-!1),f==q(t)&&(y=h.view.getState(t),t!=a&&null!=y&&(p&&b!=y.getCenterX()<k.getCenterX()||!p&&b!=y.getCenterY()<k.getCenterY()))){var v=[];h.traverse(y.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});h.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function d(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);
+10:-e[1].geometry.height-10;f==mxConstants.DIRECTION_WEST&&(e[1].geometry.x=a.geometry.x+a.geometry.width-e[1].geometry.width);h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),l=h.view.scale;if(null!=k){var n=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:n.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var m=h.getOutgoingEdges(h.model.getTerminal(d[0],
+!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<m.length;t++){var r=h.model.getTerminal(m[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(n,x)&&(d=10+Math.max(d,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/l),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/l))}}p?g=0:d=0;for(t=0;t<m.length;t++)if(r=h.model.getTerminal(m[t],
+!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY()))){var u=[];h.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});h.moveCells(u,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function d(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);
var e=h.model.getParent(a),f=e.geometry,g=[];h.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);h.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var k=a.geometry.width+40,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,l=-40):b==mxConstants.DIRECTION_WEST?(k=-40,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);h.moveCells(g,k,l);return h.addCells(d,e)}finally{h.model.endUpdate()}}function f(a){h.model.beginUpdate();try{var b=
-h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var l=h.view.getBounds(f),m=q(a),n=h.view.translate,p=h.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-
-e.y+40):m==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=m==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/p-n.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,
+h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var l=h.view.getBounds(f),n=q(a),m=h.view.translate,p=h.view.scale;n==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-m.x-e.x+10,d[1].geometry.y+=a.geometry.height-
+e.y+40):n==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/p-m.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=n==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/p-m.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,
b,c){a=h.getOutgoingEdges(a);c=h.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=h.view.getState(h.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function p(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||
-c==mxConstants.DIRECTION_WEST)==d&&c!=b?n.actions.get("selectParent").funct():c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var n=this,h=n.editor.graph,w=h.getModel();mxResources.parse("selectChildren=Select Children");
-mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var u=n.menus.createPopupMenu;n.menus.createPopupMenu=function(a,c,d){u.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&
-(a.addSeparator(),0<h.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};n.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");n.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),
-a=h.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");n.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");n.actions.addAction("selectDescendants",
-function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+T");var x=h.removeCells;h.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&c(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(h.traverse(g,!0,
-function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return x.apply(this,arguments)};n.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var r=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
-a)}this.model.beginUpdate();try{var k=r.call(this,a,c);if(k.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var m=this.cloneCells([g[0]])[0];this.addEdge(m,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var z=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var l=null;this.model.beginUpdate();try{var m=f,n=this.view.getState(f),p=null!=n?n.style:this.getCellStyle(f);
-if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||h.model.isEdge(a[q])&&null==h.model.getTerminal(a[q],!0)){f=h.model.getParent(a[q]);break}if(null!=m&&f!=m&&null!=this.view.getState(a[0])){var r=h.getIncomingEdges(a[0]);if(0<r.length){var t=h.view.getState(h.model.getTerminal(r[0],!0));if(null!=t){var v=h.view.getState(m);null!=v&&(c=(v.getCenterX()-t.getCenterX())/h.view.scale,d=(v.getCenterY()-t.getCenterY())/h.view.scale)}}}}l=z.apply(this,arguments);
-if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(m)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],m,!0);else if(b(a[q])&&(r=h.getIncomingEdges(a[q]),0<r.length))if(!e)b(m)&&0>mxUtils.indexOf(a,this.model.getTerminal(r[0],!0))&&this.model.setTerminal(r[0],m,!0);else if(0==h.getIncomingEdges(l[q]).length){n=m;if(null==n||n==h.model.getParent(a[q]))n=h.model.getTerminal(r[0],!0);e=this.cloneCells([r[0]])[0];this.addEdge(e,
-h.getDefaultParent(),n,l[q])}}finally{this.model.endUpdate()}return l};if(null!=n.sidebar){var v=n.sidebar.dropAndConnect;n.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=v.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var l=h.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var A={88:n.actions.get("selectChildren"),
-84:n.actions.get("selectSubtree"),80:n.actions.get("selectParent"),83:n.actions.get("selectSiblings")},F=n.onKeyDown;n.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var c=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?d(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(c=t(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&h.model.isEdge(c[0])?h.setSelectionCell(h.model.getTerminal(c[0],
-!1)):h.setSelectionCell(c[c.length-1]),null!=n.hoverIcons&&n.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=A[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(p(h.getSelectionCell(),
-mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(p(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(I){console.log("error",I)}mxEvent.isConsumed(a)||F.apply(this,arguments)};var B=h.connectVertex;h.connectVertex=function(a,c,e,g,k,l){var m=h.getIncomingEdges(a);return b(a)&&0<m.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,e==c?f(a):g==k?d(a):t(a,c!=mxConstants.DIRECTION_NORTH&&
-c!=mxConstants.DIRECTION_WEST)):B.call(this,a,c,e,g,k,l)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var G=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){G.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
+c==mxConstants.DIRECTION_WEST)==d&&c!=b?m.actions.get("selectParent").funct():c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var m=this,h=m.editor.graph,w=h.getModel();mxResources.parse("selectChildren=Select Children");
+mxResources.parse("selectSiblings=Select Siblings");mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var u=m.menus.createPopupMenu;m.menus.createPopupMenu=function(a,c,d){u.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&
+(a.addSeparator(),0<h.getIncomingEdges(c).length&&this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};m.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");m.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),
+a=h.getIncomingEdges(a);if(null!=a&&0<a.length&&(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");m.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");m.actions.addAction("selectDescendants",
+function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+T");var v=h.removeCells;h.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&c(g)&&(e.push(g),g=w.getTerminal(g,!1));b(g)?(h.traverse(g,!0,
+function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]),a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};m.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var r=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],
+a)}this.model.beginUpdate();try{var k=r.call(this,a,c);if(k.length==a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var A=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var l=null;this.model.beginUpdate();try{var n=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);
+if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<a.length;q++)if(b(a[q])||h.model.isEdge(a[q])&&null==h.model.getTerminal(a[q],!0)){f=h.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=h.getIncomingEdges(a[0]);if(0<t.length){var r=h.view.getState(h.model.getTerminal(t[0],!0));if(null!=r){var u=h.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}l=A.apply(this,arguments);
+if(null!=l&&null!=a&&l.length==a.length)for(q=0;q<l.length;q++)if(this.model.isEdge(l[q]))b(n)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[q],!0))&&this.model.setTerminal(l[q],n,!0);else if(b(a[q])&&(t=h.getIncomingEdges(a[q]),0<t.length))if(!e)b(n)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==h.getIncomingEdges(l[q]).length){m=n;if(null==m||m==h.model.getParent(a[q]))m=h.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,
+h.getDefaultParent(),m,l[q])}}finally{this.model.endUpdate()}return l};if(null!=m.sidebar){var C=m.sidebar.dropAndConnect;m.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=C.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var l=h.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var y={88:m.actions.get("selectChildren"),
+84:m.actions.get("selectSubtree"),80:m.actions.get("selectParent"),83:m.actions.get("selectSiblings")},z=m.onKeyDown;m.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var c=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?d(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(c=t(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&h.model.isEdge(c[0])?h.setSelectionCell(h.model.getTerminal(c[0],
+!1)):h.setSelectionCell(c[c.length-1]),null!=m.hoverIcons&&m.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=y[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(p(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(p(h.getSelectionCell(),
+mxConstants.DIRECTION_EAST),mxEvent.consume(a)):40==a.keyCode&&(p(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(Q){console.log("error",Q)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var B=h.connectVertex;h.connectVertex=function(a,c,e,g,k,l){var n=h.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,e==c?f(a):g==k?d(a):t(a,c!=mxConstants.DIRECTION_NORTH&&
+c!=mxConstants.DIRECTION_WEST)):B.call(this,a,c,e,g,k,l)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),
this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);
-this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=
-this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
+this.graph.graphHandler.pBounds=this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};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 L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");
b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");
-e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);k.insertEdge(m,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-w.geometry.relative=!0;w.edge=!0;b.insertEdge(w,!0);h.insertEdge(w,!1);a.insert(d);a.insert(g);a.insert(m);a.insert(w);a.insert(b);a.insert(c);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
+e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+w.geometry.relative=!0;w.edge=!0;b.insertEdge(w,!0);h.insertEdge(w,!1);a.insert(d);a.insert(g);a.insert(l);a.insert(w);a.insert(b);a.insert(c);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,
0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization",
@@ -3072,33 +3074,33 @@ mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGE
this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=0;b<this.diagrams.length;b++)if(this.diagrams[b].getAttribute("id")==a){this.selectPage(b);break}};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=d&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),d=this.xmlNode)});this.addListener("xmlNodeChanged",
f);f();urlParams.page=c.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow};
this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",
-this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a),m=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(m.disconnect(),c())}));m.observe(k,{attributes:!0})}else c()}};
+this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a),l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),c())}));l.observe(k,{attributes:!0})}else c()}};
GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};
GraphViewer.prototype.setXmlNode=function(a){this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph(),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})};
-GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var c=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<b.width+this.graph.border?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},b={left:b.left-
-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||m||(m=!0,this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
-(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",c),this.graph.addListener("size",c)):new ResizeSensor(this.graph.container,
-c));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,this.toolbarHeight),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var l=k=null,c=mxUtils.bind(this,function(){window.clearTimeout(l);m||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),
-100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",c):new ResizeSensor(this.graph.container,c))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",c);var q=mxUtils.bind(this,function(){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var d=
+GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var c=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,
+top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,l=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||l||(l=!0,this.graph.maxFitScale=
+null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){l=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",c),this.graph.addListener("size",
+c)):new ResizeSensor(this.graph.container,c));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var n=k=null,c=mxUtils.bind(this,function(){window.clearTimeout(n);l||(n=window.setTimeout(mxUtils.bind(this,
+this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",c):new ResizeSensor(this.graph.container,c))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",c);var q=mxUtils.bind(this,function(){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var d=
null;null!=this.graphConfig["max-height"]&&(d=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(d)}else this.graph.view.setTranslate(Math.floor((this.graph.border-b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),k=a.offsetWidth;a.style.minWidth=c});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){b=this.graph.getGraphBounds();k=null;q()}};
GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var c=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var m=k.getChildCount(k.root),l=0;l<m;l++)k.setVisible(k.getChildAt(k.root,l),null!=b?c.isVisible(c.getChildAt(c.root,l)):!1);if(null==c)for(l=0;l<e.length;l++)k.setVisible(k.getChildAt(k.root,parseInt(e[l])),!0)}finally{k.endUpdate()}}};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var c=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),n=0;n<l;n++)k.setVisible(k.getChildAt(k.root,n),null!=b?c.isVisible(c.getChildAt(c.root,n)):!1);if(null==c)for(n=0;n<e.length;n++)k.setVisible(k.getChildAt(k.root,parseInt(e[n])),!0)}finally{k.endUpdate()}}};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",a);null!=c&&g.setAttribute("title",c);g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave",
function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
-e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var c=null,k=null,m=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);c=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
-0);c=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),l=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(l(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
-"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){l(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){l(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var q=this.graph,t=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
-q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<t&&Math.abs(this.scrollTop-q.container.scrollTop)<t&&Math.abs(this.startX-b.getGraphX())<t&&Math.abs(this.startY-b.getGraphY())<t&&(0<parseFloat(e.style.opacity||0)?m():l(30))}})}for(var d=this.toolbarItems,f=0,g=null,p=null,n=0;n<d.length;n++){var h=d[n];if("pages"==h){p=b.ownerDocument.createElement("div");
+e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var c=null,k=null,l=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);c=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
+0);c=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),n=mxUtils.bind(this,function(a){null!=c&&(window.clearTimeout(c),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(n(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
+"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){n(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){n(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||n(30)}));var q=this.graph,t=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
+q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<t&&Math.abs(this.scrollTop-q.container.scrollTop)<t&&Math.abs(this.startX-b.getGraphX())<t&&Math.abs(this.startY-b.getGraphY())<t&&(0<parseFloat(e.style.opacity||0)?l():n(30))}})}for(var d=this.toolbarItems,f=0,g=null,p=null,m=0;m<d.length;m++){var h=d[m];if("pages"==h){p=b.ownerDocument.createElement("div");
p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(p,70);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");w.style.borderRightStyle="none";w.style.paddingLeft="0px";w.style.paddingRight="0px";e.appendChild(p);var u=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");u.style.paddingLeft="0px";u.style.paddingRight="0px";h=mxUtils.bind(this,function(){p.innerHTML="";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";w.style.display=p.style.display;u.style.display=p.style.display});this.addListener("graphChanged",h);h()}else if("zoom"==h)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var x=this.graph.getModel(),r=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g),
+mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var v=this.graph.getModel(),r=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g),
g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=r.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+
-"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");x.addListener(mxEvent.CHANGE,function(){r.style.display=1<x.getChildCount(x.root)?"inline-block":"none"});r.style.display=1<x.getChildCount(x.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h],
+"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){r.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});r.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h],
null!=h&&a(null==h.enabled||h.enabled?h.handler:function(){},h.image,h.title,h.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(d=b.ownerDocument.createElement("div"),d.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",d.setAttribute("title",this.graphConfig.title),mxUtils.write(d,this.graphConfig.title),mxUtils.setOpacity(d,
-70),e.appendChild(d));this.minToolbarWidth=34*f;var z=b.style.border,d=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";
-e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==z&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
-g=null),b.style.border=z)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",d)};
+70),e.appendChild(d));this.minToolbarWidth=34*f;var A=b.style.border,d=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";
+e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==A&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
+g=null),b.style.border=A)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",d)};
GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,c){if(null==c){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(c=k.getAttribute("href"))}null!=b?null==c||a.isExternalProtocol(c)||a.isBlankLink(c)||window.setTimeout(function(){b.destroy()},0):null==c||!a.isPageLink(c)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e)||(k=c.indexOf(","),0<k&&(k=c.substring(k+
1),this.selectPageById(k),mxEvent.consume(e)))}),mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&&
@@ -3107,18 +3109,18 @@ GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.l
GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),b=document.createElement("div");mxClient.IS_QUIRKS?(b.style.position="absolute",b.style.left=a.x+"px",b.style.top=a.y+"px",b.style.width=document.body.offsetWidth+"px",b.style.height=document.body.offsetHeight+"px"):b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b);
var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){c.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||
10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var c=new EditorUi(new Editor(!0),document.createElement("div"),!0);c.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";c.refresh=function(){};mxEvent.addListener(b,"click",function(){c.destroy()});
-var k=mxUtils.bind(this,function(a){27==a.keyCode&&c.destroy()}),m=c.destroy;c.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var l=c.editor.graph,q=l.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",
-k)):(b.style.display="none",e.style.display="none");var t=this;l.getImageFromBundles=function(a){return t.getImageUrl(a)};var d=c.createTemporaryGraph;c.createTemporaryGraph=function(){var a=d.apply(this,arguments);a.getImageFromBundles=function(a){return t.getImageUrl(a)};return a};this.graphConfig.move&&(l.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
-"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(l,c);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);c.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");c.chromelessToolbar.style.bottom=
+var k=mxUtils.bind(this,function(a){27==a.keyCode&&c.destroy()}),l=c.destroy;c.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var n=c.editor.graph,q=n.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",
+k)):(b.style.display="none",e.style.display="none");var t=this;n.getImageFromBundles=function(a){return t.getImageUrl(a)};var d=c.createTemporaryGraph;c.createTemporaryGraph=function(){var a=d.apply(this,arguments);a.getImageFromBundles=function(a){return t.getImageUrl(a)};return a};this.graphConfig.move&&(n.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
+"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(n,c);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);c.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");c.chromelessToolbar.style.bottom=
"60px";c.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(c.chromelessToolbar);c.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",c.chromelessToolbar.style.display="block",c.chromelessToolbar.style.position="absolute",
-c.chromelessToolbar.style.bottom="",c.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");c.lightboxFit();c.chromelessResize();this.showLayers(l,this.graph)}),0);return c};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})};
+c.chromelessToolbar.style.bottom="",c.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");c.lightboxFit();c.chromelessResize();this.showLayers(n,this.graph)}),0);return c};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})};
GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var c=document.getElementsByTagName("*"),b=[],e=0;e<c.length;e++){var k=c[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(c[e]))}return b};
GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var c=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,c);null!=b&&b(e)};null!=c.url?GraphViewer.getUrl(c.url,function(a){k(a)}):k(c.xml)}};
GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var c=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;c.open("GET",a);c.onload=function(){b(null!=c.getText?c.getText():c.responseText)};c.onerror=e;c.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,c){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function l(b,c){if(!b.resizedAttached)b.resizedAttached=
+(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,c){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function n(b,c){if(!b.resizedAttached)b.resizedAttached=
new k,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var l=!1,p=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(p))};a(p);var q,t,A,F,B=function(){if((A=b.offsetWidth)!=q||(F=b.offsetHeight)!=t)l=!0,q=A,t=F;g()},G=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};G(d,"scroll",B);G(f,"scroll",B)}var q=function(){GraphViewer.resizeSensorEnabled&&c()},t=Object.prototype.toString.call(e),d="[object Array]"===t||"[object NodeList]"===t||"[object HTMLCollection]"===t||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(d)for(var t=0,f=e.length;t<f;t++)l(e[t],q);else l(e,q);this.detach=function(){if(d)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var n=!1,p=function(){b.resizedAttached&&(n&&(b.resizedAttached.call(),n=!1),a(p))};a(p);var q,t,y,z,B=function(){if((y=b.offsetWidth)!=q||(z=b.offsetHeight)!=t)n=!0,q=y,t=z;g()},F=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};F(d,"scroll",B);F(f,"scroll",B)}var q=function(){GraphViewer.resizeSensorEnabled&&c()},t=Object.prototype.toString.call(e),d="[object Array]"===t||"[object NodeList]"===t||"[object HTMLCollection]"===t||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(d)for(var t=0,f=e.length;t<f;t++)n(e[t],q);else n(e,q);this.detach=function(){if(d)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
diff --git a/src/main/webapp/plugins/cConf-1-4-8.js b/src/main/webapp/plugins/cConf-1-4-8.js
new file mode 100644
index 00000000..161dee64
--- /dev/null
+++ b/src/main/webapp/plugins/cConf-1-4-8.js
@@ -0,0 +1,195 @@
+/**
+ * Plugin for embed mode in Confluence Connect post version 1.4.8
+ */
+Draw.loadPlugin(function(ui)
+{
+ // Extracts macro data from JSON protocol
+ var macroData = {};
+
+ mxEvent.addListener(window, 'message', mxUtils.bind(this, function(evt)
+ {
+ var data = evt.data;
+
+ try
+ {
+ data = JSON.parse(data);
+
+ if (data.action == 'load' && data.macroData != null)
+ {
+ macroData = data.macroData;
+ }
+ }
+ catch (e)
+ {
+ data = null;
+ }
+ }));
+
+ // Creates actions
+ var action = ui.actions.put('viewerToolbarTop', new Action(mxResources.get('top'), function()
+ {
+ macroData.tbstyle = 'top';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.tbstyle != 'inline' && macroData.tbstyle != 'hidden' });
+
+ action = ui.actions.put('viewerToolbarMiddle', new Action(mxResources.get('embed'), function()
+ {
+ macroData.tbstyle = 'inline';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.tbstyle == 'inline'; });
+
+ action = ui.actions.put('viewerToolbarHidden', new Action(mxResources.get('hidden'), function()
+ {
+ macroData.tbstyle = 'hidden';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.tbstyle == 'hidden'; });
+
+ action = ui.actions.put('viewerLightbox', new Action(mxResources.get('lightbox'), function()
+ {
+ macroData.lbox = (macroData.lbox != '0') ? '0' : '1';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.lbox != '0'; });
+
+ action = ui.actions.put('linksAuto', new Action(mxResources.get('automatic'), function()
+ {
+ macroData.links = 'auto';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.links != 'blank' && macroData.links != 'self'; });
+
+ action = ui.actions.put('linksBlank', new Action(mxResources.get('openInNewWindow'), function()
+ {
+ macroData.links = 'blank';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.links == 'blank'; });
+
+ action = ui.actions.put('linksSelf', new Action(mxResources.get('openInThisWindow'), function()
+ {
+ macroData.links = 'self';
+ }));
+ action.setToggleAction(true);
+ action.setSelectedCallback(function() { return macroData.links == 'self'; });
+
+ action = ui.actions.put('viewerZoom', new Action(mxResources.get('zoom') + '...', function()
+ {
+ var dlg = new FilenameDialog(ui, (parseFloat(macroData.zoom || 1) * 100) + '%',
+ mxResources.get('apply'), function(newValue)
+ {
+ if (newValue != null)
+ {
+ var val = parseInt(newValue);
+
+ if (!isNaN(val))
+ {
+ macroData.zoom = val / 100;
+ }
+ }
+ }, mxResources.get('zoom'));
+ ui.showDialog(dlg.container, 300, 80, true, true);
+ dlg.init();
+ }));
+
+ // Creates viewer toolbar menu
+ mxResources.parse('viewerMenu=Viewer');
+ mxResources.parse('viewerToolbar=Toolbar');
+ mxResources.parse('viewerLightbox=Lightbox');
+ mxResources.parse('viewerLinks=Links');
+
+ ui.menus.put('viewerMenu', new Menu(mxUtils.bind(this, function(menu, parent)
+ {
+ ui.menus.addMenuItems(menu, ['viewerLightbox', 'viewerZoom', '-'], parent);
+ ui.menus.addSubmenu('viewerToolbar', menu, parent);
+ ui.menus.addSubmenu('viewerLinks', menu, parent);
+ })));
+
+ ui.menus.put('viewerToolbar', new Menu(mxUtils.bind(this, function(menu, parent)
+ {
+ ui.menus.addMenuItems(menu, ['viewerToolbarTop', 'viewerToolbarMiddle',
+ 'viewerToolbarHidden'], parent);
+ })));
+
+ ui.menus.put('viewerLinks', new Menu(mxUtils.bind(this, function(menu, parent)
+ {
+ ui.menus.addMenuItems(menu, ['linksAuto', 'linksBlank', 'linksSelf'], parent);
+ })));
+
+ // Adds Viewer menu at bottom of Extras menu
+ var menu = ui.menus.get('extras');
+ var oldFunct = menu.funct;
+
+ menu.funct = function(menu, parent)
+ {
+ oldFunct.apply(this, arguments);
+ this.addSubmenu('viewerMenu', menu, parent);
+ };
+
+ // Returns modified macro data to client
+ var uiCreateLoadMessage = ui.createLoadMessage;
+
+ ui.createLoadMessage = function(eventName)
+ {
+ var msg = uiCreateLoadMessage.apply(this, arguments);
+
+ if (eventName == 'export')
+ {
+ msg.macroData = macroData;
+ }
+
+ return msg;
+ };
+
+ var lic = urlParams['lic'];
+
+ if (lic != null && lic == 'active')
+ {
+ ui.hideFooter();
+ }
+ else
+ {
+ // Display footer and alter it
+ var td = document.getElementById('geFooterItem2');
+
+ if (td != null)
+ {
+ td.innerHTML = '<a title="faq" href="https://marketplace.atlassian.com/plugins/com.mxgraph.confluence.plugins.diagramly/cloud/reviews" target="_blank">' +
+ '<img border="0" align="absmiddle" style="margin-top:-4px;"/>Enjoying this free plugin? Please help us to 4 stars.</a>';
+ }
+
+ td = document.getElementById('geFooterItem1');
+
+ if (td != null)
+ {
+ td.parentNode.removeChild(td);
+ }
+
+ td = document.getElementById('geFooterItem3');
+
+ if (td != null)
+ {
+ td.parentNode.removeChild(td);
+ }
+ }
+
+ var lang = urlParams['lang'];
+ var site = urlParams['site'];
+ var user = urlParams['user'];
+
+ try
+ {
+ var img = new Image();
+ img.src = 'https://log.draw.io/log?severity=CONFIG&msg=conf-cloud-edit' +
+ ((lang != null) ? ':lang=' + encodeURIComponent(lang) : '') +
+ ((site != null) ? ':site=' + encodeURIComponent(site) : '') +
+ ((user != null) ? ':user=' + encodeURIComponent(user) : '') +
+ '&v=' + encodeURIComponent(EditorUi.VERSION);
+ }
+ catch (e)
+ {
+ // not important, just don't break editing because of a log
+ }
+});
diff --git a/src/main/webapp/plugins/sql.js b/src/main/webapp/plugins/sql.js
index a05558d5..b4ff1f21 100644
--- a/src/main/webapp/plugins/sql.js
+++ b/src/main/webapp/plugins/sql.js
@@ -1,176 +1,639 @@
/**
* Parse SQL CREATE TABLE. Simple initial version for community to improve.
*/
-Draw.loadPlugin(function(ui)
-{
- // LATER: REFERENCES and PRIMARY KEY
- var div = document.createElement('div');
- div.style.userSelect = 'none';
- div.style.overflow = 'hidden';
- div.style.padding = '10px';
- div.style.height = '100%';
-
- var graph = ui.editor.graph;
-
- var sqlInput = document.createElement('textarea');
- sqlInput.style.height = '200px';
- sqlInput.style.width = '100%';
- sqlInput.value = 'CREATE TABLE Persons\n(\nPersonID int,\nLastName varchar(255),\n' +
- 'FirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);';
- mxUtils.br(div);
- div.appendChild(sqlInput);
-
- var graph = ui.editor.graph;
-
- // Extends Extras menu
- mxResources.parse('fromSql=From SQL');
-
- var wnd = new mxWindow(mxResources.get('fromSql'), div, document.body.offsetWidth - 480, 140,
- 320, 300, true, true);
- wnd.destroyOnClose = false;
- wnd.setMaximizable(false);
- wnd.setResizable(false);
- wnd.setClosable(true);
-
- function parseSql(text)
- {
- var lines = text.split('\n');
- var tableCell = null;
- var rows = null;
- var cells = [];
- var dx = 0;
-
- for (var i = 0; i < lines.length; i++)
- {
- var tmp = mxUtils.trim(lines[i]);
-
- if (tmp.substring(0, 12).toLowerCase() == 'create table')
- {
- var name = mxUtils.trim(tmp.substring(12));
-
- if (name.charAt(name.length - 1) == '(')
- {
- name = name.substring(0, name.lastIndexOf(' '));
- }
-
- tableCell = new mxCell(name, new mxGeometry(dx, 0, 160, 26),
- 'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;');
- tableCell.vertex = true;
- cells.push(tableCell);
-
- var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
-
- if (size != null)
- {
- tableCell.geometry.width = size.width + 10;
- }
-
- // For primary key lookups
- rows = {};
- }
- else if (tableCell != null && tmp.charAt(0) == ')')
- {
- dx += tableCell.geometry.width + 40;
- tableCell = null;
- }
- else if (tmp != '(' && tableCell != null)
- {
- var name = tmp.substring(0, (tmp.charAt(tmp.length - 1) == ',') ? tmp.length - 1 : tmp.length);
-
- if (name.substring(0, 11).toLowerCase() != 'primary key')
- {
- var rowCell = new mxCell(name, new mxGeometry(0, 0, 90, 26),
- 'shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;');
- rowCell.vertex = true;
-
- var left = sb.cloneCell(rowCell, '' /* eg. PK */);
- left.connectable = false;
- left.style = 'shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;'
- left.geometry.width = 30;
- left.geometry.height = 26;
- rowCell.insert(left);
-
- var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
-
- if (size != null && tableCell.geometry.width < size.width + 10)
- {
- tableCell.geometry.width = size.width + 10;
- }
-
- tableCell.insert(rowCell);
- tableCell.geometry.height += 26;
-
- rows[rowCell.value] = rowCell;
- }
- }
- }
-
- if (cells.length > 0)
- {
- var graph = ui.editor.graph;
- var view = graph.view;
- var bds = graph.getGraphBounds();
-
- // Computes unscaled, untranslated graph bounds
- var x = Math.ceil(Math.max(0, bds.x / view.scale - view.translate.x) + 4 * graph.gridSize);
- var y = Math.ceil(Math.max(0, (bds.y + bds.height) / view.scale - view.translate.y) + 4 * graph.gridSize);
-
- graph.setSelectionCells(graph.importCells(cells, x, y));
- graph.scrollCellToVisible(graph.getSelectionCell());
- }
-
- wnd.setVisible(false);
- };
-
- mxUtils.br(div);
-
- var resetBtn = mxUtils.button(mxResources.get('reset'), function()
- {
- sqlInput.value = '';
- });
-
- resetBtn.style.marginTop = '8px';
- resetBtn.style.marginRight = '4px';
- resetBtn.style.padding = '4px';
- div.appendChild(resetBtn);
-
- var btn = mxUtils.button(mxResources.get('cancel'), function()
- {
- wnd.setVisible(false);
- });
-
- btn.style.marginTop = '8px';
- btn.style.marginRight = '4px';
- btn.style.padding = '4px';
- div.appendChild(btn);
-
- var btn = mxUtils.button(mxResources.get('insert'), function()
- {
- parseSql(sqlInput.value);
- });
-
- btn.style.marginTop = '8px';
- btn.style.padding = '4px';
- div.appendChild(btn);
+Draw.loadPlugin(function(ui) {
+
+ function TableModel() {
+ this.Name = null;
+ this.Properties = []
+ }
+
+ function PropertyModel() {
+ this.Name = null;
+ this.Value = null;
+ this.TableName = null;
+ this.ForeignKey = [];
+ this.IsPrimaryKey = false;
+ this.IsForeignKey = false;
+ }
+
+ function ForeignKeyModel() {
+ this.PrimaryKeyName = null;
+ this.ReferencesPropertyName = null
+
+ this.PrimaryKeyTableName = null;
+ this.ReferencesTableName = null;
+
+ this.IsDestination = false;
+ }
+
+ function PrimaryKeyModel() {
+ this.PrimaryKeyName = null;
+ this.PrimaryKeyTableName = null;
+ }
+
+ //SQL Types
+ var SQLServer = 'sqlserver';
+
+ //SQL Modes
+ var MODE_SQLSERVER = null;
+
+ //Table Info
+ var foreignKeyList = [];
+ var primaryKeyList = [];
+ var tableList = [];
+ var cells = [];
+ var tableCell = null;
+ var rowCell = null;
+ var dx = 0;
+ var exportedTables = 0;
+
+
+ //Create Base div
+ var div = document.createElement('div');
+ div.style.userSelect = 'none';
+ div.style.overflow = 'hidden';
+ div.style.padding = '10px';
+ div.style.height = '100%';
+
+ var graph = ui.editor.graph;
+
+ var sqlInput = document.createElement('textarea');
+ sqlInput.style.height = '200px';
+ sqlInput.style.width = '100%';
+ sqlInput.value = 'CREATE TABLE Persons\n(\nPersonID int,\nLastName varchar(255),\n' +
+ 'FirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);';
+ mxUtils.br(div);
+ div.appendChild(sqlInput);
+
+ var graph = ui.editor.graph;
+
+ // Extends Extras menu
+ mxResources.parse('fromSql=From SQL');
+
+ var wnd = new mxWindow(mxResources.get('fromSql'), div, document.body.offsetWidth - 480, 140,
+ 320, 300, true, true);
+ wnd.destroyOnClose = false;
+ wnd.setMaximizable(false);
+ wnd.setResizable(false);
+ wnd.setClosable(true);
+
+ function AddRow(propertyModel, tableName) {
+
+ var cellName = propertyModel.Name;
+
+ if (propertyModel.IsForeignKey && propertyModel.ForeignKey !== undefined && propertyModel.ForeignKey !== null) {
+ propertyModel.ForeignKey.forEach(function(foreignKeyModel) {
+
+ //We do not want the foreign key to be duplicated in our table to the same property
+ if (tableName !== foreignKeyModel.PrimaryKeyTableName || (tableName === foreignKeyModel.PrimaryKeyTableName && propertyModel.Name !== foreignKeyModel.PrimaryKeyName)) {
+ cellName += ' | ' + foreignKeyModel.PrimaryKeyTableName + '(' + foreignKeyModel.PrimaryKeyName + ')';
+ }
+ })
+ }
+
+ rowCell = new mxCell(cellName, new mxGeometry(0, 0, 90, 26),
+ 'shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;');
+ rowCell.vertex = true;
+
+ var columnType = propertyModel.IsPrimaryKey && propertyModel.IsForeignKey ? 'PK | FK' : propertyModel.IsPrimaryKey ? 'PK' : propertyModel.IsForeignKey ? 'FK' : '';
+
+ var left = sb.cloneCell(rowCell, columnType);
+ left.connectable = false;
+ left.style = 'shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;'
+ left.geometry.width = 54;
+ left.geometry.height = 26;
+ rowCell.insert(left);
+
+ var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
+
+ if (size !== null && tableCell.geometry.width < size.width + 10) {
+ tableCell.geometry.width = size.width + 10;
+ }
+
+ tableCell.insert(rowCell);
+ tableCell.geometry.height += 26;
+
+ rowCell = rowCell;
+
+ };
+
+ function ParseMySQLForeignKey(name, currentTableModel) {
+ var referencesIndex = name.toLowerCase().indexOf("references");
+ var foreignKeySQL = name.substring(0, referencesIndex);
+ var referencesSQL = name.substring(referencesIndex, name.length);
+
+ //Remove references syntax
+ referencesSQL = referencesSQL.replace("REFERENCES ", '');
+
+ //Get Table and Property Index
+ var referencedTableIndex = referencesSQL.indexOf("(");
+ var referencedPropertyIndex = referencesSQL.indexOf(")");
+
+ //Get Referenced Table
+ var referencedTableName = referencesSQL.substring(0, referencedTableIndex);
+
+ //Get Referenced Key
+ var referencedPropertyName = referencesSQL.substring(referencedTableIndex + 1, referencedPropertyIndex);
+
+ //Get ForeignKey
+ var foreignKey = foreignKeySQL.replace("FOREIGN KEY (", '').replace(")", '').replace(" ", '');
+
+ //Create ForeignKey
+ var foreignKeyOriginModel = CreateForeignKey(foreignKey, currentTableModel.Name, referencedPropertyName, referencedTableName, true);
+
+ //Add ForeignKey Origin
+ foreignKeyList.push(foreignKeyOriginModel);
+
+ //Create ForeignKey
+ var foreignKeyDestinationModel = CreateForeignKey(referencedPropertyName, referencedTableName, foreignKey, currentTableModel.Name, false);
+
+ //Add ForeignKey Destination
+ foreignKeyList.push(foreignKeyDestinationModel);
+ };
+
+ function ParseSQLServerForeignKey(name, currentTableModel) {
+ var referencesIndex = name.toLowerCase().indexOf("references");
+
+ if (name.toLowerCase().indexOf("foreign key(") !== -1) {
+ var foreignKeySQL = name.substring(name.toLowerCase().indexOf("foreign key("), referencesIndex).replace("FOREIGN KEY(", '').replace(')', '');
+ } else {
+ var foreignKeySQL = name.substring(name.toLowerCase().indexOf("foreign key ("), referencesIndex).replace("FOREIGN KEY (", '').replace(')', '');
+ }
+
+ var referencesSQL = name.substring(referencesIndex, name.length);
+ var alterTableName = name.substring(0, name.indexOf("WITH")).replace('ALTER TABLE ', '');
+
+ if (referencesIndex !== -1 && alterTableName !== '' && foreignKeySQL !== '' && referencesSQL !== '') {
+
+ //Remove references syntax
+ referencesSQL = referencesSQL.replace("REFERENCES ", '');
+
+ //Get Table and Property Index
+ var referencedTableIndex = referencesSQL.indexOf("(");
+ var referencedPropertyIndex = referencesSQL.indexOf(")");
+
+ //Get Referenced Table
+ var referencedTableName = referencesSQL.substring(0, referencedTableIndex);
+
+ //Parse Name
+ referencedTableName = ParseSQLServerName(referencedTableName);
+
+ //Get Referenced Key
+ var referencedPropertyName = referencesSQL.substring(referencedTableIndex + 1, referencedPropertyIndex);
+
+ //Parse Name
+ referencedPropertyName = ParseSQLServerName(referencedPropertyName);
+
+ //Get ForeignKey
+ var foreignKey = foreignKeySQL.replace("FOREIGN KEY (", '').replace(")", '');
+
+ //Parse Name
+ foreignKey = ParseSQLServerName(foreignKey);
+
+ //Parse Name
+ alterTableName = ParseSQLServerName(alterTableName);
+
+ //Create ForeignKey
+ var foreignKeyOriginModel = CreateForeignKey(foreignKey, alterTableName, referencedPropertyName, referencedTableName, true);
+
+ //Add ForeignKey Origin
+ foreignKeyList.push(foreignKeyOriginModel);
+
+ //Create ForeignKey
+ var foreignKeyDestinationModel = CreateForeignKey(referencedPropertyName, referencedTableName, foreignKey, alterTableName, false);
+
+ //Add ForeignKey Destination
+ foreignKeyList.push(foreignKeyDestinationModel);
+ }
+ };
+
+ function ProcessPrimaryKey() {
+
+ primaryKeyList.forEach(function(primaryModel) {
+ tableList.forEach(function(tableModel) {
+ if (tableModel.Name === primaryModel.PrimaryKeyTableName) {
+ tableModel.Properties.forEach(function(propertyModel) {
+ if (propertyModel.Name === primaryModel.PrimaryKeyName) {
+ propertyModel.IsPrimaryKey = true;
+ }
+ });
+ }
+ });
+ });
+ }
+
+ function AssignForeignKey(foreignKeyModel) {
+ tableList.forEach(function(tableModel) {
+ if (tableModel.Name === foreignKeyModel.ReferencesTableName) {
+ tableModel.Properties.forEach(function(propertyModel) {
+ if (propertyModel.Name === foreignKeyModel.ReferencesPropertyName) {
+ propertyModel.IsForeignKey = true;
+ propertyModel.ForeignKey.push(foreignKeyModel);
+ }
+ });
+ }
+
+ if (tableModel.Name === foreignKeyModel.PrimaryKeyTableName) {
+ tableModel.Properties.forEach(function(propertyModel) {
+ if (propertyModel.Name === foreignKeyModel.PrimaryKeyName) {
+ propertyModel.IsForeignKey = true;
+ propertyModel.ForeignKey.push(foreignKeyModel);
+ }
+ });
+ }
+ });
+ }
+
+ function ProcessForeignKey() {
+
+ foreignKeyList.forEach(function(foreignKeyModel) {
+ //Assign ForeignKey
+ AssignForeignKey(foreignKeyModel);
+ });
+ }
+
+ function CreateForeignKey(primaryKeyName, primaryKeyTableName, referencesPropertyName, referencesTableName, isDestination) {
+ var foreignKey = new ForeignKeyModel;
+
+ foreignKey.PrimaryKeyTableName = primaryKeyTableName;
+ foreignKey.PrimaryKeyName = primaryKeyName;
+ foreignKey.ReferencesPropertyName = referencesPropertyName;
+ foreignKey.ReferencesTableName = referencesTableName;
+ foreignKey.IsDestination = (isDestination !== undefined && isDestination !== null) ? isDestination : false;
+
+ return foreignKey;
+ };
+
+ function CreatePrimaryKey(primaryKeyName, primaryKeyTableName) {
+ var primaryKey = new PrimaryKeyModel;
+
+ primaryKey.PrimaryKeyTableName = primaryKeyTableName;
+ primaryKey.PrimaryKeyName = primaryKeyName;
+
+ return primaryKey;
+ };
+
+ function CreateProperty(name, tableName, foreignKey, isPrimaryKey) {
+ var property = new PropertyModel;
+ var isForeignKey = foreignKey !== undefined && foreignKey !== null;
+
+ property.Name = name;
+ property.TableName = tableName;
+ property.ForeignKey = isForeignKey ? foreignKey : [];
+ property.IsForeignKey = isForeignKey;
+ property.IsPrimaryKey = isPrimaryKey;
+
+ return property;
+ };
+
+ function CreateTable(name) {
+ var table = new TableModel;
+
+ table.Name = name;
+
+ //Count exported tables
+ exportedTables++;
+
+ return table;
+ };
+
+ function ParseSQLServerName(name, property) {
+ name = name.replace('[dbo].[', '');
+ name = name.replace('](', '');
+ name = name.replace('].[', '.');
+ name = name.replace('[', '');
+
+ if (property == undefined || property == null) {
+ name = name.replace(' [', '');
+ name = name.replace('] ', '');
+ } else {
+ if (name.indexOf(']') !== -1) {
+ name = name.substring(0, name.indexOf(']'));
+ }
+ }
+
+ if (name.lastIndexOf(']') === (name.length - 1)) {
+ name = name.substring(0, name.length - 1);
+ }
+
+ if (name.lastIndexOf(')') === (name.length - 1)) {
+ name = name.substring(0, name.length - 1);
+ }
+
+ if (name.lastIndexOf('(') === (name.length - 1)) {
+ name = name.substring(0, name.length - 1);
+ }
+
+ name = name.replace(' ', '');
+
+ return name;
+ };
+
+ function ParseTableName(name) {
+ if (name.charAt(name.length - 1) === '(') {
+ if (!MODE_SQLSERVER) {
+ name = name.substring(0, name.lastIndexOf(' '));
+ } else {
+ name = ParseSQLServerName(name);
+ }
+ }
+
+ return name;
+ };
+
+ function parseSql(text, type) {
+ var lines = text.split('\n');
+ dx = 0;
+ MODE_SQLSERVER = type !== undefined && type !== null && type == SQLServer;
+
+ tableCell = null;
+ cells = [];
+ exportedTables = 0;
+ tableList = [];
+ foreignKeyList = [];
+
+ var currentTableModel = null;
+
+ //Parse SQL to objects
+ for (var i = 0; i < lines.length; i++) {
+
+ rowCell = null;
+
+ var tmp = mxUtils.trim(lines[i]);
+
+ var propertyRow = tmp.substring(0, 12).toLowerCase();
+
+ //Parse Table
+ if (propertyRow === 'create table') {
+
+ //Parse row
+ var name = mxUtils.trim(tmp.substring(12));
+
+ //Parse Table Name
+ name = ParseTableName(name);
+
+ if (currentTableModel !== null) {
+ //Add table to the list
+ tableList.push(currentTableModel);
+ }
+
+ //Create Table
+ currentTableModel = CreateTable(name);
+ }
+ // Parse Properties
+ else if (tmp !== '(' && currentTableModel != null && propertyRow !== 'alter table ') {
+
+ //Parse the row
+ var name = tmp.substring(0, (tmp.charAt(tmp.length - 1) === ',') ? tmp.length - 1 : tmp.length);
+
+ //Attempt to get the Key Type
+ var propertyType = name.substring(0, 11).toLowerCase();
+
+ //Add special constraints
+ if (MODE_SQLSERVER) {
+ if (tmp.indexOf("CONSTRAINT") !== -1 && tmp.indexOf("PRIMARY KEY") !== -1) {
+ propertyType = "constrain primary key";
+ }
+
+ if (tmp.indexOf("CONSTRAINT") !== -1 && tmp.indexOf("FOREIGN KEY") !== -1) {
+ propertyType = "constrain foreign key";
+ }
+ }
+
+ //Verify if this is a property that doesn't have a relationship (One minute of silence for the property)
+ var normalProperty = propertyType !== 'primary key' && propertyType !== 'foreign key' && propertyType !== 'constrain primary key' && propertyType !== 'constrain foreign key';
+
+ //Parse properties that don't have relationships
+ if (normalProperty) {
+
+ if (name === '' || name === "" || name === ");") {
+ continue;
+ }
+
+ if (MODE_SQLSERVER) {
+ if (name.indexOf("ASC") !== -1 ||
+ name.indexOf("DESC") !== -1 ||
+ name.indexOf("EXEC") !== -1 ||
+ name.indexOf("WITH") !== -1 ||
+ name.indexOf("ON") !== -1 ||
+ name.indexOf("ALTER") !== -1 ||
+ name.indexOf("/*") !== -1 ||
+ name.indexOf("CONSTRAIN") !== -1 ||
+ name.indexOf("SET") !== -1 ||
+ name.indexOf("NONCLUSTERED") !== -1 ||
+ name.indexOf("GO") !== -1 ||
+ name.indexOf("REFERENCES") !== -1) {
+ continue;
+ }
+ //Get delimiter of column name
+ var firstSpaceIndex = name.indexOf(' ');
+
+ //Get full name
+ name = name.substring(0, firstSpaceIndex);
+
+ name = ParseSQLServerName(name, true);
+ } else {
+ //Get delimiter of column name
+ var firstSpaceIndex = name.indexOf(' ');
+
+ //Get full name
+ name = name.substring(0, firstSpaceIndex);
+ }
+
+ //Create Property
+ var propertyModel = CreateProperty(name, currentTableModel.Name, null, false, false);
+
+ //Add Property to table
+ currentTableModel.Properties.push(propertyModel);
+ }
+
+ //Parse Primary Key
+ if (propertyType === 'primary key' || propertyType === 'constrain primary key') {
+ if (!MODE_SQLSERVER) {
+ var primaryKey = name.replace('PRIMARY KEY (', '').replace(')', '');
+
+ //Create Primary Key
+ var primaryKeyModel = CreatePrimaryKey(primaryKey, currentTableModel.Name);
+
+ //Add Primary Key to List
+ primaryKeyList.push(primaryKeyModel);
+
+ } else {
+ var start = i + 2;
+ var end = 0;
+ if (name.indexOf('PRIMARY KEY') !== -1 && name.indexOf('CLUSTERED') === -1) {
+ var primaryKey = name.replace('PRIMARY KEY (', '').replace(')', '');
+
+ //Create Primary Key
+ var primaryKeyModel = CreatePrimaryKey(primaryKey, currentTableModel.Name);
+
+ //Add Primary Key to List
+ primaryKeyList.push(primaryKeyModel);
+
+ } else {
+ while (end === 0) {
+ var primaryKeyRow = mxUtils.trim(lines[start]);
+
+ if (primaryKeyRow.indexOf(')') !== -1) {
+ end = 1;
+ break;
+ }
+
+ start++;
+
+ primaryKeyRow = primaryKeyRow.replace("ASC", '');
+
+ //Parse name
+ primaryKeyRow = ParseSQLServerName(primaryKeyRow, true);
+
+ //Create Primary Key
+ var primaryKeyModel = CreatePrimaryKey(primaryKeyRow, currentTableModel.Name);
+
+ //Add Primary Key to List
+ primaryKeyList.push(primaryKeyModel);
+ }
+ }
+
+ }
+ }
+
+ //Parse Foreign Key
+ if (propertyType === 'foreign key' || propertyType === 'constrain foreign key') {
+ if (!MODE_SQLSERVER) {
+ ParseMySQLForeignKey(name, currentTableModel);
+ } else {
+ var completeRow = name;
+
+ if (name.indexOf('REFERENCES') === -1) {
+ var referencesRow = mxUtils.trim(lines[i + 1]);
+ completeRow = 'ALTER TABLE [dbo].[' + currentTableModel.Name + '] WITH CHECK ADD' + ' ' + name + ' ' + referencesRow;
+ }
+
+ ParseSQLServerForeignKey(completeRow, currentTableModel);
+
+ }
+ }
+
+ } else if (propertyRow === 'alter table ') {
+
+ if (MODE_SQLSERVER) {
+ //Parse the row
+ var alterTableRow = tmp.substring(0, (tmp.charAt(tmp.length - 1) === ',') ? tmp.length - 1 : tmp.length);
+ var referencesRow = mxUtils.trim(lines[i + 1]);
+ var completeRow = alterTableRow + ' ' + referencesRow;
+
+ ParseSQLServerForeignKey(completeRow, currentTableModel);
+ }
+ }
+ }
+
+ //Add last table
+ if (currentTableModel !== null) {
+ //Add table to the list
+ tableList.push(currentTableModel);
+ }
+
+ //Process Primary Keys
+ ProcessPrimaryKey();
+
+ //Process Foreign Keys
+ ProcessForeignKey();
+
+ //Create Table in UI
+ CreateTableUI();
+ };
+
+ function CreateTableUI() {
+
+ tableList.forEach(function(tableModel) {
+ //Define table size width
+ var maxNameLenght = 100 + tableModel.Name.length;
+
+ //Create Table
+ tableCell = new mxCell(tableModel.Name, new mxGeometry(dx, 0, maxNameLenght, 26),
+ 'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;');
+ tableCell.vertex = true;
+
+ //Resize row
+ var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
+ if (size !== null) {
+ tableCell.geometry.width = size.width + maxNameLenght;
+ }
+
+ //Add Table to cells
+ cells.push(tableCell);
+
+ //Add properties
+ tableModel.Properties.forEach(function(propertyModel) {
+
+ //Add row
+ AddRow(propertyModel, tableModel.Name);
+ });
+
+ //Close table
+ dx += tableCell.geometry.width + 40;
+ tableCell = null;
+ });
+
+ if (cells.length > 0) {
+ var graph = ui.editor.graph;
+ var view = graph.view;
+ var bds = graph.getGraphBounds();
+
+ // Computes unscaled, untranslated graph bounds
+ var x = Math.ceil(Math.max(0, bds.x / view.scale - view.translate.x) + 4 * graph.gridSize);
+ var y = Math.ceil(Math.max(0, (bds.y + bds.height) / view.scale - view.translate.y) + 4 * graph.gridSize);
+
+ graph.setSelectionCells(graph.importCells(cells, x, y));
+ graph.scrollCellToVisible(graph.getSelectionCell());
+ }
+
+ wnd.setVisible(false);
+ };
+
+ mxUtils.br(div);
+
+ var resetBtn = mxUtils.button(mxResources.get('reset'), function() {
+ sqlInput.value = '';
+ });
+
+ resetBtn.style.marginTop = '8px';
+ resetBtn.style.marginRight = '4px';
+ resetBtn.style.padding = '4px';
+ div.appendChild(resetBtn);
+
+ var btn = mxUtils.button('Insert MySQL', function() {
+ parseSql(sqlInput.value);
+ });
+
+ btn.style.marginTop = '8px';
+ btn.style.padding = '4px';
+ div.appendChild(btn);
+
+ var btn = mxUtils.button('Insert SQL Server', function() {
+ parseSql(sqlInput.value, 'sqlserver');
+ });
+
+ btn.style.marginTop = '8px';
+ btn.style.padding = '4px';
+ div.appendChild(btn);
// Adds action
- ui.actions.addAction('fromSql', function()
- {
- wnd.setVisible(!wnd.isVisible());
-
- if (wnd.isVisible())
- {
- sqlInput.focus();
- }
+ ui.actions.addAction('fromSql', function() {
+ wnd.setVisible(!wnd.isVisible());
+
+ if (wnd.isVisible()) {
+ sqlInput.focus();
+ }
});
-
- var theMenu = ui.menus.get('insert');
- var oldMenu = theMenu.funct;
-
- theMenu.funct = function(menu, parent)
- {
- oldMenu.apply(this, arguments);
-
- ui.menus.addMenuItems(menu, ['fromSql'], parent);
- };
-});
+
+ var theMenu = ui.menus.get('insert');
+ var oldMenu = theMenu.funct;
+
+ theMenu.funct = function(menu, parent) {
+ oldMenu.apply(this, arguments);
+
+ ui.menus.addMenuItems(menu, ['fromSql'], parent);
+ };
+}); \ No newline at end of file
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index 04e6c74c..e1dd9ca2 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -206,7 +206,7 @@ embed=Insluiten
embedImages=Afbeeldingen Insluiten
mainEmbedNotice=Dit op de pagina plakken
electrical=Elektrisch
-ellipse=Ellipse
+ellipse=Ellips
embedNotice=Dit eenmalig aan het einde van de pagina plakken
enterGroup=Groep Invullen
enterName=Naam invullen
@@ -419,7 +419,7 @@ makeCopy=Een kopie maken
manual=Handleiding
middle=Midden
misc=Overige
-mockups=Mock-ups
+mockups=Modellen
modificationDate=Aanpassingsdatum
modifiedBy=Aangepast door
more=Meer
@@ -533,7 +533,7 @@ readOnly=Alleen-lezen
reconnecting=Opnieuw verbinden
recentlyUpdated=Recent bijgewerkt
recentlyViewed=Recent bekeken
-rectangle=Rectangle
+rectangle=Rechthoek
redirectToNewApp=Dit bestand is aangemaakt of aangepast in een nieuwere versie van deze app. U wordt nu doorgestuurd.
realtimeTimeout=Het lijkt alsof u enkele wijzigingen hebt aangebracht terwijl u offline was. Het spijt ons, maar deze wijzigingen kunnen niet worden opgeslagen.
redo=Opnieuw
@@ -568,7 +568,7 @@ retryingLogin=Logintijd verlopen. Opnieuw...
reverse=Ongedaan maken
revision=Revisie
revisionHistory=Revisiegeschiedenis
-rhombus=Rhombus
+rhombus=Ruit
right=Rechts
rightAlign=Rechts Uitlijnen
rightToLeft=Rechts naar links
@@ -597,7 +597,7 @@ selectFile=Bestand selecteren
selectFolder=Map selecteren
selectFont=Lettertype selecteren
selectNone=Niets selecteren
-selectTemplate=Select Template
+selectTemplate=Sjabloon selecteren
selectVertices=Hoekpunten selecteren
sendMessage=Versturen
sendYourFeedbackToDrawIo=Stuur uw opmerkingen naar draw.io
@@ -708,7 +708,7 @@ engineering=Elektrisch
flowcharts=Stroomschema's
gmdl=Materiaalontwerp
mindmaps=Mindmaps
-mockups=Mock-ups
+mockups=Modellen
networkdiagrams=Netwerkdiagrammen
nothingIsSelected=Niets geselecteerd
other=Overige
diff --git a/src/main/webapp/shapes/bpmn/mxBpmnShape2.js b/src/main/webapp/shapes/bpmn/mxBpmnShape2.js
index 51dc028e..e625f4f3 100644
--- a/src/main/webapp/shapes/bpmn/mxBpmnShape2.js
+++ b/src/main/webapp/shapes/bpmn/mxBpmnShape2.js
@@ -435,6 +435,13 @@ mxBpmnShape.prototype.symbols = {
c.rect(0, 0, w, h);
c.fillAndStroke();
+ var fc = mxUtils.getValue(this.style, "fillColor", "none");
+
+ if (fc === 'none')
+ {
+ c.setStrokeColor('#ffffff');
+ }
+
c.begin();
c.moveTo(0, 0);
c.lineTo(w * 0.5, h * 0.5);
diff --git a/src/main/webapp/shapes/mxBasic.js b/src/main/webapp/shapes/mxBasic.js
index 79716f75..ba47d92f 100644
--- a/src/main/webapp/shapes/mxBasic.js
+++ b/src/main/webapp/shapes/mxBasic.js
@@ -451,3 +451,126 @@ Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE] = function(state
return handles;
};
+
+//**********************************************************************************************************************************************************
+//Acute Triangle
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeBasicTriangleAcute(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.dx = 0.5;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeBasicTriangleAcute, mxActor);
+
+mxShapeBasicTriangleAcute.prototype.cst = {ACUTE_TRIANGLE : 'mxgraph.basic.acute_triangle'};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeBasicTriangleAcute.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var dx = w * Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx))));
+
+ c.begin();
+ c.moveTo(0, h);
+ c.lineTo(dx, 0);
+ c.lineTo(w, h);
+ c.close();
+ c.fillAndStroke();
+};
+
+mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE, mxShapeBasicTriangleAcute);
+
+mxShapeBasicTriangleAcute.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['dx'], function(bounds)
+ {
+ var dx = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx))));
+
+ return new mxPoint(bounds.x + dx * bounds.width, bounds.y + 10);
+ }, function(bounds, pt)
+ {
+ this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(1, (pt.x - bounds.x) / bounds.width))) / 100;
+ })];
+
+ return handles;
+};
+
+//**********************************************************************************************************************************************************
+//Obtuse Triangle
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeBasicTriangleObtuse(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.dx = 0.5;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeBasicTriangleObtuse, mxActor);
+
+mxShapeBasicTriangleObtuse.prototype.cst = {OBTUSE_TRIANGLE : 'mxgraph.basic.obtuse_triangle'};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeBasicTriangleObtuse.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var dx = w * Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx))));
+
+ c.begin();
+ c.moveTo(dx, h);
+ c.lineTo(0, 0);
+ c.lineTo(w, h);
+ c.close();
+ c.fillAndStroke();
+};
+
+mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE, mxShapeBasicTriangleObtuse);
+
+mxShapeBasicTriangleObtuse.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['dx'], function(bounds)
+ {
+ var dx = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx))));
+
+ return new mxPoint(bounds.x + dx * bounds.width, bounds.y + bounds.height - 10);
+ }, function(bounds, pt)
+ {
+ this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(1, (pt.x - bounds.x) / bounds.width))) / 100;
+ })];
+
+ return handles;
+};
+
diff --git a/src/main/webapp/stencils/cisco_safe/architecture.xml b/src/main/webapp/stencils/cisco_safe/architecture.xml
new file mode 100644
index 00000000..1ccb4d4f
--- /dev/null
+++ b/src/main/webapp/stencils/cisco_safe/architecture.xml
@@ -0,0 +1,5338 @@
+<shapes name="mxGraph.cisco_safe.architecture">
+<shape aspect="variable" h="80" name="aci controller" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.44" y="5.87"/>
+ <curve x1="22.38" x2="20" x3="20" y1="5.87" y2="8.31" y3="11.34"/>
+ <line x="20" y="26.57"/>
+ <arc large-arc-flag="0" rx="2.35" ry="2.35" sweep-flag="0" x="20" x-axis-rotation="0" y="27.57"/>
+ <line x="20" y="68.65"/>
+ <curve x1="20" x2="22.54" x3="25.44" y1="71.72" y2="74.12" y3="74.12"/>
+ <line x="54.54" y="74.12"/>
+ <line x="54.72" y="74.12"/>
+ <arc large-arc-flag="0" rx="2.35" ry="2.35" sweep-flag="0" x="56.48" x-axis-rotation="0" y="73.34"/>
+ <curve x1="58.44" x2="60.02" x3="60.02" y1="72.53" y2="70.9" y3="68.65"/>
+ <line x="60.02" y="27.57"/>
+ <arc large-arc-flag="0" rx="2.35" ry="2.35" sweep-flag="0" x="60.02" x-axis-rotation="0" y="26.57"/>
+ <line x="60.02" y="11.34"/>
+ <curve x1="60.02" x2="57.78" x3="54.72" y1="8.43" y2="5.87" y3="5.87"/>
+ <line x="25.44" y="5.87"/>
+ <close/>
+ <move x="25.44" y="10.58"/>
+ <line x="54.72" y="10.58"/>
+ <curve x1="54.9" x2="55.31" x3="55.31" y1="10.58" y2="10.99" y3="11.34"/>
+ <line x="55.31" y="24.72"/>
+ <line x="24.71" y="24.72"/>
+ <line x="24.71" y="11.34"/>
+ <curve x1="24.71" x2="25.26" x3="25.44" y1="11.12" y2="10.58" y3="10.58"/>
+ <close/>
+ <move x="29.41" y="15.31"/>
+ <arc large-arc-flag="1" rx="2.35" ry="2.35" sweep-flag="0" x="29.41" x-axis-rotation="0" y="20.01"/>
+ <line x="50.6" y="20.01"/>
+ <arc large-arc-flag="1" rx="2.35" ry="2.35" sweep-flag="0" x="50.6" x-axis-rotation="0" y="15.31"/>
+ <line x="29.41" y="15.31"/>
+ <close/>
+ <move x="24.71" y="29.42"/>
+ <line x="55.31" y="29.42"/>
+ <line x="55.31" y="68.65"/>
+ <curve x1="55.31" x2="55.06" x3="54.72" y1="69.28" y2="69.41" y3="69.41"/>
+ <line x="25.44" y="69.41"/>
+ <curve x1="25.1" x2="24.71" x3="24.71" y1="69.41" y2="69.16" y3="68.65"/>
+ <line x="24.71" y="29.42"/>
+ <close/>
+ <move x="35.15" y="43.51"/>
+ <curve x1="33.23" x2="31.77" x3="31.77" y1="43.51" y2="45.13" y3="46.89"/>
+ <line x="31.77" y="48.21"/>
+ <line x="29.41" y="48.21"/>
+ <line x="32.93" y="52.95"/>
+ <line x="36.48" y="48.21"/>
+ <line x="34.12" y="48.21"/>
+ <line x="33.52" y="48.21"/>
+ <line x="33.52" y="46.89"/>
+ <curve x1="33.52" x2="34.25" x3="35.15" y1="46.02" y2="45.3" y3="45.3"/>
+ <line x="47.35" y="45.3"/>
+ <curve x1="48.24" x2="48.98" x3="48.98" y1="45.3" y2="46.02" y3="46.89"/>
+ <line x="48.98" y="52.95"/>
+ <line x="49.87" y="51.89"/>
+ <line x="50.6" y="52.95"/>
+ <line x="50.6" y="46.89"/>
+ <curve x1="50.6" x2="49.11" x3="47.35" y1="45.13" y2="43.51" y3="43.51"/>
+ <line x="35.15" y="43.51"/>
+ <close/>
+ <move x="40.88" y="50.56"/>
+ <curve x1="39.99" x2="39.26" x3="38.83" y1="50.56" y2="50.73" y3="50.86"/>
+ <line x="38.83" y="57.65"/>
+ <line x="40.29" y="57.65"/>
+ <line x="40.29" y="55.14"/>
+ <curve x1="40.45" x2="40.75" x3="40.88" y1="55.27" y2="55.27" y3="55.27"/>
+ <curve x1="41.78" x2="42.51" x3="42.94" y1="55.27" y2="55" y3="54.41"/>
+ <curve x1="43.4" x2="43.54" x3="43.54" y1="54.11" y2="53.51" y3="52.78"/>
+ <curve x1="43.54" x2="43.24" x3="42.94" y1="52.19" y2="51.59" y3="51.16"/>
+ <curve x1="42.51" x2="41.78" x3="40.88" y1="50.87" y2="50.56" y3="50.56"/>
+ <close/>
+ <move x="40.29" y="51.89"/>
+ <line x="41.05" y="51.89"/>
+ <curve x1="41.78" x2="42.08" x3="42.08" y1="51.89" y2="52.19" y3="52.78"/>
+ <curve x1="42.08" x2="41.61" x3="40.88" y1="53.51" y2="53.98" y3="53.98"/>
+ <line x="40.29" y="53.98"/>
+ <line x="40.29" y="51.89"/>
+ <close/>
+ <move x="49.57" y="52.92"/>
+ <line x="45.89" y="57.65"/>
+ <line x="48.24" y="57.65"/>
+ <line x="48.98" y="57.65"/>
+ <line x="48.98" y="60.74"/>
+ <curve x1="48.98" x2="48.24" x3="47.35" y1="61.76" y2="62.62" y3="62.62"/>
+ <line x="35.15" y="62.62"/>
+ <curve x1="34.25" x2="33.52" x3="33.52" y1="62.62" y2="61.76" y3="60.74"/>
+ <line x="33.52" y="52.92"/>
+ <line x="32.66" y="54.41"/>
+ <line x="31.77" y="52.92"/>
+ <line x="31.77" y="60.74"/>
+ <curve x1="31.77" x2="33.23" x3="35.15" y1="62.92" y2="64.71" y3="64.71"/>
+ <line x="47.35" y="64.71"/>
+ <curve x1="49.11" x2="50.6" x3="50.6" y1="64.71" y2="62.92" y3="60.74"/>
+ <line x="50.6" y="57.65"/>
+ <line x="50.73" y="57.65"/>
+ <line x="52.95" y="57.65"/>
+ <line x="49.57" y="52.92"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="aci leaf switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="24.72" y="2.95"/>
+ <line x="19.88" y="9.12"/>
+ <line x="22.99" y="9.12"/>
+ <line x="22.99" y="27.36"/>
+ <line x="22.99" y="31.9"/>
+ <line x="22.99" y="33.91"/>
+ <line x="19.88" y="33.91"/>
+ <line x="24.72" y="40.01"/>
+ <line x="29.52" y="33.91"/>
+ <line x="26.47" y="33.91"/>
+ <line x="26.47" y="31.9"/>
+ <line x="26.47" y="27.36"/>
+ <line x="26.47" y="22.58"/>
+ <line x="56.67" y="22.58"/>
+ <curve x1="59.82" x2="62.43" x3="62.43" y1="22.58" y2="25.36" y3="28.67"/>
+ <curve x1="62.43" x2="59.88" x3="56.7" y1="31.98" y2="34.7" y3="34.7"/>
+ <line x="56.7" y="31.38"/>
+ <line x="50.83" y="36.52"/>
+ <line x="56.7" y="41.62"/>
+ <line x="56.7" y="38.28"/>
+ <line x="56.7" y="38.24"/>
+ <curve x1="61.74" x2="65.75" x3="65.75" y1="38.24" y2="33.97" y3="28.67"/>
+ <curve x1="65.75" x2="61.71" x3="56.67" y1="23.41" y2="19.07" y3="19.07"/>
+ <line x="26.47" y="19.07"/>
+ <line x="26.47" y="9.12"/>
+ <line x="29.52" y="9.12"/>
+ <line x="24.72" y="2.95"/>
+ <close/>
+ <move x="35.57" y="27.92"/>
+ <curve x1="33.58" x2="31.95" x3="31.95" y1="27.92" y2="29.57" y3="31.59"/>
+ <line x="31.95" y="41.19"/>
+ <curve x1="31.95" x2="33.58" x3="35.57" y1="43.21" y2="44.84" y3="44.84"/>
+ <line x="45.25" y="44.84"/>
+ <curve x1="47.24" x2="48.86" x3="48.86" y1="44.84" y2="43.21" y3="41.19"/>
+ <line x="48.86" y="31.59"/>
+ <curve x1="48.86" x2="47.24" x3="45.25" y1="29.57" y2="27.92" y3="27.92"/>
+ <line x="35.57" y="27.92"/>
+ <close/>
+ <move x="35.57" y="29.87"/>
+ <line x="45.25" y="29.87"/>
+ <curve x1="46.21" x2="46.9" x3="46.9" y1="29.87" y2="30.63" y3="31.59"/>
+ <line x="46.9" y="41.19"/>
+ <curve x1="46.9" x2="46.21" x3="45.25" y1="42.15" y2="42.92" y3="42.92"/>
+ <line x="35.57" y="42.92"/>
+ <curve x1="34.61" x2="33.91" x3="33.91" y1="42.92" y2="42.15" y3="41.19"/>
+ <line x="33.91" y="31.59"/>
+ <curve x1="33.91" x2="34.61" x3="35.57" y1="30.63" y2="29.87" y3="29.87"/>
+ <close/>
+ <move x="40.34" y="31.94"/>
+ <curve x1="39.15" x2="38.25" x3="37.59" y1="31.94" y2="32" y3="32.1"/>
+ <line x="37.59" y="40.81"/>
+ <line x="39.65" y="40.81"/>
+ <line x="39.65" y="37.67"/>
+ <curve x1="39.81" x2="40.04" x3="40.31" y1="37.67" y2="37.73" y3="37.73"/>
+ <curve x1="41.5" x2="42.53" x3="43.23" y1="37.73" y2="37.44" y3="36.78"/>
+ <curve x1="43.72" x2="44.02" x3="44.02" y1="36.28" y2="35.58" y3="34.72"/>
+ <curve x1="44.02" x2="43.62" x3="43.06" y1="33.79" y2="33.1" y3="32.64"/>
+ <curve x1="42.46" x2="41.6" x3="40.34" y1="32.14" y2="31.94" y3="31.94"/>
+ <close/>
+ <move x="40.47" y="33.46"/>
+ <curve x1="41.47" x2="42.03" x3="42.03" y1="33.46" y2="33.96" y3="34.75"/>
+ <curve x1="42.03" x2="41.37" x3="40.31" y1="35.68" y2="36.21" y3="36.21"/>
+ <curve x1="40.01" x2="39.81" x3="39.65" y1="36.21" y2="36.21" y3="36.18"/>
+ <line x="39.65" y="33.5"/>
+ <curve x1="39.75" x2="40.04" x3="40.47" y1="33.5" y2="33.46" y3="33.46"/>
+ <close/>
+ <move x="2.17" y="49.65"/>
+ <line x="2.17" y="51.28"/>
+ <line x="77.86" y="51.28"/>
+ <line x="77.86" y="49.65"/>
+ <line x="2.17" y="49.65"/>
+ <close/>
+ <move x="27.12" y="56.08"/>
+ <line x="27.12" y="61.74"/>
+ <line x="31.59" y="61.74"/>
+ <line x="26.67" y="70.58"/>
+ <line x="19.07" y="70.58"/>
+ <line x="19.07" y="77.03"/>
+ <line x="29.55" y="77.03"/>
+ <line x="29.55" y="72.02"/>
+ <line x="37.04" y="67.52"/>
+ <line x="38.73" y="70.58"/>
+ <line x="35.18" y="70.58"/>
+ <line x="35.18" y="77.03"/>
+ <line x="45.65" y="77.03"/>
+ <line x="45.65" y="70.58"/>
+ <line x="43.71" y="70.58"/>
+ <line x="45.4" y="67.52"/>
+ <line x="51.28" y="71.05"/>
+ <line x="51.28" y="77.03"/>
+ <line x="61.75" y="77.03"/>
+ <line x="61.75" y="70.58"/>
+ <line x="55.76" y="70.58"/>
+ <line x="50.85" y="61.74"/>
+ <line x="53.7" y="61.74"/>
+ <line x="53.7" y="56.08"/>
+ <line x="43.23" y="56.08"/>
+ <line x="43.23" y="61.74"/>
+ <line x="45.12" y="61.74"/>
+ <line x="41.22" y="64.08"/>
+ <line x="37.33" y="61.74"/>
+ <line x="38.39" y="61.74"/>
+ <line x="38.39" y="56.08"/>
+ <line x="27.12" y="56.08"/>
+ <close/>
+ <move x="32.5" y="61.74"/>
+ <line x="33.83" y="61.74"/>
+ <line x="36.65" y="66.82"/>
+ <line x="29.55" y="71.08"/>
+ <line x="29.55" y="70.58"/>
+ <line x="27.59" y="70.58"/>
+ <line x="32.5" y="61.74"/>
+ <close/>
+ <move x="34.75" y="61.74"/>
+ <line x="35.76" y="61.74"/>
+ <line x="40.44" y="64.55"/>
+ <line x="37.34" y="66.41"/>
+ <line x="34.75" y="61.74"/>
+ <close/>
+ <move x="46.69" y="61.74"/>
+ <line x="47.69" y="61.74"/>
+ <line x="45.1" y="66.41"/>
+ <line x="42" y="64.55"/>
+ <line x="46.69" y="61.74"/>
+ <close/>
+ <move x="48.61" y="61.74"/>
+ <line x="49.93" y="61.74"/>
+ <line x="54.84" y="70.58"/>
+ <line x="52.05" y="70.58"/>
+ <line x="45.79" y="66.82"/>
+ <line x="48.61" y="61.74"/>
+ <close/>
+ <move x="41.22" y="65.02"/>
+ <line x="44.71" y="67.11"/>
+ <line x="42.78" y="70.58"/>
+ <line x="39.66" y="70.58"/>
+ <line x="37.73" y="67.11"/>
+ <line x="41.22" y="65.02"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="aci spine switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="28.17" y="5.84"/>
+ <line x="28.17" y="10.57"/>
+ <line x="30.95" y="10.57"/>
+ <line x="24.71" y="19.95"/>
+ <line x="20.32" y="19.95"/>
+ <line x="20.32" y="24.68"/>
+ <line x="30.53" y="24.68"/>
+ <line x="30.53" y="22.16"/>
+ <line x="36.01" y="18.54"/>
+ <line x="36.78" y="19.95"/>
+ <line x="35.23" y="19.95"/>
+ <line x="35.23" y="24.68"/>
+ <line x="45.74" y="24.68"/>
+ <line x="45.74" y="19.95"/>
+ <line x="43.81" y="19.95"/>
+ <line x="44.75" y="18.08"/>
+ <line x="49.34" y="20.8"/>
+ <line x="49.34" y="24.68"/>
+ <line x="61.11" y="24.68"/>
+ <line x="61.11" y="19.95"/>
+ <line x="56.63" y="19.95"/>
+ <line x="50.38" y="10.57"/>
+ <line x="52.73" y="10.57"/>
+ <line x="52.73" y="5.84"/>
+ <line x="42.29" y="5.84"/>
+ <line x="42.29" y="10.57"/>
+ <line x="43.82" y="10.57"/>
+ <line x="40.45" y="12.79"/>
+ <line x="36.71" y="10.57"/>
+ <line x="38.51" y="10.57"/>
+ <line x="38.51" y="5.84"/>
+ <line x="28.17" y="5.84"/>
+ <close/>
+ <move x="48.1" y="11.38"/>
+ <line x="53.8" y="19.95"/>
+ <line x="52.51" y="19.95"/>
+ <line x="45.81" y="15.97"/>
+ <line x="48.1" y="11.38"/>
+ <close/>
+ <move x="32.63" y="12.3"/>
+ <line x="34.89" y="16.46"/>
+ <line x="29.6" y="19.95"/>
+ <line x="27.54" y="19.95"/>
+ <line x="32.63" y="12.3"/>
+ <close/>
+ <move x="35.45" y="12.56"/>
+ <line x="38.27" y="14.23"/>
+ <line x="36.86" y="15.16"/>
+ <line x="35.45" y="12.56"/>
+ <close/>
+ <move x="44.77" y="12.77"/>
+ <line x="43.77" y="14.76"/>
+ <line x="42.71" y="14.13"/>
+ <line x="44.77" y="12.77"/>
+ <close/>
+ <move x="40.52" y="15.57"/>
+ <line x="42.72" y="16.88"/>
+ <line x="41.18" y="19.95"/>
+ <line x="39.45" y="19.95"/>
+ <line x="37.98" y="17.24"/>
+ <line x="40.52" y="15.57"/>
+ <close/>
+ <move x="23.46" y="34.08"/>
+ <line x="18.75" y="39.38"/>
+ <line x="21.84" y="39.38"/>
+ <line x="21.84" y="56"/>
+ <line x="21.84" y="59.94"/>
+ <line x="21.84" y="61.56"/>
+ <line x="18.75" y="61.56"/>
+ <line x="23.46" y="67.03"/>
+ <line x="28.17" y="61.56"/>
+ <line x="25.22" y="61.56"/>
+ <line x="25.22" y="59.94"/>
+ <line x="25.22" y="56"/>
+ <line x="25.22" y="51.56"/>
+ <line x="53.65" y="51.56"/>
+ <curve x1="56.76" x2="59.25" x3="59.25" y1="51.56" y2="54.08" y3="57.3"/>
+ <curve x1="59.25" x2="56.76" x3="53.65" y1="60.41" y2="62.89" y3="63.05"/>
+ <line x="53.65" y="59.81"/>
+ <line x="47.91" y="64.64"/>
+ <line x="53.65" y="69.38"/>
+ <line x="53.65" y="66.27"/>
+ <curve x1="58.52" x2="62.5" x3="62.5" y1="66.27" y2="62.16" y3="57.3"/>
+ <curve x1="62.5" x2="58.52" x3="53.65" y1="52.3" y2="48.19" y3="48.19"/>
+ <line x="25.22" y="48.19"/>
+ <line x="25.22" y="39.38"/>
+ <line x="28.17" y="39.38"/>
+ <line x="23.46" y="34.08"/>
+ <close/>
+ <move x="33.61" y="57.6"/>
+ <curve x1="31.98" x2="30.52" x3="30.52" y1="57.6" y2="59.22" y3="61.27"/>
+ <line x="30.52" y="70.67"/>
+ <curve x1="30.52" x2="31.98" x3="33.61" y1="72.6" y2="74.08" y3="74.08"/>
+ <line x="41.69" y="74.08"/>
+ <curve x1="43.32" x2="44.64" x3="44.64" y1="74.08" y2="72.6" y3="70.67"/>
+ <line x="44.64" y="61.27"/>
+ <curve x1="44.64" x2="43.32" x3="41.69" y1="59.22" y2="57.6" y3="57.6"/>
+ <line x="33.61" y="57.6"/>
+ <close/>
+ <move x="33.61" y="59.51"/>
+ <line x="41.69" y="59.51"/>
+ <curve x1="42.42" x2="43.18" x3="43.18" y1="59.51" y2="60.24" y3="61.27"/>
+ <line x="43.18" y="70.67"/>
+ <curve x1="43.18" x2="42.42" x3="41.69" y1="71.57" y2="72.29" y3="72.29"/>
+ <line x="33.61" y="72.29"/>
+ <curve x1="32.88" x2="32.28" x3="32.28" y1="72.29" y2="71.57" y3="70.67"/>
+ <line x="32.28" y="61.27"/>
+ <curve x1="32.28" x2="32.88" x3="33.61" y1="60.24" y2="59.51" y3="59.51"/>
+ <close/>
+ <move x="37.58" y="61.32"/>
+ <curve x1="36.68" x2="35.95" x3="35.52" y1="61.32" y2="61.48" y3="61.62"/>
+ <line x="35.52" y="70.75"/>
+ <line x="36.98" y="70.75"/>
+ <line x="36.98" y="67.51"/>
+ <line x="37.58" y="67.51"/>
+ <curve x1="38.47" x2="39.2" x3="39.63" y1="67.51" y2="67.21" y3="66.48"/>
+ <curve x1="40.09" x2="40.23" x3="40.23" y1="66.02" y2="65.16" y3="64.26"/>
+ <curve x1="40.23" x2="39.93" x3="39.63" y1="63.4" y2="62.64" y3="62.21"/>
+ <curve x1="39.2" x2="38.47" x3="37.58" y1="61.61" y2="61.32" y3="61.32"/>
+ <close/>
+ <move x="37.74" y="62.94"/>
+ <curve x1="38.47" x2="38.77" x3="38.77" y1="62.94" y2="63.54" y3="64.43"/>
+ <curve x1="38.77" x2="38.31" x3="37.58" y1="65.29" y2="65.88" y3="65.88"/>
+ <line x="36.98" y="65.88"/>
+ <line x="36.98" y="63.11"/>
+ <curve x1="37.14" x2="37.45" x3="37.74" y1="63.11" y2="62.94" y3="62.94"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="adaptive security appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.59" y="4.71"/>
+ <curve x1="33.23" x2="27.07" x3="27.07" y1="4.71" y2="10.6" y3="17.95"/>
+ <curve x1="27.07" x2="33.23" x3="40.59" y1="25.14" y2="31.03" y3="31.03"/>
+ <curve x1="48.09" x2="54.12" x3="54.12" y1="31.03" y2="25.14" y3="17.95"/>
+ <curve x1="54.12" x2="48.09" x3="40.59" y1="10.6" y2="4.71" y3="4.71"/>
+ <close/>
+ <move x="40.59" y="27.79"/>
+ <curve x1="34.99" x2="30.45" x3="30.45" y1="27.79" y2="23.38" y3="17.95"/>
+ <curve x1="30.45" x2="34.99" x3="40.59" y1="12.49" y2="7.95" y3="7.95"/>
+ <curve x1="46.33" x2="50.87" x3="50.87" y1="7.95" y2="12.49" y3="17.95"/>
+ <curve x1="50.87" x2="46.33" x3="40.59" y1="23.38" y2="27.79" y3="27.79"/>
+ <close/>
+ <move x="23.52" y="29.54"/>
+ <curve x1="16.76" x2="16.76" x3="16.76" y1="36.03" y2="36.03" y3="36.03"/>
+ <curve x1="15.3" x2="15.3" x3="16.76" y1="37.49" y2="39.71" y3="41.03"/>
+ <curve x1="18.08" x2="20.44" x3="21.93" y1="42.35" y2="42.35" y3="41.03"/>
+ <curve x1="28.53" x2="28.53" x3="28.53" y1="34.54" y2="34.54" y3="34.54"/>
+ <curve x1="30.02" x2="30.02" x3="28.53" y1="33.22" y2="31.03" y3="29.54"/>
+ <curve x1="27.2" x2="24.85" x3="23.52" y1="28.22" y2="28.22" y3="29.54"/>
+ <close/>
+ <move x="41.76" y="17.06"/>
+ <curve x1="41.32" x2="41.32" x3="41.76" y1="17.35" y2="17.95" y3="18.25"/>
+ <curve x1="41.76" x2="41.76" x3="41.76" y1="18.38" y2="18.38" y3="18.38"/>
+ <curve x1="42.22" x2="42.78" x3="43.08" y1="18.68" y2="18.68" y3="18.38"/>
+ <curve x1="46.76" x2="46.76" x3="46.76" y1="14.84" y2="14.84" y3="14.84"/>
+ <curve x1="46.76" x2="46.76" x3="46.76" y1="14.84" y2="14.84" y3="14.84"/>
+ <curve x1="46.93" x2="47.06" x3="47.06" y1="14.71" y2="14.41" y3="14.11"/>
+ <curve x1="47.06" x2="47.06" x3="47.06" y1="13.98" y2="13.98" y3="13.98"/>
+ <curve x1="47.06" x2="47.06" x3="46.93" y1="13.68" y2="13.51" y3="13.38"/>
+ <curve x1="46.76" x2="46.76" x3="46.76" y1="13.38" y2="13.25" y3="13.25"/>
+ <curve x1="43.08" x2="43.08" x3="43.08" y1="9.71" y2="9.71" y3="9.71"/>
+ <curve x1="42.78" x2="42.22" x3="41.76" y1="9.41" y2="9.41" y3="9.71"/>
+ <curve x1="41.76" x2="41.76" x3="41.76" y1="9.84" y2="9.84" y3="9.84"/>
+ <curve x1="41.32" x2="41.32" x3="41.76" y1="10.14" y2="10.73" y3="11.03"/>
+ <curve x1="43.84" x2="43.84" x3="43.84" y1="13.08" y2="13.08" y3="13.08"/>
+ <curve x1="33.23" x2="33.23" x3="33.23" y1="13.08" y2="13.08" y3="13.08"/>
+ <curve x1="33.23" x2="32.51" x3="32.21" y1="13.08" y2="13.98" y3="15"/>
+ <curve x1="35.59" x2="43.84" x3="43.84" y1="15" y2="15" y3="15"/>
+ <line x="41.76" y="17.06"/>
+ <close/>
+ <move x="39.7" y="18.68"/>
+ <curve x1="40" x2="40" x3="39.7" y1="18.38" y2="17.79" y3="17.49"/>
+ <curve x1="39.57" x2="39.57" x3="39.57" y1="17.35" y2="17.35" y3="17.35"/>
+ <curve x1="39.14" x2="38.54" x3="38.24" y1="17.06" y2="17.06" y3="17.35"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="20.86" y2="20.86" y3="20.86"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="20.86" y2="20.86" y3="21.03"/>
+ <curve x1="34.43" x2="34.26" x3="34.26" y1="21.16" y2="21.33" y3="21.63"/>
+ <curve x1="34.26" x2="34.26" x3="34.26" y1="21.76" y2="21.76" y3="21.76"/>
+ <curve x1="34.26" x2="34.26" x3="34.56" y1="22.06" y2="22.19" y3="22.35"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="22.49" y2="22.49" y3="22.65"/>
+ <curve x1="38.24" x2="38.24" x3="38.24" y1="26.03" y2="26.03" y3="26.03"/>
+ <curve x1="38.54" x2="39.14" x3="39.57" y1="26.46" y2="26.46" y3="26.03"/>
+ <curve x1="39.7" x2="39.7" x3="39.7" y1="26.03" y2="26.03" y3="26.03"/>
+ <curve x1="40" x2="40" x3="39.7" y1="25.6" y2="25" y3="24.71"/>
+ <curve x1="37.51" x2="37.51" x3="37.51" y1="22.65" y2="22.65" y3="22.65"/>
+ <curve x1="48.09" x2="48.09" x3="48.09" y1="22.65" y2="22.65" y3="22.65"/>
+ <curve x1="48.09" x2="48.82" x3="49.12" y1="22.65" y2="21.92" y3="20.73"/>
+ <curve x1="45.73" x2="37.51" x3="37.51" y1="20.73" y2="20.73" y3="20.73"/>
+ <line x="39.7" y="18.68"/>
+ <close/>
+ <move x="64.13" y="21.16"/>
+ <curve x1="55.02" x2="55.02" x3="55.02" y1="21.16" y2="21.16" y3="21.16"/>
+ <curve x1="54.55" x2="54.55" x3="54.55" y1="22.49" y2="22.49" y3="22.49"/>
+ <curve x1="64.13" x2="64.13" x3="64.13" y1="22.49" y2="22.49" y3="22.49"/>
+ <curve x1="64.56" x2="64.7" x3="64.7" y1="22.49" y2="22.19" y3="21.92"/>
+ <curve x1="64.7" x2="64.7" x3="64.7" y1="21.76" y2="21.76" y3="21.76"/>
+ <curve x1="64.7" x2="64.56" x3="64.13" y1="21.46" y2="21.16" y3="21.16"/>
+ <close/>
+ <move x="17.06" y="14.41"/>
+ <curve x1="26.17" x2="26.17" x3="26.17" y1="14.41" y2="14.41" y3="14.41"/>
+ <curve x1="26.6" x2="26.6" x3="26.6" y1="13.08" y2="13.08" y3="13.08"/>
+ <curve x1="17.06" x2="17.06" x3="17.06" y1="13.08" y2="13.08" y3="13.08"/>
+ <curve x1="16.76" x2="16.46" x3="16.46" y1="13.08" y2="13.38" y3="13.68"/>
+ <curve x1="16.46" x2="16.46" x3="16.46" y1="13.81" y2="13.81" y3="13.81"/>
+ <curve x1="16.46" x2="16.76" x3="17.06" y1="14.28" y2="14.41" y3="14.41"/>
+ <close/>
+ <move x="10.59" y="47.05"/>
+ <line x="10.59" y="47.35"/>
+ <line x="10.59" y="47.78"/>
+ <line x="10.59" y="47.94"/>
+ <line x="19.28" y="47.94"/>
+ <line x="19.28" y="54.1"/>
+ <line x="10.59" y="54.1"/>
+ <line x="10.59" y="54.4"/>
+ <line x="10.59" y="54.7"/>
+ <line x="10.59" y="55"/>
+ <line x="29.42" y="55"/>
+ <line x="29.42" y="61.32"/>
+ <line x="10.59" y="61.32"/>
+ <line x="10.59" y="61.32"/>
+ <line x="10.59" y="61.75"/>
+ <line x="10.59" y="61.88"/>
+ <line x="19.28" y="61.88"/>
+ <line x="19.28" y="68.37"/>
+ <line x="10.59" y="68.37"/>
+ <line x="10.59" y="68.51"/>
+ <line x="10.59" y="68.97"/>
+ <line x="10.59" y="68.97"/>
+ <line x="29.42" y="68.97"/>
+ <line x="29.42" y="75.3"/>
+ <line x="30.02" y="75.3"/>
+ <line x="30.02" y="68.97"/>
+ <line x="49.41" y="68.97"/>
+ <line x="49.41" y="75.3"/>
+ <line x="50.14" y="75.3"/>
+ <line x="50.14" y="68.97"/>
+ <line x="69.4" y="68.97"/>
+ <line x="69.4" y="68.97"/>
+ <line x="69.4" y="68.51"/>
+ <line x="69.4" y="68.37"/>
+ <line x="60.29" y="68.37"/>
+ <line x="60.29" y="61.88"/>
+ <line x="69.4" y="61.88"/>
+ <line x="69.4" y="61.75"/>
+ <line x="69.4" y="61.32"/>
+ <line x="69.4" y="61.32"/>
+ <line x="50.14" y="61.32"/>
+ <line x="50.14" y="55"/>
+ <line x="69.4" y="55"/>
+ <line x="69.4" y="54.7"/>
+ <line x="69.4" y="54.4"/>
+ <line x="69.4" y="54.1"/>
+ <line x="60.29" y="54.1"/>
+ <line x="60.29" y="47.94"/>
+ <line x="69.4" y="47.94"/>
+ <line x="69.4" y="47.78"/>
+ <line x="69.4" y="47.35"/>
+ <line x="69.4" y="47.05"/>
+ <line x="10.59" y="47.05"/>
+ <line x="10.59" y="47.05"/>
+ <close/>
+ <move x="19.84" y="47.94"/>
+ <line x="39.27" y="47.94"/>
+ <line x="39.27" y="54.1"/>
+ <line x="19.84" y="54.1"/>
+ <line x="19.84" y="47.94"/>
+ <line x="19.84" y="47.94"/>
+ <close/>
+ <move x="19.84" y="61.88"/>
+ <line x="39.27" y="61.88"/>
+ <line x="39.27" y="68.37"/>
+ <line x="19.84" y="68.37"/>
+ <line x="19.84" y="61.88"/>
+ <line x="19.84" y="61.88"/>
+ <close/>
+ <move x="59.56" y="68.37"/>
+ <line x="40.16" y="68.37"/>
+ <line x="40.16" y="61.88"/>
+ <line x="59.56" y="61.88"/>
+ <line x="59.56" y="68.37"/>
+ <line x="59.56" y="68.37"/>
+ <close/>
+ <move x="49.41" y="61.32"/>
+ <line x="30.02" y="61.32"/>
+ <line x="30.02" y="55"/>
+ <line x="49.41" y="55"/>
+ <line x="49.41" y="61.32"/>
+ <line x="49.41" y="61.32"/>
+ <close/>
+ <move x="59.56" y="54.1"/>
+ <line x="40.16" y="54.1"/>
+ <line x="40.16" y="47.94"/>
+ <line x="59.56" y="47.94"/>
+ <line x="59.56" y="54.1"/>
+ <line x="59.56" y="54.1"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="automated system" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="18.78" y="6.45"/>
+ <line x="10.93" y="10.69"/>
+ <curve x1="10.43" x2="10.33" x3="10.43" y1="10.79" y2="11.19" y3="11.65"/>
+ <line x="13.61" y="17.58"/>
+ <curve x1="13.22" x2="13.12" x3="12.62" y1="17.94" y2="18.31" y3="18.91"/>
+ <line x="6.22" y="18.54"/>
+ <curve x1="5.76" x2="5.36" x3="5.36" y1="18.54" y2="18.9" y3="19.27"/>
+ <line x="4.99" y="28.21"/>
+ <curve x1="4.99" x2="5.36" x3="5.76" y1="28.57" y2="28.97" y3="28.97"/>
+ <line x="12.26" y="29.43"/>
+ <curve x1="12.52" x2="12.52" x3="12.62" y1="29.53" y2="29.8" y3="30.16"/>
+ <curve x1="12.89" x2="12.89" x3="13.12" y1="30.4" y2="30.49" y3="30.76"/>
+ <line x="9.47" y="36.32"/>
+ <curve x1="9.37" x2="9.47" x3="9.97" y1="36.68" y2="37.28" y3="37.38"/>
+ <line x="17.23" y="42.21"/>
+ <curve x1="17.56" x2="18.19" x3="18.29" y1="42.35" y2="42.35" y3="41.99"/>
+ <line x="21.93" y="36.42"/>
+ <line x="23.49" y="36.42"/>
+ <line x="26.5" y="41.94"/>
+ <line x="26.5" y="66.74"/>
+ <curve x1="26.5" x2="26.53" x3="26.55" y1="66.82" y2="66.88" y3="66.96"/>
+ <line x="25.5" y="66.96"/>
+ <line x="22.75" y="66.96"/>
+ <curve x1="21.26" x2="20.43" x3="20.43" y1="66.96" y2="67.85" y3="69.24"/>
+ <line x="20.43" y="70.7"/>
+ <curve x1="20.43" x2="21.26" x3="22.75" y1="72.16" y2="73.58" y3="73.58"/>
+ <line x="72.68" y="73.58"/>
+ <curve x1="74.21" x2="75" x3="75" y1="73.58" y2="72.16" y3="70.7"/>
+ <line x="75" y="69.24"/>
+ <curve x1="75" x2="74.21" x3="72.68" y1="67.85" y2="66.96" y3="66.96"/>
+ <line x="70.01" y="66.96"/>
+ <curve x1="70.02" x2="70.05" x3="70.05" y1="66.89" y2="66.82" y3="66.74"/>
+ <line x="70.05" y="35.77"/>
+ <curve x1="70.05" x2="69.49" x3="68.75" y1="35.04" y2="34.44" y3="34.44"/>
+ <line x="34.27" y="34.44"/>
+ <line x="32.71" y="31.49"/>
+ <curve x1="33.04" x2="33.28" x3="33.67" y1="31.12" y2="30.76" y3="30.16"/>
+ <line x="40.17" y="30.49"/>
+ <curve x1="40.57" x2="40.9" x3="40.9" y1="30.49" y2="30.16" y3="29.8"/>
+ <line x="41.4" y="20.82"/>
+ <curve x1="41.4" x2="40.9" x3="40.57" y1="20.49" y2="20.1" y3="20.1"/>
+ <line x="34" y="19.76"/>
+ <curve x1="33.91" x2="33.91" x3="33.67" y1="19.53" y2="19.27" y3="19.14"/>
+ <curve x1="33.54" x2="33.54" x3="33.27" y1="18.67" y2="18.54" y3="18.31"/>
+ <line x="36.79" y="12.88"/>
+ <curve x1="37.06" x2="36.79" x3="36.69" y1="12.38" y2="11.75" y3="11.65"/>
+ <line x="29.2" y="6.95"/>
+ <curve x1="28.83" x2="28.2" x3="27.97" y1="6.72" y2="6.95" y3="7.08"/>
+ <line x="24.46" y="12.88"/>
+ <curve x1="23.89" x2="23.49" x3="22.9" y1="12.65" y2="12.64" y3="12.64"/>
+ <line x="19.88" y="6.95"/>
+ <curve x1="19.52" x2="19.15" x3="18.78" y1="6.45" y2="6.32" y3="6.45"/>
+ <close/>
+ <move x="22.55" y="17.53"/>
+ <curve x1="25.28" x2="28.06" x3="29.33" y1="17.33" y2="18.79" y3="21.32"/>
+ <curve x1="31.12" x2="29.89" x3="26.38" y1="24.83" y2="28.97" y3="30.76"/>
+ <curve x1="23.03" x2="18.79" x3="17" y1="32.58" y2="31.35" y3="27.71"/>
+ <curve x1="15.17" x2="16.6" x3="19.88" y1="24.47" y2="20.1" y3="18.31"/>
+ <curve x1="20.73" x2="21.63" x3="22.55" y1="17.85" y2="17.6" y3="17.53"/>
+ <close/>
+ <move x="34.56" y="34.99"/>
+ <line x="68.75" y="34.99"/>
+ <curve x1="69.2" x2="69.5" x3="69.5" y1="34.99" y2="35.31" y3="35.77"/>
+ <line x="69.5" y="66.74"/>
+ <curve x1="69.5" x2="69.44" x3="69.42" y1="66.83" y2="66.88" y3="66.96"/>
+ <line x="68.3" y="66.96"/>
+ <line x="68.04" y="66.96"/>
+ <line x="27.43" y="66.96"/>
+ <line x="27.2" y="66.96"/>
+ <line x="27.14" y="66.96"/>
+ <curve x1="27.11" x2="27.05" x3="27.05" y1="66.88" y2="66.83" y3="66.74"/>
+ <line x="27.05" y="42.6"/>
+ <curve x1="27.23" x2="27.44" x3="27.64" y1="42.66" y2="42.66" y3="42.61"/>
+ <line x="35.5" y="38.51"/>
+ <curve x1="35.83" x2="36.06" x3="35.83" y1="38.24" y2="37.88" y3="37.38"/>
+ <line x="34.56" y="34.99"/>
+ <close/>
+ <move x="59.92" y="68.65"/>
+ <line x="68.11" y="68.65"/>
+ <line x="70" y="68.65"/>
+ <line x="70" y="71.13"/>
+ <line x="59.92" y="71.13"/>
+ <line x="59.92" y="68.65"/>
+ <close/>
+ <move x="44.17" y="68.88"/>
+ <curve x1="44.8" x2="45.2" x3="45.2" y1="68.88" y2="69.44" y3="70.07"/>
+ <curve x1="45.2" x2="44.8" x3="44.17" y1="70.7" y2="71.13" y3="71.13"/>
+ <curve x1="43.51" x2="42.88" x3="42.88" y1="71.13" y2="70.7" y3="70.07"/>
+ <curve x1="42.88" x2="43.51" x3="44.17" y1="69.44" y2="68.88" y3="68.88"/>
+ <close/>
+ <move x="47.72" y="68.88"/>
+ <curve x1="48.38" x2="48.78" x3="48.78" y1="68.88" y2="69.44" y3="70.07"/>
+ <curve x1="48.78" x2="48.38" x3="47.72" y1="70.7" y2="71.13" y3="71.13"/>
+ <curve x1="47.09" x2="46.46" x3="46.46" y1="71.13" y2="70.7" y3="70.07"/>
+ <curve x1="46.46" x2="47.09" x3="47.72" y1="69.44" y2="68.88" y3="68.88"/>
+ <close/>
+ <move x="51.3" y="68.88"/>
+ <curve x1="51.96" x2="52.36" x3="52.36" y1="68.88" y2="69.44" y3="70.07"/>
+ <curve x1="52.36" x2="51.96" x3="51.3" y1="70.7" y2="71.13" y3="71.13"/>
+ <curve x1="50.63" x2="50.04" x3="50.04" y1="71.13" y2="70.7" y3="70.07"/>
+ <curve x1="50.04" x2="50.63" x3="51.3" y1="69.44" y2="68.88" y3="68.88"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="blade server" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="26.07" y="10.17"/>
+ <curve x1="24.29" x2="22.83" x3="22.83" y1="10.17" y2="11.62" y3="13.41"/>
+ <line x="22.83" y="66.62"/>
+ <curve x1="22.83" x2="24.29" x3="26.07" y1="68.37" y2="69.83" y3="69.83"/>
+ <line x="53.93" y="69.83"/>
+ <line x="53.96" y="69.83"/>
+ <arc large-arc-flag="0" rx="0.36" ry="0.36" sweep-flag="0" x="54.22" x-axis-rotation="0" y="69.72"/>
+ <arc large-arc-flag="0" rx="0.36" ry="0.36" sweep-flag="0" x="54.22" x-axis-rotation="0" y="69.72"/>
+ <curve x1="55.86" x2="57.17" x3="57.17" y1="69.56" y2="68.27" y3="66.62"/>
+ <line x="57.17" y="13.41"/>
+ <curve x1="57.17" x2="55.75" x3="53.96" y1="11.63" y2="10.17" y3="10.17"/>
+ <line x="26.07" y="10.17"/>
+ <close/>
+ <move x="26.07" y="10.89"/>
+ <line x="53.96" y="10.89"/>
+ <curve x1="55.35" x2="56.45" x3="56.45" y1="10.89" y2="12.01" y3="13.41"/>
+ <line x="56.45" y="66.62"/>
+ <curve x1="56.45" x2="55.35" x3="53.96" y1="67.98" y2="69.1" y3="69.1"/>
+ <line x="26.07" y="69.1"/>
+ <curve x1="24.68" x2="23.55" x3="23.55" y1="69.1" y2="67.97" y3="66.62"/>
+ <line x="23.55" y="13.41"/>
+ <curve x1="23.55" x2="24.68" x3="26.07" y1="12.01" y2="10.89" y3="10.89"/>
+ <close/>
+ <move x="6.37" y="13.06"/>
+ <line x="6.28" y="14.19"/>
+ <curve x1="5.78" x2="5.38" x3="5.21" y1="14.27" y2="14.53" y3="14.88"/>
+ <line x="4.59" y="14.88"/>
+ <line x="4.39" y="15.61"/>
+ <line x="5.21" y="15.61"/>
+ <curve x1="5.37" x2="5.7" x3="6.12" y1="15.92" y2="16.16" y3="16.26"/>
+ <line x="5.97" y="18.2"/>
+ <curve x1="5.77" x2="5.6" x3="5.46" y1="18.26" y2="18.36" y3="18.49"/>
+ <line x="4.23" y="18.49"/>
+ <line x="4.03" y="19.59"/>
+ <line x="5.21" y="19.59"/>
+ <curve x1="5.32" x2="5.54" x3="5.82" y1="19.84" y2="20.05" y3="20.18"/>
+ <line x="5.67" y="22.13"/>
+ <curve x1="5.32" x2="5.01" x3="4.78" y1="22.16" y2="22.28" y3="22.47"/>
+ <line x="3.87" y="22.47"/>
+ <line x="3.66" y="23.56"/>
+ <line x="4.49" y="23.56"/>
+ <curve x1="4.65" x2="5.04" x3="5.5" y1="23.9" y2="24.14" y3="24.23"/>
+ <line x="5.47" y="24.65"/>
+ <line x="6.37" y="24.65"/>
+ <line x="6.4" y="24.2"/>
+ <curve x1="6.77" x2="7.04" x3="7.18" y1="24.08" y2="23.84" y3="23.56"/>
+ <line x="11" y="23.56"/>
+ <curve x1="11.12" x2="11.34" x3="11.62" y1="23.8" y2="23.98" y3="24.11"/>
+ <line x="11.62" y="24.65"/>
+ <line x="12.71" y="24.65"/>
+ <line x="12.71" y="24.23"/>
+ <curve x1="13.17" x2="13.53" x3="13.69" y1="24.14" y2="23.89" y3="23.56"/>
+ <line x="17.14" y="23.56"/>
+ <curve x1="17.3" x2="17.66" x3="18.1" y1="23.88" y2="24.12" y3="24.22"/>
+ <line x="18.14" y="24.65"/>
+ <line x="19.2" y="24.65"/>
+ <line x="19.15" y="24.15"/>
+ <curve x1="19.47" x2="19.71" x3="19.83" y1="24.03" y2="23.82" y3="23.56"/>
+ <line x="21.01" y="23.56"/>
+ <line x="20.84" y="22.47"/>
+ <line x="19.56" y="22.47"/>
+ <curve x1="19.4" x2="19.2" x3="18.97" y1="22.33" y2="22.23" y3="22.17"/>
+ <line x="18.79" y="20.18"/>
+ <curve x1="19.11" x2="19.35" x3="19.47" y1="20.05" y2="19.85" y3="19.59"/>
+ <line x="20.67" y="19.59"/>
+ <line x="20.47" y="18.49"/>
+ <line x="19.19" y="18.49"/>
+ <curve x1="19.04" x2="18.84" x3="18.61" y1="18.36" y2="18.26" y3="18.2"/>
+ <line x="18.43" y="16.2"/>
+ <curve x1="18.74" x2="18.99" x3="19.11" y1="16.07" y2="15.87" y3="15.61"/>
+ <line x="20.3" y="15.61"/>
+ <line x="20.11" y="14.88"/>
+ <line x="19.11" y="14.88"/>
+ <curve x1="18.97" x2="18.65" x3="18.25" y1="14.57" y2="14.33" y3="14.22"/>
+ <line x="18.14" y="13.06"/>
+ <line x="17.04" y="13.06"/>
+ <line x="17.16" y="14.26"/>
+ <curve x1="16.82" x2="16.55" x3="16.42" y1="14.39" y2="14.61" y3="14.88"/>
+ <line x="13.69" y="14.88"/>
+ <curve x1="13.53" x2="13.17" x3="12.71" y1="14.54" y2="14.3" y3="14.2"/>
+ <line x="12.71" y="13.06"/>
+ <line x="11.62" y="13.06"/>
+ <line x="11.62" y="14.32"/>
+ <curve x1="11.34" x2="11.11" x3="11" y1="14.45" y2="14.64" y3="14.88"/>
+ <line x="7.9" y="14.88"/>
+ <curve x1="7.78" x2="7.53" x3="7.2" y1="14.61" y2="14.4" y3="14.27"/>
+ <line x="7.3" y="13.06"/>
+ <line x="6.37" y="13.06"/>
+ <close/>
+ <move x="61.53" y="13.06"/>
+ <line x="61.42" y="14.22"/>
+ <curve x1="61" x2="60.68" x3="60.53" y1="14.33" y2="14.57" y3="14.88"/>
+ <line x="59.91" y="14.88"/>
+ <line x="59.71" y="15.61"/>
+ <line x="60.53" y="15.61"/>
+ <curve x1="60.66" x2="60.91" x3="61.23" y1="15.87" y2="16.07" y3="16.2"/>
+ <line x="61.04" y="18.2"/>
+ <curve x1="60.82" x2="60.62" x3="60.46" y1="18.26" y2="18.36" y3="18.49"/>
+ <line x="59.55" y="18.49"/>
+ <line x="59.35" y="19.59"/>
+ <line x="60.17" y="19.59"/>
+ <curve x1="60.3" x2="60.55" x3="60.86" y1="19.84" y2="20.04" y3="20.17"/>
+ <line x="60.67" y="22.18"/>
+ <curve x1="60.45" x2="60.25" x3="60.1" y1="22.24" y2="22.34" y3="22.47"/>
+ <line x="59.38" y="22.47"/>
+ <line x="58.98" y="23.56"/>
+ <line x="59.81" y="23.56"/>
+ <curve x1="59.93" x2="60.18" x3="60.48" y1="23.81" y2="24.01" y3="24.14"/>
+ <line x="60.43" y="24.65"/>
+ <line x="61.53" y="24.65"/>
+ <line x="61.57" y="24.22"/>
+ <curve x1="62" x2="62.34" x3="62.5" y1="24.12" y2="23.88" y3="23.56"/>
+ <line x="66.32" y="23.56"/>
+ <curve x1="66.48" x2="66.85" x3="67.3" y1="23.89" y2="24.13" y3="24.23"/>
+ <line x="67.3" y="24.65"/>
+ <line x="68.03" y="24.65"/>
+ <line x="68.03" y="24.23"/>
+ <curve x1="68.49" x2="68.85" x3="69.01" y1="24.14" y2="23.89" y3="23.56"/>
+ <line x="72.46" y="23.56"/>
+ <curve x1="72.62" x2="72.98" x3="73.42" y1="23.88" y2="24.12" y3="24.22"/>
+ <line x="73.46" y="24.65"/>
+ <line x="74.52" y="24.65"/>
+ <line x="74.47" y="24.15"/>
+ <curve x1="74.79" x2="75.03" x3="75.15" y1="24.03" y2="23.82" y3="23.56"/>
+ <line x="76.33" y="23.56"/>
+ <line x="75.96" y="22.47"/>
+ <line x="74.88" y="22.47"/>
+ <curve x1="74.72" x2="74.52" x3="74.29" y1="22.33" y2="22.23" y3="22.17"/>
+ <line x="74.11" y="20.18"/>
+ <curve x1="74.42" x2="74.67" x3="74.79" y1="20.05" y2="19.84" y3="19.59"/>
+ <line x="75.99" y="19.59"/>
+ <line x="75.79" y="18.49"/>
+ <line x="74.51" y="18.49"/>
+ <curve x1="74.36" x2="74.16" x3="73.93" y1="18.36" y2="18.26" y3="18.2"/>
+ <line x="73.75" y="16.2"/>
+ <curve x1="74.06" x2="74.31" x3="74.43" y1="16.07" y2="15.87" y3="15.61"/>
+ <line x="75.62" y="15.61"/>
+ <line x="75.43" y="14.88"/>
+ <line x="74.43" y="14.88"/>
+ <curve x1="74.29" x2="73.98" x3="73.57" y1="14.57" y2="14.33" y3="14.22"/>
+ <line x="73.46" y="13.06"/>
+ <line x="72.36" y="13.06"/>
+ <line x="72.48" y="14.26"/>
+ <curve x1="72.14" x2="71.87" x3="71.74" y1="14.39" y2="14.61" y3="14.88"/>
+ <line x="69.01" y="14.88"/>
+ <curve x1="68.85" x2="68.49" x3="68.03" y1="14.54" y2="14.3" y3="14.2"/>
+ <line x="68.03" y="13.06"/>
+ <line x="67.3" y="13.06"/>
+ <line x="67.3" y="14.2"/>
+ <curve x1="66.85" x2="66.48" x3="66.32" y1="14.3" y2="14.55" y3="14.88"/>
+ <line x="63.22" y="14.88"/>
+ <curve x1="63.09" x2="62.83" x3="62.48" y1="14.6" y2="14.37" y3="14.25"/>
+ <line x="62.59" y="13.06"/>
+ <line x="61.53" y="13.06"/>
+ <close/>
+ <move x="7.9" y="15.61"/>
+ <line x="11" y="15.61"/>
+ <curve x1="11.12" x2="11.34" x3="11.62" y1="15.84" y2="16.03" y3="16.16"/>
+ <line x="11.62" y="18.3"/>
+ <curve x1="11.5" x2="11.38" x3="11.29" y1="18.36" y2="18.41" y3="18.49"/>
+ <line x="7.3" y="18.49"/>
+ <curve x1="7.18" x2="7.04" x3="6.88" y1="18.38" y2="18.29" y3="18.22"/>
+ <line x="7.04" y="16.26"/>
+ <curve x1="7.44" x2="7.76" x3="7.9" y1="16.15" y2="15.91" y3="15.61"/>
+ <close/>
+ <move x="13.69" y="15.61"/>
+ <line x="16.42" y="15.61"/>
+ <curve x1="16.58" x2="16.92" x3="17.34" y1="15.92" y2="16.16" y3="16.27"/>
+ <line x="17.53" y="18.23"/>
+ <curve x1="17.35" x2="17.2" x3="17.07" y1="18.3" y2="18.38" y3="18.49"/>
+ <line x="13.41" y="18.49"/>
+ <curve x1="13.23" x2="12.99" x3="12.71" y1="18.34" y2="18.24" y3="18.18"/>
+ <line x="12.71" y="16.28"/>
+ <curve x1="13.17" x2="13.53" x3="13.69" y1="16.18" y2="15.94" y3="15.61"/>
+ <close/>
+ <move x="63.22" y="15.61"/>
+ <line x="66.32" y="15.61"/>
+ <curve x1="66.48" x2="66.85" x3="67.3" y1="15.94" y2="16.18" y3="16.28"/>
+ <line x="67.3" y="18.18"/>
+ <curve x1="67.03" x2="66.79" x3="66.61" y1="18.24" y2="18.34" y3="18.49"/>
+ <line x="62.58" y="18.49"/>
+ <curve x1="62.45" x2="62.3" x3="62.12" y1="18.38" y2="18.29" y3="18.23"/>
+ <line x="62.29" y="16.27"/>
+ <curve x1="62.73" x2="63.07" x3="63.22" y1="16.17" y2="15.93" y3="15.61"/>
+ <close/>
+ <move x="69.01" y="15.61"/>
+ <line x="71.74" y="15.61"/>
+ <curve x1="71.9" x2="72.24" x3="72.67" y1="15.92" y2="16.16" y3="16.27"/>
+ <line x="72.85" y="18.23"/>
+ <curve x1="72.68" x2="72.52" x3="72.39" y1="18.3" y2="18.38" y3="18.49"/>
+ <line x="68.73" y="18.49"/>
+ <curve x1="68.55" x2="68.31" x3="68.03" y1="18.34" y2="18.24" y3="18.18"/>
+ <line x="68.03" y="16.28"/>
+ <curve x1="68.49" x2="68.85" x3="69.01" y1="16.18" y2="15.94" y3="15.61"/>
+ <close/>
+ <move x="29.34" y="19.21"/>
+ <line x="29.34" y="21.76"/>
+ <line x="51.02" y="21.76"/>
+ <line x="51.02" y="19.21"/>
+ <line x="29.34" y="19.21"/>
+ <close/>
+ <move x="7.54" y="19.59"/>
+ <line x="11" y="19.59"/>
+ <curve x1="11.12" x2="11.34" x3="11.62" y1="19.82" y2="20.01" y3="20.14"/>
+ <line x="11.62" y="22.27"/>
+ <curve x1="11.5" x2="11.38" x3="11.29" y1="22.33" y2="22.39" y3="22.47"/>
+ <line x="6.9" y="22.47"/>
+ <curve x1="6.8" x2="6.68" x3="6.56" y1="22.39" y2="22.33" y3="22.27"/>
+ <line x="6.72" y="20.25"/>
+ <curve x1="7.1" x2="7.41" x3="7.54" y1="20.15" y2="19.91" y3="19.59"/>
+ <close/>
+ <move x="13.69" y="19.59"/>
+ <line x="16.79" y="19.59"/>
+ <curve x1="16.94" x2="17.29" x3="17.72" y1="19.91" y2="20.14" y3="20.25"/>
+ <line x="17.9" y="22.2"/>
+ <curve x1="17.72" x2="17.57" x3="17.43" y1="22.26" y2="22.36" y3="22.47"/>
+ <line x="13.41" y="22.47"/>
+ <curve x1="13.23" x2="12.99" x3="12.71" y1="22.31" y2="22.21" y3="22.15"/>
+ <line x="12.71" y="20.26"/>
+ <curve x1="13.17" x2="13.53" x3="13.69" y1="20.16" y2="19.92" y3="19.59"/>
+ <close/>
+ <move x="62.86" y="19.59"/>
+ <line x="66.32" y="19.59"/>
+ <curve x1="66.48" x2="66.85" x3="67.3" y1="19.92" y2="20.16" y3="20.25"/>
+ <line x="67.3" y="22.15"/>
+ <curve x1="67.03" x2="66.79" x3="66.61" y1="22.21" y2="22.32" y3="22.47"/>
+ <line x="62.22" y="22.47"/>
+ <curve x1="62.09" x2="61.93" x3="61.75" y1="22.36" y2="22.26" y3="22.2"/>
+ <line x="61.93" y="20.25"/>
+ <curve x1="62.36" x2="62.71" x3="62.86" y1="20.15" y2="19.91" y3="19.59"/>
+ <close/>
+ <move x="69.01" y="19.59"/>
+ <line x="72.1" y="19.59"/>
+ <curve x1="72.26" x2="72.61" x3="73.04" y1="19.91" y2="20.14" y3="20.25"/>
+ <line x="73.22" y="22.2"/>
+ <curve x1="73.04" x2="72.89" x3="72.75" y1="22.26" y2="22.36" y3="22.47"/>
+ <line x="68.73" y="22.47"/>
+ <curve x1="68.55" x2="68.31" x3="68.03" y1="22.31" y2="22.21" y3="22.15"/>
+ <line x="68.03" y="20.26"/>
+ <curve x1="68.49" x2="68.85" x3="69.01" y1="20.16" y2="19.92" y3="19.59"/>
+ <close/>
+ <move x="29.34" y="26.8"/>
+ <line x="29.34" y="29.71"/>
+ <line x="51.02" y="29.71"/>
+ <line x="51.02" y="26.8"/>
+ <line x="29.34" y="26.8"/>
+ <close/>
+ <move x="12.15" y="32.58"/>
+ <curve x1="12.02" x2="11.88" x3="11.85" y1="32.58" y2="32.61" y3="32.71"/>
+ <curve x1="11.82" x2="11.75" x3="11.71" y1="32.71" y2="32.78" y3="32.78"/>
+ <line x="9.93" y="34.54"/>
+ <curve x1="9.76" x2="9.76" x3="9.93" y1="34.73" y2="35.03" y3="35.2"/>
+ <line x="9.96" y="35.23"/>
+ <curve x1="10.16" x2="10.45" x3="10.62" y1="35.39" y2="35.39" y3="35.23"/>
+ <line x="11.65" y="34.2"/>
+ <line x="11.65" y="37.15"/>
+ <curve x1="9.96" x2="8.23" x3="7.24" y1="35.7" y2="34.6" y3="34.6"/>
+ <curve x1="6.87" x2="6.67" x3="6.57" y1="34.6" y2="34.74" y3="34.84"/>
+ <curve x1="6.11" x2="6.31" x3="7.24" y1="35.33" y2="36.19" y3="37.65"/>
+ <curve x1="7.67" x2="8.2" x3="8.8" y1="38.31" y2="38.97" y3="39.7"/>
+ <line x="6.05" y="39.7"/>
+ <line x="7.11" y="38.67"/>
+ <curve x1="7.27" x2="7.27" x3="7.11" y1="38.51" y2="38.21" y3="38.01"/>
+ <line x="7.04" y="38.01"/>
+ <curve x1="6.88" x2="6.57" x3="6.41" y1="37.81" y2="37.81" y3="38.01"/>
+ <line x="4.55" y="39.74"/>
+ <curve x1="4.55" x2="4.52" x3="4.52" y1="39.8" y2="39.8" y3="39.86"/>
+ <curve x1="4.42" x2="4.39" x3="4.39" y1="39.9" y2="40.03" y3="40.16"/>
+ <line x="4.39" y="40.23"/>
+ <curve x1="4.39" x2="4.42" x3="4.55" y1="40.36" y2="40.53" y3="40.59"/>
+ <line x="6.41" y="42.35"/>
+ <curve x1="6.57" x2="6.88" x3="7.04" y1="42.55" y2="42.55" y3="42.35"/>
+ <line x="7.11" y="42.35"/>
+ <curve x1="7.27" x2="7.27" x3="7.11" y1="42.15" y2="41.85" y3="41.69"/>
+ <line x="6.05" y="40.66"/>
+ <line x="8.96" y="40.66"/>
+ <curve x1="8.27" x2="7.7" x3="7.24" y1="41.49" y2="42.25" y3="42.95"/>
+ <curve x1="6.31" x2="6.11" x3="6.57" y1="44.37" y2="45.27" y3="45.76"/>
+ <curve x1="6.67" x2="6.87" x3="7.24" y1="45.86" y2="45.99" y3="45.99"/>
+ <curve x1="8.23" x2="9.96" x3="11.65" y1="45.99" y2="44.87" y3="43.44"/>
+ <line x="11.65" y="46.16"/>
+ <line x="10.62" y="45.13"/>
+ <curve x1="10.45" x2="10.16" x3="9.96" y1="44.97" y2="44.97" y3="45.13"/>
+ <line x="9.93" y="45.2"/>
+ <curve x1="9.76" x2="9.76" x3="9.93" y1="45.36" y2="45.63" y3="45.82"/>
+ <line x="11.71" y="47.61"/>
+ <curve x1="11.75" x2="11.82" x3="11.85" y1="47.61" y2="47.65" y3="47.65"/>
+ <curve x1="11.88" x2="12.02" x3="12.15" y1="47.75" y2="47.78" y3="47.78"/>
+ <line x="12.25" y="47.78"/>
+ <curve x1="12.38" x2="12.51" x3="12.58" y1="47.78" y2="47.75" y3="47.61"/>
+ <line x="14.43" y="45.82"/>
+ <curve x1="14.57" x2="14.57" x3="14.43" y1="45.63" y2="45.36" y3="45.2"/>
+ <line x="14.37" y="45.13"/>
+ <curve x1="14.2" x2="13.91" x3="13.74" y1="44.97" y2="44.97" y3="45.13"/>
+ <line x="12.68" y="46.16"/>
+ <line x="12.68" y="43.48"/>
+ <curve x1="14.37" x2="16.13" x3="17.05" y1="44.87" y2="45.99" y3="45.99"/>
+ <curve x1="17.42" x2="17.62" x3="17.79" y1="45.99" y2="45.86" y3="45.76"/>
+ <curve x1="18.25" x2="18.05" x3="17.05" y1="45.27" y2="44.37" y3="42.95"/>
+ <curve x1="16.62" x2="16.03" x3="15.33" y1="42.25" y2="41.49" y3="40.66"/>
+ <line x="18.28" y="40.66"/>
+ <line x="17.25" y="41.69"/>
+ <curve x1="17.05" x2="17.05" x3="17.25" y1="41.85" y2="42.15" y3="42.35"/>
+ <line x="17.29" y="42.35"/>
+ <curve x1="17.49" x2="17.79" x3="17.95" y1="42.55" y2="42.55" y3="42.35"/>
+ <line x="19.77" y="40.59"/>
+ <curve x1="19.91" x2="19.94" x3="19.94" y1="40.53" y2="40.36" y3="40.23"/>
+ <line x="19.94" y="40.16"/>
+ <curve x1="19.94" x2="19.9" x3="19.84" y1="40.03" y2="39.9" y3="39.86"/>
+ <curve x1="19.84" x2="19.77" x3="19.77" y1="39.8" y2="39.8" y3="39.74"/>
+ <line x="17.95" y="38.01"/>
+ <curve x1="17.79" x2="17.49" x3="17.29" y1="37.81" y2="37.81" y3="38.01"/>
+ <line x="17.25" y="38.01"/>
+ <curve x1="17.05" x2="17.05" x3="17.25" y1="38.21" y2="38.51" y3="38.67"/>
+ <line x="18.28" y="39.7"/>
+ <line x="15.5" y="39.7"/>
+ <curve x1="16.13" x2="16.69" x3="17.05" y1="38.97" y2="38.31" y3="37.65"/>
+ <curve x1="18.05" x2="18.25" x3="17.79" y1="36.19" y2="35.33" y3="34.84"/>
+ <curve x1="17.62" x2="17.42" x3="17.05" y1="34.74" y2="34.6" y3="34.6"/>
+ <curve x1="16.13" x2="14.37" x3="12.68" y1="34.6" y2="35.7" y3="37.09"/>
+ <line x="12.68" y="34.2"/>
+ <line x="13.74" y="35.23"/>
+ <curve x1="13.91" x2="14.2" x3="14.37" y1="35.39" y2="35.39" y3="35.23"/>
+ <line x="14.43" y="35.2"/>
+ <curve x1="14.57" x2="14.57" x3="14.43" y1="35.03" y2="34.73" y3="34.54"/>
+ <line x="12.58" y="32.78"/>
+ <curve x1="12.51" x2="12.38" x3="12.25" y1="32.62" y2="32.58" y3="32.58"/>
+ <line x="12.15" y="32.58"/>
+ <close/>
+ <move x="67.3" y="32.58"/>
+ <curve x1="67.17" x2="67.04" x3="66.97" y1="32.58" y2="32.61" y3="32.71"/>
+ <curve x1="66.94" x2="66.9" x3="66.87" y1="32.71" y2="32.78" y3="32.78"/>
+ <line x="65.15" y="34.54"/>
+ <curve x1="64.95" x2="64.95" x3="65.15" y1="34.73" y2="35.03" y3="35.2"/>
+ <line x="65.15" y="35.23"/>
+ <curve x1="65.35" x2="65.65" x3="65.81" y1="35.39" y2="35.39" y3="35.23"/>
+ <line x="66.84" y="34.2"/>
+ <line x="66.84" y="37.15"/>
+ <curve x1="65.15" x2="63.46" x3="62.5" y1="35.7" y2="34.6" y3="34.6"/>
+ <curve x1="62.16" x2="61.93" x3="61.86" y1="34.6" y2="34.74" y3="34.84"/>
+ <curve x1="61.37" x2="61.6" x3="62.5" y1="35.33" y2="36.19" y3="37.65"/>
+ <curve x1="62.93" x2="63.42" x3="64.02" y1="38.31" y2="38.97" y3="39.7"/>
+ <line x="61.34" y="39.7"/>
+ <line x="62.36" y="38.67"/>
+ <curve x1="62.53" x2="62.53" x3="62.36" y1="38.51" y2="38.21" y3="38.01"/>
+ <line x="62.29" y="38.01"/>
+ <curve x1="62.16" x2="61.87" x3="61.67" y1="37.81" y2="37.81" y3="38.01"/>
+ <line x="59.88" y="39.74"/>
+ <curve x1="59.88" x2="59.84" x3="59.84" y1="39.8" y2="39.8" y3="39.86"/>
+ <curve x1="59.74" x2="59.71" x3="59.71" y1="39.9" y2="40.03" y3="40.16"/>
+ <line x="59.71" y="40.23"/>
+ <curve x1="59.71" x2="59.74" x3="59.88" y1="40.36" y2="40.53" y3="40.59"/>
+ <line x="61.67" y="42.35"/>
+ <curve x1="61.87" x2="62.16" x3="62.29" y1="42.55" y2="42.55" y3="42.35"/>
+ <line x="62.36" y="42.35"/>
+ <curve x1="62.53" x2="62.53" x3="62.36" y1="42.15" y2="41.85" y3="41.69"/>
+ <line x="61.34" y="40.66"/>
+ <line x="64.19" y="40.66"/>
+ <curve x1="63.52" x2="62.96" x3="62.5" y1="41.49" y2="42.25" y3="42.95"/>
+ <curve x1="61.6" x2="61.37" x3="61.86" y1="44.37" y2="45.27" y3="45.76"/>
+ <curve x1="61.93" x2="62.16" x3="62.5" y1="45.86" y2="45.99" y3="45.99"/>
+ <curve x1="63.46" x2="65.15" x3="66.84" y1="45.99" y2="44.87" y3="43.44"/>
+ <line x="66.84" y="46.16"/>
+ <line x="65.81" y="45.13"/>
+ <curve x1="65.65" x2="65.35" x3="65.15" y1="44.97" y2="44.97" y3="45.13"/>
+ <line x="65.15" y="45.2"/>
+ <curve x1="64.95" x2="64.95" x3="65.15" y1="45.36" y2="45.63" y3="45.82"/>
+ <line x="66.87" y="47.61"/>
+ <curve x1="66.9" x2="66.94" x3="66.97" y1="47.61" y2="47.65" y3="47.65"/>
+ <curve x1="67.04" x2="67.17" x3="67.3" y1="47.75" y2="47.78" y3="47.78"/>
+ <line x="67.37" y="47.78"/>
+ <curve x1="67.5" x2="67.63" x3="67.7" y1="47.78" y2="47.75" y3="47.61"/>
+ <line x="69.49" y="45.82"/>
+ <curve x1="69.69" x2="69.69" x3="69.49" y1="45.63" y2="45.36" y3="45.2"/>
+ <line x="69.46" y="45.13"/>
+ <curve x1="69.29" x2="68.99" x3="68.83" y1="44.97" y2="44.97" y3="45.13"/>
+ <line x="67.8" y="46.16"/>
+ <line x="67.8" y="43.48"/>
+ <curve x1="69.46" x2="71.18" x3="72.11" y1="44.87" y2="45.99" y3="45.99"/>
+ <curve x1="72.44" x2="72.67" x3="72.77" y1="45.99" y2="45.86" y3="45.76"/>
+ <curve x1="73.24" x2="73.04" x3="72.11" y1="45.27" y2="44.37" y3="42.95"/>
+ <curve x1="71.68" x2="71.08" x3="70.39" y1="42.25" y2="41.49" y3="40.66"/>
+ <line x="73.3" y="40.66"/>
+ <line x="72.28" y="41.69"/>
+ <curve x1="72.11" x2="72.11" x3="72.28" y1="41.85" y2="42.15" y3="42.35"/>
+ <line x="72.31" y="42.35"/>
+ <curve x1="72.47" x2="72.77" x3="72.94" y1="42.55" y2="42.55" y3="42.35"/>
+ <line x="74.73" y="40.59"/>
+ <curve x1="74.86" x2="74.89" x3="74.89" y1="40.53" y2="40.36" y3="40.23"/>
+ <line x="74.89" y="40.16"/>
+ <curve x1="74.89" x2="74.86" x3="74.79" y1="40.03" y2="39.9" y3="39.86"/>
+ <curve x1="74.79" x2="74.73" x3="74.73" y1="39.8" y2="39.8" y3="39.74"/>
+ <line x="72.94" y="38.01"/>
+ <curve x1="72.77" x2="72.47" x3="72.31" y1="37.81" y2="37.81" y3="38.01"/>
+ <line x="72.28" y="38.01"/>
+ <curve x1="72.11" x2="72.11" x3="72.28" y1="38.21" y2="38.51" y3="38.67"/>
+ <line x="73.3" y="39.7"/>
+ <line x="70.55" y="39.7"/>
+ <curve x1="71.18" x2="71.71" x3="72.11" y1="38.97" y2="38.31" y3="37.65"/>
+ <curve x1="73.04" x2="73.24" x3="72.77" y1="36.19" y2="35.33" y3="34.84"/>
+ <curve x1="72.67" x2="72.44" x3="72.11" y1="34.74" y2="34.6" y3="34.6"/>
+ <curve x1="71.18" x2="69.46" x3="67.8" y1="34.6" y2="35.7" y3="37.09"/>
+ <line x="67.8" y="34.2"/>
+ <line x="68.83" y="35.23"/>
+ <curve x1="68.99" x2="69.29" x3="69.46" y1="35.39" y2="35.39" y3="35.23"/>
+ <line x="69.49" y="35.2"/>
+ <curve x1="69.69" x2="69.69" x3="69.49" y1="35.03" y2="34.73" y3="34.54"/>
+ <line x="67.7" y="32.78"/>
+ <curve x1="67.63" x2="67.5" x3="67.37" y1="32.62" y2="32.58" y3="32.58"/>
+ <line x="67.3" y="32.58"/>
+ <close/>
+ <move x="29.34" y="34.75"/>
+ <line x="29.34" y="37.3"/>
+ <line x="51.02" y="37.3"/>
+ <line x="51.02" y="34.75"/>
+ <line x="29.34" y="34.75"/>
+ <close/>
+ <move x="7.14" y="35.39"/>
+ <line x="7.24" y="35.39"/>
+ <curve x1="7.83" x2="9.33" x3="11.15" y1="35.39" y2="36.19" y3="37.75"/>
+ <curve x1="10.39" x2="9.83" x3="9.53" y1="38.01" y2="38.61" y3="39.31"/>
+ <curve x1="7.77" x2="7.01" x3="7.14" y1="37.25" y2="35.76" y3="35.39"/>
+ <close/>
+ <move x="17.05" y="35.39"/>
+ <line x="17.15" y="35.39"/>
+ <curve x1="17.29" x2="16.56" x3="14.76" y1="35.76" y2="37.25" y3="39.31"/>
+ <curve x1="14.47" x2="13.91" x3="13.14" y1="38.61" y2="38.01" y3="37.75"/>
+ <curve x1="15.03" x2="16.46" x3="17.05" y1="36.19" y2="35.39" y3="35.39"/>
+ <close/>
+ <move x="62.39" y="35.39"/>
+ <line x="62.5" y="35.39"/>
+ <curve x1="63.09" x2="64.52" x3="66.31" y1="35.39" y2="36.19" y3="37.75"/>
+ <curve x1="65.58" x2="65.05" x3="64.75" y1="38.01" y2="38.61" y3="39.31"/>
+ <curve x1="62.99" x2="62.26" x3="62.39" y1="37.25" y2="35.76" y3="35.39"/>
+ <close/>
+ <move x="72.11" y="35.39"/>
+ <line x="72.17" y="35.39"/>
+ <curve x1="72.31" x2="71.61" x3="69.82" y1="35.76" y2="37.25" y3="39.31"/>
+ <curve x1="69.56" x2="68.99" x3="68.26" y1="38.61" y2="38.01" y3="37.75"/>
+ <curve x1="70.12" x2="71.51" x3="72.11" y1="36.19" y2="35.39" y3="35.39"/>
+ <close/>
+ <move x="9.53" y="41.26"/>
+ <curve x1="9.83" x2="10.39" x3="11.15" y1="41.98" y2="42.55" y3="42.84"/>
+ <curve x1="9.33" x2="7.83" x3="7.24" y1="44.37" y2="45.2" y3="45.2"/>
+ <line x="7.14" y="45.2"/>
+ <curve x1="7.01" x2="7.77" x3="9.53" y1="44.87" y2="43.34" y3="41.26"/>
+ <close/>
+ <move x="14.76" y="41.26"/>
+ <curve x1="16.56" x2="17.29" x3="17.15" y1="43.34" y2="44.87" y3="45.2"/>
+ <line x="17.05" y="45.2"/>
+ <curve x1="16.46" x2="15.03" x3="13.14" y1="45.2" y2="44.37" y3="42.84"/>
+ <curve x1="13.91" x2="14.47" x3="14.76" y1="42.55" y2="41.98" y3="41.26"/>
+ <close/>
+ <move x="64.75" y="41.26"/>
+ <curve x1="65.05" x2="65.58" x3="66.31" y1="41.98" y2="42.55" y3="42.84"/>
+ <curve x1="64.52" x2="63.09" x3="62.5" y1="44.37" y2="45.2" y3="45.2"/>
+ <line x="62.39" y="45.2"/>
+ <curve x1="62.26" x2="62.99" x3="64.75" y1="44.87" y2="43.34" y3="41.26"/>
+ <close/>
+ <move x="69.82" y="41.26"/>
+ <curve x1="71.61" x2="72.31" x3="72.17" y1="43.34" y2="44.87" y3="45.2"/>
+ <line x="72.11" y="45.2"/>
+ <curve x1="71.51" x2="70.12" x3="68.26" y1="45.2" y2="44.37" y3="42.84"/>
+ <curve x1="68.99" x2="69.56" x3="69.82" y1="42.55" y2="41.98" y3="41.26"/>
+ <close/>
+ <move x="29.34" y="42.34"/>
+ <line x="29.34" y="44.89"/>
+ <line x="51.02" y="44.89"/>
+ <line x="51.02" y="42.34"/>
+ <line x="29.34" y="42.34"/>
+ <close/>
+ <move x="29.34" y="49.93"/>
+ <line x="29.34" y="52.84"/>
+ <line x="51.02" y="52.84"/>
+ <line x="51.02" y="49.93"/>
+ <line x="29.34" y="49.93"/>
+ <close/>
+ <move x="6.37" y="54.26"/>
+ <line x="6.28" y="55.4"/>
+ <curve x1="5.98" x2="5.71" x3="5.5" y1="55.45" y2="55.55" y3="55.72"/>
+ <line x="4.59" y="55.72"/>
+ <line x="4.39" y="56.81"/>
+ <line x="5.21" y="56.81"/>
+ <curve x1="5.37" x2="5.7" x3="6.12" y1="57.13" y2="57.36" y3="57.47"/>
+ <line x="5.97" y="59.39"/>
+ <curve x1="5.56" x2="5.25" x3="5.16" y1="59.49" y2="59.75" y3="60.06"/>
+ <line x="4.23" y="60.06"/>
+ <line x="4.03" y="60.79"/>
+ <line x="5.4" y="60.79"/>
+ <curve x1="5.52" x2="5.67" x3="5.84" y1="60.91" y2="61" y3="61.06"/>
+ <line x="5.69" y="62.97"/>
+ <curve x1="5.19" x2="4.76" x3="4.54" y1="63.02" y2="63.3" y3="63.67"/>
+ <line x="3.87" y="63.67"/>
+ <line x="3.66" y="64.77"/>
+ <line x="4.56" y="64.77"/>
+ <curve x1="4.75" x2="5.09" x3="5.5" y1="65.09" y2="65.33" y3="65.43"/>
+ <line x="5.47" y="65.85"/>
+ <line x="6.37" y="65.85"/>
+ <line x="6.4" y="65.39"/>
+ <curve x1="6.72" x2="6.96" x3="7.11" y1="65.27" y2="65.04" y3="64.77"/>
+ <line x="11.07" y="64.77"/>
+ <curve x1="11.2" x2="11.39" x3="11.62" y1="64.98" y2="65.16" y3="65.28"/>
+ <line x="11.62" y="65.85"/>
+ <line x="12.71" y="65.85"/>
+ <line x="12.71" y="65.42"/>
+ <curve x1="13.11" x2="13.44" x3="13.62" y1="65.33" y2="65.09" y3="64.77"/>
+ <line x="17.22" y="64.77"/>
+ <curve x1="17.4" x2="17.71" x3="18.1" y1="65.08" y2="65.31" y3="65.42"/>
+ <line x="18.14" y="65.85"/>
+ <line x="19.2" y="65.85"/>
+ <line x="19.15" y="65.33"/>
+ <curve x1="19.42" x2="19.63" x3="19.76" y1="65.2" y2="65.01" y3="64.77"/>
+ <line x="21.01" y="64.77"/>
+ <line x="20.84" y="63.67"/>
+ <line x="19.78" y="63.67"/>
+ <curve x1="19.61" x2="19.31" x3="18.94" y1="63.37" y2="63.13" y3="63.02"/>
+ <line x="18.76" y="61.06"/>
+ <curve x1="18.96" x2="19.12" x3="19.26" y1="61" y2="60.91" y3="60.79"/>
+ <line x="20.67" y="60.79"/>
+ <line x="20.47" y="60.06"/>
+ <line x="19.52" y="60.06"/>
+ <curve x1="19.42" x2="19.08" x3="18.61" y1="59.75" y2="59.49" y3="59.39"/>
+ <line x="18.43" y="57.4"/>
+ <curve x1="18.74" x2="18.99" x3="19.11" y1="57.28" y2="57.07" y3="56.81"/>
+ <line x="20.3" y="56.81"/>
+ <line x="20.11" y="55.72"/>
+ <line x="18.83" y="55.72"/>
+ <curve x1="18.67" x2="18.48" x3="18.25" y1="55.59" y2="55.49" y3="55.43"/>
+ <line x="18.14" y="54.26"/>
+ <line x="17.04" y="54.26"/>
+ <line x="17.16" y="55.47"/>
+ <curve x1="16.99" x2="16.84" x3="16.71" y1="55.54" y2="55.62" y3="55.72"/>
+ <line x="13.41" y="55.72"/>
+ <curve x1="13.23" x2="12.99" x3="12.71" y1="55.57" y2="55.47" y3="55.41"/>
+ <line x="12.71" y="54.26"/>
+ <line x="11.62" y="54.26"/>
+ <line x="11.62" y="55.53"/>
+ <curve x1="11.5" x2="11.38" x3="11.29" y1="55.59" y2="55.64" y3="55.72"/>
+ <line x="7.62" y="55.72"/>
+ <curve x1="7.5" x2="7.36" x3="7.2" y1="55.62" y2="55.54" y3="55.48"/>
+ <line x="7.3" y="54.26"/>
+ <line x="6.37" y="54.26"/>
+ <close/>
+ <move x="61.53" y="54.26"/>
+ <line x="61.42" y="55.43"/>
+ <curve x1="61.19" x2="60.99" x3="60.82" y1="55.49" y2="55.59" y3="55.72"/>
+ <line x="59.91" y="55.72"/>
+ <line x="59.71" y="56.81"/>
+ <line x="60.53" y="56.81"/>
+ <curve x1="60.66" x2="60.91" x3="61.23" y1="57.07" y2="57.28" y3="57.4"/>
+ <line x="61.05" y="59.39"/>
+ <curve x1="60.57" x2="60.22" x3="60.12" y1="59.5" y2="59.75" y3="60.06"/>
+ <line x="59.55" y="60.06"/>
+ <line x="59.35" y="60.79"/>
+ <line x="60.4" y="60.79"/>
+ <curve x1="60.53" x2="60.69" x3="60.89" y1="60.9" y2="60.99" y3="61.05"/>
+ <line x="60.7" y="63.03"/>
+ <curve x1="60.33" x2="60.03" x3="59.86" y1="63.14" y2="63.38" y3="63.67"/>
+ <line x="59.38" y="63.67"/>
+ <line x="58.98" y="64.77"/>
+ <line x="59.88" y="64.77"/>
+ <curve x1="60.02" x2="60.23" x3="60.49" y1="65" y2="65.19" y3="65.31"/>
+ <line x="60.43" y="65.85"/>
+ <line x="61.53" y="65.85"/>
+ <line x="61.57" y="65.42"/>
+ <curve x1="61.95" x2="62.26" x3="62.43" y1="65.31" y2="65.08" y3="64.77"/>
+ <line x="66.39" y="64.77"/>
+ <curve x1="66.58" x2="66.9" x3="67.3" y1="65.09" y2="65.32" y3="65.42"/>
+ <line x="67.3" y="65.85"/>
+ <line x="68.03" y="65.85"/>
+ <line x="68.03" y="65.42"/>
+ <curve x1="68.43" x2="68.76" x3="68.94" y1="65.33" y2="65.09" y3="64.77"/>
+ <line x="72.54" y="64.77"/>
+ <curve x1="72.72" x2="73.03" x3="73.42" y1="65.08" y2="65.31" y3="65.42"/>
+ <line x="73.46" y="65.85"/>
+ <line x="74.52" y="65.85"/>
+ <line x="74.47" y="65.33"/>
+ <curve x1="74.74" x2="74.95" x3="75.08" y1="65.2" y2="65.01" y3="64.77"/>
+ <line x="76.33" y="64.77"/>
+ <line x="75.96" y="63.67"/>
+ <line x="75.1" y="63.67"/>
+ <curve x1="74.93" x2="74.63" x3="74.26" y1="63.37" y2="63.13" y3="63.02"/>
+ <line x="74.08" y="61.06"/>
+ <curve x1="74.28" x2="74.44" x3="74.57" y1="61" y2="60.9" y3="60.79"/>
+ <line x="75.99" y="60.79"/>
+ <line x="75.79" y="60.06"/>
+ <line x="74.84" y="60.06"/>
+ <curve x1="74.74" x2="74.4" x3="73.93" y1="59.75" y2="59.49" y3="59.39"/>
+ <line x="73.75" y="57.4"/>
+ <curve x1="74.07" x2="74.31" x3="74.43" y1="57.28" y2="57.07" y3="56.81"/>
+ <line x="75.62" y="56.81"/>
+ <line x="75.43" y="55.72"/>
+ <line x="74.15" y="55.72"/>
+ <curve x1="73.99" x2="73.8" x3="73.57" y1="55.59" y2="55.49" y3="55.43"/>
+ <line x="73.46" y="54.26"/>
+ <line x="72.36" y="54.26"/>
+ <line x="72.48" y="55.47"/>
+ <curve x1="72.31" x2="72.16" x3="72.03" y1="55.54" y2="55.62" y3="55.72"/>
+ <line x="68.73" y="55.72"/>
+ <curve x1="68.55" x2="68.31" x3="68.03" y1="55.57" y2="55.47" y3="55.41"/>
+ <line x="68.03" y="54.26"/>
+ <line x="67.3" y="54.26"/>
+ <line x="67.3" y="55.41"/>
+ <curve x1="67.03" x2="66.79" x3="66.61" y1="55.47" y2="55.57" y3="55.72"/>
+ <line x="62.94" y="55.72"/>
+ <curve x1="62.81" x2="62.66" x3="62.48" y1="55.61" y2="55.52" y3="55.46"/>
+ <line x="62.59" y="54.26"/>
+ <line x="61.53" y="54.26"/>
+ <close/>
+ <move x="7.9" y="56.81"/>
+ <line x="11" y="56.81"/>
+ <curve x1="11.11" x2="11.34" x3="11.62" y1="57.05" y2="57.23" y3="57.36"/>
+ <line x="11.62" y="59.47"/>
+ <curve x1="11.27" x2="11.03" x3="10.95" y1="59.6" y2="59.81" y3="60.06"/>
+ <line x="7.59" y="60.06"/>
+ <curve x1="7.51" x2="7.26" x3="6.89" y1="59.77" y2="59.53" y3="59.41"/>
+ <line x="7.04" y="57.47"/>
+ <curve x1="7.45" x2="7.76" x3="7.9" y1="57.36" y2="57.12" y3="56.81"/>
+ <close/>
+ <move x="13.69" y="56.81"/>
+ <line x="16.42" y="56.81"/>
+ <curve x1="16.58" x2="16.92" x3="17.34" y1="57.13" y2="57.37" y3="57.47"/>
+ <line x="17.53" y="59.42"/>
+ <curve x1="17.12" x2="16.83" x3="16.74" y1="59.54" y2="59.78" y3="60.06"/>
+ <line x="13.73" y="60.06"/>
+ <curve x1="13.63" x2="13.24" x3="12.71" y1="59.72" y2="59.46" y3="59.38"/>
+ <line x="12.71" y="57.48"/>
+ <curve x1="13.17" x2="13.53" x3="13.69" y1="57.39" y2="57.15" y3="56.81"/>
+ <close/>
+ <move x="63.22" y="56.81"/>
+ <line x="66.32" y="56.81"/>
+ <curve x1="66.48" x2="66.85" x3="67.3" y1="57.14" y2="57.39" y3="57.48"/>
+ <line x="67.3" y="59.38"/>
+ <curve x1="66.77" x2="66.38" x3="66.27" y1="59.47" y2="59.73" y3="60.06"/>
+ <line x="62.91" y="60.06"/>
+ <curve x1="62.82" x2="62.53" x3="62.12" y1="59.77" y2="59.53" y3="59.41"/>
+ <line x="62.29" y="57.48"/>
+ <curve x1="62.73" x2="63.07" x3="63.22" y1="57.38" y2="57.14" y3="56.81"/>
+ <close/>
+ <move x="69.01" y="56.81"/>
+ <line x="71.74" y="56.81"/>
+ <curve x1="71.9" x2="72.24" x3="72.67" y1="57.13" y2="57.37" y3="57.47"/>
+ <line x="72.85" y="59.42"/>
+ <curve x1="72.44" x2="72.14" x3="72.05" y1="59.54" y2="59.78" y3="60.06"/>
+ <line x="69.05" y="60.06"/>
+ <curve x1="68.95" x2="68.56" x3="68.03" y1="59.72" y2="59.46" y3="59.38"/>
+ <line x="68.03" y="57.48"/>
+ <curve x1="68.49" x2="68.85" x3="69.01" y1="57.39" y2="57.15" y3="56.81"/>
+ <close/>
+ <move x="29.34" y="57.88"/>
+ <line x="29.34" y="60.79"/>
+ <line x="51.02" y="60.79"/>
+ <line x="51.02" y="57.88"/>
+ <line x="29.34" y="57.88"/>
+ <close/>
+ <move x="7.35" y="60.79"/>
+ <line x="11.23" y="60.79"/>
+ <curve x1="11.34" x2="11.47" x3="11.62" y1="60.88" y2="60.95" y3="61.01"/>
+ <line x="11.62" y="63.15"/>
+ <curve x1="11.38" x2="11.18" x3="11.06" y1="63.28" y2="63.46" y3="63.67"/>
+ <line x="7.12" y="63.67"/>
+ <curve x1="7.01" x2="6.82" x3="6.59" y1="63.46" y2="63.28" y3="63.15"/>
+ <line x="6.75" y="61.1"/>
+ <curve x1="6.99" x2="7.2" x3="7.35" y1="61.04" y2="60.94" y3="60.79"/>
+ <close/>
+ <move x="13.47" y="60.79"/>
+ <line x="17.01" y="60.79"/>
+ <curve x1="17.18" x2="17.41" x3="17.69" y1="60.94" y2="61.04" y3="61.1"/>
+ <line x="17.88" y="63.08"/>
+ <curve x1="17.58" x2="17.34" x3="17.2" y1="63.21" y2="63.42" y3="63.67"/>
+ <line x="13.63" y="63.67"/>
+ <curve x1="13.45" x2="13.12" x3="12.71" y1="63.35" y2="63.11" y3="63.01"/>
+ <line x="12.71" y="61.11"/>
+ <curve x1="13.02" x2="13.28" x3="13.47" y1="61.06" y2="60.95" y3="60.79"/>
+ <close/>
+ <move x="62.64" y="60.79"/>
+ <line x="66.55" y="60.79"/>
+ <curve x1="66.74" x2="67" x3="67.3" y1="60.95" y2="61.06" y3="61.11"/>
+ <line x="67.3" y="63.01"/>
+ <curve x1="66.9" x2="66.56" x3="66.38" y1="63.11" y2="63.35" y3="63.67"/>
+ <line x="62.44" y="63.67"/>
+ <curve x1="62.31" x2="62.07" x3="61.78" y1="63.42" y2="63.21" y3="63.08"/>
+ <line x="61.96" y="61.1"/>
+ <curve x1="62.24" x2="62.47" x3="62.64" y1="61.04" y2="60.94" y3="60.79"/>
+ <close/>
+ <move x="68.79" y="60.79"/>
+ <line x="72.33" y="60.79"/>
+ <curve x1="72.5" x2="72.73" x3="73.01" y1="60.93" y2="61.04" y3="61.1"/>
+ <line x="73.2" y="63.08"/>
+ <curve x1="72.9" x2="72.66" x3="72.52" y1="63.21" y2="63.42" y3="63.67"/>
+ <line x="68.95" y="63.67"/>
+ <curve x1="68.77" x2="68.44" x3="68.03" y1="63.35" y2="63.11" y3="63.01"/>
+ <line x="68.03" y="61.11"/>
+ <curve x1="68.34" x2="68.6" x3="68.79" y1="61.06" y2="60.95" y3="60.79"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="catalyst switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="17.65" y="7.05"/>
+ <line x="17.65" y="12.22"/>
+ <line x="26.77" y="12.22"/>
+ <line x="27.36" y="12.52"/>
+ <line x="38.54" y="15.3"/>
+ <line x="27.36" y="18.38"/>
+ <line x="17.65" y="18.38"/>
+ <line x="17.65" y="23.54"/>
+ <line x="28.22" y="23.54"/>
+ <line x="28.22" y="21.32"/>
+ <line x="51.63" y="21.32"/>
+ <line x="51.63" y="23.54"/>
+ <line x="62.37" y="23.54"/>
+ <line x="62.37" y="18.38"/>
+ <line x="52.96" y="18.38"/>
+ <line x="41.62" y="15.3"/>
+ <line x="52.96" y="12.52"/>
+ <line x="53.68" y="12.22"/>
+ <line x="62.37" y="12.22"/>
+ <line x="62.37" y="7.05"/>
+ <line x="51.63" y="7.05"/>
+ <line x="51.63" y="9.4"/>
+ <line x="28.22" y="9.4"/>
+ <line x="28.22" y="7.05"/>
+ <line x="17.65" y="7.05"/>
+ <close/>
+ <move x="28.22" y="10"/>
+ <line x="51.63" y="10"/>
+ <line x="51.63" y="12.05"/>
+ <line x="39.99" y="15"/>
+ <line x="28.22" y="11.92"/>
+ <line x="28.22" y="10"/>
+ <close/>
+ <move x="39.99" y="15.73"/>
+ <line x="51.63" y="18.81"/>
+ <line x="51.63" y="20.43"/>
+ <line x="28.22" y="20.43"/>
+ <line x="28.22" y="19.11"/>
+ <line x="39.99" y="15.73"/>
+ <close/>
+ <move x="3.53" y="30.57"/>
+ <line x="3.53" y="32.95"/>
+ <line x="76.47" y="32.95"/>
+ <line x="76.47" y="30.57"/>
+ <line x="3.53" y="30.57"/>
+ <close/>
+ <move x="39.99" y="37.64"/>
+ <curve x1="39.86" x2="39.56" x3="39.43" y1="37.64" y2="37.78" y3="37.94"/>
+ <curve x1="39.43" x2="39.43" x3="39.26" y1="37.94" y2="38.07" y3="38.07"/>
+ <line x="36.18" y="41.15"/>
+ <curve x1="35.88" x2="35.88" x3="36.18" y1="41.45" y2="42.05" y3="42.35"/>
+ <line x="36.32" y="42.35"/>
+ <curve x1="36.61" x2="37.08" x3="37.34" y1="42.65" y2="42.65" y3="42.35"/>
+ <line x="39.26" y="40.59"/>
+ <line x="39.26" y="46.16"/>
+ <curve x1="37.34" x2="35.58" x3="34.12" y1="46.32" y2="47.05" y3="48.24"/>
+ <line x="30.15" y="44.27"/>
+ <line x="32.8" y="44.27"/>
+ <curve x1="33.23" x2="33.53" x3="33.53" y1="44.27" y2="43.97" y3="43.51"/>
+ <line x="33.53" y="43.37"/>
+ <curve x1="33.53" x2="33.23" x3="32.8" y1="42.94" y2="42.64" y3="42.64"/>
+ <line x="28.39" y="42.64"/>
+ <line x="28.09" y="42.64"/>
+ <curve x1="27.96" x2="27.79" x3="27.66" y1="42.64" y2="42.64" y3="42.78"/>
+ <line x="27.49" y="42.94"/>
+ <curve x1="27.36" x2="27.36" x3="27.36" y1="43.08" y2="43.37" y3="43.51"/>
+ <line x="27.36" y="43.67"/>
+ <line x="27.36" y="48.08"/>
+ <curve x1="27.36" x2="27.66" x3="28.09" y1="48.51" y2="48.8" y3="48.8"/>
+ <line x="28.22" y="48.8"/>
+ <curve x1="28.69" x2="28.98" x3="28.98" y1="48.8" y2="48.51" y3="48.08"/>
+ <line x="28.98" y="45.59"/>
+ <line x="32.93" y="49.57"/>
+ <curve x1="31.77" x2="31.04" x3="30.88" y1="50.86" y2="52.64" y3="54.53"/>
+ <line x="25.31" y="54.53"/>
+ <line x="27.06" y="52.64"/>
+ <curve x1="27.36" x2="27.36" x3="27.06" y1="52.35" y2="51.92" y3="51.62"/>
+ <line x="26.93" y="51.45"/>
+ <curve x1="26.63" x2="26.17" x3="25.87" y1="51.16" y2="51.16" y3="51.45"/>
+ <line x="22.78" y="54.53"/>
+ <curve x1="22.65" x2="22.65" x3="22.65" y1="54.7" y2="54.7" y3="54.83"/>
+ <curve x1="22.49" x2="22.35" x3="22.35" y1="54.83" y2="55.13" y3="55.29"/>
+ <line x="22.35" y="55.43"/>
+ <curve x1="22.35" x2="22.49" x3="22.65" y1="55.73" y2="55.86" y3="56.02"/>
+ <line x="22.78" y="56.16"/>
+ <line x="25.87" y="59.27"/>
+ <curve x1="26.17" x2="26.63" x3="26.93" y1="59.53" y2="59.53" y3="59.27"/>
+ <line x="27.06" y="59.1"/>
+ <curve x1="27.36" x2="27.36" x3="27.06" y1="58.8" y2="58.37" y3="58.08"/>
+ <line x="25.31" y="56.16"/>
+ <line x="30.88" y="56.16"/>
+ <curve x1="31.04" x2="31.77" x3="32.93" y1="58.08" y2="59.83" y3="61.32"/>
+ <line x="28.98" y="65.29"/>
+ <line x="28.98" y="62.64"/>
+ <curve x1="28.98" x2="28.69" x3="28.22" y1="62.18" y2="61.92" y3="61.92"/>
+ <line x="28.09" y="61.92"/>
+ <curve x1="27.66" x2="27.36" x3="27.36" y1="61.92" y2="62.18" y3="62.64"/>
+ <line x="27.36" y="67.05"/>
+ <line x="27.36" y="67.18"/>
+ <curve x1="27.36" x2="27.36" x3="27.49" y1="67.48" y2="67.65" y3="67.78"/>
+ <line x="27.66" y="67.94"/>
+ <curve x1="27.79" x2="28.09" x3="28.22" y1="68.08" y2="68.08" y3="68.08"/>
+ <line x="28.39" y="68.08"/>
+ <line x="32.8" y="68.08"/>
+ <curve x1="33.23" x2="33.53" x3="33.53" y1="68.08" y2="67.78" y3="67.35"/>
+ <line x="33.53" y="67.18"/>
+ <curve x1="33.53" x2="33.23" x3="32.8" y1="66.75" y2="66.45" y3="66.45"/>
+ <line x="30.15" y="66.45"/>
+ <line x="34.12" y="62.48"/>
+ <curve x1="35.58" x2="37.34" x3="39.26" y1="63.67" y2="64.4" y3="64.53"/>
+ <line x="39.26" y="70.13"/>
+ <line x="37.34" y="68.37"/>
+ <curve x1="37.08" x2="36.61" x3="36.32" y1="68.07" y2="68.07" y3="68.37"/>
+ <line x="36.18" y="68.51"/>
+ <curve x1="35.88" x2="35.88" x3="36.18" y1="68.67" y2="69.27" y3="69.53"/>
+ <line x="39.26" y="72.65"/>
+ <line x="39.43" y="72.78"/>
+ <curve x1="39.56" x2="39.86" x3="39.99" y1="72.94" y2="72.94" y3="72.94"/>
+ <line x="40.16" y="72.94"/>
+ <curve x1="40.46" x2="40.59" x3="40.75" y1="72.94" y2="72.94" y3="72.65"/>
+ <line x="43.97" y="69.53"/>
+ <curve x1="44.27" x2="44.27" x3="43.97" y1="69.27" y2="68.67" y3="68.51"/>
+ <line x="43.84" y="68.37"/>
+ <curve x1="43.54" x2="43.08" x3="42.81" y1="68.07" y2="68.07" y3="68.37"/>
+ <line x="40.89" y="70.13"/>
+ <line x="40.89" y="64.53"/>
+ <curve x1="42.81" x2="44.57" x3="45.89" y1="64.4" y2="63.67" y3="62.48"/>
+ <line x="49.87" y="66.45"/>
+ <line x="47.35" y="66.45"/>
+ <curve x1="46.92" x2="46.62" x3="46.62" y1="66.45" y2="66.75" y3="67.18"/>
+ <line x="46.62" y="67.35"/>
+ <curve x1="46.62" x2="46.92" x3="47.35" y1="67.78" y2="68.08" y3="68.08"/>
+ <line x="51.76" y="68.08"/>
+ <line x="51.93" y="68.08"/>
+ <curve x1="52.06" x2="52.36" x3="52.49" y1="68.08" y2="68.08" y3="67.94"/>
+ <line x="52.66" y="67.78"/>
+ <curve x1="52.79" x2="52.79" x3="52.79" y1="67.65" y2="67.48" y3="67.18"/>
+ <line x="52.79" y="67.05"/>
+ <line x="52.79" y="62.64"/>
+ <curve x1="52.79" x2="52.49" x3="52.06" y1="62.18" y2="61.92" y3="61.92"/>
+ <line x="51.93" y="61.92"/>
+ <curve x1="51.46" x2="51.17" x3="51.17" y1="61.92" y2="62.18" y3="62.64"/>
+ <line x="51.17" y="65.29"/>
+ <line x="47.22" y="61.32"/>
+ <curve x1="48.25" x2="49.11" x3="49.28" y1="59.83" y2="58.08" y3="56.16"/>
+ <line x="54.84" y="56.16"/>
+ <line x="53.09" y="58.08"/>
+ <curve x1="52.79" x2="52.79" x3="53.09" y1="58.37" y2="58.8" y3="59.1"/>
+ <line x="53.25" y="59.27"/>
+ <curve x1="53.52" x2="53.98" x3="54.28" y1="59.53" y2="59.53" y3="59.27"/>
+ <line x="57.37" y="56.16"/>
+ <curve x1="57.37" x2="57.36" x3="57.5" y1="56.16" y2="56.02" y3="56.02"/>
+ <curve x1="57.66" x2="57.66" x3="57.66" y1="55.86" y2="55.73" y3="55.43"/>
+ <line x="57.66" y="55.29"/>
+ <curve x1="57.66" x2="57.66" x3="57.5" y1="55.13" y2="54.83" y3="54.83"/>
+ <curve x1="57.5" x2="57.5" x3="57.37" y1="54.7" y2="54.7" y3="54.53"/>
+ <line x="54.28" y="51.45"/>
+ <curve x1="53.98" x2="53.52" x3="53.25" y1="51.16" y2="51.16" y3="51.45"/>
+ <line x="53.09" y="51.62"/>
+ <curve x1="52.79" x2="52.79" x3="53.09" y1="51.92" y2="52.35" y3="52.64"/>
+ <line x="54.84" y="54.53"/>
+ <line x="49.28" y="54.53"/>
+ <curve x1="49.11" x2="48.25" x3="47.22" y1="52.64" y2="50.86" y3="49.57"/>
+ <line x="51.17" y="45.59"/>
+ <line x="51.17" y="48.08"/>
+ <curve x1="51.17" x2="51.46" x3="51.93" y1="48.51" y2="48.8" y3="48.8"/>
+ <line x="52.06" y="48.8"/>
+ <curve x1="52.49" x2="52.79" x3="52.79" y1="48.8" y2="48.51" y3="48.08"/>
+ <line x="52.79" y="43.67"/>
+ <line x="52.79" y="43.51"/>
+ <curve x1="52.79" x2="52.79" x3="52.66" y1="43.37" y2="43.08" y3="42.94"/>
+ <line x="52.49" y="42.78"/>
+ <curve x1="52.36" x2="52.23" x3="51.93" y1="42.64" y2="42.64" y3="42.64"/>
+ <line x="51.76" y="42.64"/>
+ <line x="47.35" y="42.64"/>
+ <curve x1="46.92" x2="46.62" x3="46.62" y1="42.64" y2="42.94" y3="43.37"/>
+ <line x="46.62" y="43.51"/>
+ <curve x1="46.62" x2="46.92" x3="47.35" y1="43.97" y2="44.27" y3="44.27"/>
+ <line x="50.01" y="44.27"/>
+ <line x="46.03" y="48.24"/>
+ <curve x1="44.57" x2="42.81" x3="40.89" y1="47.18" y2="46.45" y3="46.16"/>
+ <line x="40.89" y="40.59"/>
+ <line x="42.81" y="42.35"/>
+ <curve x1="43.08" x2="43.54" x3="43.84" y1="42.65" y2="42.65" y3="42.35"/>
+ <line x="43.97" y="42.35"/>
+ <curve x1="44.27" x2="44.27" x3="43.97" y1="42.05" y2="41.45" y3="41.15"/>
+ <line x="40.75" y="38.07"/>
+ <curve x1="40.59" x2="40.46" x3="40.16" y1="37.78" y2="37.64" y3="37.64"/>
+ <line x="39.99" y="37.64"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="corporate device" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.38" y="9.03"/>
+ <curve x1="19.6" x2="18.89" x3="18.35" y1="9.07" y2="9.21" y3="9.36"/>
+ <curve x1="17.46" x2="17.09" x3="16.16" y1="9.66" y2="9.52" y3="9.49"/>
+ <curve x1="15.83" x2="15.43" x3="15.1" y1="9.49" y2="9.49" y3="9.52"/>
+ <curve x1="14.34" x2="13.18" x3="12.78" y1="9.69" y2="10.55" y3="12.07"/>
+ <curve x1="12.38" x2="12.91" x3="12.95" y1="13.49" y2="17.57" y3="17.93"/>
+ <curve x1="13.25" x2="14.74" x3="16.76" y1="21.31" y2="24.09" y3="25.32"/>
+ <curve x1="16.66" x2="16.43" x3="16.23" y1="25.51" y2="25.75" y3="25.85"/>
+ <curve x1="15.9" x2="15.53" x3="15.27" y1="26.11" y2="26.44" y3="26.64"/>
+ <curve x1="14.34" x2="13.28" x3="11.99" y1="27.4" y2="27.83" y3="28.2"/>
+ <curve x1="8.51" x2="5.69" x3="5.42" y1="29.26" y2="31.94" y3="35.75"/>
+ <line x="4.76" y="44.99"/>
+ <curve x1="4.76" x2="10.83" x3="19.28" y1="44.99" y2="46.61" y3="46.61"/>
+ <curve x1="21.93" x2="24.42" x3="26.48" y1="46.61" y2="46.44" y3="46.21"/>
+ <line x="26.48" y="51.14"/>
+ <line x="26.48" y="64.3"/>
+ <line x="26.42" y="64.3"/>
+ <line x="23.66" y="64.3"/>
+ <curve x1="22.24" x2="21.41" x3="21.41" y1="64.3" y2="65.22" y3="66.64"/>
+ <line x="21.41" y="68.1"/>
+ <curve x1="21.41" x2="22.24" x3="23.66" y1="69.56" y2="70.98" y3="70.98"/>
+ <line x="72.97" y="70.98"/>
+ <curve x1="74.46" x2="75.25" x3="75.25" y1="70.98" y2="69.56" y3="68.1"/>
+ <line x="75.25" y="66.64"/>
+ <curve x1="75.25" x2="74.46" x3="72.97" y1="65.22" y2="64.3" y3="64.3"/>
+ <line x="70.28" y="64.3"/>
+ <line x="70.24" y="64.3"/>
+ <line x="70.24" y="33.07"/>
+ <curve x1="70.24" x2="69.41" x3="68.38" y1="32.21" y2="31.41" y3="31.41"/>
+ <line x="52.07" y="31.41"/>
+ <line x="31.58" y="31.41"/>
+ <curve x1="30.35" x2="28.57" x3="26.48" y1="29.75" y2="28.63" y3="28.2"/>
+ <curve x1="25.28" x2="24.19" x3="23.22" y1="28" y2="27.5" y3="26.77"/>
+ <curve x1="22.93" x2="22.6" x3="22.17" y1="26.54" y2="26.31" y3="26.08"/>
+ <curve x1="21.94" x2="21.77" x3="21.54" y1="25.84" y2="25.68" y3="25.52"/>
+ <curve x1="23.76" x2="25.48" x3="25.58" y1="24.19" y2="21.08" y3="17.44"/>
+ <curve x1="25.68" x2="25.85" x3="25.65" y1="16.38" y2="13.16" y3="11.9"/>
+ <curve x1="25.48" x2="25.12" x3="24.82" y1="10.71" y2="10.91" y3="10.71"/>
+ <curve x1="24.19" x2="23.72" x3="22.7" y1="10.45" y2="9.49" y3="9.22"/>
+ <curve x1="21.97" x2="21.15" x3="20.38" y1="9.03" y2="8.98" y3="9.03"/>
+ <close/>
+ <move x="32.48" y="33.07"/>
+ <line x="52.07" y="33.07"/>
+ <line x="68.38" y="33.07"/>
+ <line x="68.58" y="33.07"/>
+ <line x="68.58" y="64.3"/>
+ <line x="68.39" y="64.3"/>
+ <line x="28.31" y="64.3"/>
+ <line x="28.17" y="64.3"/>
+ <line x="28.17" y="51.14"/>
+ <line x="28.17" y="46.05"/>
+ <curve x1="31.61" x2="33.77" x3="33.77" y1="45.58" y2="44.99" y3="44.99"/>
+ <line x="33.11" y="35.75"/>
+ <curve x1="33.08" x2="32.81" x3="32.48" y1="34.72" y2="33.86" y3="33.07"/>
+ <close/>
+ <move x="60.37" y="66.01"/>
+ <line x="68.45" y="66.01"/>
+ <line x="70.28" y="66.01"/>
+ <line x="70.28" y="68.5"/>
+ <line x="60.37" y="68.5"/>
+ <line x="60.37" y="66.01"/>
+ <close/>
+ <move x="44.82" y="66.25"/>
+ <curve x1="45.45" x2="45.88" x3="45.88" y1="66.25" y2="66.81" y3="67.47"/>
+ <curve x1="45.88" x2="45.45" x3="44.82" y1="68.1" y2="68.5" y3="68.5"/>
+ <curve x1="44.19" x2="43.56" x3="43.56" y1="68.5" y2="68.1" y3="67.47"/>
+ <curve x1="43.56" x2="44.19" x3="44.82" y1="66.81" y2="66.25" y3="66.25"/>
+ <close/>
+ <move x="48.33" y="66.25"/>
+ <curve x1="49" x2="49.36" x3="49.36" y1="66.25" y2="66.81" y3="67.47"/>
+ <curve x1="49.36" x2="49" x3="48.33" y1="68.1" y2="68.5" y3="68.5"/>
+ <curve x1="47.7" x2="47.07" x3="47.07" y1="68.5" y2="68.1" y3="67.47"/>
+ <curve x1="47.07" x2="47.7" x3="48.33" y1="66.81" y2="66.25" y3="66.25"/>
+ <close/>
+ <move x="51.88" y="66.25"/>
+ <curve x1="52.47" x2="52.91" x3="52.91" y1="66.25" y2="66.81" y3="67.47"/>
+ <curve x1="52.91" x2="52.47" x3="51.88" y1="68.1" y2="68.5" y3="68.5"/>
+ <curve x1="51.25" x2="50.59" x3="50.59" y1="68.5" y2="68.1" y3="67.47"/>
+ <curve x1="50.59" x2="51.25" x3="51.88" y1="66.81" y2="66.25" y3="66.25"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="email security" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.15" y="15.47"/>
+ <curve x1="18.1" x2="16.47" x3="16.47" y1="15.47" y2="17.1" y3="19.02"/>
+ <line x="16.47" y="37.96"/>
+ <curve x1="16.47" x2="18.1" x3="20.15" y1="39.88" y2="41.37" y3="41.37"/>
+ <line x="25.72" y="41.37"/>
+ <curve x1="25.46" x2="25.29" x3="25.29" y1="40.77" y2="40.18" y3="39.45"/>
+ <line x="20.15" y="39.45"/>
+ <curve x1="19.42" x2="18.69" x3="18.69" y1="39.45" y2="38.85" y3="37.96"/>
+ <line x="18.69" y="19.02"/>
+ <line x="18.69" y="18.85"/>
+ <line x="35.94" y="27.86"/>
+ <curve x1="30.14" x2="25.89" x3="25.89" y1="29.5" y2="34.45" y3="40.32"/>
+ <curve x1="25.89" x2="32.22" x3="40.01" y1="47.37" y2="53.13" y3="53.13"/>
+ <curve x1="47.41" x2="53.48" x3="54.07" y1="53.13" y2="47.93" y3="41.37"/>
+ <line x="57.65" y="41.37"/>
+ <curve x1="59.57" x2="61.2" x3="61.2" y1="41.37" y2="39.88" y3="37.96"/>
+ <line x="61.2" y="19.02"/>
+ <curve x1="61.2" x2="59.57" x3="57.65" y1="17.1" y2="15.47" y3="15.47"/>
+ <line x="20.15" y="15.47"/>
+ <close/>
+ <move x="20.75" y="17.53"/>
+ <line x="57.65" y="17.53"/>
+ <curve x1="57.65" x2="57.82" x3="57.95" y1="17.53" y2="17.53" y3="17.69"/>
+ <line x="38.98" y="27.1"/>
+ <line x="20.75" y="17.53"/>
+ <close/>
+ <move x="59.11" y="19.28"/>
+ <line x="59.11" y="37.96"/>
+ <curve x1="59.11" x2="58.38" x3="57.65" y1="38.85" y2="39.45" y3="39.45"/>
+ <line x="54.08" y="39.45"/>
+ <curve x1="53.66" x2="48.98" x3="42.84" y1="33.54" y2="28.67" y3="27.5"/>
+ <line x="59.11" y="19.28"/>
+ <close/>
+ <move x="10.14" y="25.01"/>
+ <curve x1="9.92" x2="9.7" x3="9.55" y1="25.01" y2="25.12" y3="25.33"/>
+ <line x="9.41" y="25.47"/>
+ <curve x1="9.12" x2="9.12" x3="9.41" y1="25.76" y2="26.36" y3="26.66"/>
+ <line x="11.34" y="28.71"/>
+ <line x="4.7" y="28.71"/>
+ <line x="4.7" y="30.63"/>
+ <line x="11.34" y="30.63"/>
+ <line x="9.41" y="32.68"/>
+ <curve x1="9.12" x2="9.12" x3="9.41" y1="32.98" y2="33.58" y3="33.84"/>
+ <line x="9.55" y="34.01"/>
+ <curve x1="9.85" x2="10.44" x3="10.74" y1="34.31" y2="34.31" y3="34.01"/>
+ <line x="13.82" y="30.46"/>
+ <curve x1="13.95" x2="13.96" x3="13.96" y1="30.46" y2="30.33" y3="30.33"/>
+ <curve x1="14.12" x2="14.12" x3="14.12" y1="30.17" y2="30.03" y3="29.73"/>
+ <line x="14.12" y="29.6"/>
+ <curve x1="14.12" x2="14.12" x3="13.96" y1="29.31" y2="29.01" y3="28.84"/>
+ <line x="13.82" y="28.84"/>
+ <line x="10.74" y="25.33"/>
+ <curve x1="10.59" x2="10.37" x3="10.14" y1="25.12" y2="25.01" y3="25.01"/>
+ <close/>
+ <move x="69.95" y="25.01"/>
+ <curve x1="69.74" x2="69.55" x3="69.4" y1="25.01" y2="25.12" y3="25.33"/>
+ <line x="66.32" y="28.84"/>
+ <line x="66.18" y="28.84"/>
+ <curve x1="66.02" x2="65.89" x3="65.89" y1="29.01" y2="29.31" y3="29.6"/>
+ <line x="65.89" y="29.73"/>
+ <curve x1="65.89" x2="66.02" x3="66.18" y1="30.03" y2="30.17" y3="30.33"/>
+ <curve x1="66.18" x2="66.19" x3="66.32" y1="30.33" y2="30.46" y3="30.46"/>
+ <line x="69.4" y="34.01"/>
+ <curve x1="69.7" x2="70.17" x3="70.6" y1="34.31" y2="34.31" y3="34.01"/>
+ <line x="70.6" y="33.84"/>
+ <curve x1="70.9" x2="70.9" x3="70.6" y1="33.58" y2="32.98" y3="32.68"/>
+ <line x="68.84" y="30.63"/>
+ <line x="75.3" y="30.63"/>
+ <line x="75.3" y="28.71"/>
+ <line x="68.84" y="28.71"/>
+ <line x="70.6" y="26.66"/>
+ <curve x1="70.9" x2="70.9" x3="70.6" y1="26.36" y2="25.76" y3="25.47"/>
+ <line x="70.6" y="25.33"/>
+ <curve x1="70.38" x2="70.16" x3="69.95" y1="25.12" y2="25.01" y3="25.01"/>
+ <close/>
+ <move x="40.01" y="30.48"/>
+ <curve x1="45.88" x2="50.75" x3="50.75" y1="30.48" y2="34.89" y3="40.32"/>
+ <curve x1="50.75" x2="45.88" x3="40.01" y1="45.62" y2="50.02" y3="50.02"/>
+ <curve x1="34.11" x2="29.4" x3="29.4" y1="50.02" y2="45.62" y3="40.32"/>
+ <curve x1="29.4" x2="34.11" x3="40.01" y1="34.89" y2="30.48" y3="30.48"/>
+ <close/>
+ <move x="24.49" y="51.12"/>
+ <curve x1="23.61" x2="22.72" x3="22.06" y1="51.12" y2="51.5" y3="52.24"/>
+ <line x="15.59" y="58.7"/>
+ <curve x1="14.14" x2="14.14" x3="15.59" y1="60.02" y2="62.24" y3="63.57"/>
+ <curve x1="16.92" x2="19.11" x3="20.43" y1="64.89" y2="64.89" y3="63.57"/>
+ <line x="26.93" y="57.07"/>
+ <curve x1="28.22" x2="28.22" x3="26.93" y1="55.75" y2="53.56" y3="52.24"/>
+ <curve x1="26.27" x2="25.38" x3="24.49" y1="51.5" y2="51.12" y3="51.12"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="fabric switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.78" y="38.82"/>
+ <curve x1="66.62" x2="66.62" x3="66.49" y1="38.82" y2="38.68" y3="38.52"/>
+ <curve x1="60.15" x2="60.15" x3="60.15" y1="32.19" y2="32.19" y3="32.19"/>
+ <curve x1="59.56" x2="58.53" x3="57.93" y1="31.6" y2="31.6" y3="32.19"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="32.49" y2="32.49" y3="32.49"/>
+ <curve x1="57.07" x2="57.07" x3="57.67" y1="33.09" y2="34.11" y3="34.71"/>
+ <curve x1="61.48" x2="61.48" x3="61.48" y1="38.39" y2="38.39" y3="38.39"/>
+ <curve x1="51.63" x2="51.63" x3="51.63" y1="38.39" y2="38.39" y3="38.39"/>
+ <curve x1="53.82" x2="55.74" x3="57.2" y1="35.87" y2="33.39" y3="31.04"/>
+ <curve x1="60.45" x2="61.18" x3="59.42" y1="26.04" y2="22.66" y3="21.04"/>
+ <curve x1="59.13" x2="58.4" x3="57.2" y1="20.57" y2="20.14" y3="20.14"/>
+ <curve x1="53.69" x2="47.79" x3="41.92" y1="20.14" y2="24.11" y3="29.11"/>
+ <curve x1="41.92" x2="41.92" x3="41.92" y1="18.82" y2="18.82" y3="18.82"/>
+ <curve x1="45.43" x2="45.43" x3="45.43" y1="22.49" y2="22.49" y3="22.49"/>
+ <curve x1="46.2" x2="47.06" x3="47.65" y1="23.09" y2="23.09" y3="22.49"/>
+ <curve x1="47.95" x2="47.95" x3="47.95" y1="22.19" y2="22.19" y3="22.19"/>
+ <curve x1="48.55" x2="48.55" x3="47.95" y1="21.6" y2="20.57" y3="20.01"/>
+ <curve x1="41.62" x2="41.62" x3="41.62" y1="13.68" y2="13.68" y3="13.68"/>
+ <curve x1="41.49" x2="41.49" x3="41.49" y1="13.68" y2="13.68" y3="13.52"/>
+ <curve x1="41.19" x2="40.73" x3="40.29" y1="13.22" y2="12.96" y3="12.96"/>
+ <curve x1="40" x2="40" x3="40" y1="12.96" y2="12.96" y3="12.96"/>
+ <curve x1="39.56" x2="39.13" x3="38.84" y1="12.96" y2="13.22" y3="13.52"/>
+ <curve x1="38.84" x2="38.67" x3="38.54" y1="13.52" y2="13.52" y3="13.68"/>
+ <curve x1="32.2" x2="32.2" x3="32.2" y1="20.01" y2="20.01" y3="20.01"/>
+ <curve x1="31.61" x2="31.61" x3="32.2" y1="20.57" y2="21.6" y3="22.19"/>
+ <curve x1="32.5" x2="32.5" x3="32.5" y1="22.49" y2="22.49" y3="22.49"/>
+ <curve x1="33.1" x2="34.13" x3="34.72" y1="23.09" y2="23.09" y3="22.49"/>
+ <curve x1="38.37" x2="38.37" x3="38.37" y1="18.82" y2="18.82" y3="18.82"/>
+ <curve x1="38.37" x2="38.37" x3="38.37" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="32.5" x2="26.34" x3="22.95" y1="24.11" y2="20.14" y3="20.14"/>
+ <curve x1="21.76" x2="21.03" x3="20.6" y1="20.14" y2="20.57" y3="21.04"/>
+ <curve x1="18.98" x2="19.71" x3="22.95" y1="22.66" y2="26.04" y3="31.04"/>
+ <curve x1="24.41" x2="26.17" x3="28.39" y1="33.39" y2="35.87" y3="38.39"/>
+ <curve x1="18.81" x2="18.81" x3="18.81" y1="38.39" y2="38.39" y3="38.39"/>
+ <curve x1="22.49" x2="22.49" x3="22.49" y1="34.71" y2="34.71" y3="34.71"/>
+ <curve x1="23.09" x2="23.09" x3="22.49" y1="34.11" y2="33.09" y3="32.49"/>
+ <curve x1="22.19" x2="22.19" x3="22.19" y1="32.19" y2="32.19" y3="32.19"/>
+ <curve x1="21.63" x2="20.73" x3="20" y1="31.6" y2="31.6" y3="32.19"/>
+ <curve x1="13.67" x2="13.67" x3="13.67" y1="38.52" y2="38.52" y3="38.52"/>
+ <curve x1="13.54" x2="13.54" x3="13.54" y1="38.68" y2="38.82" y3="38.82"/>
+ <curve x1="13.24" x2="12.94" x3="12.94" y1="39.11" y2="39.55" y3="40.01"/>
+ <curve x1="12.94" x2="12.94" x3="12.94" y1="40.27" y2="40.27" y3="40.27"/>
+ <curve x1="12.94" x2="13.24" x3="13.54" y1="40.74" y2="41.17" y3="41.47"/>
+ <curve x1="13.67" x2="13.67" x3="13.67" y1="41.47" y2="41.47" y3="41.6"/>
+ <curve x1="20" x2="20" x3="20" y1="47.92" y2="47.92" y3="47.92"/>
+ <curve x1="20.73" x2="21.63" x3="22.19" y1="48.52" y2="48.52" y3="47.92"/>
+ <curve x1="22.49" x2="22.49" x3="22.49" y1="47.62" y2="47.62" y3="47.62"/>
+ <curve x1="23.09" x2="23.09" x3="22.49" y1="47.06" y2="46.17" y3="45.44"/>
+ <curve x1="18.81" x2="18.81" x3="18.81" y1="41.9" y2="41.9" y3="41.9"/>
+ <curve x1="28.99" x2="28.99" x3="28.99" y1="41.9" y2="41.9" y3="41.9"/>
+ <curve x1="26.63" x2="24.55" x3="22.95" y1="44.71" y2="47.36" y3="49.84"/>
+ <curve x1="19.71" x2="18.98" x3="20.6" y1="54.98" y2="58.22" y3="59.98"/>
+ <curve x1="21.03" x2="21.76" x3="22.95" y1="60.27" y2="60.74" y3="60.74"/>
+ <curve x1="22.95" x2="22.95" x3="22.95" y1="60.74" y2="60.74" y3="60.74"/>
+ <curve x1="26.34" x2="32.5" x3="38.37" y1="60.74" y2="56.76" y3="51.76"/>
+ <curve x1="38.37" x2="38.37" x3="38.37" y1="61.47" y2="61.47" y3="61.47"/>
+ <curve x1="34.72" x2="34.72" x3="34.72" y1="57.62" y2="57.62" y3="57.62"/>
+ <curve x1="34.13" x2="33.1" x3="32.5" y1="57.06" y2="57.06" y3="57.62"/>
+ <curve x1="32.2" x2="32.2" x3="32.2" y1="57.92" y2="57.92" y3="57.92"/>
+ <curve x1="31.61" x2="31.61" x3="32.2" y1="58.52" y2="59.55" y3="60.14"/>
+ <curve x1="38.54" x2="38.54" x3="38.54" y1="66.47" y2="66.47" y3="66.47"/>
+ <curve x1="38.67" x2="38.84" x3="38.84" y1="66.6" y2="66.6" y3="66.76"/>
+ <curve x1="39.13" x2="39.56" x3="40" y1="67.06" y2="67.06" y3="67.06"/>
+ <curve x1="40.29" x2="40.29" x3="40.29" y1="67.06" y2="67.06" y3="67.06"/>
+ <curve x1="40.73" x2="41.19" x3="41.49" y1="67.06" y2="66.9" y3="66.47"/>
+ <curve x1="41.49" x2="41.49" x3="41.62" y1="66.47" y2="66.47" y3="66.47"/>
+ <curve x1="47.95" x2="47.95" x3="47.95" y1="60.14" y2="60.14" y3="60.14"/>
+ <curve x1="48.55" x2="48.55" x3="47.95" y1="59.55" y2="58.52" y3="57.92"/>
+ <curve x1="47.65" x2="47.65" x3="47.65" y1="57.62" y2="57.62" y3="57.62"/>
+ <curve x1="47.06" x2="46.2" x3="45.43" y1="57.06" y2="57.06" y3="57.62"/>
+ <curve x1="41.92" x2="41.92" x3="41.92" y1="61.3" y2="61.3" y3="61.3"/>
+ <curve x1="41.92" x2="41.92" x3="41.92" y1="51.9" y2="51.9" y3="51.9"/>
+ <curve x1="47.79" x2="53.69" x3="57.2" y1="56.9" y2="60.74" y3="60.74"/>
+ <curve x1="58.4" x2="59.13" x3="59.42" y1="60.74" y2="60.27" y3="59.98"/>
+ <curve x1="61.18" x2="60.45" x3="57.2" y1="58.22" y2="54.98" y3="49.84"/>
+ <curve x1="55.58" x2="53.52" x3="51.04" y1="47.36" y2="44.71" y3="41.9"/>
+ <curve x1="61.31" x2="61.31" x3="61.31" y1="41.9" y2="41.9" y3="41.9"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="45.44" y2="45.44" y3="45.44"/>
+ <curve x1="57.07" x2="57.07" x3="57.67" y1="46.17" y2="47.06" y3="47.62"/>
+ <curve x1="57.93" x2="57.93" x3="57.93" y1="47.92" y2="47.92" y3="47.92"/>
+ <curve x1="58.53" x2="59.56" x3="60.15" y1="48.52" y2="48.52" y3="47.92"/>
+ <curve x1="66.49" x2="66.49" x3="66.49" y1="41.6" y2="41.6" y3="41.6"/>
+ <curve x1="66.49" x2="66.49" x3="66.49" y1="41.47" y2="41.47" y3="41.47"/>
+ <curve x1="66.92" x2="67.05" x3="67.05" y1="41.17" y2="40.74" y3="40.27"/>
+ <curve x1="67.05" x2="67.05" x3="67.05" y1="40.01" y2="40.01" y3="40.01"/>
+ <curve x1="67.05" x2="67.05" x3="66.78" y1="39.55" y2="39.11" y3="38.82"/>
+ <close/>
+ <move x="22.95" y="57.92"/>
+ <curve x1="22.79" x2="22.66" x3="22.66" y1="57.92" y2="57.92" y3="57.92"/>
+ <curve x1="22.19" x2="24.71" x3="31.04" y1="56.76" y2="51.3" y3="43.95"/>
+ <curve x1="31.91" x2="33.96" x3="36.48" y1="46.47" y2="48.52" y3="49.55"/>
+ <curve x1="30.15" x2="25.01" x3="22.95" y1="54.98" y2="57.92" y3="57.92"/>
+ <close/>
+ <move x="31.04" y="36.9"/>
+ <curve x1="24.71" x2="22.19" x3="22.66" y1="29.55" y2="24.25" y3="23.09"/>
+ <curve x1="22.66" x2="22.79" x3="22.95" y1="23.09" y2="23.09" y3="23.09"/>
+ <curve x1="25.01" x2="30.15" x3="36.48" y1="23.09" y2="26.04" y3="31.47"/>
+ <curve x1="33.96" x2="31.91" x3="31.04" y1="32.49" y2="34.41" y3="36.9"/>
+ <close/>
+ <move x="57.2" y="23.09"/>
+ <curve x1="57.37" x2="57.37" x3="57.5" y1="23.09" y2="23.09" y3="23.09"/>
+ <curve x1="57.93" x2="55.31" x3="49.11" y1="24.25" y2="29.55" y3="36.9"/>
+ <curve x1="48.09" x2="46.03" x3="43.54" y1="34.41" y2="32.49" y3="31.47"/>
+ <curve x1="50.01" x2="55.15" x3="57.2" y1="26.04" y2="23.09" y3="23.09"/>
+ <close/>
+ <move x="57.5" y="57.92"/>
+ <curve x1="57.37" x2="57.37" x3="57.2" y1="57.92" y2="57.92" y3="57.92"/>
+ <curve x1="55.15" x2="50.01" x3="43.54" y1="57.92" y2="54.98" y3="49.55"/>
+ <curve x1="46.03" x2="48.09" x3="49.11" y1="48.52" y2="46.47" y3="43.95"/>
+ <curve x1="55.31" x2="57.93" x3="57.5" y1="51.3" y2="56.76" y3="57.92"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="firepower appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="22.34" y="5.87"/>
+ <line x="22.34" y="8.99"/>
+ <line x="11.77" y="8.99"/>
+ <line x="11.77" y="14.71"/>
+ <line x="22.34" y="14.71"/>
+ <line x="22.34" y="17.66"/>
+ <line x="28.24" y="11.9"/>
+ <line x="22.34" y="5.87"/>
+ <close/>
+ <move x="41.78" y="12.21"/>
+ <curve x1="41.61" x2="41.61" x3="41.61" y1="12.21" y2="12.38" y3="12.38"/>
+ <curve x1="41.48" x2="40.75" x3="38.39" y1="12.67" y2="14" y3="14.72"/>
+ <curve x1="35.57" x2="36.17" x3="36.47" y1="15.62" y2="18.54" y3="19.3"/>
+ <line x="36.61" y="19.3"/>
+ <line x="36.77" y="19.3"/>
+ <curve x1="36.9" x2="37.63" x3="39.98" y1="19" y2="17.81" y3="16.91"/>
+ <curve x1="42.64" x2="42.21" x3="41.91" y1="16.05" y2="13.1" y3="12.38"/>
+ <line x="41.78" y="12.21"/>
+ <close/>
+ <move x="28.24" y="17.63"/>
+ <line x="28.24" y="29.42"/>
+ <line x="30" y="29.42"/>
+ <line x="30" y="24.55"/>
+ <line x="34.87" y="24.55"/>
+ <line x="34.87" y="23.1"/>
+ <line x="30" y="23.1"/>
+ <line x="30" y="19.12"/>
+ <line x="35.3" y="19.12"/>
+ <line x="35.3" y="17.63"/>
+ <line x="28.24" y="17.63"/>
+ <close/>
+ <move x="36.07" y="19.99"/>
+ <line x="36.07" y="29.42"/>
+ <line x="38.43" y="29.42"/>
+ <line x="38.43" y="19.99"/>
+ <line x="36.07" y="19.99"/>
+ <close/>
+ <move x="43.82" y="19.99"/>
+ <curve x1="42.79" x2="42.06" x3="41.63" y1="19.99" y2="20.58" y3="21.61"/>
+ <line x="41.46" y="20.28"/>
+ <line x="40" y="20.28"/>
+ <line x="40" y="29.42"/>
+ <line x="41.76" y="29.42"/>
+ <line x="41.76" y="24.86"/>
+ <curve x1="41.76" x2="42.66" x3="43.82" y1="22.64" y2="21.77" y3="21.77"/>
+ <curve x1="44.11" x2="44.41" x3="44.71" y1="21.77" y2="21.77" y3="21.91"/>
+ <line x="44.71" y="20.15"/>
+ <curve x1="44.58" x2="44.28" x3="43.82" y1="20.15" y2="19.99" y3="19.99"/>
+ <close/>
+ <move x="48.39" y="19.99"/>
+ <curve x1="46.33" x2="44.71" x3="44.71" y1="19.99" y2="21.61" y3="24.69"/>
+ <curve x1="44.71" x2="46.33" x3="48.39" y1="27.93" y2="29.42" y3="29.42"/>
+ <curve x1="50.15" x2="51.34" x3="51.77" y1="29.42" y2="28.23" y3="26.61"/>
+ <line x="50.31" y="26.61"/>
+ <curve x1="50.01" x2="49.42" x3="48.39" y1="27.5" y2="28.1" y3="28.1"/>
+ <curve x1="47.2" x2="46.33" x3="46.17" y1="28.1" y2="27.2" y3="25.15"/>
+ <line x="51.77" y="25.15"/>
+ <curve x1="51.77" x2="50.45" x3="48.39" y1="21.47" y2="19.99" y3="19.99"/>
+ <close/>
+ <move x="48.39" y="21.31"/>
+ <curve x1="49.55" x2="50.31" x3="50.45" y1="21.31" y2="22.2" y3="23.83"/>
+ <line x="46.17" y="23.83"/>
+ <curve x1="46.47" x2="47.2" x3="48.39" y1="22.2" y2="21.31" y3="21.31"/>
+ <close/>
+ <move x="57.8" y="27.04"/>
+ <line x="51.77" y="32.94"/>
+ <line x="57.8" y="38.83"/>
+ <line x="57.8" y="36.02"/>
+ <line x="68.25" y="36.02"/>
+ <line x="68.25" y="29.99"/>
+ <line x="57.8" y="29.99"/>
+ <line x="57.8" y="27.04"/>
+ <close/>
+ <move x="11.77" y="43.52"/>
+ <line x="11.77" y="43.82"/>
+ <line x="11.77" y="44.25"/>
+ <line x="20.15" y="44.25"/>
+ <line x="20.15" y="51.17"/>
+ <line x="11.77" y="51.17"/>
+ <line x="11.77" y="51.47"/>
+ <line x="11.77" y="51.9"/>
+ <line x="11.77" y="52.03"/>
+ <line x="29.87" y="52.03"/>
+ <line x="29.87" y="58.82"/>
+ <line x="11.77" y="58.82"/>
+ <line x="11.77" y="58.96"/>
+ <line x="11.77" y="59.39"/>
+ <line x="11.77" y="59.68"/>
+ <line x="20.15" y="59.68"/>
+ <line x="20.15" y="66.6"/>
+ <line x="11.77" y="66.6"/>
+ <line x="11.77" y="67.03"/>
+ <line x="11.77" y="67.2"/>
+ <line x="29.87" y="67.2"/>
+ <line x="29.87" y="74.12"/>
+ <line x="30.43" y="74.12"/>
+ <line x="30.43" y="67.2"/>
+ <line x="49.13" y="67.2"/>
+ <line x="49.13" y="74.12"/>
+ <line x="49.73" y="74.12"/>
+ <line x="49.73" y="67.2"/>
+ <line x="68.23" y="67.2"/>
+ <line x="68.23" y="67.03"/>
+ <line x="68.23" y="66.6"/>
+ <line x="59.41" y="66.6"/>
+ <line x="59.41" y="59.68"/>
+ <line x="68.23" y="59.68"/>
+ <line x="68.23" y="59.39"/>
+ <line x="68.23" y="58.96"/>
+ <line x="68.23" y="58.82"/>
+ <line x="49.73" y="58.82"/>
+ <line x="49.73" y="52.03"/>
+ <line x="68.23" y="52.03"/>
+ <line x="68.23" y="51.9"/>
+ <line x="68.23" y="51.47"/>
+ <line x="68.23" y="51.17"/>
+ <line x="59.41" y="51.17"/>
+ <line x="59.41" y="44.25"/>
+ <line x="68.23" y="44.25"/>
+ <line x="68.23" y="43.82"/>
+ <line x="68.23" y="43.52"/>
+ <line x="11.77" y="43.52"/>
+ <close/>
+ <move x="20.75" y="44.25"/>
+ <line x="39.28" y="44.25"/>
+ <line x="39.28" y="51.17"/>
+ <line x="20.75" y="51.17"/>
+ <line x="20.75" y="44.25"/>
+ <close/>
+ <move x="40.14" y="44.25"/>
+ <line x="58.84" y="44.25"/>
+ <line x="58.84" y="51.17"/>
+ <line x="40.14" y="51.17"/>
+ <line x="40.14" y="44.25"/>
+ <close/>
+ <move x="30.43" y="52.03"/>
+ <line x="49.13" y="52.03"/>
+ <line x="49.13" y="58.82"/>
+ <line x="30.43" y="58.82"/>
+ <line x="30.43" y="52.03"/>
+ <close/>
+ <move x="20.75" y="59.68"/>
+ <line x="39.28" y="59.68"/>
+ <line x="39.28" y="66.6"/>
+ <line x="20.75" y="66.6"/>
+ <line x="20.75" y="59.68"/>
+ <close/>
+ <move x="40.14" y="59.68"/>
+ <line x="58.84" y="59.68"/>
+ <line x="58.84" y="66.6"/>
+ <line x="40.14" y="66.6"/>
+ <line x="40.14" y="59.68"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="firewall" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="12.94" y="23.51"/>
+ <line x="12.94" y="25.9"/>
+ <line x="29.42" y="25.9"/>
+ <line x="29.42" y="23.51"/>
+ <line x="12.94" y="23.51"/>
+ <close/>
+ <move x="31.77" y="23.51"/>
+ <line x="31.77" y="25.9"/>
+ <line x="48.25" y="25.9"/>
+ <line x="48.25" y="23.51"/>
+ <line x="31.77" y="23.51"/>
+ <close/>
+ <move x="50.59" y="23.51"/>
+ <line x="50.59" y="25.9"/>
+ <line x="67.07" y="25.9"/>
+ <line x="67.07" y="23.51"/>
+ <line x="50.59" y="23.51"/>
+ <close/>
+ <move x="12.94" y="28.22"/>
+ <line x="12.94" y="32.95"/>
+ <line x="20" y="32.95"/>
+ <line x="20" y="28.22"/>
+ <line x="12.94" y="28.22"/>
+ <close/>
+ <move x="22.35" y="28.22"/>
+ <line x="22.35" y="32.95"/>
+ <line x="38.83" y="32.95"/>
+ <line x="38.83" y="28.22"/>
+ <line x="22.35" y="28.22"/>
+ <close/>
+ <move x="41.18" y="28.22"/>
+ <line x="41.18" y="32.95"/>
+ <line x="57.66" y="32.95"/>
+ <line x="57.66" y="28.22"/>
+ <line x="41.18" y="28.22"/>
+ <close/>
+ <move x="60" y="28.22"/>
+ <line x="60" y="32.95"/>
+ <line x="67.07" y="32.95"/>
+ <line x="67.07" y="28.22"/>
+ <line x="60" y="28.22"/>
+ <close/>
+ <move x="12.94" y="35.27"/>
+ <line x="12.94" y="37.66"/>
+ <line x="29.42" y="37.66"/>
+ <line x="29.42" y="35.27"/>
+ <line x="12.94" y="35.27"/>
+ <close/>
+ <move x="31.77" y="35.27"/>
+ <line x="31.77" y="37.66"/>
+ <line x="48.25" y="37.66"/>
+ <line x="48.25" y="35.27"/>
+ <line x="31.77" y="35.27"/>
+ <close/>
+ <move x="50.59" y="35.27"/>
+ <line x="50.59" y="37.66"/>
+ <line x="67.07" y="37.66"/>
+ <line x="67.07" y="35.27"/>
+ <line x="50.59" y="35.27"/>
+ <close/>
+ <move x="12.94" y="39.98"/>
+ <line x="12.94" y="44.71"/>
+ <line x="20" y="44.71"/>
+ <line x="20" y="39.98"/>
+ <line x="12.94" y="39.98"/>
+ <close/>
+ <move x="22.35" y="39.98"/>
+ <line x="22.35" y="44.71"/>
+ <line x="38.83" y="44.71"/>
+ <line x="38.83" y="39.98"/>
+ <line x="22.35" y="39.98"/>
+ <close/>
+ <move x="41.18" y="39.98"/>
+ <line x="41.18" y="44.71"/>
+ <line x="57.66" y="44.71"/>
+ <line x="57.66" y="39.98"/>
+ <line x="41.18" y="39.98"/>
+ <close/>
+ <move x="60" y="39.98"/>
+ <line x="60" y="44.71"/>
+ <line x="67.07" y="44.71"/>
+ <line x="67.07" y="39.98"/>
+ <line x="60" y="39.98"/>
+ <close/>
+ <move x="12.94" y="47.04"/>
+ <line x="12.94" y="49.42"/>
+ <line x="29.42" y="49.42"/>
+ <line x="29.42" y="47.04"/>
+ <line x="12.94" y="47.04"/>
+ <close/>
+ <move x="31.77" y="47.04"/>
+ <line x="31.77" y="49.42"/>
+ <line x="48.25" y="49.42"/>
+ <line x="48.25" y="47.04"/>
+ <line x="31.77" y="47.04"/>
+ <close/>
+ <move x="50.59" y="47.04"/>
+ <line x="50.59" y="49.42"/>
+ <line x="67.07" y="49.42"/>
+ <line x="67.07" y="47.04"/>
+ <line x="50.59" y="47.04"/>
+ <close/>
+ <move x="12.94" y="51.74"/>
+ <line x="12.94" y="56.48"/>
+ <line x="20" y="56.48"/>
+ <line x="20" y="51.74"/>
+ <line x="12.94" y="51.74"/>
+ <close/>
+ <move x="22.35" y="51.74"/>
+ <line x="22.35" y="56.48"/>
+ <line x="38.83" y="56.48"/>
+ <line x="38.83" y="51.74"/>
+ <line x="22.35" y="51.74"/>
+ <close/>
+ <move x="41.18" y="51.74"/>
+ <line x="41.18" y="56.48"/>
+ <line x="57.66" y="56.48"/>
+ <line x="57.66" y="51.74"/>
+ <line x="41.18" y="51.74"/>
+ <close/>
+ <move x="60" y="51.74"/>
+ <line x="60" y="56.48"/>
+ <line x="67.07" y="56.48"/>
+ <line x="67.07" y="51.74"/>
+ <line x="60" y="51.74"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="generic appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="intrusion detection" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.01" y="17.65"/>
+ <curve x1="31.26" x2="23.62" x3="19.56" y1="17.65" y2="22.22" y3="28.97"/>
+ <line x="8.68" y="28.97"/>
+ <curve x1="7.79" x2="7.06" x3="7.06" y1="28.97" y2="29.69" y3="30.42"/>
+ <line x="7.06" y="30.72"/>
+ <curve x1="7.06" x2="7.79" x3="8.68" y1="31.62" y2="32.35" y3="32.35"/>
+ <line x="17.92" y="32.35"/>
+ <curve x1="17" x2="16.47" x3="16.47" y1="34.74" y2="37.31" y3="40"/>
+ <curve x1="16.47" x2="17.4" x3="19.02" y1="43.67" y2="47.11" y3="50.14"/>
+ <line x="10.14" y="50.14"/>
+ <line x="13.69" y="46.6"/>
+ <curve x1="14.26" x2="14.26" x3="13.69" y1="46.03" y2="45.01" y3="44.41"/>
+ <line x="13.39" y="44.11"/>
+ <curve x1="12.8" x2="11.9" x3="11.34" y1="43.52" y2="43.52" y3="44.11"/>
+ <line x="5.3" y="50.27"/>
+ <curve x1="5.3" x2="5.3" x3="5.13" y1="50.44" y2="50.57" y3="50.73"/>
+ <curve x1="4.84" x2="4.7" x3="4.7" y1="50.87" y2="51.3" y3="51.76"/>
+ <line x="4.7" y="52.06"/>
+ <curve x1="4.7" x2="5" x3="5.3" y1="52.49" y2="52.92" y3="53.22"/>
+ <line x="11.34" y="59.41"/>
+ <curve x1="11.9" x2="12.8" x3="13.39" y1="59.97" y2="59.97" y3="59.41"/>
+ <line x="13.69" y="59.25"/>
+ <curve x1="14.26" x2="14.26" x3="13.69" y1="58.65" y2="57.63" y3="57.06"/>
+ <line x="10.14" y="53.52"/>
+ <line x="21.26" y="53.52"/>
+ <curve x1="25.56" x2="32.36" x3="40.01" y1="58.9" y2="62.36" y3="62.36"/>
+ <curve x1="47.74" x2="54.52" x3="58.8" y1="62.36" y2="58.9" y3="53.52"/>
+ <line x="71.48" y="53.52"/>
+ <curve x1="72.37" x2="72.93" x3="72.93" y1="53.52" y2="52.79" y3="52.06"/>
+ <line x="72.93" y="51.76"/>
+ <curve x1="72.93" x2="72.37" x3="71.48" y1="50.87" y2="50.14" y3="50.14"/>
+ <line x="61.02" y="50.14"/>
+ <curve x1="62.63" x2="63.55" x3="63.55" y1="47.11" y2="43.67" y3="40"/>
+ <curve x1="63.55" x2="63.03" x3="62.11" y1="37.31" y2="34.74" y3="32.35"/>
+ <line x="70.02" y="32.35"/>
+ <line x="66.47" y="35.89"/>
+ <curve x1="65.87" x2="65.87" x3="66.47" y1="36.45" y2="37.48" y3="38.07"/>
+ <line x="66.77" y="38.24"/>
+ <curve x1="67.37" x2="68.23" x3="68.83" y1="38.8" y2="38.8" y3="38.24"/>
+ <line x="74.73" y="32.05"/>
+ <curve x1="74.86" x2="74.86" x3="74.99" y1="32.05" y2="31.91" y3="31.75"/>
+ <curve x1="75.16" x2="75.29" x3="75.29" y1="31.61" y2="31.19" y3="30.72"/>
+ <line x="75.29" y="30.42"/>
+ <curve x1="75.29" x2="75.15" x3="74.86" y1="29.99" y2="29.56" y3="29.26"/>
+ <curve x1="74.72" x2="74.73" x3="74.73" y1="29.26" y2="29.26" y3="29.1"/>
+ <line x="68.83" y="23.08"/>
+ <curve x1="68.23" x2="67.37" x3="66.77" y1="22.35" y2="22.35" y3="23.08"/>
+ <line x="66.47" y="23.24"/>
+ <curve x1="65.87" x2="65.87" x3="66.47" y1="23.84" y2="24.86" y3="25.42"/>
+ <line x="69.85" y="28.97"/>
+ <line x="60.49" y="28.97"/>
+ <curve x1="56.46" x2="48.84" x3="40.01" y1="22.22" y2="17.65" y3="17.65"/>
+ <close/>
+ <move x="40.01" y="21.63"/>
+ <curve x1="46.44" x2="52.09" x3="55.65" y1="21.63" y2="24.52" y3="28.97"/>
+ <line x="24.5" y="28.97"/>
+ <curve x1="28.04" x2="33.65" x3="40.01" y1="24.52" y2="21.63" y3="21.63"/>
+ <close/>
+ <move x="22.36" y="32.35"/>
+ <line x="57.79" y="32.35"/>
+ <curve x1="58.93" x2="59.57" x3="59.57" y1="34.68" y2="37.27" y3="40"/>
+ <curve x1="59.57" x2="58.4" x3="56.4" y1="43.76" y2="47.23" y3="50.14"/>
+ <line x="23.75" y="50.14"/>
+ <curve x1="21.75" x2="20.58" x3="20.58" y1="47.23" y2="43.76" y3="40"/>
+ <curve x1="20.58" x2="21.23" x3="22.36" y1="37.27" y2="34.68" y3="32.35"/>
+ <close/>
+ <move x="26.74" y="53.52"/>
+ <line x="53.39" y="53.52"/>
+ <curve x1="49.9" x2="45.21" x3="40.01" y1="56.61" y2="58.52" y3="58.52"/>
+ <curve x1="34.87" x2="30.21" x3="26.74" y1="58.52" y2="56.61" y3="53.52"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="l3 switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.9" y="6.24"/>
+ <curve x1="39.5" x2="39.14" x3="38.84" y1="6.24" y2="6.4" y3="6.63"/>
+ <curve x1="38.74" x2="38.67" x3="38.57" y1="6.7" y2="6.8" y3="6.87"/>
+ <line x="32.61" y="12.89"/>
+ <curve x1="32.01" x2="32.01" x3="32.61" y1="13.46" y2="14.38" y3="14.95"/>
+ <line x="32.77" y="15.18"/>
+ <curve x1="33.4" x2="34.33" x3="34.9" y1="15.78" y2="15.78" y3="15.18"/>
+ <line x="38.41" y="11.7"/>
+ <line x="38.41" y="22.46"/>
+ <curve x1="34.76" x2="31.41" x3="28.73" y1="22.8" y2="24.25" y3="26.44"/>
+ <line x="21.1" y="18.82"/>
+ <line x="26.07" y="18.82"/>
+ <curve x1="26.9" x2="27.57" x3="27.57" y1="18.82" y2="18.16" y3="17.36"/>
+ <line x="27.57" y="17.03"/>
+ <curve x1="27.57" x2="26.9" x3="26.07" y1="16.2" y2="15.54" y3="15.54"/>
+ <line x="17.62" y="15.54"/>
+ <curve x1="17.52" x2="17.35" x3="17.22" y1="15.54" y2="15.61" y3="15.61"/>
+ <curve x1="16.89" x2="16.52" x3="16.23" y1="15.61" y2="15.77" y3="16.04"/>
+ <line x="16.03" y="16.27"/>
+ <curve x1="15.7" x2="15.56" x3="15.63" y1="16.6" y2="17.03" y3="17.43"/>
+ <curve x1="15.56" x2="15.56" x3="15.56" y1="17.5" y2="17.53" y3="17.6"/>
+ <line x="15.56" y="26.07"/>
+ <curve x1="15.56" x2="16.23" x3="17.05" y1="26.9" y2="27.56" y3="27.56"/>
+ <line x="17.39" y="27.56"/>
+ <curve x1="18.18" x2="18.85" x3="18.85" y1="27.56" y2="26.9" y3="26.07"/>
+ <line x="18.85" y="21.2"/>
+ <line x="26.44" y="28.76"/>
+ <curve x1="24.25" x2="22.79" x3="22.46" y1="31.44" y2="34.75" y3="38.39"/>
+ <line x="11.69" y="38.39"/>
+ <line x="15.2" y="34.88"/>
+ <curve x1="15.8" x2="15.8" x3="15.2" y1="34.32" y2="33.39" y3="32.76"/>
+ <line x="15.03" y="32.6"/>
+ <curve x1="14.4" x2="13.44" x3="12.88" y1="32" y2="32" y3="32.6"/>
+ <line x="6.88" y="38.56"/>
+ <curve x1="6.81" x2="6.71" x3="6.65" y1="38.62" y2="38.72" y3="38.82"/>
+ <curve x1="6.42" x2="6.25" x3="6.25" y1="39.12" y2="39.48" y3="39.88"/>
+ <line x="6.25" y="40.14"/>
+ <curve x1="6.25" x2="6.48" x3="6.81" y1="40.61" y2="41.07" y3="41.34"/>
+ <curve x1="6.81" x2="6.88" x3="6.88" y1="41.34" y2="41.4" y3="41.47"/>
+ <line x="12.88" y="47.43"/>
+ <curve x1="13.44" x2="14.4" x3="15.03" y1="47.96" y2="47.96" y3="47.43"/>
+ <line x="15.2" y="47.2"/>
+ <curve x1="15.8" x2="15.8" x3="15.2" y1="46.63" y2="45.71" y3="45.11"/>
+ <line x="11.72" y="41.67"/>
+ <line x="22.46" y="41.67"/>
+ <curve x1="22.79" x2="24.25" x3="26.44" y1="45.28" y2="48.59" y3="51.24"/>
+ <line x="18.85" y="58.85"/>
+ <line x="18.85" y="53.92"/>
+ <curve x1="18.85" x2="18.18" x3="17.39" y1="53.13" y2="52.46" y3="52.46"/>
+ <line x="17.05" y="52.46"/>
+ <curve x1="16.23" x2="15.56" x3="15.56" y1="52.46" y2="53.13" y3="53.92"/>
+ <line x="15.56" y="62.4"/>
+ <curve x1="15.56" x2="15.63" x3="15.63" y1="62.5" y2="62.66" y3="62.76"/>
+ <curve x1="15.63" x2="15.79" x3="16.06" y1="63.16" y2="63.49" y3="63.75"/>
+ <line x="16.29" y="63.99"/>
+ <curve x1="16.62" x2="17.06" x3="17.52" y1="64.32" y2="64.48" y3="64.41"/>
+ <line x="17.62" y="64.41"/>
+ <line x="26.07" y="64.41"/>
+ <curve x1="26.9" x2="27.57" x3="27.57" y1="64.41" y2="63.75" y3="62.92"/>
+ <line x="27.57" y="62.66"/>
+ <curve x1="27.57" x2="26.9" x3="26.07" y1="61.8" y2="61.14" y3="61.14"/>
+ <line x="21.2" y="61.14"/>
+ <line x="28.76" y="53.59"/>
+ <curve x1="31.45" x2="34.76" x3="38.41" y1="55.78" y2="57.2" y3="57.53"/>
+ <line x="38.41" y="68.33"/>
+ <line x="34.9" y="64.81"/>
+ <curve x1="34.33" x2="33.4" x3="32.77" y1="64.25" y2="64.25" y3="64.81"/>
+ <line x="32.61" y="65.01"/>
+ <curve x1="32.01" x2="32.01" x3="32.61" y1="65.58" y2="66.5" y3="67.13"/>
+ <line x="38.57" y="73.06"/>
+ <curve x1="38.67" x2="38.74" x3="38.84" y1="73.19" y2="73.23" y3="73.29"/>
+ <curve x1="39.14" x2="39.5" x3="39.9" y1="73.59" y2="73.75" y3="73.75"/>
+ <line x="40.16" y="73.75"/>
+ <curve x1="40.63" x2="41.06" x3="41.32" y1="73.75" y2="73.55" y3="73.19"/>
+ <curve x1="41.32" x2="41.39" x3="41.46" y1="73.12" y2="73.13" y3="73.06"/>
+ <line x="47.46" y="67.13"/>
+ <curve x1="47.99" x2="47.99" x3="47.46" y1="66.5" y2="65.58" y3="65.01"/>
+ <line x="47.22" y="64.81"/>
+ <curve x1="46.66" x2="45.74" x3="45.11" y1="64.25" y2="64.25" y3="64.81"/>
+ <line x="41.66" y="68.22"/>
+ <line x="41.66" y="57.5"/>
+ <curve x1="45.27" x2="48.62" x3="51.2" y1="57.17" y2="55.78" y3="53.59"/>
+ <line x="58.83" y="61.14"/>
+ <line x="53.95" y="61.14"/>
+ <curve x1="53.13" x2="52.46" x3="52.46" y1="61.14" y2="61.8" y3="62.66"/>
+ <line x="52.46" y="62.92"/>
+ <curve x1="52.46" x2="53.13" x3="53.92" y1="63.75" y2="64.41" y3="64.41"/>
+ <line x="62.44" y="64.41"/>
+ <line x="62.54" y="64.41"/>
+ <curve x1="63.01" x2="63.44" x3="63.77" y1="64.48" y2="64.32" y3="63.99"/>
+ <line x="63.94" y="63.75"/>
+ <curve x1="64.2" x2="64.37" x3="64.37" y1="63.49" y2="63.16" y3="62.76"/>
+ <curve x1="64.43" x2="64.43" x3="64.43" y1="62.66" y2="62.5" y3="62.4"/>
+ <line x="64.43" y="53.92"/>
+ <curve x1="64.43" x2="63.77" x3="62.94" y1="53.13" y2="52.46" y3="52.46"/>
+ <line x="62.68" y="52.46"/>
+ <curve x1="61.85" x2="61.15" x3="61.15" y1="52.46" y2="53.13" y3="53.92"/>
+ <line x="61.15" y="58.85"/>
+ <line x="53.52" y="51.24"/>
+ <curve x1="55.71" x2="57.17" x3="57.5" y1="48.59" y2="45.28" y3="41.67"/>
+ <line x="68.25" y="41.67"/>
+ <line x="64.83" y="45.11"/>
+ <curve x1="64.27" x2="64.27" x3="64.83" y1="45.71" y2="46.63" y3="47.2"/>
+ <line x="65.03" y="47.43"/>
+ <curve x1="65.59" x2="66.52" x3="67.15" y1="47.96" y2="47.96" y3="47.43"/>
+ <line x="73.08" y="41.47"/>
+ <curve x1="73.15" x2="73.15" x3="73.22" y1="41.4" y2="41.34" y3="41.34"/>
+ <curve x1="73.55" x2="73.75" x3="73.75" y1="41.07" y2="40.61" y3="40.14"/>
+ <line x="73.75" y="39.88"/>
+ <curve x1="73.75" x2="73.58" x3="73.32" y1="39.48" y2="39.12" y3="38.82"/>
+ <curve x1="73.25" x2="73.22" x3="73.08" y1="38.72" y2="38.62" y3="38.56"/>
+ <line x="67.15" y="32.6"/>
+ <curve x1="66.52" x2="65.66" x3="65.03" y1="32" y2="32" y3="32.6"/>
+ <line x="64.83" y="32.76"/>
+ <curve x1="64.27" x2="64.27" x3="64.83" y1="33.39" y2="34.32" y3="34.88"/>
+ <line x="68.34" y="38.39"/>
+ <line x="57.54" y="38.39"/>
+ <curve x1="57.21" x2="55.78" x3="53.59" y1="34.75" y2="31.44" y3="28.76"/>
+ <line x="61.15" y="21.2"/>
+ <line x="61.15" y="26.07"/>
+ <curve x1="61.15" x2="61.85" x3="62.68" y1="26.9" y2="27.56" y3="27.56"/>
+ <line x="62.94" y="27.56"/>
+ <curve x1="63.77" x2="64.43" x3="64.43" y1="27.56" y2="26.9" y3="26.07"/>
+ <line x="64.43" y="17.6"/>
+ <line x="64.43" y="17.43"/>
+ <curve x1="64.5" x2="64.34" x3="64" y1="17.03" y2="16.6" y3="16.27"/>
+ <line x="63.77" y="16.04"/>
+ <curve x1="63.51" x2="63.17" x3="62.78" y1="15.77" y2="15.61" y3="15.61"/>
+ <curve x1="62.68" x2="62.54" x3="62.44" y1="15.61" y2="15.54" y3="15.54"/>
+ <line x="53.92" y="15.54"/>
+ <curve x1="53.13" x2="52.46" x3="52.46" y1="15.54" y2="16.2" y3="17.03"/>
+ <line x="52.46" y="17.36"/>
+ <curve x1="52.46" x2="53.13" x3="53.95" y1="18.16" y2="18.82" y3="18.82"/>
+ <line x="58.86" y="18.82"/>
+ <line x="51.27" y="26.44"/>
+ <curve x1="48.62" x2="45.3" x3="41.66" y1="24.25" y2="22.8" y3="22.46"/>
+ <line x="41.66" y="11.73"/>
+ <line x="45.11" y="15.18"/>
+ <curve x1="45.74" x2="46.66" x3="47.22" y1="15.78" y2="15.78" y3="15.18"/>
+ <line x="47.46" y="14.95"/>
+ <curve x1="47.99" x2="47.99" x3="47.46" y1="14.38" y2="13.46" y3="12.89"/>
+ <line x="41.46" y="6.87"/>
+ <curve x1="41.39" x2="41.32" x3="41.32" y1="6.87" y2="6.8" y3="6.8"/>
+ <curve x1="41.06" x2="40.63" x3="40.16" y1="6.47" y2="6.24" y3="6.24"/>
+ <line x="39.9" y="6.24"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="load balancer" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="64.29" y="21.09"/>
+ <line x="66.28" y="24.66"/>
+ <line x="55.77" y="30.92"/>
+ <curve x1="56.63" x2="57.36" x3="57.89" y1="31.98" y2="33.27" y3="34.53"/>
+ <line x="68.33" y="28.34"/>
+ <line x="70.29" y="31.92"/>
+ <line x="72.52" y="23.38"/>
+ <line x="64.29" y="21.09"/>
+ <close/>
+ <move x="40.24" y="25.05"/>
+ <curve x1="31.95" x2="25.22" x3="25.22" y1="25.05" y2="32" y3="40.47"/>
+ <curve x1="25.22" x2="31.95" x3="40.24" y1="49.02" y2="55.94" y3="55.94"/>
+ <curve x1="48.56" x2="55.3" x3="55.3" y1="55.94" y2="49.02" y3="40.47"/>
+ <curve x1="55.3" x2="48.56" x3="40.24" y1="32" y2="25.05" y3="25.05"/>
+ <close/>
+ <move x="40.24" y="28.46"/>
+ <curve x1="46.74" x2="52.01" x3="52.01" y1="28.46" y2="33.85" y3="40.47"/>
+ <curve x1="52.01" x2="46.74" x3="40.24" y1="47.16" y2="52.56" y3="52.56"/>
+ <curve x1="33.78" x2="28.5" x3="28.5" y1="52.56" y2="47.16" y3="40.47"/>
+ <curve x1="28.5" x2="33.78" x3="40.24" y1="33.85" y2="28.46" y3="28.46"/>
+ <close/>
+ <move x="16.3" y="34.53"/>
+ <line x="16.3" y="38.44"/>
+ <line x="4.04" y="38.44"/>
+ <line x="4.04" y="42.58"/>
+ <line x="16.3" y="42.58"/>
+ <line x="16.3" y="46.48"/>
+ <line x="22.27" y="40.49"/>
+ <line x="16.3" y="34.53"/>
+ <close/>
+ <move x="70.03" y="34.53"/>
+ <line x="70.03" y="38.47"/>
+ <line x="58.73" y="38.47"/>
+ <curve x1="58.79" x2="58.89" x3="58.89" y1="39.16" y2="39.79" y3="40.49"/>
+ <curve x1="58.89" x2="58.79" x3="58.73" y1="41.21" y2="41.84" y3="42.54"/>
+ <line x="70.03" y="42.54"/>
+ <line x="70.03" y="46.48"/>
+ <line x="75.97" y="40.52"/>
+ <line x="70.03" y="34.53"/>
+ <close/>
+ <move x="57.89" y="46.48"/>
+ <curve x1="57.36" x2="56.63" x3="55.77" y1="47.67" y2="48.79" y3="49.82"/>
+ <line x="66.28" y="55.65"/>
+ <line x="64.29" y="58.92"/>
+ <line x="72.52" y="56.81"/>
+ <line x="70.29" y="48.96"/>
+ <line x="68.33" y="52.2"/>
+ <line x="57.89" y="46.48"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="nexus 1kv" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="21.13" y="19.99"/>
+ <curve x1="20.83" x2="20.53" x3="20.4" y1="19.99" y2="20.15" y3="20.29"/>
+ <line x="20.1" y="20.59"/>
+ <line x="15.69" y="24.99"/>
+ <curve x1="15.26" x2="15.26" x3="15.69" y1="25.45" y2="26.18" y3="26.61"/>
+ <line x="15.82" y="26.77"/>
+ <curve x1="16.29" x2="17.02" x3="17.45" y1="27.21" y2="27.21" y3="26.77"/>
+ <line x="20.1" y="24.13"/>
+ <line x="20.1" y="33.07"/>
+ <curve x1="20.1" x2="20.53" x3="21.13" y1="33.66" y2="34.13" y3="34.13"/>
+ <line x="21.29" y="34.13"/>
+ <curve x1="22.02" x2="22.45" x3="22.45" y1="34.13" y2="33.66" y3="33.07"/>
+ <line x="22.45" y="24.26"/>
+ <line x="24.94" y="26.77"/>
+ <curve x1="25.4" x2="26.13" x3="26.57" y1="27.21" y2="27.21" y3="26.77"/>
+ <line x="26.73" y="26.61"/>
+ <curve x1="27.03" x2="27.03" x3="26.73" y1="26.18" y2="25.45" y3="24.99"/>
+ <line x="22.32" y="20.59"/>
+ <line x="22.16" y="20.45"/>
+ <curve x1="22.02" x2="21.72" x3="21.29" y1="20.29" y2="19.99" y3="19.99"/>
+ <line x="21.13" y="19.99"/>
+ <close/>
+ <move x="58.78" y="19.99"/>
+ <curve x1="58.48" x2="58.18" x3="58.05" y1="19.99" y2="20.15" y3="20.29"/>
+ <line x="57.75" y="20.59"/>
+ <line x="53.34" y="24.99"/>
+ <curve x1="52.91" x2="52.91" x3="53.34" y1="25.45" y2="26.18" y3="26.61"/>
+ <line x="53.47" y="26.77"/>
+ <curve x1="53.94" x2="54.67" x3="55.1" y1="27.21" y2="27.21" y3="26.77"/>
+ <line x="57.62" y="24.13"/>
+ <line x="57.62" y="33.07"/>
+ <curve x1="57.62" x2="58.18" x3="58.78" y1="33.66" y2="34.13" y3="34.13"/>
+ <line x="58.94" y="34.13"/>
+ <curve x1="59.67" x2="60.1" x3="60.1" y1="34.13" y2="33.66" y3="33.07"/>
+ <line x="60.1" y="24.26"/>
+ <line x="62.59" y="26.77"/>
+ <curve x1="63.05" x2="63.79" x3="64.22" y1="27.21" y2="27.21" y3="26.77"/>
+ <line x="64.38" y="26.61"/>
+ <curve x1="64.68" x2="64.68" x3="64.38" y1="26.18" y2="25.45" y3="24.99"/>
+ <line x="59.97" y="20.59"/>
+ <line x="59.81" y="20.45"/>
+ <curve x1="59.68" x2="59.37" x3="58.94" y1="20.29" y2="19.99" y3="19.99"/>
+ <line x="58.78" y="19.99"/>
+ <close/>
+ <move x="40.11" y="19.99"/>
+ <curve x1="34.21" x2="29.37" x3="29.37" y1="19.99" y2="24.86" y3="30.72"/>
+ <curve x1="29.37" x2="34.21" x3="40.11" y1="36.45" y2="41.18" y3="41.18"/>
+ <curve x1="45.85" x2="50.56" x3="50.56" y1="41.18" y2="36.45" y3="30.72"/>
+ <curve x1="50.56" x2="45.85" x3="40.11" y1="24.86" y2="19.99" y3="19.99"/>
+ <close/>
+ <move x="40.11" y="22.21"/>
+ <curve x1="44.65" x2="48.5" x3="48.5" y1="22.21" y2="25.89" y3="30.59"/>
+ <curve x1="48.5" x2="44.65" x3="40.11" y1="35.29" y2="39.1" y3="39.1"/>
+ <curve x1="35.4" x2="31.59" x3="31.59" y1="39.1" y2="35.29" y3="30.59"/>
+ <curve x1="31.59" x2="35.4" x3="40.11" y1="25.89" y2="22.21" y3="22.21"/>
+ <close/>
+ <move x="16.12" y="39.06"/>
+ <curve x1="15.64" x2="15.14" x3="14.79" y1="38.99" y2="39.27" y3="39.69"/>
+ <line x="7.76" y="53.07"/>
+ <line x="6.44" y="49.39"/>
+ <curve x1="6.14" x2="5.41" x3="4.81" y1="48.83" y2="48.53" y3="48.66"/>
+ <line x="4.51" y="48.83"/>
+ <curve x1="3.92" x2="3.48" x3="3.78" y1="49.09" y2="49.69" y3="50.28"/>
+ <line x="6.14" y="56.44"/>
+ <curve x1="6.14" x2="6.14" x3="6.27" y1="56.61" y2="56.74" y3="56.74"/>
+ <curve x1="6.44" x2="6.57" x3="6.87" y1="57.04" y2="57.34" y3="57.5"/>
+ <line x="7.17" y="57.5"/>
+ <curve x1="7.46" x2="7.9" x3="8.2" y1="57.63" y2="57.63" y3="57.5"/>
+ <line x="8.33" y="57.5"/>
+ <line x="15.09" y="55.42"/>
+ <curve x1="15.69" x2="16.12" x3="15.85" y1="55.15" y2="54.56" y3="53.83"/>
+ <line x="15.85" y="53.66"/>
+ <curve x1="15.55" x2="14.79" x3="14.23" y1="53.07" y2="52.77" y3="52.93"/>
+ <line x="10.25" y="54.26"/>
+ <line x="17.44" y="40.88"/>
+ <curve x1="17.61" x2="17.44" x3="16.71" y1="40.28" y2="39.56" y3="39.26"/>
+ <line x="16.58" y="39.26"/>
+ <curve x1="16.43" x2="16.28" x3="16.12" y1="39.15" y2="39.09" y3="39.06"/>
+ <close/>
+ <move x="63.95" y="39.06"/>
+ <curve x1="63.79" x2="63.64" x3="63.49" y1="39.09" y2="39.15" y3="39.26"/>
+ <line x="63.36" y="39.26"/>
+ <curve x1="62.59" x2="62.33" x3="62.59" y1="39.56" y2="40.28" y3="40.88"/>
+ <line x="69.82" y="54.26"/>
+ <line x="65.84" y="52.93"/>
+ <curve x1="65.25" x2="64.51" x3="64.22" y1="52.77" y2="53.07" y3="53.66"/>
+ <line x="64.22" y="53.83"/>
+ <curve x1="63.92" x2="64.22" x3="64.95" y1="54.56" y2="55.15" y3="55.42"/>
+ <line x="71.71" y="57.5"/>
+ <line x="71.88" y="57.5"/>
+ <curve x1="72.18" x2="72.61" x3="72.9" y1="57.63" y2="57.63" y3="57.5"/>
+ <line x="73.2" y="57.5"/>
+ <curve x1="73.5" x2="73.63" x3="73.8" y1="57.34" y2="57.04" y3="56.74"/>
+ <curve x1="73.93" x2="73.93" x3="73.93" y1="56.74" y2="56.61" y3="56.44"/>
+ <line x="76.29" y="50.28"/>
+ <curve x1="76.42" x2="76.15" x3="75.56" y1="49.69" y2="49.09" y3="48.83"/>
+ <line x="75.26" y="48.66"/>
+ <curve x1="74.66" x2="73.93" x3="73.63" y1="48.53" y2="48.83" y3="49.39"/>
+ <line x="72.31" y="53.07"/>
+ <line x="65.25" y="39.69"/>
+ <curve x1="64.92" x2="64.43" x3="63.95" y1="39.27" y2="38.99" y3="39.06"/>
+ <close/>
+ <move x="27.64" y="41.37"/>
+ <curve x1="27.12" x2="26.69" x3="26.59" y1="41.4" y2="41.77" y3="42.19"/>
+ <line x="22.74" y="53.08"/>
+ <line x="20.69" y="49.71"/>
+ <curve x1="20.26" x2="19.53" x3="18.76" y1="49.11" y2="48.97" y3="49.24"/>
+ <line x="18.63" y="49.41"/>
+ <curve x1="17.9" x2="17.6" x3="18.03" y1="49.7" y2="50.3" y3="50.86"/>
+ <line x="21.72" y="56.76"/>
+ <curve x1="21.72" x2="21.88" x3="21.88" y1="56.89" y2="56.89" y3="57.06"/>
+ <curve x1="22.02" x2="22.31" x3="22.61" y1="57.19" y2="57.49" y3="57.49"/>
+ <line x="22.91" y="57.65"/>
+ <curve x1="23.34" x2="23.77" x3="24.07" y1="57.65" y2="57.65" y3="57.49"/>
+ <line x="31" y="54.24"/>
+ <curve x1="31.56" x2="31.73" x3="31.43" y1="53.98" y2="53.22" y3="52.65"/>
+ <line x="31.26" y="52.49"/>
+ <curve x1="31" x2="30.1" x3="29.51" y1="51.89" y2="51.76" y3="52.05"/>
+ <line x="25.7" y="53.81"/>
+ <line x="29.37" y="42.92"/>
+ <curve x1="29.67" x2="29.21" x3="28.48" y1="42.35" y2="41.62" y3="41.46"/>
+ <line x="28.18" y="41.46"/>
+ <curve x1="28" x2="27.82" x3="27.64" y1="41.38" y2="41.36" y3="41.37"/>
+ <close/>
+ <move x="52.41" y="41.37"/>
+ <curve x1="52.24" x2="52.05" x3="51.87" y1="41.36" y2="41.38" y3="41.46"/>
+ <line x="51.57" y="41.46"/>
+ <curve x1="50.84" x2="50.41" x3="50.71" y1="41.62" y2="42.35" y3="42.92"/>
+ <line x="54.36" y="53.81"/>
+ <line x="50.55" y="52.05"/>
+ <curve x1="49.95" x2="49.09" x3="48.79" y1="51.76" y2="51.89" y3="52.49"/>
+ <line x="48.62" y="52.65"/>
+ <curve x1="48.19" x2="48.49" x3="49.08" y1="53.22" y2="53.98" y3="54.24"/>
+ <line x="55.85" y="57.49"/>
+ <line x="55.98" y="57.49"/>
+ <curve x1="56.28" x2="56.71" x3="57.18" y1="57.65" y2="57.65" y3="57.65"/>
+ <line x="57.47" y="57.49"/>
+ <curve x1="57.74" x2="58.04" x3="58.2" y1="57.49" y2="57.19" y3="57.06"/>
+ <curve x1="58.2" x2="58.34" x3="58.34" y1="56.89" y2="56.89" y3="56.76"/>
+ <line x="62.01" y="50.86"/>
+ <curve x1="62.31" x2="62.18" x3="61.42" y1="50.3" y2="49.7" y3="49.41"/>
+ <line x="61.12" y="49.24"/>
+ <curve x1="60.55" x2="59.83" x3="59.36" y1="48.97" y2="49.11" y3="49.71"/>
+ <line x="57.31" y="53.08"/>
+ <line x="53.49" y="42.19"/>
+ <curve x1="53.37" x2="52.93" x3="52.41" y1="41.77" y2="41.4" y3="41.37"/>
+ <close/>
+ <move x="39.95" y="43.51"/>
+ <curve x1="39.35" x2="38.79" x3="38.79" y1="43.51" y2="44.11" y3="44.84"/>
+ <line x="38.79" y="55.27"/>
+ <line x="36.27" y="52.19"/>
+ <curve x1="35.84" x2="35.11" x3="34.65" y1="51.76" y2="51.76" y3="52.19"/>
+ <line x="34.52" y="52.49"/>
+ <curve x1="34.09" x2="34.09" x3="34.52" y1="52.92" y2="53.81" y3="54.24"/>
+ <line x="38.93" y="59.54"/>
+ <curve x1="39.06" x2="39.06" x3="39.23" y1="59.54" y2="59.71" y3="59.71"/>
+ <curve x1="39.36" x2="39.65" x3="39.95" y1="59.84" y2="60.01" y3="60.01"/>
+ <line x="40.12" y="60.01"/>
+ <curve x1="40.55" x2="40.85" x3="40.98" y1="60.01" y2="59.84" y3="59.54"/>
+ <line x="41.15" y="59.54"/>
+ <line x="45.39" y="54.24"/>
+ <curve x1="45.86" x2="45.86" x3="45.39" y1="53.81" y2="52.92" y3="52.49"/>
+ <line x="45.39" y="52.19"/>
+ <curve x1="44.83" x2="44.23" x3="43.76" y1="51.76" y2="51.76" y3="52.19"/>
+ <line x="41.28" y="55.27"/>
+ <line x="41.28" y="44.84"/>
+ <curve x1="41.28" x2="40.68" x3="40.12" y1="44.11" y2="43.51" y3="43.51"/>
+ <line x="39.95" y="43.51"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="nexus data center switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="17.65" y="7.05"/>
+ <line x="17.65" y="12.22"/>
+ <line x="26.9" y="12.22"/>
+ <line x="27.66" y="12.52"/>
+ <line x="38.83" y="15.3"/>
+ <line x="27.66" y="18.38"/>
+ <line x="17.65" y="18.38"/>
+ <line x="17.65" y="23.54"/>
+ <line x="28.52" y="23.54"/>
+ <line x="28.52" y="21.32"/>
+ <line x="51.93" y="21.32"/>
+ <line x="51.93" y="23.54"/>
+ <line x="62.37" y="23.54"/>
+ <line x="62.37" y="18.38"/>
+ <line x="53.25" y="18.38"/>
+ <line x="41.79" y="15.3"/>
+ <line x="53.25" y="12.52"/>
+ <line x="53.82" y="12.22"/>
+ <line x="62.37" y="12.22"/>
+ <line x="62.37" y="7.05"/>
+ <line x="51.93" y="7.05"/>
+ <line x="51.93" y="9.4"/>
+ <line x="28.52" y="9.4"/>
+ <line x="28.52" y="7.05"/>
+ <line x="17.65" y="7.05"/>
+ <close/>
+ <move x="28.52" y="10.13"/>
+ <line x="51.93" y="10.13"/>
+ <line x="51.93" y="12.05"/>
+ <line x="40.29" y="15"/>
+ <line x="28.52" y="11.92"/>
+ <line x="28.52" y="10.13"/>
+ <close/>
+ <move x="40.29" y="15.73"/>
+ <line x="51.93" y="18.81"/>
+ <line x="51.93" y="20.43"/>
+ <line x="28.52" y="20.43"/>
+ <line x="28.52" y="19.11"/>
+ <line x="40.29" y="15.73"/>
+ <close/>
+ <move x="3.53" y="30.57"/>
+ <line x="3.53" y="32.95"/>
+ <line x="76.47" y="32.95"/>
+ <line x="76.47" y="30.57"/>
+ <line x="3.53" y="30.57"/>
+ <close/>
+ <move x="39.99" y="35.3"/>
+ <curve x1="39.69" x2="39.56" x3="39.26" y1="35.3" y2="35.43" y3="35.73"/>
+ <curve x1="39.26" x2="39.13" x3="39.13" y1="35.73" y2="35.73" y3="35.89"/>
+ <line x="35.02" y="40.29"/>
+ <curve x1="34.56" x2="34.56" x3="35.02" y1="40.72" y2="41.32" y3="41.75"/>
+ <line x="35.15" y="41.92"/>
+ <curve x1="35.45" x2="36.18" x3="36.61" y1="42.35" y2="42.35" y3="41.92"/>
+ <line x="38.97" y="39.4"/>
+ <line x="38.97" y="46.62"/>
+ <curve x1="35.15" x2="31.17" x3="28.82" y1="43.07" y2="40.29" y3="40.29"/>
+ <curve x1="28.09" x2="27.66" x3="27.36" y1="40.29" y2="40.59" y3="40.89"/>
+ <curve x1="26.17" x2="26.76" x3="28.82" y1="42.05" y2="44.4" y3="47.94"/>
+ <curve x1="29.85" x2="31.04" x3="32.37" y1="49.56" y2="51.15" y3="53.07"/>
+ <line x="26.17" y="53.07"/>
+ <line x="28.52" y="50.42"/>
+ <curve x1="28.99" x2="28.99" x3="28.52" y1="49.99" y2="49.27" y3="48.97"/>
+ <line x="28.52" y="48.67"/>
+ <curve x1="28.09" x2="27.36" x3="27.06" y1="48.24" y2="48.24" y3="48.67"/>
+ <line x="22.78" y="53.07"/>
+ <line x="22.78" y="53.37"/>
+ <curve x1="22.49" x2="22.35" x3="22.35" y1="53.51" y2="53.8" y3="54.1"/>
+ <line x="22.35" y="54.27"/>
+ <curve x1="22.35" x2="22.65" x3="22.78" y1="54.7" y2="54.99" y3="55.13"/>
+ <line x="22.78" y="55.29"/>
+ <line x="27.06" y="59.7"/>
+ <curve x1="27.36" x2="28.09" x3="28.52" y1="60.13" y2="60.13" y3="59.7"/>
+ <line x="28.52" y="59.4"/>
+ <curve x1="28.99" x2="28.99" x3="28.52" y1="58.97" y2="58.37" y3="57.94"/>
+ <line x="26.17" y="55.43"/>
+ <line x="32.8" y="55.43"/>
+ <curve x1="31.34" x2="29.85" x3="28.82" y1="57.35" y2="59.27" y3="61.02"/>
+ <curve x1="26.76" x2="26.17" x3="27.36" y1="64.53" y2="66.88" y3="67.94"/>
+ <curve x1="27.66" x2="28.09" x3="28.82" y1="68.21" y2="68.67" y3="68.67"/>
+ <curve x1="31.17" x2="35.15" x3="38.97" y1="68.67" y2="65.85" y3="62.34"/>
+ <line x="38.97" y="68.97"/>
+ <line x="36.61" y="66.45"/>
+ <curve x1="36.18" x2="35.45" x3="35.15" y1="66.02" y2="66.02" y3="66.45"/>
+ <line x="35.02" y="66.62"/>
+ <curve x1="34.56" x2="34.56" x3="35.02" y1="67.05" y2="67.65" y3="68.08"/>
+ <line x="39.13" y="72.48"/>
+ <curve x1="39.13" x2="39.26" x3="39.26" y1="72.65" y2="72.65" y3="72.65"/>
+ <curve x1="39.56" x2="39.69" x3="39.99" y1="72.94" y2="72.94" y3="72.94"/>
+ <line x="40.16" y="72.94"/>
+ <curve x1="40.46" x2="40.89" x3="41.02" y1="72.94" y2="72.78" y3="72.65"/>
+ <line x="41.02" y="72.48"/>
+ <line x="45.3" y="68.08"/>
+ <curve x1="45.6" x2="45.6" x3="45.3" y1="67.65" y2="67.05" y3="66.62"/>
+ <line x="45" y="66.45"/>
+ <curve x1="44.7" x2="43.97" x3="43.67" y1="66.02" y2="66.02" y3="66.45"/>
+ <line x="41.18" y="68.97"/>
+ <line x="41.18" y="62.48"/>
+ <curve x1="45.16" x2="48.98" x3="51.17" y1="65.86" y2="68.67" y3="68.67"/>
+ <curve x1="52.06" x2="52.49" x3="52.79" y1="68.67" y2="68.21" y3="67.94"/>
+ <curve x1="53.82" x2="53.39" x3="51.17" y1="66.88" y2="64.53" y3="61.02"/>
+ <curve x1="50.14" x2="48.81" x3="47.22" y1="59.27" y2="57.35" y3="55.43"/>
+ <line x="53.99" y="55.43"/>
+ <line x="51.63" y="57.94"/>
+ <curve x1="51.16" x2="51.16" x3="51.63" y1="58.37" y2="58.97" y3="59.4"/>
+ <line x="51.76" y="59.7"/>
+ <curve x1="52.06" x2="52.79" x3="53.25" y1="60.13" y2="60.13" y3="59.7"/>
+ <line x="57.37" y="55.29"/>
+ <line x="57.37" y="55.13"/>
+ <curve x1="57.67" x2="57.66" x3="57.66" y1="54.99" y2="54.7" y3="54.27"/>
+ <line x="57.66" y="54.1"/>
+ <curve x1="57.66" x2="57.66" x3="57.5" y1="53.8" y2="53.51" y3="53.37"/>
+ <curve x1="57.36" x2="57.37" x3="57.37" y1="53.24" y2="53.24" y3="53.07"/>
+ <line x="53.25" y="48.67"/>
+ <curve x1="52.79" x2="52.06" x3="51.76" y1="48.24" y2="48.24" y3="48.67"/>
+ <line x="51.63" y="48.97"/>
+ <curve x1="51.16" x2="51.16" x3="51.63" y1="49.27" y2="49.99" y3="50.42"/>
+ <line x="53.99" y="53.07"/>
+ <line x="47.65" y="53.07"/>
+ <curve x1="49.11" x2="50.3" x3="51.17" y1="51.15" y2="49.56" y3="47.94"/>
+ <curve x1="53.39" x2="53.82" x3="52.79" y1="44.4" y2="42.05" y3="40.89"/>
+ <curve x1="52.49" x2="52.06" x3="51.17" y1="40.59" y2="40.29" y3="40.29"/>
+ <curve x1="48.98" x2="45.16" x3="41.18" y1="40.29" y2="43.07" y3="46.45"/>
+ <line x="41.18" y="39.4"/>
+ <line x="43.67" y="41.92"/>
+ <curve x1="43.97" x2="44.7" x3="45" y1="42.35" y2="42.35" y3="41.92"/>
+ <line x="45.3" y="41.75"/>
+ <curve x1="45.6" x2="45.6" x3="45.3" y1="41.32" y2="40.72" y3="40.29"/>
+ <line x="41.02" y="35.89"/>
+ <line x="41.02" y="35.73"/>
+ <curve x1="40.89" x2="40.46" x3="40.16" y1="35.59" y2="35.3" y3="35.3"/>
+ <line x="39.99" y="35.3"/>
+ <close/>
+ <move x="28.69" y="42.35"/>
+ <line x="28.82" y="42.35"/>
+ <curve x1="30.31" x2="33.7" x3="37.64" y1="42.35" y2="44.57" y3="48.24"/>
+ <curve x1="36.18" x2="34.85" x3="34.12" y1="48.8" y2="50.29" y3="51.91"/>
+ <curve x1="32.8" x2="31.6" x3="30.74" y1="50.29" y2="48.67" y3="47.18"/>
+ <curve x1="28.69" x2="28.69" x3="28.69" y1="43.8" y2="42.65" y3="42.35"/>
+ <close/>
+ <move x="51.17" y="42.35"/>
+ <line x="51.33" y="42.35"/>
+ <curve x1="51.47" x2="51.17" x3="49.41" y1="42.78" y2="44.1" y3="47.18"/>
+ <curve x1="48.38" x2="47.22" x3="45.89" y1="48.67" y2="50.29" y3="51.91"/>
+ <curve x1="45.3" x2="43.97" x3="42.34" y1="50.29" y2="48.8" y3="48.24"/>
+ <curve x1="46.49" x2="49.87" x3="51.17" y1="44.57" y2="42.35" y3="42.35"/>
+ <close/>
+ <move x="34.12" y="56.92"/>
+ <curve x1="34.85" x2="36.18" x3="37.64" y1="58.67" y2="60" y3="60.73"/>
+ <curve x1="33.7" x2="30.31" x3="28.82" y1="64.4" y2="66.45" y3="66.45"/>
+ <line x="28.69" y="66.45"/>
+ <curve x1="28.69" x2="28.69" x3="30.74" y1="66.32" y2="65.13" y3="61.75"/>
+ <curve x1="31.6" x2="32.8" x3="34.12" y1="60.29" y2="58.67" y3="56.92"/>
+ <close/>
+ <move x="45.89" y="56.92"/>
+ <curve x1="47.22" x2="48.38" x3="49.41" y1="58.67" y2="60.29" y3="61.75"/>
+ <curve x1="51.47" x2="51.47" x3="51.33" y1="65.13" y2="66.32" y3="66.45"/>
+ <line x="51.17" y="66.45"/>
+ <curve x1="49.87" x2="46.49" x3="42.34" y1="66.45" y2="64.4" y3="60.73"/>
+ <curve x1="43.97" x2="45.3" x3="45.89" y1="60.13" y2="58.67" y3="56.92"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="nexus fabric switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.83" y="4.7"/>
+ <line x="38.83" y="75.3"/>
+ <line x="41.18" y="75.3"/>
+ <line x="41.18" y="43.66"/>
+ <line x="41.18" y="29.41"/>
+ <line x="41.18" y="4.7"/>
+ <line x="38.83" y="4.7"/>
+ <close/>
+ <move x="41.18" y="29.41"/>
+ <line x="47.35" y="35.31"/>
+ <line x="47.35" y="32.49"/>
+ <line x="57.66" y="32.49"/>
+ <line x="57.66" y="26.46"/>
+ <line x="47.35" y="26.46"/>
+ <line x="47.35" y="23.52"/>
+ <line x="41.48" y="29.41"/>
+ <line x="41.18" y="29.41"/>
+ <close/>
+ <move x="41.18" y="43.66"/>
+ <line x="47.35" y="49.42"/>
+ <line x="47.35" y="46.47"/>
+ <line x="57.66" y="46.47"/>
+ <line x="57.66" y="40.74"/>
+ <line x="47.35" y="40.74"/>
+ <line x="47.35" y="37.63"/>
+ <line x="41.48" y="43.52"/>
+ <line x="41.18" y="43.66"/>
+ <close/>
+ <move x="20.01" y="9.41"/>
+ <curve x1="19.84" x2="19.58" x3="19.41" y1="9.41" y2="9.55" y3="9.71"/>
+ <line x="19.28" y="9.84"/>
+ <line x="16.03" y="13.08"/>
+ <curve x1="15.73" x2="15.73" x3="16.03" y1="13.38" y2="13.98" y3="14.28"/>
+ <line x="16.03" y="14.41"/>
+ <curve x1="16.46" x2="16.92" x3="17.36" y1="14.71" y2="14.71" y3="14.41"/>
+ <line x="19.11" y="12.49"/>
+ <line x="19.11" y="17.95"/>
+ <curve x1="16.03" x2="12.94" x3="11.19" y1="15.3" y2="13.22" y3="13.22"/>
+ <curve x1="10.46" x2="10.16" x3="9.86" y1="13.22" y2="13.39" y3="13.68"/>
+ <curve x1="9.13" x2="9.4" x3="11.19" y1="14.55" y2="16.33" y3="18.98"/>
+ <curve x1="11.91" x2="12.78" x3="13.97" y1="20.14" y2="21.33" y3="22.79"/>
+ <line x="8.97" y="22.79"/>
+ <line x="10.89" y="20.74"/>
+ <curve x1="11.19" x2="11.19" x3="10.89" y1="20.44" y2="20.01" y3="19.54"/>
+ <line x="10.72" y="19.54"/>
+ <curve x1="10.46" x2="9.99" x3="9.56" y1="19.11" y2="19.11" y3="19.54"/>
+ <line x="6.32" y="22.79"/>
+ <line x="6.18" y="22.92"/>
+ <curve x1="6.02" x2="5.88" x3="5.88" y1="23.09" y2="23.38" y3="23.52"/>
+ <line x="5.88" y="23.68"/>
+ <curve x1="5.88" x2="6.02" x3="6.32" y1="23.98" y2="24.24" y3="24.24"/>
+ <line x="6.32" y="24.41"/>
+ <line x="9.56" y="27.65"/>
+ <curve x1="9.99" x2="10.46" x3="10.72" y1="27.92" y2="27.92" y3="27.65"/>
+ <line x="10.89" y="27.65"/>
+ <curve x1="11.19" x2="11.19" x3="10.89" y1="27.19" y2="26.76" y3="26.46"/>
+ <line x="8.97" y="24.54"/>
+ <line x="14.27" y="24.54"/>
+ <curve x1="13.08" x2="11.91" x3="11.19" y1="26.03" y2="27.49" y3="28.68"/>
+ <curve x1="9.4" x2="9.13" x3="9.86" y1="31.33" y2="33.09" y3="33.98"/>
+ <curve x1="10.16" x2="10.46" x3="11.19" y1="34.11" y2="34.41" y3="34.41"/>
+ <curve x1="12.94" x2="16.03" x3="19.11" y1="34.41" y2="32.36" y3="29.71"/>
+ <line x="19.11" y="34.71"/>
+ <line x="17.36" y="32.79"/>
+ <curve x1="16.92" x2="16.46" x3="16.03" y1="32.49" y2="32.49" y3="32.79"/>
+ <line x="16.03" y="32.92"/>
+ <curve x1="15.73" x2="15.73" x3="16.03" y1="33.22" y2="33.81" y3="34.11"/>
+ <line x="19.28" y="37.36"/>
+ <line x="19.41" y="37.49"/>
+ <curve x1="19.58" x2="19.84" x3="20.01" y1="37.66" y2="37.66" y3="37.66"/>
+ <line x="20.14" y="37.66"/>
+ <curve x1="20.44" x2="20.73" x3="20.87" y1="37.66" y2="37.66" y3="37.49"/>
+ <line x="20.87" y="37.36"/>
+ <line x="24.12" y="34.11"/>
+ <curve x1="24.55" x2="24.55" x3="24.12" y1="33.81" y2="33.22" y3="32.92"/>
+ <line x="24.12" y="32.79"/>
+ <curve x1="23.68" x2="23.22" x3="22.96" y1="32.49" y2="32.49" y3="32.79"/>
+ <line x="21.03" y="34.71"/>
+ <line x="21.03" y="29.84"/>
+ <curve x1="24.12" x2="27.2" x3="28.96" y1="32.36" y2="34.41" y3="34.41"/>
+ <curve x1="29.56" x2="30.02" x3="30.15" y1="34.41" y2="34.11" y3="33.98"/>
+ <curve x1="31.05" x2="30.75" x3="28.96" y1="33.09" y2="31.33" y3="28.68"/>
+ <curve x1="28.23" x2="27.07" x3="25.88" y1="27.49" y2="26.03" y3="24.54"/>
+ <line x="31.18" y="24.54"/>
+ <line x="29.25" y="26.46"/>
+ <curve x1="28.96" x2="28.96" x3="29.25" y1="26.76" y2="27.19" y3="27.65"/>
+ <line x="29.42" y="27.65"/>
+ <curve x1="29.72" x2="30.15" x3="30.58" y1="27.92" y2="27.92" y3="27.65"/>
+ <line x="33.83" y="24.41"/>
+ <line x="33.83" y="24.24"/>
+ <curve x1="34.13" x2="34.13" x3="34.13" y1="24.24" y2="23.98" y3="23.68"/>
+ <line x="34.13" y="23.52"/>
+ <curve x1="34.13" x2="34.13" x3="33.96" y1="23.38" y2="23.09" y3="22.92"/>
+ <curve x1="33.96" x2="33.97" x3="33.83" y1="22.92" y2="22.79" y3="22.79"/>
+ <line x="30.58" y="19.54"/>
+ <curve x1="30.15" x2="29.72" x3="29.42" y1="19.11" y2="19.11" y3="19.54"/>
+ <line x="29.25" y="19.54"/>
+ <curve x1="28.96" x2="28.96" x3="29.25" y1="20.01" y2="20.44" y3="20.74"/>
+ <line x="31.18" y="22.79"/>
+ <line x="26.17" y="22.79"/>
+ <curve x1="27.2" x2="28.23" x3="28.96" y1="21.33" y2="20.14" y3="18.98"/>
+ <curve x1="30.75" x2="31.05" x3="30.15" y1="16.33" y2="14.55" y3="13.68"/>
+ <curve x1="30.02" x2="29.56" x3="28.96" y1="13.39" y2="13.22" y3="13.22"/>
+ <curve x1="27.2" x2="24.12" x3="21.03" y1="13.22" y2="15.3" y3="17.79"/>
+ <line x="21.03" y="12.49"/>
+ <line x="22.96" y="14.41"/>
+ <curve x1="23.22" x2="23.68" x3="24.12" y1="14.71" y2="14.71" y3="14.41"/>
+ <line x="24.12" y="14.28"/>
+ <curve x1="24.55" x2="24.55" x3="24.12" y1="13.98" y2="13.38" y3="13.08"/>
+ <line x="20.87" y="9.84"/>
+ <curve x1="20.73" x2="20.44" x3="20.14" y1="9.54" y2="9.41" y3="9.41"/>
+ <line x="20.01" y="9.41"/>
+ <close/>
+ <move x="11.02" y="14.71"/>
+ <line x="11.19" y="14.71"/>
+ <curve x1="12.21" x2="14.87" x3="18.25" y1="14.71" y2="16.17" y3="19.11"/>
+ <curve x1="16.93" x2="15.9" x3="15.3" y1="19.54" y2="20.57" y3="21.9"/>
+ <curve x1="12.05" x2="10.72" x3="11.02" y1="18.09" y2="15.31" y3="14.71"/>
+ <close/>
+ <move x="28.96" y="14.71"/>
+ <line x="29.12" y="14.71"/>
+ <curve x1="29.42" x2="28.1" x3="24.72" y1="15.31" y2="18.09" y3="21.9"/>
+ <curve x1="24.29" x2="23.22" x3="21.93" y1="20.57" y2="19.54" y3="19.11"/>
+ <curve x1="25.31" x2="27.93" x3="28.96" y1="16.17" y2="14.71" y3="14.71"/>
+ <close/>
+ <move x="15.3" y="25.57"/>
+ <curve x1="15.9" x2="16.93" x3="18.25" y1="27.06" y2="27.92" y3="28.52"/>
+ <curve x1="14.87" x2="12.21" x3="11.19" y1="31.47" y2="32.92" y3="32.92"/>
+ <line x="11.02" y="32.92"/>
+ <curve x1="10.72" x2="12.05" x3="15.3" y1="32.19" y2="29.54" y3="25.57"/>
+ <close/>
+ <move x="24.72" y="25.57"/>
+ <curve x1="28.1" x2="29.42" x3="29.12" y1="29.54" y2="32.19" y3="32.92"/>
+ <line x="28.96" y="32.92"/>
+ <curve x1="27.93" x2="25.31" x3="21.93" y1="32.92" y2="31.47" y3="28.52"/>
+ <curve x1="23.22" x2="24.29" x3="24.72" y1="27.92" y2="27.06" y3="25.57"/>
+ <close/>
+ <move x="68.99" y="30.57"/>
+ <line x="68.99" y="33.69"/>
+ <line x="60" y="33.69"/>
+ <line x="60" y="39.41"/>
+ <line x="68.99" y="39.41"/>
+ <line x="68.99" y="42.36"/>
+ <line x="68.99" y="45.45"/>
+ <line x="60" y="45.45"/>
+ <line x="60" y="51.17"/>
+ <line x="68.99" y="51.17"/>
+ <line x="68.99" y="54.12"/>
+ <line x="73.97" y="48.36"/>
+ <line x="74.13" y="48.23"/>
+ <line x="69" y="42.35"/>
+ <line x="73.97" y="36.6"/>
+ <line x="74.13" y="36.6"/>
+ <line x="68.99" y="30.57"/>
+ <close/>
+ <move x="11.19" y="44.7"/>
+ <line x="11.19" y="47.35"/>
+ <line x="9.56" y="47.35"/>
+ <curve x1="8.97" x2="8.53" x3="8.53" y1="47.35" y2="47.77" y3="48.37"/>
+ <line x="8.53" y="49.99"/>
+ <line x="5.88" y="49.99"/>
+ <line x="5.88" y="52.18"/>
+ <line x="8.53" y="52.18"/>
+ <line x="8.53" y="56.62"/>
+ <line x="5.88" y="56.62"/>
+ <line x="5.88" y="58.8"/>
+ <line x="8.53" y="58.8"/>
+ <line x="8.53" y="63.24"/>
+ <line x="5.88" y="63.24"/>
+ <line x="5.88" y="65.42"/>
+ <line x="8.53" y="65.42"/>
+ <line x="8.53" y="67.05"/>
+ <curve x1="8.53" x2="8.97" x3="9.56" y1="67.64" y2="68.07" y3="68.07"/>
+ <line x="11.19" y="68.07"/>
+ <line x="11.19" y="70.59"/>
+ <line x="13.24" y="70.59"/>
+ <line x="13.24" y="68.07"/>
+ <line x="17.79" y="68.07"/>
+ <line x="17.79" y="70.59"/>
+ <line x="20.01" y="70.59"/>
+ <line x="20.01" y="68.07"/>
+ <line x="24.55" y="68.07"/>
+ <line x="24.55" y="70.59"/>
+ <line x="26.6" y="70.59"/>
+ <line x="26.6" y="68.07"/>
+ <line x="28.23" y="68.07"/>
+ <curve x1="28.83" x2="29.25" x3="29.25" y1="68.07" y2="67.64" y3="67.05"/>
+ <line x="29.25" y="65.42"/>
+ <line x="31.78" y="65.42"/>
+ <line x="31.78" y="63.24"/>
+ <line x="29.25" y="63.24"/>
+ <line x="29.25" y="58.8"/>
+ <line x="31.78" y="58.8"/>
+ <line x="31.78" y="56.62"/>
+ <line x="29.25" y="56.62"/>
+ <line x="29.25" y="52.18"/>
+ <line x="31.78" y="52.18"/>
+ <line x="31.78" y="49.99"/>
+ <line x="29.25" y="49.99"/>
+ <line x="29.25" y="48.37"/>
+ <curve x1="29.25" x2="28.83" x3="28.23" y1="47.77" y2="47.35" y3="47.35"/>
+ <line x="26.6" y="47.35"/>
+ <line x="26.6" y="44.7"/>
+ <line x="24.55" y="44.7"/>
+ <line x="24.55" y="47.35"/>
+ <line x="20.01" y="47.35"/>
+ <line x="20.01" y="44.7"/>
+ <line x="17.79" y="44.7"/>
+ <line x="17.79" y="47.35"/>
+ <line x="13.24" y="47.35"/>
+ <line x="13.24" y="44.7"/>
+ <line x="11.19" y="44.7"/>
+ <close/>
+ <move x="10.72" y="49.57"/>
+ <line x="27.07" y="49.57"/>
+ <line x="27.07" y="65.85"/>
+ <line x="10.72" y="65.85"/>
+ <line x="10.72" y="49.57"/>
+ <close/>
+ <move x="12.94" y="51.74"/>
+ <line x="12.94" y="56.48"/>
+ <line x="17.65" y="56.48"/>
+ <line x="17.65" y="51.74"/>
+ <line x="12.94" y="51.74"/>
+ <close/>
+ <move x="20" y="51.74"/>
+ <line x="20" y="56.48"/>
+ <line x="24.71" y="56.48"/>
+ <line x="24.71" y="51.74"/>
+ <line x="20" y="51.74"/>
+ <close/>
+ <move x="12.94" y="58.8"/>
+ <line x="12.94" y="63.53"/>
+ <line x="17.65" y="63.53"/>
+ <line x="17.65" y="58.8"/>
+ <line x="12.94" y="58.8"/>
+ <close/>
+ <move x="19.94" y="58.8"/>
+ <line x="19.94" y="63.53"/>
+ <line x="24.71" y="63.53"/>
+ <line x="24.71" y="58.8"/>
+ <line x="19.94" y="58.8"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="nexus switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="29.57" y="5.87"/>
+ <line x="23.53" y="11.77"/>
+ <line x="23.53" y="11.9"/>
+ <line x="29.57" y="17.66"/>
+ <line x="29.57" y="14.71"/>
+ <line x="40.01" y="14.71"/>
+ <line x="40.01" y="8.99"/>
+ <line x="29.57" y="8.99"/>
+ <line x="29.57" y="5.87"/>
+ <close/>
+ <move x="51.47" y="12.93"/>
+ <line x="51.47" y="15.74"/>
+ <line x="42.36" y="15.74"/>
+ <line x="42.36" y="21.77"/>
+ <line x="51.47" y="21.77"/>
+ <line x="51.47" y="24.72"/>
+ <line x="51.47" y="27.8"/>
+ <line x="42.36" y="27.8"/>
+ <line x="42.36" y="33.53"/>
+ <line x="51.47" y="33.53"/>
+ <line x="51.47" y="36.48"/>
+ <line x="56.48" y="30.72"/>
+ <line x="51.48" y="24.71"/>
+ <line x="56.48" y="18.82"/>
+ <line x="51.47" y="12.93"/>
+ <close/>
+ <move x="29.57" y="19.99"/>
+ <line x="23.53" y="25.88"/>
+ <line x="23.53" y="26.01"/>
+ <line x="29.57" y="31.78"/>
+ <line x="29.57" y="28.83"/>
+ <line x="40.01" y="28.83"/>
+ <line x="40.01" y="23.1"/>
+ <line x="29.57" y="23.1"/>
+ <line x="29.57" y="19.99"/>
+ <close/>
+ <move x="4.7" y="41.15"/>
+ <line x="4.7" y="43.54"/>
+ <line x="75.29" y="43.54"/>
+ <line x="75.29" y="41.15"/>
+ <line x="4.7" y="41.15"/>
+ <close/>
+ <move x="41.17" y="45.88"/>
+ <curve x1="41.04" x2="40.74" x3="40.6" y1="45.88" y2="46.01" y3="46.17"/>
+ <curve x1="40.6" x2="40.44" x3="40.44" y1="46.17" y2="46.17" y3="46.31"/>
+ <line x="36.76" y="49.55"/>
+ <curve x1="36.46" x2="36.46" x3="36.76" y1="49.85" y2="50.44" y3="50.74"/>
+ <line x="36.93" y="50.87"/>
+ <curve x1="37.36" x2="37.79" x3="38.25" y1="51.17" y2="51.17" y3="50.87"/>
+ <line x="40.31" y="48.95"/>
+ <line x="40.31" y="54.42"/>
+ <curve x1="36.93" x2="33.54" x3="31.62" y1="51.77" y2="49.68" y3="49.68"/>
+ <curve x1="30.89" x2="30.46" x3="30.16" y1="49.68" y2="49.85" y3="50.14"/>
+ <curve x1="29.27" x2="29.7" x3="31.62" y1="51.01" y2="52.63" y3="55.28"/>
+ <curve x1="32.35" x2="33.38" x3="34.7" y1="56.6" y2="57.8" y3="59.12"/>
+ <line x="29.26" y="59.12"/>
+ <line x="31.32" y="57.2"/>
+ <curve x1="31.62" x2="31.62" x3="31.32" y1="56.9" y2="56.47" y3="56.01"/>
+ <line x="31.19" y="56.01"/>
+ <curve x1="30.89" x2="30.29" x3="30" y1="55.58" y2="55.58" y3="56.01"/>
+ <line x="26.32" y="59.25"/>
+ <line x="26.18" y="59.39"/>
+ <curve x1="26.02" x2="25.89" x3="25.89" y1="59.55" y2="59.85" y3="59.98"/>
+ <line x="25.89" y="60.15"/>
+ <curve x1="25.89" x2="26.02" x3="26.32" y1="60.44" y2="60.71" y3="60.71"/>
+ <line x="26.32" y="60.88"/>
+ <line x="30" y="64.12"/>
+ <curve x1="30.29" x2="30.89" x3="31.19" y1="64.38" y2="64.38" y3="64.12"/>
+ <line x="31.32" y="63.95"/>
+ <curve x1="31.62" x2="31.62" x3="31.32" y1="63.66" y2="63.23" y3="62.93"/>
+ <line x="29.26" y="61"/>
+ <line x="35" y="61"/>
+ <curve x1="33.68" x2="32.52" x3="31.62" y1="62.49" y2="63.95" y3="65.14"/>
+ <curve x1="29.7" x2="29.27" x3="30.16" y1="67.79" y2="69.55" y3="70.44"/>
+ <curve x1="30.46" x2="30.89" x3="31.62" y1="70.57" y2="70.87" y3="70.87"/>
+ <curve x1="33.54" x2="36.93" x3="40.31" y1="70.87" y2="68.82" y3="66.17"/>
+ <line x="40.31" y="71.17"/>
+ <line x="38.25" y="69.25"/>
+ <curve x1="37.79" x2="37.36" x3="36.93" y1="68.95" y2="68.95" y3="69.25"/>
+ <line x="36.76" y="69.38"/>
+ <curve x1="36.46" x2="36.46" x3="36.76" y1="69.68" y2="70.28" y3="70.58"/>
+ <line x="40.44" y="73.82"/>
+ <curve x1="40.44" x2="40.6" x3="40.6" y1="73.95" y2="73.96" y3="73.96"/>
+ <curve x1="40.74" x2="41.04" x3="41.17" y1="74.12" y2="74.12" y3="74.12"/>
+ <line x="41.33" y="74.12"/>
+ <curve x1="41.63" x2="41.93" x3="42.07" y1="74.12" y2="74.12" y3="73.82"/>
+ <line x="45.74" y="70.58"/>
+ <curve x1="46.04" x2="46.04" x3="45.74" y1="70.28" y2="69.68" y3="69.38"/>
+ <line x="45.58" y="69.25"/>
+ <curve x1="45.31" x2="44.72" x3="44.29" y1="68.95" y2="68.95" y3="69.25"/>
+ <line x="42.19" y="71.17"/>
+ <line x="42.19" y="66.17"/>
+ <curve x1="45.58" x2="48.96" x3="50.88" y1="68.82" y2="70.87" y3="70.87"/>
+ <curve x1="51.61" x2="51.91" x3="52.21" y1="70.87" y2="70.57" y3="70.44"/>
+ <curve x1="53.24" x2="52.8" x3="50.88" y1="69.55" y2="67.79" y3="65.14"/>
+ <curve x1="50.02" x2="48.83" x3="47.5" y1="63.95" y2="62.49" y3="61"/>
+ <line x="53.24" y="61"/>
+ <line x="51.18" y="62.93"/>
+ <curve x1="50.88" x2="50.88" x3="51.18" y1="63.23" y2="63.66" y3="63.95"/>
+ <line x="51.31" y="64.12"/>
+ <curve x1="51.78" x2="52.21" x3="52.64" y1="64.38" y2="64.38" y3="64.12"/>
+ <line x="56.19" y="60.88"/>
+ <line x="56.19" y="60.71"/>
+ <curve x1="56.49" x2="56.49" x3="56.49" y1="60.71" y2="60.44" y3="60.15"/>
+ <line x="56.49" y="59.98"/>
+ <curve x1="56.49" x2="56.49" x3="56.32" y1="59.85" y2="59.55" y3="59.39"/>
+ <curve x1="56.32" x2="56.32" x3="56.19" y1="59.39" y2="59.25" y3="59.25"/>
+ <line x="52.64" y="56.01"/>
+ <curve x1="52.21" x2="51.78" x3="51.31" y1="55.58" y2="55.58" y3="56.01"/>
+ <line x="51.18" y="56.01"/>
+ <curve x1="50.88" x2="50.88" x3="51.18" y1="56.47" y2="56.9" y3="57.2"/>
+ <line x="53.4" y="59.12"/>
+ <line x="47.8" y="59.12"/>
+ <curve x1="48.96" x2="50.02" x3="50.88" y1="57.8" y2="56.6" y3="55.28"/>
+ <curve x1="52.8" x2="53.24" x3="52.21" y1="52.63" y2="51.01" y3="50.14"/>
+ <curve x1="51.91" x2="51.61" x3="50.88" y1="49.85" y2="49.68" y3="49.68"/>
+ <curve x1="48.96" x2="45.58" x3="42.19" y1="49.68" y2="51.77" y3="54.25"/>
+ <line x="42.19" y="48.95"/>
+ <line x="44.29" y="50.87"/>
+ <curve x1="44.72" x2="45.31" x3="45.58" y1="51.17" y2="51.17" y3="50.87"/>
+ <line x="45.74" y="50.74"/>
+ <curve x1="46.04" x2="46.04" x3="45.74" y1="50.44" y2="49.85" y3="49.55"/>
+ <line x="42.07" y="46.31"/>
+ <line x="42.07" y="46.17"/>
+ <curve x1="41.93" x2="41.63" x3="41.33" y1="46.01" y2="45.88" y3="45.88"/>
+ <line x="41.17" y="45.88"/>
+ <close/>
+ <move x="31.49" y="51.17"/>
+ <line x="31.62" y="51.17"/>
+ <curve x1="32.78" x2="35.6" x3="39.28" y1="51.17" y2="52.63" y3="55.58"/>
+ <curve x1="37.79" x2="36.63" x3="36.2" y1="56.01" y2="57.03" y3="58.36"/>
+ <curve x1="32.52" x2="31.19" x3="31.49" y1="54.55" y2="51.77" y3="51.17"/>
+ <close/>
+ <move x="50.88" y="51.17"/>
+ <line x="51.05" y="51.17"/>
+ <curve x1="51.31" x2="49.85" x3="46.34" y1="51.77" y2="54.55" y3="58.36"/>
+ <curve x1="45.74" x2="44.72" x3="43.23" y1="57.03" y2="56.01" y3="55.58"/>
+ <curve x1="46.91" x2="49.72" x3="50.88" y1="52.63" y2="51.17" y3="51.17"/>
+ <close/>
+ <move x="36.2" y="62.03"/>
+ <curve x1="36.63" x2="37.79" x3="39.28" y1="63.36" y2="64.38" y3="64.98"/>
+ <curve x1="35.6" x2="32.78" x3="31.62" y1="67.79" y2="69.38" y3="69.38"/>
+ <line x="31.49" y="69.38"/>
+ <curve x1="31.19" x2="32.52" x3="36.2" y1="68.65" y2="66.01" y3="62.03"/>
+ <close/>
+ <move x="46.34" y="62.03"/>
+ <curve x1="49.85" x2="51.31" x3="51.05" y1="66.01" y2="68.65" y3="69.38"/>
+ <line x="50.88" y="69.38"/>
+ <curve x1="49.72" x2="46.91" x3="43.23" y1="69.38" y2="67.79" y3="64.98"/>
+ <curve x1="44.72" x2="45.74" x3="46.34" y1="64.38" y2="63.36" y3="62.03"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="phone" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ <move x="24.71" y="25.25"/>
+ <curve x1="24.71" x2="22.56" x3="19.67" y1="22.17" y2="19.59" y3="18.92"/>
+ <curve x1="19.67" x2="19.67" x3="19.67" y1="18.92" y2="18.92" y3="27.63"/>
+ <curve x1="19.67" x2="18.98" x3="18.02" y1="28.53" y2="29.32" y3="29.32"/>
+ <curve x1="18.02" x2="18.02" x3="17.85" y1="29.32" y2="29.32" y3="29.32"/>
+ <curve x1="16.92" x2="16.16" x3="16.16" y1="29.32" y2="28.53" y3="27.63"/>
+ <curve x1="16.16" x2="16.16" x3="16.16" y1="27.63" y2="27.63" y3="18.92"/>
+ <curve x1="13.31" x2="11.15" x3="11.15" y1="19.59" y2="22.17" y3="25.25"/>
+ <curve x1="11.15" x2="11.15" x3="11.15" y1="25.25" y2="25.25" y3="54.55"/>
+ <curve x1="11.15" x2="14.07" x3="17.62" y1="58.16" y2="61.11" y3="61.11"/>
+ <curve x1="17.62" x2="17.62" x3="18.25" y1="61.11" y2="61.11" y3="61.11"/>
+ <curve x1="21.8" x2="24.71" x3="24.71" y1="61.11" y2="58.16" y3="54.55"/>
+ <curve x1="24.71" x2="24.71" x3="24.71" y1="54.55" y2="54.55" y3="25.25"/>
+ <close/>
+ <move x="68.84" y="22.1"/>
+ <curve x1="68.84" x2="67.38" x3="65.63" y1="20.28" y2="18.82" y3="18.82"/>
+ <curve x1="65.63" x2="65.63" x3="30.05" y1="18.82" y2="18.82" y3="18.82"/>
+ <curve x1="28.26" x2="26.8" x3="26.8" y1="18.82" y2="20.28" y3="22.1"/>
+ <curve x1="26.8" x2="26.8" x3="26.8" y1="22.1" y2="22.1" y3="57.9"/>
+ <curve x1="26.8" x2="28.26" x3="30.05" y1="59.72" y2="61.18" y3="61.18"/>
+ <curve x1="30.05" x2="30.05" x3="65.63" y1="61.18" y2="61.18" y3="61.18"/>
+ <curve x1="67.38" x2="68.84" x3="68.84" y1="61.18" y2="59.72" y3="57.9"/>
+ <curve x1="68.84" x2="68.84" x3="68.84" y1="57.9" y2="57.9" y3="22.1"/>
+ <close/>
+ <move x="34.83" y="48.86"/>
+ <curve x1="34.83" x2="33.9" x3="32.7" y1="50.08" y2="51.04" y3="51.04"/>
+ <curve x1="31.51" x2="30.52" x3="30.52" y1="51.04" y2="50.08" y3="48.86"/>
+ <curve x1="30.52" x2="31.51" x3="32.7" y1="47.7" y2="46.67" y3="46.67"/>
+ <curve x1="33.9" x2="34.83" x3="34.83" y1="46.67" y2="47.7" y3="48.86"/>
+ <close/>
+ <move x="41.32" y="48.86"/>
+ <curve x1="41.32" x2="40.33" x3="39.17" y1="50.08" y2="51.04" y3="51.04"/>
+ <curve x1="37.94" x2="37.01" x3="37.01" y1="51.04" y2="50.08" y3="48.86"/>
+ <curve x1="37.01" x2="37.94" x3="39.17" y1="47.7" y2="46.67" y3="46.67"/>
+ <curve x1="40.33" x2="41.32" x3="41.32" y1="46.67" y2="47.7" y3="48.86"/>
+ <close/>
+ <move x="47.79" y="48.86"/>
+ <curve x1="47.79" x2="46.86" x3="45.67" y1="50.08" y2="51.04" y3="51.04"/>
+ <curve x1="44.47" x2="43.51" x3="43.51" y1="51.04" y2="50.08" y3="48.86"/>
+ <curve x1="43.51" x2="44.47" x3="45.67" y1="47.7" y2="46.67" y3="46.67"/>
+ <curve x1="46.86" x2="47.79" x3="47.79" y1="46.67" y2="47.7" y3="48.86"/>
+ <close/>
+ <move x="51.93" y="23"/>
+ <line x="51.93" y="41.84"/>
+ <curve x1="51.93" x2="51.93" x3="31.28" y1="41.84" y2="41.84" y3="41.84"/>
+ <curve x1="31.28" x2="31.28" x3="31.28" y1="41.84" y2="41.84" y3="23"/>
+ <curve x1="31.28" x2="31.28" x3="51.93" y1="23" y2="23" y3="23"/>
+ <close/>
+ <move x="65.03" y="39.29"/>
+ <curve x1="65.03" x2="64.13" x3="62.94" y1="40.45" y2="41.34" y3="41.41"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="62.94" x2="62.94" x3="58.27" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="58.27" x2="58.27" x3="58.23" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="57.04" x2="56.11" x3="56.11" y1="41.41" y2="40.45" y3="39.29"/>
+ <curve x1="56.11" x2="57.04" x3="58.23" y1="38.13" y2="37.17" y3="37.17"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="37.17" y2="37.17" y3="37.17"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="37.17" y2="37.17" y3="37.17"/>
+ <curve x1="58.27" x2="58.27" x3="62.94" y1="37.17" y2="37.17" y3="37.17"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="37.17" y2="37.17" y3="37.17"/>
+ <curve x1="64.13" x2="65.03" x3="65.03" y1="37.24" y2="38.16" y3="39.29"/>
+ <close/>
+ <move x="65.03" y="31.94"/>
+ <curve x1="65.03" x2="64.13" x3="62.94" y1="33.1" y2="33.96" y3="34.02"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="34.02" y2="34.02" y3="34.06"/>
+ <curve x1="62.94" x2="62.94" x3="58.27" y1="34.06" y2="34.06" y3="34.06"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="34.06" y2="34.06" y3="34.06"/>
+ <curve x1="58.27" x2="58.27" x3="58.23" y1="34.06" y2="34.06" y3="34.06"/>
+ <curve x1="57.04" x2="56.11" x3="56.11" y1="34.06" y2="33.13" y3="31.94"/>
+ <curve x1="56.11" x2="57.04" x3="58.23" y1="30.81" y2="29.85" y3="29.85"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="29.85" y2="29.85" y3="29.85"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="29.85" y2="29.85" y3="29.85"/>
+ <curve x1="58.27" x2="58.27" x3="62.94" y1="29.85" y2="29.85" y3="29.85"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="29.85" y2="29.85" y3="29.85"/>
+ <curve x1="64.13" x2="65.03" x3="65.03" y1="29.88" y2="30.81" y3="31.94"/>
+ <close/>
+ <move x="65.03" y="24.62"/>
+ <curve x1="65.03" x2="64.13" x3="62.94" y1="25.75" y2="26.67" y3="26.71"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="26.71" y2="26.71" y3="26.71"/>
+ <curve x1="62.94" x2="62.94" x3="58.27" y1="26.71" y2="26.71" y3="26.71"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="26.71" y2="26.71" y3="26.71"/>
+ <curve x1="58.27" x2="58.27" x3="58.23" y1="26.71" y2="26.71" y3="26.71"/>
+ <curve x1="57.04" x2="56.11" x3="56.11" y1="26.71" y2="25.78" y3="24.62"/>
+ <curve x1="56.11" x2="57.04" x3="58.23" y1="23.43" y2="22.5" y3="22.5"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="22.5" y2="22.5" y3="22.5"/>
+ <curve x1="58.27" x2="58.27" x3="58.27" y1="22.5" y2="22.5" y3="22.5"/>
+ <curve x1="58.27" x2="58.27" x3="62.94" y1="22.5" y2="22.5" y3="22.5"/>
+ <curve x1="62.94" x2="62.94" x3="62.94" y1="22.5" y2="22.5" y3="22.5"/>
+ <curve x1="64.13" x2="65.03" x3="65.03" y1="22.57" y2="23.46" y3="24.62"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="router" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="49.56" y="15.3"/>
+ <curve x1="48.4" x2="47.37" x3="47.37" y1="15.3" y2="16.33" y3="17.49"/>
+ <line x="47.37" y="17.95"/>
+ <curve x1="47.37" x2="48.4" x3="49.56" y1="19.11" y2="20.01" y3="20.01"/>
+ <line x="56.78" y="20.01"/>
+ <line x="44.42" y="32.36"/>
+ <curve x1="43.52" x2="43.52" x3="44.42" y1="33.22" y2="34.54" y3="35.44"/>
+ <line x="44.72" y="35.74"/>
+ <curve x1="45.58" x2="46.9" x3="47.8" y1="36.46" y2="36.46" y3="35.74"/>
+ <line x="60" y="23.52"/>
+ <line x="60" y="30.57"/>
+ <curve x1="60" x2="61.03" x3="62.06" y1="31.76" y2="32.79" y3="32.79"/>
+ <line x="62.52" y="32.79"/>
+ <curve x1="63.84" x2="64.71" x3="64.71" y1="32.79" y2="31.76" y3="30.57"/>
+ <line x="64.71" y="18.22"/>
+ <line x="64.71" y="18.08"/>
+ <curve x1="64.71" x2="64.58" x3="64.11" y1="17.49" y2="16.76" y3="16.33"/>
+ <line x="63.84" y="16.03"/>
+ <curve x1="63.38" x2="62.78" x3="62.35" y1="15.74" y2="15.43" y3="15.43"/>
+ <curve x1="62.22" x2="61.92" x3="61.76" y1="15.43" y2="15.3" y3="15.3"/>
+ <line x="49.56" y="15.3"/>
+ <close/>
+ <move x="20.36" y="15.51"/>
+ <curve x1="19.81" x2="19.26" x3="18.83" y1="15.51" y2="15.74" y3="16.18"/>
+ <line x="18.53" y="16.48"/>
+ <curve x1="17.64" x2="17.64" x3="18.53" y1="17.34" y2="18.66" y3="19.56"/>
+ <line x="30.9" y="31.75"/>
+ <line x="23.67" y="31.75"/>
+ <curve x1="22.51" x2="21.48" x3="21.48" y1="31.75" y2="32.8" y3="33.96"/>
+ <line x="21.48" y="34.4"/>
+ <curve x1="21.48" x2="22.51" x3="23.67" y1="35.59" y2="36.48" y3="36.48"/>
+ <line x="35.87" y="36.48"/>
+ <line x="36.47" y="36.48"/>
+ <curve x1="36.9" x2="37.5" x3="37.96" y1="36.48" y2="36.32" y3="35.89"/>
+ <line x="38.23" y="35.59"/>
+ <curve x1="38.69" x2="38.82" x3="38.82" y1="35.16" y2="34.39" y3="33.83"/>
+ <line x="38.82" y="33.67"/>
+ <line x="38.82" y="21.32"/>
+ <curve x1="38.82" x2="37.96" x3="36.77" y1="20.16" y2="19.26" y3="19.26"/>
+ <line x="36.34" y="19.26"/>
+ <curve x1="35.14" x2="34.11" x3="34.11" y1="19.26" y2="20.16" y3="21.32"/>
+ <line x="34.11" y="28.37"/>
+ <line x="21.91" y="16.18"/>
+ <curve x1="21.47" x2="20.91" x3="20.36" y1="15.74" y2="15.51" y3="15.51"/>
+ <close/>
+ <move x="45.87" y="43.64"/>
+ <curve x1="45.4" x2="44.89" x3="44.56" y1="43.69" y2="43.94" y3="44.26"/>
+ <line x="44.26" y="44.56"/>
+ <curve x1="43.83" x2="43.67" x3="43.67" y1="44.99" y2="45.42" y3="46.02"/>
+ <curve x1="43.53" x2="43.53" x3="43.53" y1="46.18" y2="46.45" y3="46.61"/>
+ <line x="43.53" y="58.8"/>
+ <curve x1="43.53" x2="44.56" x3="45.75" y1="59.99" y2="61.02" y3="61.02"/>
+ <line x="46.18" y="61.02"/>
+ <curve x1="47.34" x2="48.24" x3="48.24" y1="61.02" y2="59.99" y3="58.8"/>
+ <line x="48.24" y="51.61"/>
+ <line x="60.61" y="63.96"/>
+ <curve x1="61.47" x2="62.8" x3="63.69" y1="64.69" y2="64.69" y3="63.96"/>
+ <line x="63.99" y="63.66"/>
+ <curve x1="64.72" x2="64.72" x3="63.99" y1="62.77" y2="61.45" y3="60.59"/>
+ <line x="51.76" y="48.37"/>
+ <line x="58.82" y="48.37"/>
+ <curve x1="60.01" x2="60.87" x3="60.87" y1="48.37" y2="47.34" y3="46.18"/>
+ <line x="60.87" y="45.72"/>
+ <curve x1="60.87" x2="60.01" x3="58.82" y1="44.56" y2="43.66" y3="43.66"/>
+ <line x="46.48" y="43.66"/>
+ <line x="46.32" y="43.66"/>
+ <curve x1="46.18" x2="46.03" x3="45.87" y1="43.63" y2="43.63" y3="43.64"/>
+ <close/>
+ <move x="35.9" y="43.74"/>
+ <curve x1="35.3" x2="34.71" x3="34.26" y1="43.74" y2="43.97" y3="44.41"/>
+ <line x="20.6" y="56.76"/>
+ <line x="20.6" y="49.54"/>
+ <curve x1="20.6" x2="19.57" x3="18.25" y1="48.39" y2="47.36" y3="47.36"/>
+ <line x="17.78" y="47.36"/>
+ <curve x1="16.45" x2="15.29" x3="15.29" y1="47.36" y2="48.39" y3="49.54"/>
+ <line x="15.29" y="61.76"/>
+ <curve x1="15.29" x2="15.43" x3="15.43" y1="62.06" y2="62.19" y3="62.32"/>
+ <curve x1="15.43" x2="15.73" x3="16.19" y1="62.79" y2="63.38" y3="63.81"/>
+ <line x="16.45" y="64.11"/>
+ <curve x1="17.05" x2="17.78" x3="18.38" y1="64.54" y2="64.71" y3="64.71"/>
+ <line x="18.68" y="64.71"/>
+ <line x="32.2" y="64.71"/>
+ <curve x1="33.53" x2="34.72" x3="34.72" y1="64.71" y2="63.82" y3="62.62"/>
+ <line x="34.72" y="62.19"/>
+ <curve x1="34.72" x2="33.53" x3="32.2" y1="61.04" y2="59.98" y3="59.98"/>
+ <line x="24.41" y="59.98"/>
+ <line x="37.94" y="47.79"/>
+ <curve x1="38.84" x2="38.84" x3="37.94" y1="46.9" y2="45.57" y3="44.71"/>
+ <line x="37.64" y="44.41"/>
+ <curve x1="37.13" x2="36.51" x3="35.9" y1="43.97" y2="43.74" y3="43.74"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="secure server" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="16.18" y="0"/>
+ <line x="63.99" y="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <line x="80" y="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <line x="16.18" y="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <line x="0" y="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ <move x="54.68" y="24.22"/>
+ <line x="54.68" y="13.59"/>
+ <curve x1="54.68" x2="54.48" x3="54.01" y1="13.23" y2="12.93" y3="12.93"/>
+ <line x="25.99" y="12.93"/>
+ <curve x1="25.58" x2="25.32" x3="25.32" y1="12.93" y2="13.17" y3="13.6"/>
+ <line x="25.32" y="24.22"/>
+ <close/>
+ <move x="41.18" y="35.48"/>
+ <line x="38.85" y="35.48"/>
+ <line x="38.85" y="30.99"/>
+ <curve x1="37.71" x2="36.6" x3="36.6" y1="31.52" y2="33.14" y3="35.3"/>
+ <curve x1="36.6" x2="38.24" x3="40.05" y1="38.05" y2="40.02" y3="40.02"/>
+ <curve x1="41.7" x2="43.4" x3="43.4" y1="40.02" y2="38.07" y3="35.33"/>
+ <curve x1="43.4" x2="42.44" x3="41.18" y1="33.27" y2="31.62" y3="30.96"/>
+ <close/>
+ <move x="42.85" y="51.83"/>
+ <line x="42.85" y="49.27"/>
+ <curve x1="42.85" x2="41.48" x3="40.03" y1="47.52" y2="46.11" y3="46.11"/>
+ <curve x1="38.55" x2="37.19" x3="37.19" y1="46.11" y2="47.49" y3="49.3"/>
+ <line x="37.19" y="51.83"/>
+ <close/>
+ <move x="45.32" y="62.56"/>
+ <curve x1="45.56" x2="45.65" x3="45.65" y1="62.56" y2="62.36" y3="62.13"/>
+ <line x="45.65" y="51.83"/>
+ <line x="44.25" y="51.83"/>
+ <line x="44.25" y="49.18"/>
+ <curve x1="44.25" x2="42.31" x3="40.05" y1="46.84" y2="44.5" y3="44.5"/>
+ <curve x1="37.52" x2="35.78" x3="35.78" y1="44.5" y2="47.12" y3="49.18"/>
+ <line x="35.78" y="51.83"/>
+ <line x="34.34" y="51.83"/>
+ <line x="34.34" y="62.27"/>
+ <curve x1="34.34" x2="34.38" x3="34.57" y1="62.47" y2="62.56" y3="62.56"/>
+ <close/>
+ <move x="25.96" y="67.06"/>
+ <curve x1="25.59" x2="25.32" x3="25.32" y1="67.06" y2="66.84" y3="66.44"/>
+ <line x="25.32" y="28.72"/>
+ <line x="54.68" y="28.72"/>
+ <line x="54.68" y="66.38"/>
+ <curve x1="54.68" x2="54.48" x3="54.01" y1="66.76" y2="67.06" y3="67.06"/>
+ <close/>
+ <move x="54.17" y="71.61"/>
+ <curve x1="56.84" x2="59.19" x3="59.19" y1="71.61" y2="69.38" y3="66.68"/>
+ <line x="59.19" y="13.38"/>
+ <curve x1="59.19" x2="56.86" x3="54.07" y1="10.73" y2="8.4" y3="8.4"/>
+ <line x="26.01" y="8.4"/>
+ <curve x1="23.13" x2="20.78" x3="20.78" y1="8.4" y2="10.56" y3="13.65"/>
+ <line x="20.78" y="66.59"/>
+ <curve x1="20.78" x2="22.83" x3="25.87" y1="69" y2="71.61" y3="71.61"/>
+ <close/>
+ <move x="39.21" y="58.26"/>
+ <curve x1="39.21" x2="39.55" x3="39.95" y1="58.61" y2="59" y3="59"/>
+ <curve x1="40.38" x2="40.66" x3="40.66" y1="59" y2="58.58" y3="58.23"/>
+ <line x="40.65" y="56.01"/>
+ <curve x1="40.63" x2="40.33" x3="39.97" y1="55.66" y2="55.27" y3="55.27"/>
+ <curve x1="39.46" x2="39.23" x3="39.23" y1="55.27" y2="55.65" y3="56.1"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="server" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="54.17" y="71.61"/>
+ <curve x1="56.84" x2="59.19" x3="59.19" y1="71.61" y2="69.38" y3="66.68"/>
+ <line x="59.19" y="13.38"/>
+ <curve x1="59.19" x2="56.86" x3="54.07" y1="10.73" y2="8.4" y3="8.4"/>
+ <line x="26.01" y="8.4"/>
+ <curve x1="23.13" x2="20.78" x3="20.78" y1="8.4" y2="10.56" y3="13.65"/>
+ <line x="20.78" y="66.59"/>
+ <curve x1="20.78" x2="22.83" x3="25.87" y1="69" y2="71.61" y3="71.61"/>
+ <close/>
+ <move x="25.96" y="67.06"/>
+ <curve x1="25.59" x2="25.32" x3="25.32" y1="67.06" y2="66.84" y3="66.44"/>
+ <line x="25.32" y="28.72"/>
+ <line x="54.68" y="28.72"/>
+ <line x="54.68" y="66.38"/>
+ <curve x1="54.68" x2="54.48" x3="54.01" y1="66.76" y2="67.06" y3="67.06"/>
+ <close/>
+ <move x="41.18" y="35.48"/>
+ <line x="38.85" y="35.48"/>
+ <line x="38.85" y="30.99"/>
+ <curve x1="37.71" x2="36.6" x3="36.6" y1="31.52" y2="33.14" y3="35.3"/>
+ <curve x1="36.6" x2="38.24" x3="40.05" y1="38.05" y2="40.02" y3="40.02"/>
+ <curve x1="41.7" x2="43.4" x3="43.4" y1="40.02" y2="38.07" y3="35.33"/>
+ <curve x1="43.4" x2="42.44" x3="41.18" y1="33.27" y2="31.62" y3="30.96"/>
+ <close/>
+ <move x="54.68" y="24.22"/>
+ <line x="54.68" y="13.59"/>
+ <curve x1="54.68" x2="54.48" x3="54.01" y1="13.23" y2="12.93" y3="12.93"/>
+ <line x="25.99" y="12.93"/>
+ <curve x1="25.58" x2="25.32" x3="25.32" y1="12.93" y2="13.17" y3="13.6"/>
+ <line x="25.32" y="24.22"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <line x="63.99" y="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <line x="80" y="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <line x="16.18" y="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <line x="0" y="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="stacked switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="29.57" y="5.87"/>
+ <line x="23.53" y="11.77"/>
+ <line x="23.53" y="11.9"/>
+ <line x="29.55" y="17.65"/>
+ <line x="23.53" y="23.53"/>
+ <line x="23.53" y="23.66"/>
+ <line x="29.57" y="29.42"/>
+ <line x="29.57" y="26.47"/>
+ <line x="40.01" y="26.47"/>
+ <line x="40.01" y="21.77"/>
+ <line x="50.58" y="21.77"/>
+ <line x="50.58" y="24.69"/>
+ <line x="50.58" y="24.72"/>
+ <line x="50.58" y="27.8"/>
+ <line x="40" y="27.8"/>
+ <line x="40" y="33.53"/>
+ <line x="50.58" y="33.53"/>
+ <line x="50.58" y="36.48"/>
+ <line x="56.48" y="30.72"/>
+ <line x="50.59" y="24.71"/>
+ <line x="56.48" y="18.82"/>
+ <line x="50.58" y="12.93"/>
+ <line x="50.58" y="15.74"/>
+ <line x="40" y="15.74"/>
+ <line x="40" y="20.75"/>
+ <line x="29.57" y="20.75"/>
+ <line x="29.57" y="17.66"/>
+ <line x="29.57" y="14.71"/>
+ <line x="40.01" y="14.71"/>
+ <line x="40.01" y="8.99"/>
+ <line x="29.57" y="8.99"/>
+ <line x="29.57" y="5.87"/>
+ <close/>
+ <move x="4.7" y="38.8"/>
+ <line x="4.7" y="41.18"/>
+ <line x="75.29" y="41.18"/>
+ <line x="75.29" y="38.8"/>
+ <line x="4.7" y="38.8"/>
+ <close/>
+ <move x="40.01" y="45.88"/>
+ <curve x1="39.84" x2="39.71" x3="39.58" y1="45.88" y2="46.01" y3="46.17"/>
+ <line x="39.41" y="46.17"/>
+ <line x="36.93" y="48.65"/>
+ <curve x1="36.76" x2="36.76" x3="36.93" y1="48.95" y2="49.42" y3="49.55"/>
+ <line x="37.06" y="49.68"/>
+ <curve x1="37.35" x2="37.65" x3="37.95" y1="49.85" y2="49.85" y3="49.68"/>
+ <line x="39.41" y="48.23"/>
+ <line x="39.41" y="52.79"/>
+ <curve x1="37.95" x2="36.46" x3="35.43" y1="52.79" y2="53.52" y3="54.42"/>
+ <line x="32.22" y="51.17"/>
+ <line x="34.27" y="51.17"/>
+ <curve x1="34.57" x2="34.87" x3="34.87" y1="51.17" y2="50.87" y3="50.57"/>
+ <line x="34.87" y="50.45"/>
+ <curve x1="34.87" x2="34.57" x3="34.27" y1="50.15" y2="49.85" y3="49.85"/>
+ <line x="30.73" y="49.85"/>
+ <line x="30.59" y="49.85"/>
+ <curve x1="30.46" x2="30.29" x3="30.16" y1="49.85" y2="49.98" y3="49.98"/>
+ <line x="30" y="50.14"/>
+ <curve x1="29.86" x2="29.87" x3="29.87" y1="50.28" y2="50.44" y3="50.74"/>
+ <line x="29.87" y="54.25"/>
+ <curve x1="29.87" x2="30.16" x3="30.46" y1="54.55" y2="54.85" y3="54.85"/>
+ <line x="30.59" y="54.85"/>
+ <curve x1="30.89" x2="31.19" x3="31.19" y1="54.85" y2="54.55" y3="54.25"/>
+ <line x="31.19" y="52.2"/>
+ <line x="34.4" y="55.44"/>
+ <curve x1="33.54" x2="32.78" x3="32.78" y1="56.47" y2="57.93" y3="59.39"/>
+ <line x="28.24" y="59.39"/>
+ <line x="29.7" y="57.93"/>
+ <curve x1="30" x2="30" x3="29.7" y1="57.63" y2="57.2" y3="57.03"/>
+ <line x="29.57" y="56.9"/>
+ <curve x1="29.4" x2="28.97" x3="28.67" y1="56.77" y2="56.77" y3="56.9"/>
+ <line x="26.18" y="59.39"/>
+ <line x="26.18" y="59.55"/>
+ <curve x1="26.02" x2="25.89" x3="25.89" y1="59.68" y2="59.85" y3="59.98"/>
+ <line x="25.89" y="60.15"/>
+ <curve x1="25.89" x2="26.02" x3="26.18" y1="60.28" y2="60.44" y3="60.58"/>
+ <line x="26.18" y="60.71"/>
+ <line x="28.67" y="63.22"/>
+ <curve x1="28.97" x2="29.4" x3="29.57" y1="63.36" y2="63.36" y3="63.22"/>
+ <line x="29.7" y="63.1"/>
+ <curve x1="30" x2="30" x3="29.7" y1="62.8" y2="62.33" y3="62.2"/>
+ <line x="28.24" y="60.71"/>
+ <line x="32.78" y="60.71"/>
+ <curve x1="32.78" x2="33.54" x3="34.4" y1="62.33" y2="63.66" y3="64.68"/>
+ <line x="31.19" y="67.93"/>
+ <line x="31.19" y="65.87"/>
+ <curve x1="31.19" x2="30.89" x3="30.59" y1="65.58" y2="65.28" y3="65.28"/>
+ <line x="30.46" y="65.28"/>
+ <curve x1="30.16" x2="29.87" x3="29.87" y1="65.28" y2="65.58" y3="65.87"/>
+ <line x="29.87" y="69.38"/>
+ <line x="29.87" y="69.55"/>
+ <curve x1="29.87" x2="30" x3="30" y1="69.68" y2="69.85" y3="69.98"/>
+ <line x="30.16" y="70.15"/>
+ <curve x1="30.29" x2="30.46" x3="30.73" y1="70.28" y2="70.28" y3="70.28"/>
+ <line x="34.27" y="70.28"/>
+ <curve x1="34.57" x2="34.87" x3="34.87" y1="70.28" y2="69.98" y3="69.68"/>
+ <line x="34.87" y="69.55"/>
+ <curve x1="34.87" x2="34.57" x3="34.27" y1="69.25" y2="68.95" y3="68.95"/>
+ <line x="32.22" y="68.95"/>
+ <line x="35.43" y="65.71"/>
+ <curve x1="36.46" x2="37.95" x3="39.41" y1="66.6" y2="67.2" y3="67.33"/>
+ <line x="39.41" y="71.9"/>
+ <line x="37.95" y="70.44"/>
+ <curve x1="37.65" x2="37.35" x3="37.06" y1="70.14" y2="70.14" y3="70.44"/>
+ <line x="36.93" y="70.58"/>
+ <curve x1="36.76" x2="36.76" x3="36.93" y1="70.71" y2="71.17" y3="71.47"/>
+ <line x="39.41" y="73.96"/>
+ <line x="39.58" y="73.96"/>
+ <curve x1="39.71" x2="39.84" x3="40.01" y1="74.12" y2="74.12" y3="74.12"/>
+ <line x="40.14" y="74.12"/>
+ <curve x1="40.31" x2="40.6" x3="40.6" y1="74.12" y2="74.12" y3="73.96"/>
+ <line x="40.74" y="73.96"/>
+ <line x="43.23" y="71.47"/>
+ <curve x1="43.39" x2="43.39" x3="43.23" y1="71.17" y2="70.71" y3="70.58"/>
+ <line x="43.09" y="70.44"/>
+ <curve x1="42.79" x2="42.49" x3="42.19" y1="70.14" y2="70.14" y3="70.44"/>
+ <line x="40.74" y="71.9"/>
+ <line x="40.74" y="67.33"/>
+ <curve x1="42.36" x2="43.69" x3="44.72" y1="67.2" y2="66.6" y3="65.71"/>
+ <line x="47.93" y="68.95"/>
+ <line x="45.88" y="68.95"/>
+ <curve x1="45.58" x2="45.31" x3="45.31" y1="68.95" y2="69.25" y3="69.55"/>
+ <line x="45.31" y="69.68"/>
+ <curve x1="45.31" x2="45.58" x3="45.88" y1="69.98" y2="70.28" y3="70.28"/>
+ <line x="49.43" y="70.28"/>
+ <curve x1="49.72" x2="49.86" x3="50.02" y1="70.28" y2="70.28" y3="70.15"/>
+ <line x="50.15" y="69.98"/>
+ <curve x1="50.15" x2="50.29" x3="50.29" y1="69.85" y2="69.68" y3="69.55"/>
+ <line x="50.29" y="69.38"/>
+ <line x="50.29" y="65.87"/>
+ <curve x1="50.29" x2="50.02" x3="49.72" y1="65.58" y2="65.28" y3="65.28"/>
+ <line x="49.56" y="65.28"/>
+ <curve x1="49.26" x2="48.96" x3="48.96" y1="65.28" y2="65.58" y3="65.87"/>
+ <line x="48.96" y="67.93"/>
+ <line x="45.74" y="64.68"/>
+ <curve x1="46.61" x2="47.2" x3="47.37" y1="63.66" y2="62.33" y3="60.71"/>
+ <line x="51.91" y="60.71"/>
+ <line x="50.45" y="62.2"/>
+ <curve x1="50.29" x2="50.29" x3="50.45" y1="62.33" y2="62.8" y3="63.1"/>
+ <line x="50.59" y="63.22"/>
+ <curve x1="50.75" x2="51.18" x3="51.48" y1="63.36" y2="63.36" y3="63.22"/>
+ <line x="53.96" y="60.71"/>
+ <line x="53.96" y="60.58"/>
+ <curve x1="54.13" x2="54.13" x3="54.13" y1="60.44" y2="60.28" y3="60.15"/>
+ <line x="54.13" y="59.98"/>
+ <curve x1="54.13" x2="54.13" x3="53.96" y1="59.85" y2="59.68" y3="59.55"/>
+ <line x="53.96" y="59.39"/>
+ <line x="51.48" y="56.9"/>
+ <curve x1="51.18" x2="50.75" x3="50.59" y1="56.77" y2="56.77" y3="56.9"/>
+ <line x="50.45" y="57.03"/>
+ <curve x1="50.29" x2="50.29" x3="50.45" y1="57.2" y2="57.63" y3="57.93"/>
+ <line x="51.91" y="59.39"/>
+ <line x="47.37" y="59.39"/>
+ <curve x1="47.2" x2="46.61" x3="45.74" y1="57.93" y2="56.47" y3="55.44"/>
+ <line x="48.96" y="52.2"/>
+ <line x="48.96" y="54.25"/>
+ <curve x1="48.96" x2="49.26" x3="49.56" y1="54.55" y2="54.85" y3="54.85"/>
+ <line x="49.72" y="54.85"/>
+ <curve x1="50.02" x2="50.29" x3="50.29" y1="54.85" y2="54.55" y3="54.25"/>
+ <line x="50.29" y="50.74"/>
+ <curve x1="50.29" x2="50.28" x3="50.15" y1="50.44" y2="50.28" y3="50.14"/>
+ <line x="50.02" y="49.98"/>
+ <curve x1="49.86" x2="49.72" x3="49.56" y1="49.98" y2="49.85" y3="49.85"/>
+ <line x="49.43" y="49.85"/>
+ <line x="45.88" y="49.85"/>
+ <curve x1="45.58" x2="45.31" x3="45.31" y1="49.85" y2="50.15" y3="50.45"/>
+ <line x="45.31" y="50.57"/>
+ <curve x1="45.31" x2="45.58" x3="45.88" y1="50.87" y2="51.17" y3="51.17"/>
+ <line x="47.93" y="51.17"/>
+ <line x="44.72" y="54.42"/>
+ <curve x1="43.69" x2="42.36" x3="40.74" y1="53.52" y2="52.79" y3="52.79"/>
+ <line x="40.74" y="48.23"/>
+ <line x="42.19" y="49.68"/>
+ <curve x1="42.49" x2="42.79" x3="43.09" y1="49.85" y2="49.85" y3="49.68"/>
+ <line x="43.23" y="49.55"/>
+ <curve x1="43.39" x2="43.39" x3="43.23" y1="49.42" y2="48.95" y3="48.65"/>
+ <line x="40.74" y="46.17"/>
+ <line x="40.6" y="46.17"/>
+ <curve x1="40.6" x2="40.31" x3="40.14" y1="46.01" y2="45.88" y3="45.88"/>
+ <line x="40.01" y="45.88"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="storage" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.01" y="16.48"/>
+ <curve x1="28.38" x2="16.47" x3="16.47" y1="16.48" y2="19.13" y3="24.13"/>
+ <line x="16.47" y="35.28"/>
+ <line x="16.47" y="44.69"/>
+ <line x="16.47" y="56.02"/>
+ <curve x1="16.47" x2="28.38" x3="40.01" y1="61.02" y2="63.53" y3="63.53"/>
+ <curve x1="51.78" x2="63.55" x3="63.55" y1="63.53" y2="61.02" y3="56.02"/>
+ <line x="63.55" y="44.69"/>
+ <line x="63.55" y="35.28"/>
+ <line x="63.55" y="24.13"/>
+ <curve x1="63.55" x2="51.78" x3="40.01" y1="19.13" y2="16.48" y3="16.48"/>
+ <close/>
+ <move x="40.01" y="19.56"/>
+ <curve x1="52.51" x2="60.3" x3="60.3" y1="19.56" y2="22.51" y3="24.13"/>
+ <curve x1="60.3" x2="53.11" x3="40.01" y1="25.72" y2="28.66" y3="28.66"/>
+ <curve x1="27.05" x2="19.85" x3="19.85" y1="28.66" y2="25.72" y3="24.13"/>
+ <curve x1="19.85" x2="27.51" x3="40.01" y1="22.51" y2="19.56" y3="19.56"/>
+ <close/>
+ <move x="19.85" y="28.23"/>
+ <curve x1="24.26" x2="32.22" x3="40.01" y1="30.42" y2="31.61" y3="31.61"/>
+ <curve x1="47.94" x2="55.89" x3="60.3" y1="31.61" y2="30.42" y3="28.23"/>
+ <line x="60.3" y="35.28"/>
+ <curve x1="60.3" x2="53.11" x3="40.01" y1="36.77" y2="39.71" y3="39.71"/>
+ <curve x1="27.05" x2="19.85" x3="19.85" y1="39.71" y2="36.77" y3="35.28"/>
+ <line x="19.85" y="28.23"/>
+ <close/>
+ <move x="60.3" y="39.07"/>
+ <line x="60.3" y="44.69"/>
+ <curve x1="60.3" x2="53.11" x3="40.01" y1="46.77" y2="50.45" y3="50.45"/>
+ <curve x1="27.05" x2="19.85" x3="19.85" y1="50.45" y2="46.77" y3="44.69"/>
+ <line x="19.85" y="39.12"/>
+ <curve x1="24.21" x2="32.17" x3="40.01" y1="41.27" y2="42.36" y3="42.36"/>
+ <curve x1="48.01" x2="56" x3="60.3" y1="42.36" y2="41.25" y3="39.07"/>
+ <close/>
+ <move x="60.3" y="49.78"/>
+ <line x="60.3" y="56.02"/>
+ <curve x1="60.3" x2="53.11" x3="40.01" y1="57.47" y2="60.59" y3="60.59"/>
+ <curve x1="27.05" x2="19.85" x3="19.85" y1="60.59" y2="57.47" y3="56.02"/>
+ <line x="19.85" y="49.84"/>
+ <curve x1="24.21" x2="32.17" x3="40.01" y1="52.7" y2="54.12" y3="54.12"/>
+ <curve x1="48.01" x2="55.99" x3="60.3" y1="54.12" y2="52.68" y3="49.78"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="22.65" y="14.11"/>
+ <line x="12.94" y="23.52"/>
+ <line x="22.65" y="32.95"/>
+ <line x="22.65" y="28.22"/>
+ <line x="38.84" y="28.22"/>
+ <line x="38.84" y="18.98"/>
+ <line x="22.65" y="18.98"/>
+ <line x="22.65" y="14.11"/>
+ <close/>
+ <move x="57.66" y="25.87"/>
+ <line x="57.66" y="30.57"/>
+ <line x="41.18" y="30.57"/>
+ <line x="41.18" y="39.98"/>
+ <line x="57.66" y="39.98"/>
+ <line x="57.66" y="44.71"/>
+ <line x="66.91" y="35.58"/>
+ <line x="67.08" y="35.28"/>
+ <line x="57.66" y="25.87"/>
+ <close/>
+ <move x="22.65" y="35.28"/>
+ <line x="12.94" y="44.69"/>
+ <line x="22.65" y="54.12"/>
+ <line x="22.65" y="49.39"/>
+ <line x="38.84" y="49.39"/>
+ <line x="38.84" y="39.98"/>
+ <line x="22.65" y="39.98"/>
+ <line x="22.65" y="35.28"/>
+ <close/>
+ <move x="57.66" y="47.05"/>
+ <line x="57.66" y="51.75"/>
+ <line x="41.18" y="51.75"/>
+ <line x="41.18" y="61.02"/>
+ <line x="57.66" y="61.02"/>
+ <line x="57.66" y="65.88"/>
+ <line x="66.91" y="56.45"/>
+ <line x="67.08" y="56.45"/>
+ <line x="57.66" y="47.05"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="tls appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.55" y="22.36"/>
+ <curve x1="36.34" x2="33.25" x3="31.03" y1="22.36" y2="23.68" y3="26.03"/>
+ <curve x1="28.84" x2="27.51" x3="27.51" y1="28.38" y2="31.46" y3="34.84"/>
+ <line x="27.51" y="35.87"/>
+ <line x="17.63" y="47.36"/>
+ <line x="9.11" y="47.36"/>
+ <curve x1="7.79" x2="7.06" x3="7.06" y1="47.36" y2="50.01" y3="52.49"/>
+ <curve x1="7.06" x2="7.79" x3="9.11" y1="55.01" y2="57.65" y3="57.65"/>
+ <line x="34.28" y="57.65"/>
+ <line x="34.28" y="55.73"/>
+ <line x="22.64" y="55.73"/>
+ <line x="23.84" y="54.24"/>
+ <line x="32.06" y="54.24"/>
+ <line x="32.06" y="52.35"/>
+ <line x="25.46" y="52.35"/>
+ <line x="32.22" y="44.71"/>
+ <curve x1="34.28" x2="36.77" x3="39.55" y1="46.16" y2="47.06" y3="47.06"/>
+ <curve x1="42.5" x2="45.29" x3="47.34" y1="47.06" y2="46.03" y3="44.11"/>
+ <line x="54.57" y="52.35"/>
+ <line x="51.02" y="52.35"/>
+ <line x="51.02" y="54.24"/>
+ <line x="56.33" y="54.24"/>
+ <line x="57.52" y="55.73"/>
+ <line x="53.24" y="55.73"/>
+ <line x="53.24" y="57.65"/>
+ <line x="71.04" y="57.65"/>
+ <curve x1="72.37" x2="72.93" x3="72.93" y1="57.65" y2="55.01" y3="52.49"/>
+ <curve x1="72.93" x2="72.37" x3="71.04" y1="50.01" y2="47.36" y3="47.36"/>
+ <line x="62.49" y="47.36"/>
+ <line x="51.49" y="34.54"/>
+ <curve x1="51.49" x2="46.18" x3="39.55" y1="27.95" y2="22.36" y3="22.36"/>
+ <close/>
+ <move x="39.55" y="24.11"/>
+ <curve x1="41.91" x2="44.13" x3="45.88" y1="24.11" y2="25.01" y3="26.33"/>
+ <curve x1="45.75" x2="45.45" x3="45.15" y1="26.46" y2="26.46" y3="26.46"/>
+ <line x="45.15" y="27.19"/>
+ <line x="46.31" y="27.19"/>
+ <line x="46.31" y="30.14"/>
+ <line x="47.07" y="30.14"/>
+ <line x="47.07" y="27.49"/>
+ <curve x1="47.51" x2="47.81" x3="48.11" y1="27.95" y2="28.38" y3="28.81"/>
+ <curve x1="48.4" x2="48.54" x3="48.67" y1="29.11" y2="29.4" y3="29.7"/>
+ <curve x1="48.97" x2="49.27" x3="49.43" y1="30.3" y2="30.87" y3="31.63"/>
+ <curve x1="49.56" x2="49.7" x3="49.7" y1="31.89" y2="32.35" y3="32.65"/>
+ <line x="49.7" y="32.79"/>
+ <curve x1="49.43" x2="49.13" x3="48.84" y1="32.65" y2="32.49" y3="32.49"/>
+ <curve x1="48.4" x2="47.94" x3="47.64" y1="32.49" y2="32.65" y3="33.08"/>
+ <curve x1="47.34" x2="47.21" x3="47.21" y1="33.51" y2="34.11" y3="34.84"/>
+ <curve x1="47.21" x2="47.34" x3="47.64" y1="35.56" y2="36.03" y3="36.46"/>
+ <curve x1="47.94" x2="48.4" x3="48.84" y1="36.89" y2="37.06" y3="37.06"/>
+ <curve x1="49.13" x2="49.43" x3="49.7" y1="37.06" y2="37.06" y3="36.89"/>
+ <line x="49.7" y="37.06"/>
+ <curve x1="49.7" x2="49.69" x3="49.56" y1="37.19" y2="37.35" y3="37.48"/>
+ <curve x1="49.26" x2="48.83" x3="48.11" y1="38.68" y2="39.71" y3="40.73"/>
+ <curve x1="48.11" x2="47.94" x3="47.8" y1="40.44" y2="40.3" y3="40"/>
+ <curve x1="47.51" x2="47.08" x3="46.61" y1="39.71" y2="39.41" y3="39.41"/>
+ <curve x1="46.05" x2="45.59" x3="45.45" y1="39.41" y2="39.71" y3="40"/>
+ <curve x1="45.15" x2="44.86" x3="44.86" y1="40.43" y2="41.03" y3="41.76"/>
+ <curve x1="44.86" x2="45.15" x3="45.29" y1="42.35" y2="42.92" y3="43.38"/>
+ <curve x1="45.45" x2="45.45" x3="45.45" y1="43.38" y2="43.51" y3="43.68"/>
+ <curve x1="45.15" x2="44.56" x3="44.13" y1="43.98" y2="44.24" y3="44.41"/>
+ <curve x1="43.7" x2="43.39" x3="43.1" y1="44.71" y2="44.7" y3="44.84"/>
+ <curve x1="42.67" x2="42.07" x3="41.6" y1="45" y2="45.14" y3="45.3"/>
+ <curve x1="41.34" x2="41.04" x3="40.58" y1="45.3" y2="45.43" y3="45.43"/>
+ <curve x1="40.31" x2="39.85" x3="39.55" y1="45.56" y2="45.57" y3="45.57"/>
+ <curve x1="39.12" x2="38.82" x3="38.39" y1="45.57" y2="45.56" y3="45.43"/>
+ <curve x1="38.09" x2="37.66" x3="37.36" y1="45.43" y2="45.3" y3="45.3"/>
+ <curve x1="36.93" x2="36.33" x3="35.87" y1="45.14" y2="45" y3="44.84"/>
+ <curve x1="35.6" x2="35.31" x3="35.01" y1="44.7" y2="44.71" y3="44.41"/>
+ <curve x1="34.71" x2="34.41" x3="34.11" y1="44.24" y2="44.11" y3="43.98"/>
+ <curve x1="34.58" x2="34.84" x3="35.14" y1="43.98" y2="43.68" y3="43.38"/>
+ <curve x1="35.44" x2="35.44" x3="35.44" y1="42.92" y2="42.35" y3="41.76"/>
+ <curve x1="35.44" x2="35.44" x3="35.14" y1="41.03" y2="40.43" y3="40"/>
+ <curve x1="34.84" x2="34.41" x3="33.81" y1="39.71" y2="39.41" y3="39.41"/>
+ <curve x1="33.25" x2="32.95" x3="32.65" y1="39.41" y2="39.71" y3="40"/>
+ <curve x1="32.35" x2="32.22" x3="32.22" y1="40.43" y2="41.03" y3="41.76"/>
+ <line x="32.22" y="42.35"/>
+ <line x="32.22" y="42.49"/>
+ <line x="32.06" y="42.35"/>
+ <line x="31.76" y="41.89"/>
+ <curve x1="31.46" x2="31.19" x3="30.9" y1="41.63" y2="41.16" y3="40.73"/>
+ <curve x1="30.73" x2="30.6" x3="30.6" y1="40.57" y2="40.3" y3="40.13"/>
+ <curve x1="30.44" x2="30.13" x3="30.13" y1="40" y2="39.41" y3="39.41"/>
+ <curve x1="29.87" x2="29.57" x3="29.4" y1="38.81" y2="38.21" y3="37.48"/>
+ <curve x1="29.4" x2="29.41" x3="29.28" y1="37.35" y2="37.19" y3="37.06"/>
+ <line x="29.4" y="37.06"/>
+ <curve x1="30" x2="30.3" x3="30.6" y1="37.06" y2="36.89" y3="36.46"/>
+ <curve x1="30.9" x2="31.03" x3="31.03" y1="36.03" y2="35.56" y3="34.84"/>
+ <curve x1="31.03" x2="30.9" x3="30.6" y1="34.11" y2="33.51" y3="33.08"/>
+ <curve x1="30.3" x2="29.87" x3="29.4" y1="32.65" y2="32.49" y3="32.49"/>
+ <line x="29.28" y="32.49"/>
+ <curve x1="29.41" x2="29.57" x3="29.57" y1="32.19" y2="31.89" y3="31.63"/>
+ <curve x1="29.7" x2="29.87" x3="30.13" y1="31.03" y2="30.6" y3="30.14"/>
+ <curve x1="30.13" x2="30.3" x3="30.3" y1="30.01" y2="29.7" y3="29.7"/>
+ <curve x1="30.6" x2="30.6" x3="30.9" y1="29.4" y2="29.11" y3="28.81"/>
+ <curve x1="31.33" x2="31.93" x3="32.36" y1="28.22" y2="27.49" y3="26.92"/>
+ <line x="32.36" y="27.95"/>
+ <curve x1="32.36" x2="32.49" x3="32.65" y1="28.68" y2="29.11" y3="29.54"/>
+ <curve x1="33.08" x2="33.38" x3="33.98" y1="30" y2="30.14" y3="30.14"/>
+ <curve x1="34.58" x2="34.84" x3="35.3" y1="30.14" y2="30" y3="29.54"/>
+ <curve x1="35.44" x2="35.61" x3="35.61" y1="29.11" y2="28.51" y3="27.95"/>
+ <curve x1="35.61" x2="35.44" x3="35.3" y1="27.19" y2="26.63" y3="26.16"/>
+ <curve x1="34.84" x2="34.58" x3="34.11" y1="25.73" y2="25.73" y3="25.6"/>
+ <curve x1="35.74" x2="37.5" x3="39.55" y1="24.54" y2="24.11" y3="24.11"/>
+ <close/>
+ <move x="32.06" y="42.35"/>
+ <line x="32.22" y="42.35"/>
+ <line x="32.06" y="42.19"/>
+ <line x="32.06" y="42.35"/>
+ <close/>
+ <move x="37.29" y="24.69"/>
+ <curve x1="37.29" x2="37.15" x3="36.99" y1="25.15" y2="25.28" y3="25.45"/>
+ <curve x1="36.72" x2="36.42" x3="35.83" y1="25.58" y2="25.74" y3="25.74"/>
+ <line x="35.83" y="26.31"/>
+ <line x="37.29" y="26.31"/>
+ <line x="37.29" y="29.42"/>
+ <line x="38.19" y="29.42"/>
+ <line x="38.19" y="24.69"/>
+ <line x="37.29" y="24.69"/>
+ <close/>
+ <move x="41.33" y="24.69"/>
+ <curve x1="40.9" x2="40.6" x3="40.3" y1="24.69" y2="24.99" y3="25.45"/>
+ <curve x1="40.14" x2="40" x3="40" y1="25.88" y2="26.48" y3="27.2"/>
+ <curve x1="40" x2="40.14" x3="40.3" y1="27.93" y2="28.37" y3="28.83"/>
+ <curve x1="40.6" x2="40.9" x3="41.33" y1="29.42" y2="29.42" y3="29.42"/>
+ <curve x1="41.63" x2="41.93" x3="42.23" y1="29.42" y2="29.42" y3="28.83"/>
+ <curve x1="42.36" x2="42.36" x3="42.36" y1="28.37" y2="27.8" y3="27.2"/>
+ <curve x1="42.36" x2="42.36" x3="42.23" y1="26.48" y2="25.88" y3="25.45"/>
+ <curve x1="41.93" x2="41.63" x3="41.33" y1="24.99" y2="24.69" y3="24.69"/>
+ <close/>
+ <move x="41.33" y="25.45"/>
+ <curve x1="41.63" x2="41.76" x3="41.76" y1="25.45" y2="26.01" y3="27.2"/>
+ <curve x1="41.76" x2="41.63" x3="41.33" y1="28.23" y2="28.66" y3="28.66"/>
+ <curve x1="40.9" x2="40.73" x3="40.73" y1="28.66" y2="28.23" y3="27.2"/>
+ <curve x1="40.73" x2="40.9" x3="41.33" y1="26.01" y2="25.45" y3="25.45"/>
+ <close/>
+ <move x="33.98" y="26.33"/>
+ <curve x1="34.41" x2="34.71" x3="34.71" y1="26.33" y2="26.92" y3="27.95"/>
+ <curve x1="34.71" x2="34.41" x3="33.98" y1="28.98" y2="29.41" y3="29.41"/>
+ <curve x1="33.38" x2="33.25" x3="33.25" y1="29.41" y2="28.98" y3="27.95"/>
+ <curve x1="33.25" x2="33.38" x3="33.98" y1="26.92" y2="26.33" y3="26.33"/>
+ <close/>
+ <move x="33.17" y="31.75"/>
+ <curve x1="33.03" x2="33.03" x3="32.74" y1="32.04" y2="32.34" y3="32.34"/>
+ <curve x1="32.6" x2="32.3" x3="31.7" y1="32.64" y2="32.64" y3="32.64"/>
+ <line x="31.7" y="33.37"/>
+ <line x="33.03" y="33.37"/>
+ <line x="33.03" y="36.48"/>
+ <line x="34.06" y="36.48"/>
+ <line x="34.06" y="31.75"/>
+ <line x="33.17" y="31.75"/>
+ <close/>
+ <move x="37.45" y="31.75"/>
+ <curve x1="37.08" x2="36.72" x3="36.39" y1="31.75" y2="31.91" y3="32.34"/>
+ <curve x1="36.19" x2="36.02" x3="36.02" y1="32.81" y2="33.37" y3="34.1"/>
+ <curve x1="36.02" x2="36.19" x3="36.39" y1="34.86" y2="35.42" y3="35.89"/>
+ <curve x1="36.72" x2="37.08" x3="37.45" y1="36.32" y2="36.48" y3="36.48"/>
+ <curve x1="37.98" x2="38.35" x3="38.68" y1="36.48" y2="36.32" y3="35.89"/>
+ <curve x1="38.88" x2="38.88" x3="38.88" y1="35.42" y2="34.86" y3="34.1"/>
+ <curve x1="38.88" x2="38.88" x3="38.68" y1="33.37" y2="32.94" y3="32.51"/>
+ <curve x1="38.35" x2="37.98" x3="37.45" y1="31.91" y2="31.75" y3="31.75"/>
+ <close/>
+ <move x="41.16" y="31.75"/>
+ <curve x1="40.9" x2="40.6" x3="40.3" y1="31.75" y2="31.91" y3="32.34"/>
+ <curve x1="40.14" x2="40" x3="40" y1="32.81" y2="33.37" y3="34.1"/>
+ <curve x1="40" x2="40.14" x3="40.3" y1="34.86" y2="35.42" y3="35.89"/>
+ <curve x1="40.6" x2="40.9" x3="41.16" y1="36.32" y2="36.48" y3="36.48"/>
+ <curve x1="41.63" x2="41.93" x3="42.23" y1="36.48" y2="36.32" y3="35.89"/>
+ <curve x1="42.36" x2="42.36" x3="42.36" y1="35.42" y2="34.86" y3="34.1"/>
+ <curve x1="42.36" x2="42.36" x3="42.23" y1="33.37" y2="32.94" y3="32.51"/>
+ <curve x1="41.93" x2="41.63" x3="41.16" y1="31.91" y2="31.75" y3="31.75"/>
+ <close/>
+ <move x="45.21" y="31.75"/>
+ <curve x1="45.04" x2="44.91" x3="44.61" y1="32.04" y2="32.34" y3="32.34"/>
+ <curve x1="44.48" x2="44.18" x3="43.58" y1="32.64" y2="32.64" y3="32.64"/>
+ <line x="43.58" y="33.37"/>
+ <line x="45.04" y="33.37"/>
+ <line x="45.04" y="36.48"/>
+ <line x="45.94" y="36.48"/>
+ <line x="45.94" y="31.75"/>
+ <line x="45.21" y="31.75"/>
+ <close/>
+ <move x="37.45" y="32.64"/>
+ <curve x1="37.98" x2="38.15" x3="38.15" y1="32.64" y2="33.07" y3="34.1"/>
+ <curve x1="38.15" x2="37.98" x3="37.45" y1="35.29" y2="35.72" y3="35.72"/>
+ <curve x1="37.08" x2="36.92" x3="36.92" y1="35.72" y2="35.29" y3="34.1"/>
+ <curve x1="36.92" x2="37.08" x3="37.45" y1="33.07" y2="32.64" y3="32.64"/>
+ <close/>
+ <move x="41.16" y="32.64"/>
+ <curve x1="41.63" x2="41.76" x3="41.76" y1="32.64" y2="33.07" y3="34.1"/>
+ <curve x1="41.76" x2="41.63" x3="41.16" y1="35.29" y2="35.72" y3="35.72"/>
+ <curve x1="40.9" x2="40.73" x3="40.73" y1="35.72" y2="35.29" y3="34.1"/>
+ <curve x1="40.73" x2="40.9" x3="41.16" y1="33.07" y2="32.64" y3="32.64"/>
+ <close/>
+ <move x="29.11" y="33.22"/>
+ <line x="29.4" y="33.22"/>
+ <curve x1="29.87" x2="30.13" x3="30.13" y1="33.22" y2="33.68" y3="34.84"/>
+ <curve x1="30.13" x2="29.87" x3="29.4" y1="35.86" y2="36.33" y3="36.33"/>
+ <line x="29.11" y="36.33"/>
+ <line x="29.11" y="34.84"/>
+ <line x="29.11" y="33.22"/>
+ <close/>
+ <move x="48.84" y="33.22"/>
+ <curve x1="49.43" x2="49.7" x3="49.7" y1="33.22" y2="33.68" y3="34.84"/>
+ <curve x1="49.7" x2="49.43" x3="48.84" y1="35.86" y2="36.33" y3="36.33"/>
+ <curve x1="48.4" x2="48.11" x3="48.11" y1="36.33" y2="35.86" y3="34.84"/>
+ <curve x1="48.11" x2="48.4" x3="48.84" y1="33.68" y2="33.22" y3="33.22"/>
+ <close/>
+ <move x="41.8" y="39.29"/>
+ <curve x1="41.46" x2="41.13" x3="40.8" y1="39.29" y2="39.59" y3="40.06"/>
+ <curve x1="40.64" x2="40.47" x3="40.47" y1="40.49" y2="41.08" y3="41.81"/>
+ <curve x1="40.47" x2="40.64" x3="40.8" y1="42.41" y2="42.97" y3="43.43"/>
+ <curve x1="40.97" x2="41.46" x3="41.8" y1="43.86" y2="44.03" y3="44.03"/>
+ <curve x1="42.29" x2="42.66" x3="42.99" y1="44.03" y2="43.86" y3="43.43"/>
+ <curve x1="43.15" x2="43.15" x3="43.15" y1="42.97" y2="42.41" y3="41.81"/>
+ <curve x1="43.15" x2="43.15" x3="42.82" y1="41.08" y2="40.49" y3="40.06"/>
+ <curve x1="42.66" x2="42.29" x3="41.8" y1="39.59" y2="39.29" y3="39.29"/>
+ <close/>
+ <move x="38" y="39.49"/>
+ <curve x1="37.84" x2="37.7" x3="37.54" y1="39.95" y2="40.08" y3="40.25"/>
+ <curve x1="37.27" x2="36.97" x3="36.38" y1="40.38" y2="40.55" y3="40.55"/>
+ <line x="36.38" y="41.28"/>
+ <line x="37.7" y="41.28"/>
+ <line x="37.7" y="44.22"/>
+ <line x="38.73" y="44.22"/>
+ <line x="38.73" y="39.49"/>
+ <line x="38" y="39.49"/>
+ <close/>
+ <move x="33.81" y="40.13"/>
+ <curve x1="34.41" x2="34.58" x3="34.58" y1="40.13" y2="40.73" y3="41.76"/>
+ <curve x1="34.58" x2="34.41" x3="33.81" y1="42.78" y2="43.22" y3="43.22"/>
+ <curve x1="33.38" x2="33.09" x3="33.09" y1="43.22" y2="42.78" y3="41.76"/>
+ <curve x1="33.09" x2="33.38" x3="33.81" y1="40.73" y2="40.13" y3="40.13"/>
+ <close/>
+ <move x="46.61" y="40.13"/>
+ <curve x1="47.08" x2="47.34" x3="47.34" y1="40.13" y2="40.73" y3="41.76"/>
+ <curve x1="47.34" x2="47.34" x3="47.21" y1="41.89" y2="41.89" y3="41.89"/>
+ <curve x1="47.08" x2="46.91" x3="46.91" y1="42.19" y2="42.19" y3="42.35"/>
+ <curve x1="46.61" x2="46.48" x3="46.18" y1="42.65" y2="42.92" y3="42.92"/>
+ <curve x1="45.89" x2="45.88" x3="45.88" y1="42.78" y2="42.35" y3="41.76"/>
+ <curve x1="45.88" x2="46.18" x3="46.61" y1="40.73" y2="40.13" y3="40.13"/>
+ <close/>
+ <move x="41.8" y="40.19"/>
+ <curve x1="42.29" x2="42.49" x3="42.49" y1="40.19" y2="40.78" y3="41.81"/>
+ <curve x1="42.49" x2="42.29" x3="41.8" y1="42.84" y2="43.26" y3="43.26"/>
+ <curve x1="41.46" x2="41.3" x3="41.3" y1="43.26" y2="42.84" y3="41.81"/>
+ <curve x1="41.3" x2="41.46" x3="41.8" y1="40.78" y2="40.19" y3="40.19"/>
+ <close/>
+ <move x="9.11" y="48.38"/>
+ <curve x1="9.41" x2="10.14" x3="10.14" y1="48.38" y2="49.84" y3="52.49"/>
+ <curve x1="10.14" x2="9.41" x3="9.11" y1="55.14" y2="56.59" y3="56.59"/>
+ <curve x1="8.81" x2="8.09" x3="8.09" y1="56.59" y2="55.14" y3="52.49"/>
+ <curve x1="8.09" x2="8.81" x3="9.11" y1="49.84" y2="48.38" y3="48.38"/>
+ <close/>
+ <move x="42.36" y="51.84"/>
+ <line x="42.36" y="54.22"/>
+ <line x="47.06" y="54.22"/>
+ <line x="47.06" y="51.84"/>
+ <line x="42.36" y="51.84"/>
+ <close/>
+ <move x="35.3" y="51.94"/>
+ <line x="35.3" y="54.32"/>
+ <line x="40" y="54.32"/>
+ <line x="40" y="51.94"/>
+ <line x="35.3" y="51.94"/>
+ <close/>
+ <move x="37.65" y="55.27"/>
+ <line x="37.65" y="57.65"/>
+ <line x="42.36" y="57.65"/>
+ <line x="42.36" y="55.27"/>
+ <line x="37.65" y="55.27"/>
+ <close/>
+ <move x="44.71" y="55.27"/>
+ <line x="44.71" y="57.65"/>
+ <line x="49.42" y="57.65"/>
+ <line x="49.42" y="55.27"/>
+ <line x="44.71" y="55.27"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="unified access switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40" y="7.07"/>
+ <curve x1="39.71" x2="39.41" x3="39.11" y1="7.07" y2="7.2" y3="7.5"/>
+ <line x="38.98" y="7.64"/>
+ <line x="34.4" y="11.9"/>
+ <curve x1="33.97" x2="33.97" x3="34.4" y1="12.34" y2="13.1" y3="13.53"/>
+ <line x="34.56" y="13.66"/>
+ <curve x1="35" x2="35.73" x3="36.16" y1="14.12" y2="14.12" y3="13.66"/>
+ <line x="38.81" y="11.01"/>
+ <line x="38.81" y="18.96"/>
+ <curve x1="36.03" x2="33.54" x3="31.45" y1="19.25" y2="20.28" y3="21.91"/>
+ <line x="25.58" y="16.31"/>
+ <line x="29.39" y="16.31"/>
+ <curve x1="29.99" x2="30.42" x3="30.42" y1="16.31" y2="15.88" y3="15.28"/>
+ <line x="30.42" y="14.98"/>
+ <curve x1="30.42" x2="29.99" x3="29.39" y1="14.42" y2="13.96" y3="13.96"/>
+ <line x="22.93" y="13.96"/>
+ <line x="22.63" y="13.96"/>
+ <curve x1="22.33" x2="22.07" x3="21.77" y1="13.96" y2="14.13" y3="14.26"/>
+ <line x="21.6" y="14.55"/>
+ <curve x1="21.3" x2="21.3" x3="21.3" y1="14.72" y2="14.99" y3="15.28"/>
+ <line x="21.3" y="15.45"/>
+ <line x="21.3" y="21.61"/>
+ <curve x1="21.3" x2="21.77" x3="22.5" y1="22.2" y2="22.8" y3="22.8"/>
+ <line x="22.63" y="22.8"/>
+ <curve x1="23.36" x2="23.83" x3="23.83" y1="22.8" y2="22.2" y3="21.61"/>
+ <line x="23.83" y="18.1"/>
+ <line x="29.69" y="23.66"/>
+ <curve x1="27.94" x2="26.91" x3="26.61" y1="25.58" y2="28.1" y3="30.71"/>
+ <line x="18.39" y="30.71"/>
+ <line x="21.01" y="28.1"/>
+ <curve x1="21.47" x2="21.47" x3="21.01" y1="27.64" y2="27.04" y3="26.61"/>
+ <line x="20.87" y="26.31"/>
+ <curve x1="20.44" x2="19.72" x3="19.25" y1="26.01" y2="26.01" y3="26.31"/>
+ <line x="14.71" y="30.71"/>
+ <line x="14.41" y="31.01"/>
+ <curve x1="14.24" x2="14.11" x3="14.11" y1="31.18" y2="31.47" y3="31.77"/>
+ <line x="14.11" y="32.04"/>
+ <curve x1="14.11" x2="14.24" x3="14.54" y1="32.33" y2="32.64" y3="32.8"/>
+ <line x="14.71" y="32.93"/>
+ <line x="19.25" y="37.21"/>
+ <curve x1="19.72" x2="20.44" x3="20.87" y1="37.64" y2="37.64" y3="37.21"/>
+ <line x="21.01" y="37.04"/>
+ <curve x1="21.47" x2="21.47" x3="21.01" y1="36.77" y2="36.01" y3="35.58"/>
+ <line x="18.39" y="33.1"/>
+ <line x="26.61" y="33.1"/>
+ <curve x1="26.91" x2="27.94" x3="29.69" y1="35.71" y2="38.06" y3="40.15"/>
+ <line x="23.83" y="45.58"/>
+ <line x="23.83" y="42.04"/>
+ <curve x1="23.83" x2="23.36" x3="22.63" y1="41.47" y2="40.88" y3="40.88"/>
+ <line x="22.5" y="40.88"/>
+ <curve x1="21.77" x2="21.3" x3="21.3" y1="40.88" y2="41.47" y3="42.04"/>
+ <line x="21.3" y="48.23"/>
+ <line x="21.3" y="48.53"/>
+ <curve x1="21.3" x2="21.47" x3="21.6" y1="48.83" y2="49.12" y3="49.26"/>
+ <line x="21.9" y="49.39"/>
+ <curve x1="22.07" x2="22.5" x3="22.79" y1="49.56" y2="49.69" y3="49.69"/>
+ <line x="22.93" y="49.69"/>
+ <line x="29.39" y="49.69"/>
+ <curve x1="29.99" x2="30.42" x3="30.42" y1="49.69" y2="49.26" y3="48.66"/>
+ <line x="30.42" y="48.37"/>
+ <curve x1="30.42" x2="29.99" x3="29.39" y1="47.8" y2="47.34" y3="47.34"/>
+ <line x="25.58" y="47.34"/>
+ <line x="31.45" y="41.74"/>
+ <curve x1="33.54" x2="36.03" x3="38.81" y1="43.37" y2="44.39" y3="44.69"/>
+ <line x="38.81" y="52.5"/>
+ <line x="36.16" y="49.98"/>
+ <curve x1="35.73" x2="35" x3="34.56" y1="49.55" y2="49.55" y3="49.98"/>
+ <line x="34.4" y="50.15"/>
+ <curve x1="33.97" x2="33.97" x3="34.4" y1="50.58" y2="51.31" y3="51.61"/>
+ <line x="38.98" y="56.01"/>
+ <line x="39.11" y="56.18"/>
+ <curve x1="39.41" x2="39.71" x3="40" y1="56.48" y2="56.48" y3="56.48"/>
+ <line x="40.14" y="56.48"/>
+ <curve x1="40.57" x2="40.86" x3="41.03" y1="56.48" y2="56.48" y3="56.18"/>
+ <curve x1="41.16" x2="41.16" x3="41.16" y1="56.18" y2="56.01" y3="56.01"/>
+ <line x="45.74" y="51.61"/>
+ <curve x1="46.17" x2="46.17" x3="45.74" y1="51.31" y2="50.58" y3="50.15"/>
+ <line x="45.57" y="49.98"/>
+ <curve x1="45.14" x2="44.41" x3="43.98" y1="49.55" y2="49.55" y3="49.98"/>
+ <line x="41.33" y="52.5"/>
+ <line x="41.33" y="44.69"/>
+ <curve x1="44.11" x2="46.6" x3="48.65" y1="44.39" y2="43.37" y3="41.74"/>
+ <line x="54.56" y="47.34"/>
+ <line x="50.75" y="47.34"/>
+ <curve x1="50.15" x2="49.72" x3="49.72" y1="47.34" y2="47.8" y3="48.37"/>
+ <line x="49.72" y="48.66"/>
+ <curve x1="49.72" x2="50.15" x3="50.75" y1="49.26" y2="49.69" y3="49.69"/>
+ <line x="57.21" y="49.69"/>
+ <line x="57.34" y="49.69"/>
+ <curve x1="57.64" x2="58.07" x3="58.24" y1="49.69" y2="49.56" y3="49.39"/>
+ <line x="58.54" y="49.26"/>
+ <curve x1="58.67" x2="58.83" x3="58.83" y1="49.12" y2="48.83" y3="48.53"/>
+ <line x="58.83" y="48.23"/>
+ <line x="58.83" y="42.04"/>
+ <curve x1="58.83" x2="58.37" x3="57.64" y1="41.47" y2="40.88" y3="40.88"/>
+ <line x="57.51" y="40.88"/>
+ <curve x1="56.91" x2="56.32" x3="56.32" y1="40.88" y2="41.47" y3="42.04"/>
+ <line x="56.32" y="45.58"/>
+ <line x="50.45" y="40.15"/>
+ <curve x1="52.07" x2="53.23" x3="53.53" y1="38.06" y2="35.71" y3="33.1"/>
+ <line x="61.75" y="33.1"/>
+ <line x="59.1" y="35.58"/>
+ <curve x1="58.67" x2="58.67" x3="59.1" y1="36.01" y2="36.77" y3="37.04"/>
+ <line x="59.26" y="37.21"/>
+ <curve x1="59.69" x2="60.43" x3="60.89" y1="37.64" y2="37.64" y3="37.21"/>
+ <line x="65.43" y="32.93"/>
+ <curve x1="65.6" x2="65.6" x3="65.6" y1="32.93" y2="32.8" y3="32.8"/>
+ <curve x1="65.86" x2="65.86" x3="65.86" y1="32.64" y2="32.33" y3="32.04"/>
+ <line x="65.86" y="31.77"/>
+ <curve x1="65.86" x2="65.86" x3="65.73" y1="31.47" y2="31.18" y3="31.01"/>
+ <line x="65.43" y="30.71"/>
+ <line x="60.89" y="26.31"/>
+ <curve x1="60.43" x2="59.69" x3="59.26" y1="26.01" y2="26.01" y3="26.31"/>
+ <line x="59.1" y="26.61"/>
+ <curve x1="58.67" x2="58.67" x3="59.1" y1="27.04" y2="27.64" y3="28.1"/>
+ <line x="61.75" y="30.71"/>
+ <line x="53.53" y="30.71"/>
+ <curve x1="53.23" x2="52.2" x3="50.45" y1="28.1" y2="25.58" y3="23.66"/>
+ <line x="56.32" y="18.1"/>
+ <line x="56.32" y="21.61"/>
+ <curve x1="56.32" x2="56.91" x3="57.51" y1="22.2" y2="22.8" y3="22.8"/>
+ <line x="57.64" y="22.8"/>
+ <curve x1="58.37" x2="58.83" x3="58.83" y1="22.8" y2="22.2" y3="21.61"/>
+ <line x="58.83" y="15.45"/>
+ <line x="58.83" y="15.28"/>
+ <curve x1="58.83" x2="58.67" x3="58.54" y1="14.99" y2="14.72" y3="14.55"/>
+ <line x="58.37" y="14.26"/>
+ <curve x1="58.07" x2="57.81" x3="57.51" y1="14.13" y2="13.96" y3="13.96"/>
+ <line x="57.21" y="13.96"/>
+ <line x="50.75" y="13.96"/>
+ <curve x1="50.15" x2="49.72" x3="49.72" y1="13.96" y2="14.42" y3="14.98"/>
+ <line x="49.72" y="15.28"/>
+ <curve x1="49.72" x2="50.15" x3="50.75" y1="15.88" y2="16.31" y3="16.31"/>
+ <line x="54.56" y="16.31"/>
+ <line x="48.65" y="21.91"/>
+ <curve x1="46.6" x2="44.11" x3="41.33" y1="20.28" y2="19.25" y3="18.96"/>
+ <line x="41.33" y="11.18"/>
+ <line x="43.98" y="13.66"/>
+ <curve x1="44.41" x2="45.14" x3="45.57" y1="14.12" y2="14.12" y3="13.66"/>
+ <line x="45.74" y="13.53"/>
+ <curve x1="46.17" x2="46.17" x3="45.74" y1="13.1" y2="12.34" y3="11.9"/>
+ <line x="41.16" y="7.64"/>
+ <curve x1="41.16" x2="41.16" x3="41.03" y1="7.5" y2="7.5" y3="7.5"/>
+ <curve x1="40.86" x2="40.57" x3="40.14" y1="7.34" y2="7.07" y3="7.07"/>
+ <line x="40" y="7.07"/>
+ <close/>
+ <move x="26.32" y="61.15"/>
+ <curve x1="23.8" x2="22.34" x3="21.31" y1="61.15" y2="63.38" y3="65.59"/>
+ <curve x1="20.29" x2="19.09" x3="17.04" y1="63.51" y2="61.75" y3="61.75"/>
+ <curve x1="14.42" x2="13.09" x3="12.63" y1="61.75" y2="64.83" y3="66.32"/>
+ <curve x1="12.07" x2="11.77" x3="11.9" y1="66.45" y2="66.88" y3="67.35"/>
+ <curve x1="12.07" x2="13.36" x3="17.04" y1="67.65" y2="72.94" y3="72.94"/>
+ <curve x1="19.39" x2="20.72" x3="21.75" y1="72.94" y2="70.86" y3="68.67"/>
+ <curve x1="22.78" x2="24.1" x3="26.32" y1="70.73" y2="72.48" y3="72.48"/>
+ <curve x1="28.38" x2="29.7" x3="30.73" y1="72.48" y2="70.73" y3="68.67"/>
+ <curve x1="31.76" x2="33.22" x3="35.44" y1="70.86" y2="72.94" y3="72.94"/>
+ <curve x1="37.79" x2="39.12" x3="40.15" y1="72.94" y2="70.86" y3="68.67"/>
+ <curve x1="41.18" x2="42.5" x3="44.69" y1="70.73" y2="72.48" y3="72.48"/>
+ <curve x1="46.61" x2="47.8" x3="48.97" y1="72.48" y2="70.73" y3="68.67"/>
+ <curve x1="50.16" x2="51.45" x3="53.8" y1="70.86" y2="72.94" y3="72.94"/>
+ <curve x1="56.16" x2="57.48" x3="58.51" y1="72.94" y2="70.86" y3="68.67"/>
+ <curve x1="59.54" x2="60.87" x3="63.09" y1="70.73" y2="72.48" y3="72.48"/>
+ <curve x1="65.28" x2="66.77" x3="67.5" y1="72.48" y2="70" y3="67.94"/>
+ <line x="67.63" y="67.94"/>
+ <curve x1="68.09" x2="68.23" x3="68.1" y1="67.65" y2="67.18" y3="66.75"/>
+ <curve x1="67.37" x2="65.87" x3="63.09" y1="64.4" y2="61.15" y3="61.15"/>
+ <curve x1="60.57" x2="59.11" x3="58.08" y1="61.15" y2="63.38" y3="65.59"/>
+ <curve x1="57.05" x2="55.89" x3="53.8" y1="63.51" y2="61.75" y3="61.75"/>
+ <curve x1="51.75" x2="50.59" x3="49.4" y1="61.75" y2="63.5" y3="65.72"/>
+ <curve x1="48.23" x2="46.91" x3="44.69" y1="63.37" y2="61.15" y3="61.15"/>
+ <curve x1="42.2" x2="40.74" x3="39.71" y1="61.15" y2="63.38" y3="65.59"/>
+ <curve x1="38.65" x2="37.5" x3="35.44" y1="63.51" y2="61.75" y3="61.75"/>
+ <curve x1="33.52" x2="32.19" x3="31.16" y1="61.75" y2="63.51" y3="65.59"/>
+ <curve x1="30.13" x2="28.68" x3="26.32" y1="63.38" y2="61.15" y3="61.15"/>
+ <close/>
+ <move x="17.04" y="62.64"/>
+ <curve x1="18.83" x2="19.86" x3="20.72" y1="62.64" y2="64.53" y3="66.62"/>
+ <line x="20.72" y="66.88"/>
+ <curve x1="19.39" x2="18.53" x3="17.04" y1="69.53" y2="71.16" y3="71.16"/>
+ <curve x1="14.69" x2="13.66" x3="13.66" y1="71.16" y2="66.88" y3="66.88"/>
+ <curve x1="13.52" x2="13.52" x3="13.36" y1="66.75" y2="66.62" y3="66.62"/>
+ <curve x1="13.82" x2="14.98" x3="17.04" y1="65.29" y2="62.64" y3="62.64"/>
+ <close/>
+ <move x="35.44" y="62.64"/>
+ <curve x1="37.2" x2="38.22" x3="39.12" y1="62.64" y2="64.53" y3="66.62"/>
+ <line x="39.12" y="66.88"/>
+ <curve x1="37.79" x2="37.06" x3="35.44" y1="69.53" y2="71.16" y3="71.16"/>
+ <curve x1="33.82" x2="32.78" x3="31.76" y1="71.16" y2="68.97" y3="66.75"/>
+ <line x="31.76" y="66.62"/>
+ <curve x1="32.78" x2="33.82" x3="35.44" y1="64.53" y2="62.64" y3="62.64"/>
+ <close/>
+ <move x="53.8" y="62.64"/>
+ <curve x1="55.59" x2="56.62" x3="57.49" y1="62.64" y2="64.53" y3="66.62"/>
+ <line x="57.49" y="66.88"/>
+ <curve x1="56.16" x2="55.3" x3="53.8" y1="69.53" y2="71.16" y3="71.16"/>
+ <curve x1="52.21" x2="51.02" x3="49.99" y1="71.16" y2="68.97" y3="66.62"/>
+ <curve x1="51.02" x2="52.21" x3="53.8" y1="64.53" y2="62.64" y3="62.64"/>
+ <close/>
+ <move x="26.32" y="63.07"/>
+ <curve x1="28.08" x2="29.11" x3="30.3" y1="63.07" y2="65.29" y3="67.64"/>
+ <curve x1="29.11" x2="28.08" x3="26.32" y1="69.7" y2="71.62" y3="71.62"/>
+ <curve x1="24.4" x2="23.24" x3="22.21" y1="71.62" y2="69.83" y3="67.64"/>
+ <curve x1="23.37" x2="24.4" x3="26.32" y1="65.29" y2="63.07" y3="63.07"/>
+ <close/>
+ <move x="44.69" y="63.07"/>
+ <curve x1="46.18" x2="47.21" x3="48.37" y1="63.07" y2="65.29" y3="67.48"/>
+ <line x="48.54" y="67.64"/>
+ <curve x1="47.34" x2="46.31" x3="44.69" y1="69.7" y2="71.62" y3="71.62"/>
+ <curve x1="42.8" x2="41.61" x3="40.58" y1="71.62" y2="69.83" y3="67.64"/>
+ <curve x1="41.77" x2="42.8" x3="44.69" y1="65.29" y2="63.07" y3="63.07"/>
+ <close/>
+ <move x="63.09" y="63.07"/>
+ <curve x1="64.41" x2="65.44" x3="66.6" y1="63.07" y2="64.53" y3="67.35"/>
+ <line x="66.6" y="67.64"/>
+ <curve x1="65.58" x2="64.41" x3="63.09" y1="70.29" y2="71.62" y3="71.62"/>
+ <curve x1="61.03" x2="60.01" x3="58.98" y1="71.62" y2="69.83" y3="67.64"/>
+ <curve x1="60.14" x2="61.03" x3="63.09" y1="65.29" y2="63.07" y3="63.07"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="web application firewall" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.89" y="4.7"/>
+ <line x="25.89" y="39.98"/>
+ <line x="4.7" y="39.98"/>
+ <line x="4.7" y="42.36"/>
+ <line x="25.89" y="42.36"/>
+ <line x="25.89" y="44.7"/>
+ <line x="25.89" y="44.99"/>
+ <line x="25.89" y="45.13"/>
+ <line x="25.89" y="45.43"/>
+ <line x="25.89" y="50.04"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="22.28" x-axis-rotation="0" y="47"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="19.62" x-axis-rotation="0" y="48.34"/>
+ <line x="12.29" y="57.35"/>
+ <line x="8.15" y="53.89"/>
+ <arc large-arc-flag="1" rx="3.53" ry="3.53" sweep-flag="0" x="3.62" x-axis-rotation="0" y="59.3"/>
+ <line x="10.52" y="65.06"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="15.52" x-axis-rotation="0" y="64.57"/>
+ <line x="25.1" y="52.79"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="25.89" x-axis-rotation="0" y="51.01"/>
+ <line x="25.89" y="51.15"/>
+ <line x="25.89" y="51.45"/>
+ <line x="25.89" y="51.75"/>
+ <line x="25.89" y="57.64"/>
+ <line x="25.89" y="57.78"/>
+ <line x="25.89" y="58.24"/>
+ <line x="25.89" y="63.97"/>
+ <line x="25.89" y="64.26"/>
+ <line x="25.89" y="64.69"/>
+ <line x="25.89" y="64.83"/>
+ <line x="25.89" y="75.3"/>
+ <line x="28.24" y="75.3"/>
+ <line x="28.24" y="64.83"/>
+ <line x="41.76" y="64.83"/>
+ <line x="41.76" y="70.59"/>
+ <line x="42.36" y="70.59"/>
+ <line x="42.36" y="64.83"/>
+ <line x="58.54" y="64.83"/>
+ <line x="58.54" y="70.59"/>
+ <line x="59.14" y="70.59"/>
+ <line x="59.14" y="64.83"/>
+ <line x="75.32" y="64.83"/>
+ <line x="75.32" y="64.69"/>
+ <line x="75.32" y="64.26"/>
+ <line x="75.32" y="63.97"/>
+ <line x="67.66" y="63.97"/>
+ <line x="67.66" y="58.24"/>
+ <line x="75.32" y="58.24"/>
+ <line x="75.32" y="57.78"/>
+ <line x="75.32" y="57.64"/>
+ <line x="59.14" y="57.64"/>
+ <line x="59.14" y="51.75"/>
+ <line x="75.32" y="51.75"/>
+ <line x="75.32" y="51.45"/>
+ <line x="75.32" y="51.15"/>
+ <line x="67.66" y="51.15"/>
+ <line x="67.66" y="45.43"/>
+ <line x="75.32" y="45.43"/>
+ <line x="75.32" y="45.13"/>
+ <line x="75.32" y="44.99"/>
+ <line x="75.32" y="44.7"/>
+ <line x="28.24" y="44.7"/>
+ <line x="28.24" y="4.7"/>
+ <line x="25.89" y="4.7"/>
+ <close/>
+ <move x="52.21" y="9.42"/>
+ <curve x1="45.74" x2="40.6" x3="40.6" y1="9.42" y2="14.55" y3="21.04"/>
+ <curve x1="40.6" x2="45.74" x3="52.21" y1="27.36" y2="32.5" y3="32.5"/>
+ <curve x1="58.54" x2="63.54" x3="63.54" y1="32.5" y2="27.36" y3="21.04"/>
+ <curve x1="63.54" x2="58.54" x3="52.21" y1="14.55" y2="9.42" y3="9.42"/>
+ <close/>
+ <move x="52.21" y="12.2"/>
+ <curve x1="56.92" x2="60.72" x3="60.72" y1="12.2" y2="16.17" y3="21.04"/>
+ <curve x1="60.72" x2="56.92" x3="52.21" y1="25.74" y2="29.55" y3="29.55"/>
+ <curve x1="47.37" x2="43.39" x3="43.39" y1="29.55" y2="25.74" y3="21.04"/>
+ <curve x1="43.39" x2="47.37" x3="52.21" y1="16.17" y2="12.2" y3="12.2"/>
+ <close/>
+ <move x="8.2" y="14.07"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="5.74" x-axis-rotation="0" y="20.13"/>
+ <line x="9.13" y="23.53"/>
+ <line x="5.74" y="26.93"/>
+ <arc large-arc-flag="1" rx="3.53" ry="3.53" sweep-flag="0" x="10.73" x-axis-rotation="0" y="31.91"/>
+ <line x="14.12" y="28.52"/>
+ <line x="17.51" y="31.91"/>
+ <arc large-arc-flag="1" rx="3.53" ry="3.53" sweep-flag="0" x="22.51" x-axis-rotation="0" y="26.93"/>
+ <line x="19.11" y="23.53"/>
+ <line x="22.51" y="20.13"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="19.93" x-axis-rotation="0" y="14.07"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="17.51" x-axis-rotation="0" y="15.15"/>
+ <line x="14.12" y="18.54"/>
+ <line x="10.73" y="15.15"/>
+ <arc large-arc-flag="0" rx="3.53" ry="3.53" sweep-flag="0" x="8.2" x-axis-rotation="0" y="14.07"/>
+ <close/>
+ <move x="39.66" y="30.28"/>
+ <curve x1="38.87" x2="38.1" x3="37.52" y1="30.28" y2="30.58" y3="31.17"/>
+ <line x="31.92" y="36.9"/>
+ <curve x1="30.59" x2="30.59" x3="31.92" y1="38.09" y2="39.98" y3="41.17"/>
+ <curve x1="32.94" x2="35" x3="36.19" y1="42.33" y2="42.33" y3="41.17"/>
+ <line x="41.93" y="35.58"/>
+ <curve x1="43.09" x2="43.09" x3="41.93" y1="34.42" y2="32.36" y3="31.17"/>
+ <curve x1="41.27" x2="40.45" x3="39.66" y1="30.58" y2="30.28" y3="30.28"/>
+ <close/>
+ <move x="28.24" y="45.43"/>
+ <line x="33.38" y="45.43"/>
+ <line x="33.38" y="51.15"/>
+ <line x="28.24" y="51.15"/>
+ <line x="28.24" y="45.43"/>
+ <close/>
+ <move x="33.97" y="45.43"/>
+ <line x="50.15" y="45.43"/>
+ <line x="50.15" y="51.15"/>
+ <line x="33.97" y="51.15"/>
+ <line x="33.97" y="45.43"/>
+ <close/>
+ <move x="50.75" y="45.43"/>
+ <line x="66.93" y="45.43"/>
+ <line x="66.93" y="51.15"/>
+ <line x="50.75" y="51.15"/>
+ <line x="50.75" y="45.43"/>
+ <close/>
+ <move x="28.24" y="51.75"/>
+ <line x="41.76" y="51.75"/>
+ <line x="41.76" y="57.64"/>
+ <line x="28.24" y="57.64"/>
+ <line x="28.24" y="51.75"/>
+ <close/>
+ <move x="42.36" y="51.75"/>
+ <line x="58.54" y="51.75"/>
+ <line x="58.54" y="57.64"/>
+ <line x="42.36" y="57.64"/>
+ <line x="42.36" y="51.75"/>
+ <close/>
+ <move x="28.24" y="58.24"/>
+ <line x="33.38" y="58.24"/>
+ <line x="33.38" y="63.97"/>
+ <line x="28.24" y="63.97"/>
+ <line x="28.24" y="58.24"/>
+ <close/>
+ <move x="33.97" y="58.24"/>
+ <line x="50.15" y="58.24"/>
+ <line x="50.15" y="63.97"/>
+ <line x="33.97" y="63.97"/>
+ <line x="33.97" y="58.24"/>
+ <close/>
+ <move x="50.75" y="58.24"/>
+ <line x="66.93" y="58.24"/>
+ <line x="66.93" y="63.97"/>
+ <line x="50.75" y="63.97"/>
+ <line x="50.75" y="58.24"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="web security" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="53.25" y="9.4"/>
+ <curve x1="53.38" x2="53.68" x3="53.85" y1="9.56" y2="9.7" y3="9.86"/>
+ <curve x1="54.11" x2="54.57" x3="54.71" y1="9.99" y2="10.16" y3="10.29"/>
+ <curve x1="54.57" x2="54.41" x3="54.28" y1="10.42" y2="10.59" y3="10.59"/>
+ <curve x1="53.98" x2="53.55" x3="53.25" y1="10.59" y2="10.42" y3="10.29"/>
+ <curve x1="52.79" x2="52.22" x3="51.62" y1="10.29" y2="10.72" y3="10.72"/>
+ <curve x1="51.49" x2="51.33" x3="51.19" y1="10.72" y2="10.72" y3="10.43"/>
+ <curve x1="51.33" x2="51.76" x3="51.92" y1="10.16" y2="10.16" y3="9.86"/>
+ <line x="51.76" y="9.86"/>
+ <curve x1="51.49" x2="51.33" x3="51.19" y1="9.86" y2="10" y3="10"/>
+ <curve x1="50.89" x2="50.6" x3="50.3" y1="10.16" y2="10.16" y3="10.29"/>
+ <line x="49.4" y="10.29"/>
+ <curve x1="48.84" x2="48.54" x3="47.94" y1="10.42" y2="10.72" y3="10.72"/>
+ <curve x1="47.81" x2="47.51" x3="47.34" y1="10.89" y2="10.89" y3="10.89"/>
+ <curve x1="46.78" x2="46.18" x3="45.75" y1="11.02" y2="11.32" y3="11.49"/>
+ <curve x1="45.16" x2="44.56" x3="44.26" y1="11.62" y2="11.91" y3="12.04"/>
+ <curve x1="44.13" x2="43.53" x3="43.53" y1="12.21" y2="12.51" y3="12.64"/>
+ <curve x1="43.53" x2="44.13" x3="44.13" y1="12.81" y2="12.94" y3="13.07"/>
+ <curve x1="44.13" x2="43.83" x3="43.97" y1="13.07" y2="13.37" y3="13.53"/>
+ <curve x1="44.13" x2="44.26" x3="44.26" y1="13.67" y2="13.67" y3="13.67"/>
+ <line x="44.69" y="13.67"/>
+ <line x="44.86" y="13.67"/>
+ <curve x1="45.59" x2="45.89" x3="46.48" y1="13.67" y2="13.97" y3="14.26"/>
+ <curve x1="46.78" x2="47.35" x3="47.81" y1="14.4" y2="14.56" y3="14.56"/>
+ <line x="48.54" y="14.56"/>
+ <curve x1="48.84" x2="49.14" x3="49.14" y1="14.56" y2="14.56" y3="14.86"/>
+ <curve x1="49.27" x2="48.54" x3="48.54" y1="14.99" y2="15.16" y3="15.42"/>
+ <curve x1="48.84" x2="48.37" x3="48.37" y1="15.72" y2="15.72" y3="16.02"/>
+ <curve x1="48.37" x2="48.67" x3="48.84" y1="16.18" y2="16.48" y3="16.48"/>
+ <curve x1="49.4" x2="50" x3="50.16" y1="16.48" y2="16.32" y3="16.02"/>
+ <curve x1="50.29" x2="50.3" x3="50.6" y1="15.59" y2="15.16" y3="14.86"/>
+ <curve x1="52.52" x2="54.11" x3="54.11" y1="14.99" y2="14.26" y3="12.94"/>
+ <curve x1="53.98" x2="53.97" x3="53.97" y1="12.81" y2="12.64" y3="12.51"/>
+ <curve x1="53.97" x2="54.58" x3="54.58" y1="12.21" y2="12.05" y3="11.75"/>
+ <curve x1="54.71" x2="54.87" x3="55.01" y1="11.62" y2="11.62" y3="11.49"/>
+ <curve x1="55.14" x2="55.3" x3="55.6" y1="11.32" y2="11.02" y3="11.02"/>
+ <line x="55.6" y="10.89"/>
+ <curve x1="55.73" x2="56.03" x3="56.2" y1="10.89" y2="10.89" y3="11.02"/>
+ <line x="56.33" y="11.02"/>
+ <curve x1="56.46" x2="56.93" x3="57.23" y1="11.02" y2="11.19" y3="11.19"/>
+ <curve x1="57.36" x2="57.49" x3="57.66" y1="11.19" y2="11.02" y3="11.02"/>
+ <curve x1="56.2" x2="54.71" x3="53.25" y1="10.42" y2="9.86" y3="9.4"/>
+ <close/>
+ <move x="20.3" y="11.75"/>
+ <curve x1="20" x2="19.84" x3="19.57" y1="12.05" y2="12.21" y3="12.34"/>
+ <curve x1="12.64" x2="8.24" x3="8.24" y1="18.37" y2="27.51" y3="37.64"/>
+ <curve x1="8.24" x2="22.49" x3="40.16" y1="55.86" y2="70.59" y3="70.59"/>
+ <curve x1="42.78" x2="45.3" x3="47.79" y1="70.59" y2="70.29" y3="69.7"/>
+ <curve x1="47.79" x2="47.65" x3="47.65" y1="69.53" y2="69.53" y3="69.53"/>
+ <curve x1="47.65" x2="47.79" x3="47.65" y1="68.8" y2="68.21" y3="67.64"/>
+ <curve x1="47.65" x2="47.49" x3="47.36" y1="67.05" y2="66.32" y3="66.02"/>
+ <curve x1="47.06" x2="46.33" x3="45.9" y1="65.72" y2="64.99" y3="64.83"/>
+ <curve x1="45.73" x2="45.44" x3="45.14" y1="64.7" y2="64.69" y3="64.53"/>
+ <curve x1="45" x2="44.87" x3="44.71" y1="64.4" y2="64.4" y3="64.26"/>
+ <line x="44.57" y="64.1"/>
+ <line x="43.08" y="62.34"/>
+ <curve x1="42.78" x2="42.52" x3="42.35" y1="61.91" y2="61.62" y3="61.32"/>
+ <curve x1="41.75" x2="41.49" x3="41.02" y1="60.59" y2="59.56" y3="58.8"/>
+ <curve x1="40.73" x2="40.59" x3="40.29" y1="58.37" y2="58.07" y3="57.64"/>
+ <curve x1="40.16" x2="39.7" x3="39.57" y1="57.48" y2="57.35" y3="57.18"/>
+ <curve x1="39.57" x2="39.27" x3="39.27" y1="56.75" y2="56.32" y3="56.02"/>
+ <line x="39.4" y="55.86"/>
+ <curve x1="39.57" x2="39.87" x3="40.16" y1="56.02" y2="56.15" y3="56.32"/>
+ <curve x1="45" x2="49.28" x3="51.63" y1="54.1" y2="50.13" y3="45.29"/>
+ <line x="51.77" y="45.29"/>
+ <curve x1="51.93" x2="52.2" x3="52.36" y1="45.29" y2="45.42" y3="45.72"/>
+ <curve x1="52.5" x2="52.5" x3="52.96" y1="45.72" y2="45.29" y3="45.43"/>
+ <curve x1="52.79" x2="52.96" x3="53.09" y1="45.89" y2="46.02" y3="46.32"/>
+ <curve x1="53.23" x2="53.22" x3="53.22" y1="46.45" y2="46.62" y3="46.62"/>
+ <curve x1="53.52" x2="53.82" x3="53.99" y1="46.91" y2="46.91" y3="47.05"/>
+ <curve x1="54.26" x2="54.42" x3="54.85" y1="47.21" y2="47.48" y3="47.78"/>
+ <curve x1="55.02" x2="55.58" x3="56.04" y1="48.24" y2="48.5" y3="48.67"/>
+ <curve x1="56.34" x2="56.77" x3="57.07" y1="48.67" y2="48.5" y3="48.5"/>
+ <curve x1="57.93" x2="58.4" x3="58.83" y1="48.67" y2="49.1" y3="49.57"/>
+ <curve x1="59.26" x2="59.56" x3="59.56" y1="49.7" y2="49.99" y3="50.29"/>
+ <curve x1="59.56" x2="59.56" x3="59.72" y1="50.42" y2="50.72" y3="50.89"/>
+ <curve x1="59.86" x2="60.59" x3="60.29" y1="51.45" y2="51.62" y3="52.34"/>
+ <curve x1="60.46" x2="60.59" x3="60.89" y1="52.64" y2="52.77" y3="52.94"/>
+ <curve x1="61.05" x2="61.18" x3="61.48" y1="53.07" y2="53.24" y3="53.37"/>
+ <line x="61.78" y="53.37"/>
+ <line x="62.08" y="53.37"/>
+ <curve x1="62.34" x2="62.64" x3="63.11" y1="53.37" y2="53.5" y3="53.67"/>
+ <curve x1="63.24" x2="63.53" x3="63.67" y1="53.8" y2="53.8" y3="53.97"/>
+ <curve x1="63.83" x2="63.97" x3="64.13" y1="54.1" y2="54.4" y3="54.56"/>
+ <curve x1="64.27" x2="64.57" x3="64.7" y1="54.7" y2="54.56" y3="54.56"/>
+ <line x="64.86" y="54.7"/>
+ <curve x1="65" x2="65.29" x3="65.46" y1="54.7" y2="54.69" y3="54.83"/>
+ <curve x1="65.72" x2="65.89" x3="66.02" y1="54.83" y2="54.99" y3="54.99"/>
+ <curve x1="66.19" x2="66.32" x3="66.62" y1="54.99" y2="54.83" y3="54.83"/>
+ <line x="66.79" y="54.83"/>
+ <curve x1="66.79" x2="66.92" x3="67.05" y1="54.83" y2="54.99" y3="54.99"/>
+ <curve x1="70" x2="71.76" x3="71.76" y1="49.83" y2="43.97" y3="37.64"/>
+ <curve x1="71.76" x2="71.63" x3="71.33" y1="35.43" y2="33.08" y3="31.02"/>
+ <curve x1="71.03" x2="70.9" x3="70.73" y1="30.43" y2="29.86" y3="29.26"/>
+ <curve x1="70.73" x2="70.6" x3="70.43" y1="28.97" y2="28.37" y3="28.07"/>
+ <curve x1="68.97" x2="66.19" x3="62.51" y1="22.94" y2="18.24" y3="14.4"/>
+ <curve x1="62.08" x2="61.61" x3="61.18" y1="13.97" y2="13.37" y3="12.94"/>
+ <curve x1="61.05" x2="61.05" x3="61.05" y1="13.07" y2="13.24" y3="13.37"/>
+ <curve x1="61.18" x2="61.91" x3="62.34" y1="14.1" y2="14.1" y3="14.4"/>
+ <curve x1="62.51" x2="62.51" x3="62.64" y1="14.56" y2="14.69" y3="14.86"/>
+ <curve x1="62.81" x2="63.11" x3="63.11" y1="15.16" y2="15.16" y3="15.42"/>
+ <curve x1="63.11" x2="62.51" x3="62.51" y1="16.02" y2="16.02" y3="16.91"/>
+ <curve x1="62.34" x2="62.08" x3="62.08" y1="17.21" y2="17.04" y3="17.51"/>
+ <curve x1="62.08" x2="62.21" x3="62.51" y1="17.77" y2="17.78" y3="17.94"/>
+ <line x="62.81" y="17.94"/>
+ <curve x1="62.94" x2="63.11" x3="63.11" y1="17.94" y2="17.94" y3="18.07"/>
+ <curve x1="63.24" x2="63.11" x3="63.11" y1="18.37" y2="18.54" y3="18.97"/>
+ <curve x1="63.41" x2="63.4" x3="62.81" y1="19.27" y2="19.86" y3="19.86"/>
+ <curve x1="62.34" x2="62.34" x3="62.08" y1="19.86" y2="19.4" y3="19.4"/>
+ <curve x1="61.78" x2="61.61" x3="61.48" y1="19.4" y2="19.4" y3="19.27"/>
+ <line x="60.89" y="19.27"/>
+ <curve x1="60.59" x2="60.45" x3="60.15" y1="19.1" y2="19.1" y3="19.1"/>
+ <line x="59.56" y="19.1"/>
+ <curve x1="59.99" x2="60.58" x3="61.18" y1="18.37" y2="17.77" y3="17.34"/>
+ <curve x1="61.31" x2="61.62" x3="61.62" y1="17.21" y2="17.05" y3="16.75"/>
+ <curve x1="61.62" x2="61.48" x3="61.48" y1="16.62" y2="16.62" y3="16.62"/>
+ <curve x1="61.18" x2="60.88" x3="60.75" y1="16.62" y2="16.75" y3="16.91"/>
+ <curve x1="60.45" x2="59.99" x3="59.72" y1="17.05" y2="17.34" y3="17.51"/>
+ <curve x1="59.13" x2="58.4" x3="57.8" y1="17.51" y2="17.21" y3="17.64"/>
+ <curve x1="57.67" x2="58.4" x3="58.23" y1="17.94" y2="17.77" y3="18.24"/>
+ <line x="57.93" y="18.24"/>
+ <curve x1="57.8" x2="57.67" x3="57.5" y1="18.24" y2="18.24" y3="18.07"/>
+ <curve x1="57.37" x2="57.5" x3="57.37" y1="17.94" y2="17.64" y3="17.64"/>
+ <curve x1="57.2" x2="57.07" x3="56.91" y1="17.51" y2="17.51" y3="17.51"/>
+ <curve x1="56.61" x2="56.34" x3="56.18" y1="17.34" y2="17.34" y3="17.51"/>
+ <curve x1="55.88" x2="55.45" x3="55.45" y1="17.51" y2="17.77" y3="18.07"/>
+ <line x="55.75" y="18.07"/>
+ <curve x1="56.04" x2="56.34" x3="56.48" y1="18.07" y2="18.07" y3="18.24"/>
+ <curve x1="56.61" x2="56.77" x3="56.91" y1="18.24" y2="18.24" y3="18.37"/>
+ <curve x1="56.61" x2="56.04" x3="56.04" y1="18.97" y2="19.1" y3="19.86"/>
+ <curve x1="56.04" x2="56.34" x3="56.48" y1="19.99" y2="20.29" y3="20.43"/>
+ <curve x1="56.78" x2="56.77" x3="57.07" y1="20.43" y2="20.29" y3="20.29"/>
+ <curve x1="57.37" x2="57.37" x3="57.5" y1="20.29" y2="20.43" y3="20.43"/>
+ <curve x1="57.8" x2="57.93" x3="58.4" y1="20.29" y2="19.86" y3="19.86"/>
+ <line x="58.53" y="19.86"/>
+ <curve x1="58.96" x2="58.1" x3="57.5" y1="20.43" y2="20.72" y3="21.02"/>
+ <curve x1="56.91" x2="56.18" x3="55.75" y1="21.19" y2="21.32" y3="21.45"/>
+ <curve x1="55.45" x2="55.01" x3="54.72" y1="21.62" y2="22.21" y3="21.92"/>
+ <curve x1="54.55" x2="54.42" x3="54.42" y1="21.92" y2="21.92" y3="21.75"/>
+ <curve x1="54.25" x2="54.85" x3="54.85" y1="21.32" y2="21.45" y3="21.02"/>
+ <curve x1="54.42" x2="53.99" x3="53.39" y1="21.02" y2="21.32" y3="21.45"/>
+ <curve x1="52.66" x2="51.47" x3="51.17" y1="21.75" y2="21.91" y3="22.78"/>
+ <curve x1="51.17" x2="51.34" x3="51.17" y1="22.94" y2="23.24" y3="23.37"/>
+ <curve x1="51.04" x2="50.61" x3="50.31" y1="23.54" y2="23.54" y3="23.67"/>
+ <curve x1="50.01" x2="49.71" x3="49.41" y1="23.67" y2="23.97" y3="24.1"/>
+ <line x="48.98" y="24.1"/>
+ <line x="48.52" y="24.57"/>
+ <line x="43.25" y="23.24"/>
+ <line x="40" y="22.64"/>
+ <line x="36.92" y="23.37"/>
+ <curve x1="36.92" x2="26.17" x3="26.04" y1="23.37" y2="25.72" y3="25.89"/>
+ <line x="26.04" y="34.7"/>
+ <curve x1="26.04" x2="26.34" x3="26.77" y1="36.75" y2="38.67" y3="40.42"/>
+ <line x="26.47" y="40.13"/>
+ <curve x1="26.17" x2="25.87" x3="25.74" y1="40.13" y2="40.13" y3="39.99"/>
+ <curve x1="25.58" x2="25.31" x3="25.01" y1="39.86" y2="39.56" y3="39.4"/>
+ <curve x1="24.71" x2="24.42" x3="24.42" y1="39.27" y2="38.8" y3="38.67"/>
+ <curve x1="24.42" x2="24.71" x3="24.71" y1="38.37" y2="38.07" y3="37.77"/>
+ <curve x1="24.84" x2="24.12" x3="23.69" y1="36.91" y2="36.18" y3="35.72"/>
+ <curve x1="23.52" x2="23.09" x3="22.79" y1="35.29" y2="34.99" y3="34.7"/>
+ <line x="22.79" y="34.1"/>
+ <curve x1="22.49" x2="22.49" x3="22.06" y1="33.8" y2="33.53" y3="33.07"/>
+ <curve x1="21.93" x2="21.46" x3="21.46" y1="32.77" y2="32.51" y3="32.21"/>
+ <curve x1="21.33" x2="21.63" x3="21.46" y1="31.75" y2="31.32" y3="31.02"/>
+ <curve x1="21.16" x2="20.3" x3="20.44" y1="30.29" y2="30.59" y3="31.45"/>
+ <curve x1="20.44" x2="20.73" x3="20.9" y1="31.75" y2="32.05" y3="32.35"/>
+ <curve x1="21.03" x2="21.03" x3="21.03" y1="32.51" y2="32.94" y3="33.24"/>
+ <curve x1="21.03" x2="21.46" x3="21.46" y1="33.53" y2="33.8" y3="34.1"/>
+ <curve x1="21.63" x2="21.63" x3="21.76" y1="34.56" y2="35.13" y3="35.43"/>
+ <curve x1="21.93" x2="22.49" x3="22.06" y1="35.72" y2="36.02" y3="36.45"/>
+ <curve x1="21.76" x2="21.63" x3="21.46" y1="36.45" y2="36.18" y3="35.89"/>
+ <curve x1="21.33" x2="20.9" x3="20.9" y1="35.72" y2="35.59" y3="35.29"/>
+ <curve x1="20.73" x2="21.03" x3="20.9" y1="35.13" y2="34.69" y3="34.56"/>
+ <curve x1="20.73" x2="19.71" x3="19.71" y1="33.97" y2="33.97" y3="33.37"/>
+ <curve x1="19.71" x2="20.14" x3="20.14" y1="33.07" y2="32.94" y3="32.64"/>
+ <curve x1="20.14" x2="19.7" x3="19.57" y1="32.21" y2="32.05" y3="31.62"/>
+ <curve x1="19.41" x2="19.41" x3="19.41" y1="31.32" y2="30.89" y3="30.59"/>
+ <line x="19.41" y="29.4"/>
+ <curve x1="19.27" x2="18.98" x3="18.68" y1="29.1" y2="28.83" y3="28.67"/>
+ <curve x1="18.38" x2="18.08" x3="17.95" y1="28.37" y2="28.54" y3="28.24"/>
+ <curve x1="17.79" x2="17.65" x3="17.65" y1="28.07" y2="27.51" y3="27.34"/>
+ <curve x1="17.48" x2="17.65" x3="17.65" y1="26.75" y2="26.32" y3="25.72"/>
+ <curve x1="17.48" x2="17.48" x3="17.65" y1="25.43" y2="24.86" y3="24.4"/>
+ <line x="17.48" y="24.4"/>
+ <curve x1="17.65" x2="18.08" x3="18.25" y1="23.97" y2="23.83" y3="23.37"/>
+ <curve x1="18.38" x2="18.38" x3="18.55" y1="23.07" y2="22.78" y3="22.51"/>
+ <curve x1="18.81" x2="19.41" x3="19.84" y1="22.05" y2="21.62" y3="21.19"/>
+ <curve x1="20.14" x2="20.6" x3="20.9" y1="20.59" y2="20.16" y3="19.4"/>
+ <curve x1="20.9" x2="21.17" x3="21.03" y1="19.26" y2="18.84" y3="18.54"/>
+ <curve x1="21.03" x2="20.44" x3="20.44" y1="18.24" y2="17.94" y3="17.34"/>
+ <curve x1="20.44" x2="20.9" x3="21.03" y1="17.21" y2="17.21" y3="16.91"/>
+ <line x="21.03" y="16.18"/>
+ <curve x1="21.03" x2="20.9" x3="21.03" y1="15.89" y2="15.42" y3="14.99"/>
+ <curve x1="21.03" x2="21.47" x3="21.33" y1="14.7" y2="14.56" y3="14.26"/>
+ <curve x1="21.17" x2="21.17" x3="21.03" y1="14.1" y2="14.1" y3="14.1"/>
+ <curve x1="21.03" x2="20.74" x3="20.6" y1="14.1" y2="14.26" y3="14.26"/>
+ <curve x1="20.44" x2="20.44" x3="20.3" y1="14.26" y2="14.26" y3="14.1"/>
+ <curve x1="20" x2="20.3" x3="20.44" y1="13.97" y2="13.67" y3="13.24"/>
+ <curve x1="20.44" x2="20.3" x3="20.3" y1="13.07" y2="12.94" y3="12.81"/>
+ <curve x1="20.3" x2="20.74" x3="20.6" y1="12.64" y2="12.34" y3="12.21"/>
+ <curve x1="20.44" x2="20.44" x3="20.3" y1="12.04" y2="11.92" y3="11.75"/>
+ <close/>
+ <move x="58.25" y="11.75"/>
+ <curve x1="58.08" x2="57.65" x3="57.65" y1="12.35" y2="12.51" y3="13.07"/>
+ <curve x1="57.79" x2="58.25" x3="58.55" y1="13.67" y2="13.96" y3="14.13"/>
+ <curve x1="58.81" x2="59.41" x3="59.71" y1="14.13" y2="13.97" y3="13.83"/>
+ <curve x1="59.88" x2="60" x3="60" y1="13.67" y2="13.53" y3="13.37"/>
+ <curve x1="59.57" x2="58.81" x3="58.25" y1="12.94" y2="12.35" y3="11.75"/>
+ <close/>
+ <move x="40" y="25.12"/>
+ <line x="42.65" y="25.72"/>
+ <line x="42.65" y="27.34"/>
+ <line x="47.22" y="28.54"/>
+ <line x="47.22" y="26.91"/>
+ <line x="51.34" y="27.94"/>
+ <line x="51.34" y="36.32"/>
+ <curve x1="51.34" x2="46.63" x3="40" y1="44.4" y2="51.15" y3="53.97"/>
+ <curve x1="33.4" x2="28.82" x3="28.82" y1="51.15" y2="44.4" y3="36.32"/>
+ <line x="28.82" y="27.94"/>
+ <line x="32.94" y="26.91"/>
+ <line x="32.94" y="28.54"/>
+ <line x="37.51" y="27.34"/>
+ <line x="37.51" y="25.72"/>
+ <line x="40" y="25.12"/>
+ <close/>
+ <move x="40.59" y="30.57"/>
+ <line x="31.77" y="32.5"/>
+ <line x="31.77" y="36.47"/>
+ <curve x1="31.77" x2="31.9" x3="32.2" y1="37.5" y2="38.39" y3="39.41"/>
+ <curve x1="32.5" x2="33.53" x3="34.72" y1="41.3" y2="43.09" y3="44.71"/>
+ <line x="48.25" y="32.36"/>
+ <curve x1="47.35" x2="45.16" x3="40.59" y1="32.06" y2="31.6" y3="30.57"/>
+ <close/>
+ <move x="48.25" y="35.28"/>
+ <line x="36.48" y="46.47"/>
+ <curve x1="37.64" x2="39.12" x3="40.58" y1="47.8" y2="48.66" y3="49.42"/>
+ <curve x1="44.43" x2="47.22" x3="47.94" y1="47.63" y2="44.25" y3="40.28"/>
+ <curve x1="48.24" x2="48.25" x3="48.25" y1="39.42" y2="38.53" y3="37.5"/>
+ <line x="48.25" y="35.28"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wide area application engine" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="16.04" y="16.46"/>
+ <line x="7.06" y="18.54"/>
+ <line x="11.04" y="25.9"/>
+ <line x="12.66" y="22.95"/>
+ <line x="16.79" y="24.58"/>
+ <line x="21.01" y="26.38"/>
+ <line x="19.42" y="29.33"/>
+ <line x="28.24" y="27.41"/>
+ <line x="24.43" y="19.89"/>
+ <line x="22.8" y="23.13"/>
+ <line x="20.16" y="22.05"/>
+ <line x="14.42" y="19.57"/>
+ <line x="16.04" y="16.46"/>
+ <close/>
+ <move x="30.59" y="30.58"/>
+ <line x="30.59" y="36.9"/>
+ <line x="30.59" y="43.23"/>
+ <line x="30.59" y="49.42"/>
+ <line x="51.78" y="39.98"/>
+ <line x="30.59" y="30.58"/>
+ <close/>
+ <move x="11.6" y="35.28"/>
+ <line x="4.7" y="39.98"/>
+ <line x="11.6" y="44.71"/>
+ <line x="11.6" y="41.6"/>
+ <line x="18.83" y="41.6"/>
+ <line x="21.48" y="41.6"/>
+ <line x="21.48" y="44.71"/>
+ <line x="28.24" y="39.98"/>
+ <line x="21.48" y="35.28"/>
+ <line x="21.48" y="38.52"/>
+ <line x="18.83" y="38.52"/>
+ <line x="11.6" y="38.52"/>
+ <line x="11.6" y="35.28"/>
+ <close/>
+ <move x="61.02" y="35.28"/>
+ <line x="54.12" y="39.98"/>
+ <line x="61.02" y="44.71"/>
+ <line x="61.02" y="41.6"/>
+ <line x="63.54" y="41.6"/>
+ <line x="68.25" y="41.6"/>
+ <line x="69.7" y="41.6"/>
+ <line x="69.7" y="44.71"/>
+ <line x="75.31" y="39.98"/>
+ <line x="69.7" y="35.28"/>
+ <line x="69.7" y="38.52"/>
+ <line x="68.25" y="38.52"/>
+ <line x="63.54" y="38.52"/>
+ <line x="61.02" y="38.52"/>
+ <line x="61.02" y="35.28"/>
+ <close/>
+ <move x="19.42" y="50.47"/>
+ <line x="21.01" y="53.58"/>
+ <line x="14.12" y="56.49"/>
+ <line x="14.18" y="56.6"/>
+ <line x="12.66" y="57.21"/>
+ <line x="11.04" y="54.1"/>
+ <line x="7.06" y="61.61"/>
+ <line x="16.04" y="63.53"/>
+ <line x="14.42" y="60.59"/>
+ <line x="21.18" y="57.64"/>
+ <line x="21.18" y="57.63"/>
+ <line x="22.8" y="56.96"/>
+ <line x="24.43" y="59.91"/>
+ <line x="28.24" y="52.56"/>
+ <line x="19.42" y="50.47"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wireless access point" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.74" y="34.1"/>
+ <curve x1="23.09" x2="21.6" x3="20.57" y1="34.1" y2="36.32" y3="38.54"/>
+ <curve x1="19.41" x2="18.21" x3="16.16" y1="36.45" y2="34.57" y3="34.57"/>
+ <curve x1="13.37" x2="11.92" x3="11.45" y1="34.57" y2="37.78" y3="39.27"/>
+ <curve x1="10.89" x2="10.59" x3="10.72" y1="39.4" y2="39.83" y3="40.43"/>
+ <curve x1="10.89" x2="12.35" x3="16.16" y1="40.59" y2="45.89" y3="45.89"/>
+ <curve x1="18.51" x2="20.01" x3="21.03" y1="45.89" y2="43.8" y3="41.62"/>
+ <curve x1="22.06" x2="23.39" x3="25.74" y1="43.67" y2="45.59" y3="45.59"/>
+ <curve x1="27.93" x2="29.26" x3="30.29" y1="45.59" y2="43.67" y3="41.62"/>
+ <curve x1="31.48" x2="32.94" x3="35.29" y1="43.8" y2="45.89" y3="45.89"/>
+ <curve x1="37.78" x2="39.11" x3="40.13" y1="45.89" y2="43.8" y3="41.62"/>
+ <curve x1="41.33" x2="42.48" x3="44.84" y1="43.67" y2="45.59" y3="45.59"/>
+ <curve x1="46.89" x2="48.22" x3="49.25" y1="45.59" y2="43.67" y3="41.45"/>
+ <curve x1="50.58" x2="52.07" x3="54.42" y1="43.8" y2="45.89" y3="45.89"/>
+ <curve x1="56.91" x2="58.23" x3="59.26" y1="45.89" y2="43.8" y3="41.62"/>
+ <curve x1="60.45" x2="61.75" x3="63.97" y1="43.67" y2="45.59" y3="45.59"/>
+ <curve x1="66.45" x2="67.78" x3="68.68" y1="45.59" y2="43.07" y3="40.89"/>
+ <line x="68.81" y="40.89"/>
+ <curve x1="69.27" x2="69.4" x3="69.27" y1="40.72" y2="40.13" y3="39.56"/>
+ <curve x1="68.38" x2="66.92" x3="63.97" y1="37.35" y2="34.1" y3="34.1"/>
+ <curve x1="61.32" x2="59.99" x3="58.83" y1="34.1" y2="36.32" y3="38.54"/>
+ <curve x1="57.8" x2="56.48" x3="54.42" y1="36.45" y2="34.57" y3="34.57"/>
+ <curve x1="52.36" x2="51.04" x3="49.85" y1="34.57" y2="36.45" y3="38.67"/>
+ <curve x1="48.69" x2="47.19" x3="44.84" y1="36.32" y2="34.1" y3="34.1"/>
+ <curve x1="42.18" x2="40.73" x3="39.7" y1="34.1" y2="36.32" y3="38.54"/>
+ <curve x1="38.67" x2="37.34" x3="35.29" y1="36.45" y2="34.57" y3="34.57"/>
+ <curve x1="33.23" x2="31.91" x3="30.88" y1="34.57" y2="36.45" y3="38.54"/>
+ <curve x1="29.69" x2="28.23" x3="25.74" y1="36.32" y2="34.1" y3="34.1"/>
+ <close/>
+ <move x="16.16" y="35.59"/>
+ <curve x1="17.92" x2="18.98" x3="20.01" y1="35.59" y2="37.48" y3="39.56"/>
+ <curve x1="20.01" x2="20.01" x3="19.84" y1="39.7" y2="39.7" y3="39.83"/>
+ <curve x1="18.68" x2="17.65" x3="16.16" y1="42.48" y2="44.1" y3="44.1"/>
+ <curve x1="13.67" x2="12.48" x3="12.48" y1="44.1" y2="39.83" y3="39.83"/>
+ <curve x1="12.48" x2="12.35" x3="12.35" y1="39.7" y2="39.56" y3="39.4"/>
+ <curve x1="12.78" x2="13.97" x3="16.16" y1="38.24" y2="35.59" y3="35.59"/>
+ <close/>
+ <move x="35.29" y="35.59"/>
+ <curve x1="37.05" x2="38.07" x3="39.1" y1="35.59" y2="37.48" y3="39.56"/>
+ <curve x1="39.1" x2="39.11" x3="38.97" y1="39.7" y2="39.7" y3="39.83"/>
+ <curve x1="37.78" x2="36.91" x3="35.29" y1="42.48" y2="44.1" y3="44.1"/>
+ <curve x1="33.66" x2="32.5" x3="31.48" y1="44.1" y2="41.92" y3="39.7"/>
+ <line x="31.31" y="39.56"/>
+ <curve x1="32.5" x2="33.53" x3="35.29" y1="37.48" y2="35.59" y3="35.59"/>
+ <close/>
+ <move x="54.42" y="35.59"/>
+ <curve x1="56.18" x2="57.21" x3="58.23" y1="35.59" y2="37.48" y3="39.56"/>
+ <line x="58.23" y="39.83"/>
+ <curve x1="56.91" x2="56.01" x3="54.42" y1="42.48" y2="44.1" y3="44.1"/>
+ <curve x1="52.63" x2="51.6" x3="50.28" y1="44.1" y2="41.92" y3="39.56"/>
+ <curve x1="51.47" x2="52.63" x3="54.42" y1="37.48" y2="35.59" y3="35.59"/>
+ <close/>
+ <move x="25.74" y="36.02"/>
+ <curve x1="27.63" x2="28.66" x3="29.86" y1="36.02" y2="38.24" y3="40.59"/>
+ <curve x1="28.66" x2="27.63" x3="25.74" y1="42.78" y2="44.57" y3="44.57"/>
+ <curve x1="23.69" x2="22.62" x3="21.46" y1="44.57" y2="42.78" y3="40.59"/>
+ <curve x1="22.62" x2="23.69" x3="25.74" y1="38.24" y2="36.02" y3="36.02"/>
+ <close/>
+ <move x="44.84" y="36.02"/>
+ <curve x1="46.46" x2="47.49" x3="48.82" y1="36.02" y2="38.24" y3="40.43"/>
+ <line x="48.82" y="40.59"/>
+ <curve x1="47.65" x2="46.63" x3="44.84" y1="42.65" y2="44.57" y3="44.57"/>
+ <curve x1="42.78" x2="41.76" x3="40.73" y1="44.57" y2="42.78" y3="40.59"/>
+ <curve x1="41.76" x2="42.78" x3="44.84" y1="38.24" y2="36.02" y3="36.02"/>
+ <close/>
+ <move x="63.97" y="36.02"/>
+ <curve x1="65.43" x2="66.62" x3="67.65" y1="36.02" y2="37.35" y3="40.29"/>
+ <curve x1="67.65" x2="67.78" x3="67.78" y1="40.43" y2="40.59" y3="40.59"/>
+ <curve x1="66.75" x2="65.43" x3="63.97" y1="43.38" y2="44.57" y3="44.57"/>
+ <curve x1="61.91" x2="60.89" x3="59.86" y1="44.57" y2="42.78" y3="40.59"/>
+ <curve x1="60.89" x2="62.04" x3="63.97" y1="38.24" y2="36.02" y3="36.02"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wireless lan controller" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.91" y="5.88"/>
+ <line x="27.01" y="23.83"/>
+ <line x="34.96" y="23.83"/>
+ <line x="34.96" y="34.13"/>
+ <line x="42.89" y="34.13"/>
+ <line x="42.89" y="23.83"/>
+ <line x="50.55" y="23.83"/>
+ <line x="38.91" y="5.88"/>
+ <close/>
+ <move x="31.72" y="36.45"/>
+ <line x="17.73" y="37.78"/>
+ <line x="20.08" y="41.75"/>
+ <line x="12.89" y="46.76"/>
+ <line x="15.54" y="50.6"/>
+ <line x="22.73" y="45.6"/>
+ <line x="25.09" y="49.53"/>
+ <line x="31.72" y="36.45"/>
+ <close/>
+ <move x="45.83" y="36.45"/>
+ <line x="52.46" y="49.53"/>
+ <line x="54.95" y="45.6"/>
+ <line x="62.01" y="50.6"/>
+ <line x="64.66" y="46.76"/>
+ <line x="57.44" y="41.75"/>
+ <line x="59.96" y="37.78"/>
+ <line x="45.83" y="36.45"/>
+ <close/>
+ <move x="38.78" y="38.81"/>
+ <line x="31.71" y="51.33"/>
+ <line x="36.42" y="51.33"/>
+ <line x="36.42" y="60.01"/>
+ <line x="41.26" y="60.01"/>
+ <line x="41.26" y="51.33"/>
+ <line x="45.84" y="51.33"/>
+ <line x="38.78" y="38.81"/>
+ <close/>
+ <move x="25.7" y="62.33"/>
+ <curve x1="23.04" x2="21.55" x3="20.39" y1="62.33" y2="64.55" y3="66.77"/>
+ <curve x1="19.36" x2="18.17" x3="16.11" y1="64.68" y2="62.93" y3="62.93"/>
+ <curve x1="13.33" x2="11.87" x3="11.27" y1="62.93" y2="66.01" y3="67.5"/>
+ <curve x1="10.84" x2="10.55" x3="10.68" y1="67.63" y2="68.06" y3="68.52"/>
+ <curve x1="10.84" x2="12.17" x3="16.11" y1="68.82" y2="74.12" y3="74.12"/>
+ <curve x1="18.47" x2="19.79" x3="20.99" y1="74.12" y2="72.03" y3="69.85"/>
+ <curve x1="22.01" x2="23.34" x3="25.7" y1="71.9" y2="73.65" y3="73.65"/>
+ <curve x1="27.88" x2="29.21" x3="30.24" y1="73.65" y2="71.9" y3="69.85"/>
+ <curve x1="31.43" x2="32.76" x3="35.24" y1="72.03" y2="74.12" y3="74.12"/>
+ <curve x1="37.6" x2="38.93" x3="40.09" y1="74.12" y2="72.03" y3="69.85"/>
+ <curve x1="41.11" x2="42.44" x3="44.79" y1="71.9" y2="73.65" y3="73.65"/>
+ <curve x1="46.85" x2="48.18" x3="49.37" y1="73.65" y2="71.9" y3="69.68"/>
+ <curve x1="50.53" x2="52.02" x3="54.37" y1="72.03" y2="74.12" y3="74.12"/>
+ <curve x1="56.86" x2="58.18" x3="59.21" y1="74.12" y2="72.03" y3="69.85"/>
+ <curve x1="60.41" x2="61.7" x3="63.92" y1="71.9" y2="73.65" y3="73.65"/>
+ <curve x1="66.41" x2="67.73" x3="68.63" y1="73.65" y2="71.17" y3="69.12"/>
+ <line x="68.76" y="69.12"/>
+ <curve x1="69.23" x2="69.36" x3="69.36" y1="68.82" y2="68.36" y3="67.93"/>
+ <curve x1="68.33" x2="66.87" x3="63.92" y1="65.58" y2="62.33" y3="62.33"/>
+ <curve x1="61.27" x2="59.94" x3="58.78" y1="62.33" y2="64.55" y3="66.77"/>
+ <curve x1="57.75" x2="56.56" x3="54.37" y1="64.68" y2="62.93" y3="62.93"/>
+ <curve x1="52.32" x2="50.99" x3="49.8" y1="62.93" y2="64.68" y3="66.9"/>
+ <curve x1="48.64" x2="47.14" x3="44.79" y1="64.55" y2="62.33" y3="62.33"/>
+ <curve x1="42.14" x2="40.68" x3="39.65" y1="62.33" y2="64.55" y3="66.77"/>
+ <curve x1="38.62" x2="37.3" x3="35.24" y1="64.68" y2="62.93" y3="62.93"/>
+ <curve x1="33.19" x2="31.86" x3="30.83" y1="62.93" y2="64.68" y3="66.77"/>
+ <curve x1="29.64" x2="28.18" x3="25.7" y1="64.55" y2="62.33" y3="62.33"/>
+ <close/>
+ <move x="16.11" y="63.82"/>
+ <curve x1="17.9" x2="18.93" x3="19.96" y1="63.82" y2="65.71" y3="67.79"/>
+ <curve x1="19.96" x2="19.8" x3="19.8" y1="67.93" y2="67.92" y3="68.06"/>
+ <curve x1="18.47" x2="17.6" x3="16.11" y1="70.71" y2="72.33" y3="72.33"/>
+ <curve x1="13.63" x2="12.43" x3="12.43" y1="72.33" y2="68.06" y3="68.06"/>
+ <curve x1="12.43" x2="12.3" x3="12.17" y1="67.92" y2="67.79" y3="67.79"/>
+ <curve x1="12.6" x2="13.92" x3="16.11" y1="66.47" y2="63.82" y3="63.82"/>
+ <close/>
+ <move x="35.24" y="63.82"/>
+ <curve x1="37" x2="38.03" x3="39.06" y1="63.82" y2="65.71" y3="67.79"/>
+ <curve x1="39.06" x2="38.93" x3="38.93" y1="67.93" y2="67.92" y3="68.06"/>
+ <curve x1="37.73" x2="36.87" x3="35.24" y1="70.71" y2="72.33" y3="72.33"/>
+ <curve x1="33.49" x2="32.46" x3="31.43" y1="72.33" y2="70.15" y3="67.93"/>
+ <curve x1="31.26" x2="31.26" x3="31.26" y1="67.93" y2="67.93" y3="67.79"/>
+ <curve x1="32.29" x2="33.49" x3="35.24" y1="65.71" y2="63.82" y3="63.82"/>
+ <close/>
+ <move x="54.37" y="63.82"/>
+ <curve x1="56.26" x2="57.16" x3="58.32" y1="63.82" y2="65.71" y3="67.79"/>
+ <curve x1="58.19" x2="58.19" x3="58.19" y1="67.93" y2="67.92" y3="68.06"/>
+ <curve x1="56.86" x2="55.96" x3="54.37" y1="70.71" y2="72.33" y3="72.33"/>
+ <curve x1="52.58" x2="51.42" x3="50.23" y1="72.33" y2="70.14" y3="67.79"/>
+ <curve x1="51.42" x2="52.58" x3="54.37" y1="65.71" y2="63.82" y3="63.82"/>
+ <close/>
+ <move x="25.7" y="64.25"/>
+ <curve x1="27.45" x2="28.62" x3="29.81" y1="64.25" y2="66.47" y3="68.82"/>
+ <curve x1="28.62" x2="27.59" x3="25.7" y1="70.88" y2="72.8" y3="72.8"/>
+ <curve x1="23.64" x2="22.44" x3="21.42" y1="72.8" y2="71.01" y3="68.82"/>
+ <curve x1="22.58" x2="23.64" x3="25.7" y1="66.47" y2="64.25" y3="64.25"/>
+ <close/>
+ <move x="44.79" y="64.25"/>
+ <curve x1="46.41" x2="47.61" x3="48.64" y1="64.25" y2="66.47" y3="68.66"/>
+ <curve x1="48.77" x2="48.77" x3="48.77" y1="68.66" y2="68.82" y3="68.82"/>
+ <curve x1="47.61" x2="46.58" x3="44.79" y1="70.88" y2="72.8" y3="72.8"/>
+ <curve x1="42.73" x2="41.71" x3="40.55" y1="72.8" y2="71.01" y3="68.82"/>
+ <curve x1="41.71" x2="42.73" x3="44.79" y1="66.47" y2="64.25" y3="64.25"/>
+ <close/>
+ <move x="63.92" y="64.25"/>
+ <curve x1="65.38" x2="66.58" x3="67.6" y1="64.25" y2="65.71" y3="68.52"/>
+ <curve x1="67.6" x2="67.73" x3="67.73" y1="68.65" y2="68.82" y3="68.82"/>
+ <curve x1="66.71" x2="65.38" x3="63.92" y1="71.47" y2="72.8" y3="72.8"/>
+ <curve x1="61.87" x2="60.84" x3="59.81" y1="72.8" y2="71.01" y3="68.82"/>
+ <curve x1="60.84" x2="62" x3="63.92" y1="66.47" y2="64.25" y3="64.25"/>
+ <close/>
+ <move x="16.18" y="0"/>
+ <curve x1="63.99" x2="63.99" x3="63.99" y1="0" y2="0" y3="0"/>
+ <curve x1="72.81" x2="80" x3="80" y1="0" y2="7.35" y3="16.16"/>
+ <curve x1="80" x2="80" x3="80" y1="63.97" y2="63.97" y3="63.97"/>
+ <curve x1="80" x2="72.81" x3="63.99" y1="72.78" y2="80" y3="80"/>
+ <curve x1="16.18" x2="16.18" x3="16.18" y1="80" y2="80" y3="80"/>
+ <curve x1="7.36" x2="0" x3="0" y1="80" y2="72.78" y3="63.97"/>
+ <curve x1="0" x2="0" x3="0" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="0" x2="7.36" x3="16.18" y1="7.35" y2="0" y3="0"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/src/main/webapp/stencils/cisco_safe/capability.xml b/src/main/webapp/stencils/cisco_safe/capability.xml
new file mode 100644
index 00000000..776e0889
--- /dev/null
+++ b/src/main/webapp/stencils/cisco_safe/capability.xml
@@ -0,0 +1,8999 @@
+<shapes name="mxGraph.cisco_safe.capability">
+<shape aspect="variable" h="99.98" name="access control using trustsec" strokewidth="inherit" w="95.86">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.76" y="46.32"/>
+ <curve x1="38.92" x2="39.03" x3="39.49" y1="45.46" y2="45.19" y3="44.42"/>
+ <curve x1="46.07" x2="48.3" x3="51.36" y1="43.31" y2="41.97" y3="40.68"/>
+ <curve x1="53.33" x2="55.68" x3="57.84" y1="39.9" y2="38.93" y3="40.49"/>
+ <curve x1="60.11" x2="60.27" x3="58.41" y1="42.54" y2="45.14" y3="47.86"/>
+ <curve x1="57.2" x2="54.21" x3="49.16" y1="49.34" y2="52.08" y3="52.64"/>
+ <curve x1="46.62" x2="43.69" x3="38.67" y1="52.72" y2="50.59" y3="50.4"/>
+ <curve x1="38.56" x2="38.47" x3="38.49" y1="49.77" y2="49.13" y3="48.36"/>
+ <curve x1="42.72" x2="45.38" x3="47.38" y1="48.55" y2="47.95" y3="47.02"/>
+ <curve x1="49.16" x2="51.21" x3="52.89" y1="46.3" y2="44.84" y3="43.94"/>
+ <curve x1="53.87" x2="54.57" x3="54.98" y1="43.47" y2="43.76" y3="44.12"/>
+ <curve x1="55.8" x2="55.47" x3="54.86" y1="44.85" y2="45.79" y3="46.23"/>
+ <curve x1="52.89" x2="51.15" x3="46.25" y1="47.92" y2="49.21" y3="49.87"/>
+ <curve x1="49.55" x2="52.4" x3="54.93" y1="50.5" y2="50.27" y3="48.32"/>
+ <curve x1="56.78" x2="58.35" x3="57.48" y1="46.86" y2="44.81" y3="42.99"/>
+ <curve x1="56.5" x2="54.41" x3="53.22" y1="41.53" y2="41.45" y3="42.01"/>
+ <curve x1="50.53" x2="43.92" x3="38.76" y1="43.48" y2="46.48" y3="46.32"/>
+ <close/>
+ <move x="39.88" y="42.61"/>
+ <curve x1="40.17" x2="40.49" x3="40.92" y1="41.91" y2="41.29" y3="40.6"/>
+ <curve x1="44.43" x2="48.37" x3="52.28" y1="40.16" y2="37.99" y3="36.14"/>
+ <curve x1="56.87" x2="60.11" x3="62.44" y1="34.28" y2="35.76" y3="38.7"/>
+ <curve x1="63.85" x2="64.59" x3="61.83" y1="40.53" y2="45.74" y3="48.99"/>
+ <curve x1="58.55" x2="55.94" x3="49.92" y1="53.54" y2="55.45" y3="56.67"/>
+ <curve x1="47.29" x2="42.87" x3="39.77" y1="57.05" y2="55.65" y3="54"/>
+ <curve x1="39.35" x2="39.09" x3="38.8" y1="53.56" y2="52.63" y3="51.78"/>
+ <curve x1="44.87" x2="48.13" x3="50.3" y1="54.2" y2="54.72" y3="54.49"/>
+ <curve x1="59.23" x2="61.33" x3="61.82" y1="53.05" y2="46.2" y3="43.57"/>
+ <curve x1="62.39" x2="59.2" x3="55.15" y1="40.66" y2="36.53" y3="37.34"/>
+ <curve x1="53.27" x2="52.16" x3="50.2" y1="37.73" y2="38.12" y3="39.25"/>
+ <curve x1="47.3" x2="42.72" x3="39.88" y1="40.91" y2="42.54" y3="42.61"/>
+ <close/>
+ <move x="41.97" y="38.96"/>
+ <line x="43.75" y="36.45"/>
+ <curve x1="49.16" x2="53.97" x3="58.12" y1="33.75" y2="31.37" y3="31.47"/>
+ <curve x1="63.57" x2="67.79" x3="67.47" y1="31.79" y2="37.16" y3="42.83"/>
+ <curve x1="66.88" x2="63.35" x3="55.69" y1="49.86" y2="55.21" y3="59.21"/>
+ <curve x1="50.22" x2="45.34" x3="41.31" y1="61.52" y2="61.18" y3="57.05"/>
+ <curve x1="47.48" x2="52.16" x3="55.7" y1="60.07" y2="58.9" y3="56.92"/>
+ <curve x1="61.15" x2="64.8" x3="65.77" y1="54.38" y2="48.71" y3="43.32"/>
+ <curve x1="66.14" x2="64.22" x3="58.32" y1="40.92" y2="34.24" y3="33.42"/>
+ <curve x1="55.2" x2="49.59" x3="41.97" y1="33.02" y2="35.47" y3="38.96"/>
+ <close/>
+ <move x="45.94" y="79.65"/>
+ <line x="77.41" y="48.27"/>
+ <curve x1="80.19" x2="80.07" x3="77.52" y1="44.84" y2="40.72" y3="37.79"/>
+ <line x="61.47" y="21.46"/>
+ <curve x1="57.81" x2="53.4" x3="49.9" y1="17.49" y2="17.51" y3="20.67"/>
+ <line x="18.28" y="52.7"/>
+ <line x="16.45" y="63.72"/>
+ <curve x1="16.56" x2="18.25" x3="19.88" y1="65.68" y2="67.11" y3="68.89"/>
+ <curve x1="22.08" x2="24.56" x3="27.39" y1="66.67" y2="64.78" y3="63.31"/>
+ <curve x1="30.39" x2="33.35" x3="34.15" y1="61.67" y2="63.75" y3="64.82"/>
+ <curve x1="35.72" x2="36.53" x3="34.15" y1="66.28" y2="70.15" y3="72.68"/>
+ <curve x1="32.67" x2="30.9" x3="28.72" y1="74.21" y2="74.9" y3="74.47"/>
+ <curve x1="28.23" x2="27.75" x3="26.98" y1="74.83" y2="75.14" y3="76.17"/>
+ <line x="32.13" y="81.08"/>
+ <curve x1="35.36" x2="43.67" x3="45.94" y1="82.54" y2="80.95" y3="79.65"/>
+ <close/>
+ <move x="47.8" y="92.04"/>
+ <curve x1="71.26" x2="87.96" x3="87.96" y1="92.04" y2="72.56" y3="49.8"/>
+ <curve x1="87.96" x2="70.17" x3="48.84" y1="27.21" y2="8.09" y3="8.09"/>
+ <curve x1="17.8" x2="8.09" x3="8.09" y1="8.09" y2="37.23" y3="48.17"/>
+ <curve x1="7.88" x2="12.11" x3="16.77" y1="62.29" y2="69.84" y3="76.75"/>
+ <curve x1="17.41" x2="17.98" x3="18.87" y1="75.05" y2="73.25" y3="71.95"/>
+ <curve x1="15.31" x2="12.47" x3="12.33" y1="66.59" y2="59.94" y3="49.97"/>
+ <curve x1="12.33" x2="30.47" x3="47.39" y1="27.12" y2="12.55" y3="12.55"/>
+ <curve x1="70.12" x2="83.91" x3="83.91" y1="12.55" y2="31.82" y3="49.61"/>
+ <curve x1="83.91" x2="65.36" x3="48.91" y1="73.42" y2="87.77" y3="87.77"/>
+ <curve x1="36.98" x2="29.99" x3="24.16" y1="87.77" y2="83.32" y3="78.34"/>
+ <curve x1="25.48" x2="28.62" x3="32.1" y1="73.81" y2="70.29" y3="69.18"/>
+ <curve x1="34.64" x2="34.4" x3="33.88" y1="68.37" y2="66.3" y3="65.39"/>
+ <curve x1="32.68" x2="31.45" x3="29.95" y1="64.16" y2="64.33" y3="64.91"/>
+ <curve x1="24.66" x2="21.23" x3="19.6" y1="67.45" y2="71.22" y3="77.42"/>
+ <curve x1="19.11" x2="19.9" x3="21.3" y1="79.39" y2="80.08" y3="81.35"/>
+ <curve x1="26.49" x2="36.18" x3="47.8" y1="86.4" y2="92.04" y3="92.04"/>
+ <close/>
+ <move x="47.73" y="99.98"/>
+ <curve x1="22.28" x2="0" x3="0" y1="99.98" y2="79.24" y3="48.69"/>
+ <curve x1="0" x2="19.69" x3="47.8" y1="25.3" y2="0" y3="0"/>
+ <curve x1="72.63" x2="95.86" x3="95.86" y1="0" y2="20.38" y3="49.88"/>
+ <curve x1="95.86" x2="74.49" x3="47.73" y1="77.77" y2="99.98" y3="99.98"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.76" name="analysis correlation" strokewidth="inherit" w="76.76">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="38.38"/>
+ <curve x1="0" x2="17.2" x3="38.38" y1="17.29" y2="0" y3="0"/>
+ <curve x1="59.77" x2="76.76" x3="76.76" y1="0" y2="17.29" y3="38.38"/>
+ <curve x1="76.76" x2="59.77" x3="38.38" y1="59.69" y2="76.76" y3="76.76"/>
+ <curve x1="17.2" x2="0" x3="0" y1="76.76" y2="59.69" y3="38.38"/>
+ <close/>
+ <move x="29.58" y="38"/>
+ <curve x1="27.2" x2="29.19" x3="34.2" y1="33.2" y2="27.63" y3="25.34"/>
+ <curve x1="39.17" x2="44.96" x3="47.38" y1="22.83" y2="24.95" y3="29.92"/>
+ <curve x1="49.59" x2="47.77" x3="42.8" y1="34.54" y2="40.29" y3="42.41"/>
+ <curve x1="37.79" x2="32" x3="29.58" y1="44.7" y2="42.8" y3="38"/>
+ <close/>
+ <move x="28.79" y="34.94"/>
+ <curve x1="29" x2="29.26" x3="29.48" y1="35.5" y2="36.06" y3="36.45"/>
+ <curve x1="29.74" x2="30.21" x3="30.91" y1="36.84" y2="36.84" y3="36.84"/>
+ <curve x1="31.12" x2="31.6" x3="31.86" y1="36.84" y2="36.84" y3="36.67"/>
+ <curve x1="32.07" x2="32.33" x3="32.33" y1="36.67" y2="36.45" y3="36.06"/>
+ <curve x1="32.55" x2="32.55" x3="32.55" y1="35.89" y2="35.5" y3="35.11"/>
+ <line x="32.55" y="34.16"/>
+ <curve x1="32.33" x2="32.07" x3="31.86" y1="33.95" y2="33.6" y3="33.6"/>
+ <curve x1="31.6" x2="31.38" x3="30.91" y1="33.38" y2="33.38" y3="33"/>
+ <curve x1="30.43" x2="30.21" x3="29.96" y1="33" y2="33" y3="32.61"/>
+ <line x="29.96" y="32.43"/>
+ <curve x1="29.96" x2="29.96" x3="30.21" y1="32.22" y2="32.04" y3="32.04"/>
+ <curve x1="30.21" x2="30.43" x3="30.69" y1="31.87" y2="31.87" y3="31.87"/>
+ <curve x1="30.91" x2="31.12" x3="31.38" y1="31.87" y2="31.87" y3="32.04"/>
+ <curve x1="31.38" x2="31.6" x3="31.6" y1="32.22" y2="32.22" y3="32.61"/>
+ <line x="32.55" y="32.61"/>
+ <curve x1="32.55" x2="32.33" x3="32.07" y1="32.04" y2="31.48" y3="31.27"/>
+ <curve x1="31.6" x2="31.38" x3="30.69" y1="30.88" y2="30.71" y3="30.71"/>
+ <curve x1="30.43" x2="29.96" x3="29.96" y1="30.71" y2="30.88" y3="31.09"/>
+ <curve x1="29.48" x2="29.48" x3="29.26" y1="31.09" y2="31.27" y3="31.48"/>
+ <curve x1="29.26" x2="29" x3="29" y1="31.87" y2="32.22" y3="32.43"/>
+ <curve x1="29" x2="29.26" x3="29.48" y1="33" y2="33.38" y3="33.6"/>
+ <curve x1="29.74" x2="29.96" x3="30.43" y1="33.95" y2="33.95" y3="34.16"/>
+ <curve x1="30.91" x2="31.12" x3="31.38" y1="34.34" y2="34.34" y3="34.34"/>
+ <curve x1="31.38" x2="31.6" x3="31.6" y1="34.55" y2="34.72" y3="34.72"/>
+ <line x="31.6" y="35.11"/>
+ <line x="31.6" y="35.68"/>
+ <curve x1="31.38" x2="31.12" x3="30.91" y1="35.89" y2="35.89" y3="35.89"/>
+ <curve x1="30.43" x2="30.43" x3="30.21" y1="35.89" y2="35.89" y3="35.68"/>
+ <curve x1="29.96" x2="29.96" x3="29.96" y1="35.5" y2="35.11" y3="34.72"/>
+ <line x="28.79" y="34.94"/>
+ <close/>
+ <move x="40.74" y="36.84"/>
+ <line x="40.74" y="35.68"/>
+ <line x="37.8" y="35.68"/>
+ <line x="37.8" y="34.55"/>
+ <line x="40.27" y="34.55"/>
+ <line x="40.27" y="33.21"/>
+ <line x="37.8" y="33.21"/>
+ <line x="37.8" y="32.04"/>
+ <line x="40.27" y="32.04"/>
+ <line x="40.27" y="30.71"/>
+ <line x="36.81" y="30.71"/>
+ <line x="36.81" y="36.84"/>
+ <close/>
+ <move x="33.66" y="30.82"/>
+ <line x="33.66" y="36.96"/>
+ <line x="35.65" y="36.96"/>
+ <line x="35.65" y="30.82"/>
+ <close/>
+ <move x="42.63" y="36.84"/>
+ <line x="42.63" y="32.43"/>
+ <line x="43.84" y="36.84"/>
+ <line x="45.27" y="36.84"/>
+ <line x="46.44" y="32.43"/>
+ <line x="46.44" y="36.84"/>
+ <line x="47.65" y="36.84"/>
+ <line x="47.65" y="30.71"/>
+ <line x="45.83" y="30.71"/>
+ <line x="44.45" y="34.72"/>
+ <line x="43.24" y="30.71"/>
+ <line x="41.25" y="30.71"/>
+ <line x="41.25" y="36.84"/>
+ <close/>
+ <move x="63.76" y="35.12"/>
+ <curve x1="62.37" x2="60.39" x3="59.56" y1="35.59" y2="35.12" y3="33.69"/>
+ <curve x1="58.79" x2="59.56" x3="60.99" y1="32.26" y2="30.36" y3="29.63"/>
+ <curve x1="62.37" x2="64.36" x3="65.18" y1="29.15" y2="29.63" y3="31.05"/>
+ <curve x1="65.96" x2="65.36" x3="63.76" y1="32.48" y2="34.16" y3="35.12"/>
+ <close/>
+ <move x="30.57" y="51.05"/>
+ <line x="33.6" y="51.83"/>
+ <curve x1="34.38" x2="35.2" x3="35.8" y1="52.18" y2="51.83" y3="51.05"/>
+ <line x="36.8" y="47.77"/>
+ <curve x1="38.4" x2="40.17" x3="41.77" y1="47.98" y2="47.98" y3="47.38"/>
+ <line x="42.98" y="50.45"/>
+ <curve x1="43.58" x2="44.58" x3="45.4" y1="51.44" y2="51.83" y3="51.44"/>
+ <line x="48.38" y="50.1"/>
+ <curve x1="48.98" x2="49.37" x3="48.98" y1="49.5" y2="48.72" y3="47.98"/>
+ <line x="47.38" y="44.92"/>
+ <curve x1="48.77" x2="49.76" x3="50.8" y1="43.75" y2="42.8" y3="41.24"/>
+ <line x="54.17" y="42.41"/>
+ <curve x1="54.99" x2="55.77" x3="56.16" y1="42.8" y2="42.41" y3="41.46"/>
+ <line x="57.2" y="38.56"/>
+ <curve x1="57.26" x2="57.3" x3="57.32" y1="38.44" y2="38.32" y3="38.21"/>
+ <line x="59.78" y="39.65"/>
+ <curve x1="60" x2="60.17" x3="60.39" y1="39.91" y2="39.91" y3="39.65"/>
+ <line x="61.98" y="37.28"/>
+ <line x="62.59" y="37.28"/>
+ <line x="63.97" y="39.65"/>
+ <curve x1="63.97" x2="64.19" x3="64.36" y1="39.91" y2="39.91" y3="39.91"/>
+ <line x="67.78" y="38.23"/>
+ <curve x1="67.99" x2="67.99" x3="67.99" y1="38.01" y2="38.01" y3="37.75"/>
+ <line x="66.57" y="35.37"/>
+ <curve x1="66.78" x2="66.78" x3="67.17" y1="35.12" y2="35.12" y3="34.9"/>
+ <line x="69.98" y="34.9"/>
+ <curve x1="69.98" x2="70.37" x3="70.37" y1="34.9" y2="34.9" y3="34.64"/>
+ <line x="70.37" y="30.84"/>
+ <curve x1="70.37" x2="70.37" x3="69.98" y1="30.84" y2="30.36" y3="30.36"/>
+ <line x="67.17" y="30.36"/>
+ <line x="67.17" y="30.1"/>
+ <curve x1="66.95" x2="66.95" x3="66.78" y1="29.89" y2="29.89" y3="29.63"/>
+ <line x="68.38" y="27.47"/>
+ <curve x1="68.55" x2="68.38" x3="68.38" y1="27.25" y2="26.99" y3="26.99"/>
+ <line x="65.18" y="25.09"/>
+ <curve x1="64.79" x2="64.58" x3="64.58" y1="24.83" y2="25.09" y3="25.09"/>
+ <line x="62.98" y="27.47"/>
+ <curve x1="62.76" x2="62.59" x3="62.37" y1="27.25" y2="27.25" y3="27.25"/>
+ <line x="60.99" y="25.09"/>
+ <curve x1="60.77" x2="60.56" x3="60.39" y1="24.61" y2="24.61" y3="24.61"/>
+ <line x="56.97" y="26.51"/>
+ <curve x1="56.8" x2="56.8" x3="56.8" y1="26.51" y2="26.77" y3="26.99"/>
+ <line x="58.18" y="29.41"/>
+ <curve x1="57.97" x2="57.97" x3="57.79" y1="29.63" y2="29.63" y3="29.89"/>
+ <line x="54.98" y="29.89"/>
+ <curve x1="54.77" x2="54.59" x3="54.59" y1="29.89" y2="29.89" y3="30.1"/>
+ <line x="54.38" y="33.95"/>
+ <curve x1="54.38" x2="54.59" x3="54.77" y1="33.95" y2="34.16" y3="34.16"/>
+ <line x="57.58" y="34.42"/>
+ <curve x1="57.58" x2="57.58" x3="57.79" y1="34.64" y2="34.64" y3="34.9"/>
+ <curve x1="57.97" x2="57.97" x3="57.97" y1="34.9" y2="34.9" y3="35.12"/>
+ <line x="56.64" y="36.9"/>
+ <curve x1="56.5" x2="56.34" x3="56.16" y1="36.81" y2="36.73" y3="36.66"/>
+ <line x="52.79" y="35.32"/>
+ <curve x1="53.18" x2="52.96" x3="52.57" y1="34.15" y2="32.43" y3="30.91"/>
+ <line x="55.77" y="29.36"/>
+ <curve x1="56.59" x2="56.98" x3="56.59" y1="28.79" y2="28.02" y3="27.24"/>
+ <line x="55.16" y="24.39"/>
+ <curve x1="54.99" x2="54" x3="52.96" y1="23.61" y2="23.39" y3="23.78"/>
+ <line x="49.98" y="25.12"/>
+ <curve x1="48.98" x2="47.6" x3="46.17" y1="24" y2="22.83" y3="22.05"/>
+ <line x="47.38" y="18.81"/>
+ <curve x1="47.6" x2="47.38" x3="46.56" y1="17.86" y2="17.26" y3="16.87"/>
+ <line x="43.58" y="15.74"/>
+ <curve x1="42.59" x2="41.59" x3="41.38" y1="15.35" y2="15.92" y3="16.87"/>
+ <line x="40.17" y="19.93"/>
+ <curve x1="38.57" x2="36.97" x3="35.2" y1="19.76" y2="19.93" y3="20.32"/>
+ <line x="33.77" y="17.08"/>
+ <curve x1="33.38" x2="32.6" x3="31.57" y1="16.52" y2="16.13" y3="16.52"/>
+ <line x="28.8" y="17.64"/>
+ <curve x1="27.98" x2="27.59" x3="27.98" y1="18.21" y2="18.98" y3="19.76"/>
+ <line x="29.41" y="22.83"/>
+ <curve x1="28.2" x2="27.2" x3="26.21" y1="23.78" y2="24.95" y3="26.46"/>
+ <line x="22.58" y="25.12"/>
+ <curve x1="22.19" x2="21.19" x3="20.8" y1="24.95" y2="25.34" y3="26.12"/>
+ <line x="19.59" y="29.18"/>
+ <curve x1="19.21" x2="19.81" x3="20.59" y1="29.92" y2="30.91" y3="31.09"/>
+ <line x="24" y="32.25"/>
+ <curve x1="24" x2="24" x3="24.18" y1="33.77" y2="35.32" y3="36.83"/>
+ <line x="20.98" y="38.39"/>
+ <curve x1="20.2" x2="19.98" x3="20.37" y1="38.78" y2="39.51" y3="40.51"/>
+ <line x="21.58" y="43.36"/>
+ <curve x1="22.19" x2="23.01" x3="24" y1="44.14" y2="44.31" y3="44.14"/>
+ <line x="27.2" y="42.58"/>
+ <curve x1="27.98" x2="29.19" x3="30.57" y1="43.75" y2="44.92" y3="45.48"/>
+ <line x="29.58" y="48.94"/>
+ <curve x1="29.31" x2="29.58" x3="29.79" y1="49.48" y2="50.22" y3="50.45"/>
+ <line x="27.02" y="50.09"/>
+ <line x="27.02" y="49.7"/>
+ <line x="26.81" y="49.52"/>
+ <line x="28.84" y="47.41"/>
+ <curve x1="28.84" x2="28.84" x3="28.62" y1="47.23" y2="46.84" y3="46.84"/>
+ <line x="25.64" y="44.55"/>
+ <curve x1="25.64" x2="25.42" x3="25.21" y1="44.34" y2="44.34" y3="44.73"/>
+ <line x="23.44" y="46.84"/>
+ <curve x1="23.22" x2="23.05" x3="22.83" y1="46.63" y2="46.63" y3="46.63"/>
+ <line x="21.62" y="44.16"/>
+ <curve x1="21.62" x2="21.45" x3="21.23" y1="43.95" y2="43.78" y3="43.95"/>
+ <line x="17.82" y="45.29"/>
+ <curve x1="17.43" x2="17.43" x3="17.43" y1="45.29" y2="45.5" y3="45.68"/>
+ <line x="18.64" y="48.18"/>
+ <curve x1="18.42" x2="18.25" x3="18.03" y1="48.36" y2="48.57" y3="48.75"/>
+ <line x="15.22" y="48.36"/>
+ <curve x1="15.22" x2="14.83" x3="14.83" y1="48.36" y2="48.36" y3="48.57"/>
+ <line x="14.23" y="52.2"/>
+ <curve x1="14.23" x2="14.45" x3="14.62" y1="52.42" y2="52.59" y3="52.59"/>
+ <line x="17.43" y="52.98"/>
+ <line x="17.43" y="53.37"/>
+ <line x="17.64" y="53.54"/>
+ <line x="15.83" y="55.88"/>
+ <curve x1="15.83" x2="15.83" x3="16.04" y1="55.88" y2="56.05" y3="56.22"/>
+ <line x="19.03" y="58.56"/>
+ <curve x1="19.03" x2="19.24" x3="19.42" y1="58.73" y2="58.73" y3="58.56"/>
+ <line x="21.23" y="56.44"/>
+ <line x="21.84" y="56.44"/>
+ <line x="22.83" y="58.95"/>
+ <curve x1="23.05" x2="23.05" x3="23.44" y1="59.12" y2="59.12" y3="59.12"/>
+ <line x="26.81" y="57.78"/>
+ <curve x1="27.02" x2="27.02" x3="27.02" y1="57.78" y2="57.56" y3="57.39"/>
+ <line x="26.03" y="54.88"/>
+ <curve x1="26.24" x2="26.42" x3="26.63" y1="54.71" y2="54.49" y3="54.32"/>
+ <line x="29.23" y="54.71"/>
+ <curve x1="29.44" x2="29.83" x3="29.83" y1="54.71" y2="54.71" y3="54.49"/>
+ <line x="30.22" y="50.86"/>
+ <close/>
+ <move x="23.44" y="54.15"/>
+ <curve x1="21.84" x2="20.24" x3="19.63" y1="54.71" y2="54.15" y3="52.59"/>
+ <curve x1="19.03" x2="19.63" x3="21.23" y1="51.08" y2="49.52" y3="48.96"/>
+ <curve x1="22.83" x2="24.43" x3="25.03" y1="48.18" y2="48.96" y3="50.47"/>
+ <curve x1="25.64" x2="25.03" x3="23.44" y1="52.03" y2="53.54" y3="54.15"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="anomaly detection" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="45.4" y="43.07"/>
+ <curve x1="44.82" x2="44.41" x3="44.41" y1="43.07" y2="42.48" y3="42.08"/>
+ <curve x1="44.41" x2="44.82" x3="45.4" y1="41.45" y2="41.09" y3="41.09"/>
+ <curve x1="45.81" x2="46.39" x3="46.39" y1="41.09" y2="41.45" y3="42.08"/>
+ <curve x1="46.39" x2="45.81" x3="45.4" y1="42.48" y2="43.07" y3="43.07"/>
+ <close/>
+ <move x="44.59" y="36.67"/>
+ <curve x1="44.59" x2="44.82" x3="45.4" y1="36.27" y2="36.09" y3="36.09"/>
+ <curve x1="45.81" x2="46.21" x3="46.21" y1="36.09" y2="36.27" y3="36.67"/>
+ <curve x1="46.21" x2="46.21" x3="46.21" y1="39.47" y2="39.47" y3="39.47"/>
+ <curve x1="46.21" x2="45.81" x3="45.4" y1="39.65" y2="40.05" y3="40.05"/>
+ <curve x1="44.82" x2="44.59" x3="44.59" y1="40.05" y2="39.65" y3="39.47"/>
+ <line x="44.59" y="36.67"/>
+ <close/>
+ <move x="53.19" y="43.07"/>
+ <curve x1="52.97" x2="52.97" x3="52.97" y1="42.84" y2="42.84" y3="42.84"/>
+ <curve x1="46.39" x2="46.39" x3="46.39" y1="32.26" y2="32.26" y3="32.26"/>
+ <curve x1="46.21" x2="45.81" x3="45.4" y1="32.08" y2="31.67" y3="31.67"/>
+ <curve x1="44.82" x2="44.41" x3="44.41" y1="31.67" y2="32.08" y3="32.48"/>
+ <curve x1="37.61" x2="37.61" x3="37.61" y1="42.84" y2="42.84" y3="42.84"/>
+ <curve x1="37.38" x2="37.2" x3="37.2" y1="43.07" y2="43.48" y3="43.66"/>
+ <curve x1="37.2" x2="37.79" x3="38.6" y1="44.06" y2="44.47" y3="44.47"/>
+ <curve x1="52.2" x2="52.2" x3="52.2" y1="44.47" y2="44.47" y3="44.47"/>
+ <curve x1="52.79" x2="53.19" x3="53.19" y1="44.47" y2="44.06" y3="43.66"/>
+ <curve x1="53.19" x2="53.19" x3="53.19" y1="43.48" y2="43.07" y3="43.07"/>
+ <close/>
+ <move x="52.57" y="47"/>
+ <curve x1="50.77" x2="47.98" x3="45.36" y1="48.8" y2="49.79" y3="49.79"/>
+ <curve x1="42.57" x2="39.96" x3="38.16" y1="49.79" y2="48.8" y3="47"/>
+ <curve x1="36.35" x2="35.18" x3="35.18" y1="45.2" y2="42.58" y3="40.02"/>
+ <curve x1="35.18" x2="36.35" x3="38.16" y1="37.58" y2="35.02" y3="33.21"/>
+ <curve x1="39.96" x2="42.57" x3="45.36" y1="31.41" y2="30.38" y3="30.38"/>
+ <curve x1="47.98" x2="50.77" x3="52.57" y1="30.38" y2="31.41" y3="33.21"/>
+ <curve x1="56.53" x2="56.53" x3="52.57" y1="37" y2="43.21" y3="47"/>
+ <close/>
+ <move x="69.33" y="58.8"/>
+ <curve x1="58.16" x2="58.16" x3="58.16" y1="47.81" y2="47.81" y3="47.81"/>
+ <curve x1="61.76" x2="61.13" x3="56.13" y1="42.18" y2="34.79" y3="29.79"/>
+ <curve x1="53.16" x2="49.15" x3="45.36" y1="27.18" y2="25.6" y3="25.6"/>
+ <curve x1="41.58" x2="37.75" x3="34.78" y1="25.6" y2="27.18" y3="29.79"/>
+ <curve x1="28.79" x2="28.79" x3="34.78" y1="35.38" y2="44.61" y3="50.2"/>
+ <curve x1="37.75" x2="41.58" x3="45.36" y1="52.99" y2="54.38" y3="54.38"/>
+ <curve x1="48.16" x2="50.95" x3="53.34" y1="54.38" y2="53.8" y3="52.4"/>
+ <curve x1="64.73" x2="64.73" x3="64.73" y1="63.21" y2="63.21" y3="63.21"/>
+ <curve x1="65.54" x2="67.12" x3="68.16" y1="63.98" y2="63.98" y3="63.21"/>
+ <curve x1="69.33" x2="69.33" x3="69.33" y1="62" y2="62" y3="62"/>
+ <curve x1="70.32" x2="70.32" x3="69.33" y1="61.01" y2="59.38" y3="58.8"/>
+ <close/>
+ <move x="24.59" y="61.39"/>
+ <curve x1="24.37" x2="23.78" x3="23.6" y1="61.21" y2="60.8" y3="60.58"/>
+ <curve x1="23.78" x2="24.37" x3="24.59" y1="60.8" y2="61.21" y3="61.39"/>
+ <close/>
+ <move x="14.37" y="45.58"/>
+ <curve x1="14.37" x2="14.37" x3="14.19" y1="45.4" y2="45.4" y3="44.99"/>
+ <curve x1="14.37" x2="14.37" x3="14.37" y1="45.4" y2="45.4" y3="45.58"/>
+ <close/>
+ <move x="14.37" y="34.41"/>
+ <curve x1="14.37" x2="14.37" x3="14.19" y1="34.59" y2="34.81" y3="34.99"/>
+ <curve x1="14.37" x2="14.37" x3="14.37" y1="34.81" y2="34.59" y3="34.41"/>
+ <close/>
+ <move x="16.98" y="27.38"/>
+ <curve x1="17.2" x2="17.38" x3="17.56" y1="26.8" y2="26.62" y3="26.21"/>
+ <curve x1="17.38" x2="17.2" x3="16.98" y1="26.62" y2="26.8" y3="27.38"/>
+ <close/>
+ <move x="17.79" y="54.41"/>
+ <curve x1="17.56" x2="17.38" x3="17.38" y1="54" y2="53.6" y3="53.19"/>
+ <curve x1="17.38" x2="17.56" x3="17.79" y1="53.6" y2="54" y3="54.41"/>
+ <close/>
+ <move x="24.77" y="19.18"/>
+ <curve x1="25.76" x2="26.57" x3="26.57" y1="19.18" y2="19.59" y3="20.58"/>
+ <curve x1="26.57" x2="25.99" x3="25" y1="21.39" y2="21.98" y3="21.98"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="21.98" y2="21.98" y3="21.98"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="19.59" y2="19.59" y3="19.59"/>
+ <curve x1="23.38" x2="23.2" x3="22.97" y1="19.59" y2="19.81" y3="19.99"/>
+ <curve x1="23.6" x2="24.37" x3="25" y1="19.41" y2="18.78" y3="18.42"/>
+ <curve x1="24.59" x2="24.37" x3="23.96" y1="18.6" y2="18.78" y3="19.18"/>
+ <line x="24.77" y="19.18"/>
+ <close/>
+ <move x="25" y="26.8"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="26.8" y2="26.8" y3="26.8"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="23.6" y2="23.6" y3="23.6"/>
+ <curve x1="25.18" x2="25.18" x3="25.18" y1="23.6" y2="23.6" y3="23.6"/>
+ <curve x1="26.39" x2="26.8" x3="26.8" y1="23.6" y2="24.18" y3="25.22"/>
+ <curve x1="26.8" x2="26.39" x3="25" y1="26.39" y2="26.8" y3="26.8"/>
+ <close/>
+ <move x="40.18" y="66.39"/>
+ <curve x1="34.37" x2="29.19" x3="25" y1="66.39" y2="64.59" y3="61.62"/>
+ <curve x1="25.18" x2="25.76" x3="26.17" y1="62.02" y2="62.2" y3="62.38"/>
+ <curve x1="26.17" x2="26.17" x3="26.17" y1="53.42" y2="53.42" y3="53.42"/>
+ <curve x1="29.37" x2="29.37" x3="29.37" y1="53.42" y2="53.42" y3="53.42"/>
+ <curve x1="29.37" x2="29.37" x3="29.37" y1="51.39" y2="51.39" y3="51.39"/>
+ <curve x1="20.4" x2="20.4" x3="20.4" y1="51.39" y2="51.39" y3="51.39"/>
+ <curve x1="20.4" x2="20.4" x3="20.4" y1="53.42" y2="53.42" y3="53.42"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="53.42" y2="53.42" y3="53.42"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="60.58" y2="60.58" y3="60.58"/>
+ <curve x1="21.39" x2="19.59" x3="17.79" y1="58.78" y2="56.62" y3="54.41"/>
+ <curve x1="17.97" x2="17.97" x3="17.97" y1="54.41" y2="54.41" y3="54.41"/>
+ <curve x1="17.79" x2="17.38" x3="16.8" y1="53.42" y2="52.61" y3="52.02"/>
+ <curve x1="16.8" x2="16.98" x3="17.38" y1="52.61" y2="52.79" y3="53.19"/>
+ <curve x1="15.99" x2="14.77" x3="14.37" y1="50.99" y2="48.19" y3="45.58"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="45.58" y2="45.58" y3="45.58"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="40.8" y2="40.8" y3="40.8"/>
+ <curve x1="20.4" x2="20.4" x3="20.4" y1="45.58" y2="45.58" y3="45.58"/>
+ <curve x1="23.6" x2="23.6" x3="23.6" y1="45.58" y2="45.58" y3="45.58"/>
+ <curve x1="18.38" x2="18.38" x3="18.38" y1="39.59" y2="39.59" y3="39.59"/>
+ <curve x1="23.2" x2="23.2" x3="23.2" y1="34.41" y2="34.41" y3="34.41"/>
+ <curve x1="20" x2="20" x3="20" y1="34.41" y2="34.41" y3="34.41"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="39.18" y2="39.18" y3="39.18"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="34.41" y2="34.41" y3="34.41"/>
+ <curve x1="14.37" x2="14.37" x3="14.37" y1="34.41" y2="34.41" y3="34.41"/>
+ <curve x1="14.77" x2="15.81" x3="16.98" y1="31.98" y2="29.59" y3="27.38"/>
+ <curve x1="16.8" x2="16.57" x3="16.39" y1="27.79" y2="28.19" y3="28.6"/>
+ <curve x1="18.6" x2="18.6" x3="18.6" y1="28.6" y2="28.6" y3="28.6"/>
+ <curve x1="17.56" x2="17.56" x3="17.56" y1="26.21" y2="26.21" y3="26.21"/>
+ <curve x1="19.19" x2="20.76" x3="22.79" y1="23.78" y2="21.98" y3="20.22"/>
+ <curve x1="22.16" x2="21.57" x3="20.99" y1="20.58" y2="21.21" y3="21.98"/>
+ <curve x1="20.99" x2="20.99" x3="20.99" y1="28.6" y2="28.6" y3="28.6"/>
+ <curve x1="25" x2="25" x3="25" y1="28.6" y2="28.6" y3="28.6"/>
+ <curve x1="28.2" x2="29.59" x3="29.59" y1="28.6" y2="27.38" y3="25.4"/>
+ <curve x1="29.59" x2="28.56" x3="27.16" y1="23.78" y2="23.01" y3="22.61"/>
+ <curve x1="28.2" x2="28.96" x3="28.96" y1="22.38" y2="21.62" y3="20.4"/>
+ <curve x1="28.96" x2="28.2" x3="26.17" y1="18.78" y2="18.01" y3="17.61"/>
+ <curve x1="25.76" x2="25.36" x3="25" y1="17.79" y2="18.19" y3="18.42"/>
+ <curve x1="29.37" x2="34.37" x3="40.18" y1="15.4" y2="13.78" y3="13.78"/>
+ <curve x1="54.55" x2="66.35" x3="66.35" y1="13.78" y2="25.4" y3="39.99"/>
+ <curve x1="66.35" x2="65.76" x3="64.14" y1="43.78" y2="47.38" y3="50.58"/>
+ <curve x1="67.16" x2="67.16" x3="67.16" y1="53.6" y2="53.6" y3="53.6"/>
+ <curve x1="69.32" x2="70.36" x3="70.36" y1="49.59" y2="44.99" y3="39.99"/>
+ <curve x1="70.36" x2="56.75" x3="40.18" y1="23.42" y2="9.59" y3="9.59"/>
+ <curve x1="31.98" x2="24.37" x3="18.6" y1="9.59" y2="12.79" y3="18.6"/>
+ <curve x1="12.97" x2="9.59" x3="9.59" y1="24.41" y2="31.98" y3="39.99"/>
+ <curve x1="9.59" x2="23.38" x3="40.18" y1="56.8" y2="70.4" y3="70.4"/>
+ <curve x1="47.97" x2="55.13" x3="60.54" y1="70.4" y2="67.38" y3="62.38"/>
+ <curve x1="57.56" x2="57.56" x3="57.56" y1="59.59" y2="59.59" y3="59.59"/>
+ <curve x1="52.97" x2="46.75" x3="40.18" y1="63.78" y2="66.39" y3="66.39"/>
+ <close/>
+ <move x="34.18" y="52.2"/>
+ <curve x1="34.18" x2="34.18" x3="34.18" y1="52.2" y2="52.2" y3="52.2"/>
+ <curve x1="33.77" x2="33.37" x3="33.19" y1="51.79" y2="51.61" y3="51.2"/>
+ <curve x1="31.97" x2="31.97" x3="31.97" y1="51.2" y2="51.2" y3="51.2"/>
+ <curve x1="31.97" x2="31.97" x3="31.97" y1="57.6" y2="57.6" y3="57.6"/>
+ <curve x1="31.97" x2="33.77" x3="36.97" y1="59.58" y2="60.8" y3="60.8"/>
+ <curve x1="39.94" x2="41.57" x3="41.57" y1="60.8" y2="59.58" y3="57.6"/>
+ <curve x1="41.57" x2="41.57" x3="41.57" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="40.76" x2="39.94" x3="39.18" y1="55.62" y2="55.39" y3="54.99"/>
+ <curve x1="39.18" x2="39.18" x3="39.18" y1="57.6" y2="57.6" y3="57.6"/>
+ <curve x1="39.18" x2="38.37" x3="36.97" y1="58.82" y2="59.4" y3="59.4"/>
+ <curve x1="35.58" x2="34.76" x3="34.76" y1="59.4" y2="58.82" y3="57.6"/>
+ <curve x1="34.76" x2="34.76" x3="34.76" y1="52.6" y2="52.6" y3="52.6"/>
+ <curve x1="34.58" x2="34.36" x3="34.18" y1="52.6" y2="52.42" y3="52.2"/>
+ <close/>
+ <move x="51.16" y="54.4"/>
+ <curve x1="50.35" x2="49.53" x3="48.77" y1="54.81" y2="54.99" y3="55.21"/>
+ <curve x1="47.96" x2="47.96" x3="47.96" y1="58.82" y2="58.82" y3="58.82"/>
+ <curve x1="47.15" x2="47.15" x3="47.15" y1="55.62" y2="55.62" y3="55.62"/>
+ <curve x1="46.34" x2="45.98" x3="45.35" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="44.76" x2="44.76" x3="44.76" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="46.34" x2="46.34" x3="46.34" y1="60.8" y2="60.8" y3="60.8"/>
+ <curve x1="49.35" x2="49.35" x3="49.35" y1="60.8" y2="60.8" y3="60.8"/>
+ <line x="51.16" y="54.4"/>
+ <close/>
+ <move x="54.13" y="25.6"/>
+ <curve x1="54.35" x2="54.35" x3="54.35" y1="25.01" y2="23.98" y3="22.98"/>
+ <curve x1="54.35" x2="52.55" x3="48.95" y1="18.39" y2="16" y3="16"/>
+ <curve x1="44.76" x2="44.76" x3="44.76" y1="16" y2="16" y3="16"/>
+ <curve x1="44.76" x2="44.76" x3="44.76" y1="22.98" y2="22.98" y3="22.98"/>
+ <curve x1="45.75" x2="45.75" x3="45.75" y1="22.98" y2="22.98" y3="22.98"/>
+ <curve x1="46.16" x2="46.74" x3="47.37" y1="22.98" y2="22.98" y3="22.98"/>
+ <curve x1="47.37" x2="47.37" x3="47.37" y1="18.39" y2="18.39" y3="18.39"/>
+ <curve x1="48.95" x2="48.95" x3="48.95" y1="18.39" y2="18.39" y3="18.39"/>
+ <curve x1="50.75" x2="51.74" x3="51.74" y1="18.39" y2="19.79" y3="22.98"/>
+ <curve x1="51.74" x2="51.74" x3="51.74" y1="23.39" y2="23.8" y3="24.38"/>
+ <curve x1="52.55" x2="53.36" x3="54.13" y1="24.79" y2="25.19" y3="25.6"/>
+ <close/>
+ <move x="36.97" y="18.21"/>
+ <curve x1="38.19" x2="38.95" x3="39.18" y1="18.21" y2="18.98" y3="20.78"/>
+ <curve x1="41.57" x2="41.57" x3="41.57" y1="20.78" y2="20.78" y3="20.78"/>
+ <curve x1="41.16" x2="39.36" x3="36.97" y1="17.58" y2="16" y3="16"/>
+ <curve x1="33.95" x2="31.97" x3="31.97" y1="16" y2="18.62" y3="22.99"/>
+ <curve x1="31.97" x2="32.78" x3="33.95" y1="25.78" y2="27.81" y3="28.8"/>
+ <curve x1="34.58" x2="34.99" x3="35.58" y1="28.21" y2="27.58" y3="27.18"/>
+ <curve x1="34.99" x2="34.58" x3="34.58" y1="26.41" y2="25.01" y3="22.99"/>
+ <curve x1="34.58" x2="35.58" x3="36.97" y1="19.61" y2="18.21" y3="18.21"/>
+ <close/>
+ <move x="25.58" y="35.2"/>
+ <curve x1="25.58" x2="25.58" x3="25.58" y1="44.8" y2="44.8" y3="44.8"/>
+ <curve x1="27.56" x2="27.56" x3="27.56" y1="44.8" y2="44.8" y3="44.8"/>
+ <curve x1="27.56" x2="27.56" x3="27.56" y1="38.18" y2="38.18" y3="38.18"/>
+ <curve x1="28.37" x2="28.37" x3="28.37" y1="39.8" y2="39.8" y3="39.8"/>
+ <curve x1="28.6" x2="28.78" x3="28.78" y1="38.81" y2="37.82" y3="36.78"/>
+ <curve x1="28.19" x2="28.19" x3="28.19" y1="35.2" y2="35.2" y3="35.2"/>
+ <line x="25.58" y="35.2"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="anti malware" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="65.93" y="32.42"/>
+ <curve x1="65.93" x2="65.93" x3="65.53" y1="34" y2="35.39" y3="36.79"/>
+ <curve x1="64.36" x2="60.17" x3="54.54" y1="43.59" y2="49.4" y3="52.42"/>
+ <curve x1="52.15" x2="50.17" x3="48.37" y1="51.2" y2="49.4" y3="47.42"/>
+ <curve x1="65.93" x2="65.93" x3="65.93" y1="28.59" y2="28.59" y3="28.59"/>
+ <line x="65.93" y="32.42"/>
+ <close/>
+ <move x="43.37" y="36.79"/>
+ <curve x1="42.96" x2="42.78" x3="42.78" y1="35.39" y2="34" y3="32.42"/>
+ <curve x1="42.78" x2="42.78" x3="42.78" y1="26.2" y2="26.2" y3="26.2"/>
+ <curve x1="54.54" x2="54.54" x3="54.54" y1="23.18" y2="23.18" y3="23.18"/>
+ <curve x1="60.53" x2="63.55" x3="64.76" y1="24.81" y2="25.62" y3="25.8"/>
+ <curve x1="46.74" x2="46.74" x3="46.74" y1="45.39" y2="45.39" y3="45.39"/>
+ <curve x1="45.17" x2="43.95" x3="43.37" y1="42.78" y2="39.99" y3="36.79"/>
+ <close/>
+ <move x="64.54" y="18.59"/>
+ <curve x1="64.54" x2="64.54" x3="64.54" y1="20.8" y2="20.8" y3="20.8"/>
+ <curve x1="58.14" x2="58.14" x3="58.14" y1="19.4" y2="19.4" y3="19.4"/>
+ <curve x1="58.14" x2="58.14" x3="58.14" y1="17.01" y2="17.01" y3="17.01"/>
+ <curve x1="54.54" x2="54.54" x3="54.54" y1="15.98" y2="15.98" y3="15.98"/>
+ <curve x1="50.75" x2="50.75" x3="50.75" y1="17.01" y2="17.01" y3="17.01"/>
+ <curve x1="50.75" x2="50.75" x3="50.75" y1="19.4" y2="19.4" y3="19.4"/>
+ <curve x1="44.36" x2="44.36" x3="44.36" y1="20.8" y2="20.8" y3="20.8"/>
+ <curve x1="44.36" x2="44.36" x3="44.36" y1="18.59" y2="18.59" y3="18.59"/>
+ <curve x1="38.37" x2="38.37" x3="38.37" y1="19.99" y2="19.99" y3="19.99"/>
+ <curve x1="38.37" x2="38.37" x3="38.37" y1="32.42" y2="32.42" y3="32.42"/>
+ <curve x1="38.37" x2="45.17" x3="54.54" y1="43.82" y2="53.59" y3="57.6"/>
+ <curve x1="63.73" x2="70.35" x3="70.35" y1="53.59" y2="43.82" y3="32.42"/>
+ <curve x1="70.35" x2="70.35" x3="70.35" y1="19.99" y2="19.99" y3="19.99"/>
+ <line x="64.54" y="18.59"/>
+ <close/>
+ <move x="38.78" y="44.8"/>
+ <curve x1="11.98" x2="11.98" x3="11.98" y1="44.8" y2="44.8" y3="44.8"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="54.4" y2="54.4" y3="54.4"/>
+ <curve x1="44.77" x2="44.77" x3="44.77" y1="54.4" y2="54.4" y3="54.4"/>
+ <curve x1="42.34" x2="40.18" x3="38.78" y1="51.79" y2="48.41" y3="44.8"/>
+ <close/>
+ <move x="37.74" y="39.62"/>
+ <curve x1="14.19" x2="14.19" x3="14.19" y1="39.62" y2="39.62" y3="39.62"/>
+ <curve x1="12.97" x2="12.2" x3="12.2" y1="39.62" y2="38.81" y3="37.81"/>
+ <curve x1="12.2" x2="12.2" x3="12.2" y1="23.4" y2="23.4" y3="23.4"/>
+ <curve x1="12.2" x2="12.97" x3="14.19" y1="22.41" y2="21.42" y3="21.42"/>
+ <curve x1="36.57" x2="36.57" x3="36.57" y1="21.42" y2="21.42" y3="21.42"/>
+ <curve x1="36.57" x2="36.57" x3="36.57" y1="19.21" y2="19.21" y3="19.21"/>
+ <curve x1="12.38" x2="12.38" x3="12.38" y1="19.21" y2="19.21" y3="19.21"/>
+ <curve x1="10.81" x2="9.59" x3="9.59" y1="19.21" y2="20.38" y3="21.78"/>
+ <curve x1="9.59" x2="9.59" x3="9.59" y1="41.6" y2="41.6" y3="41.6"/>
+ <curve x1="38.38" x2="38.38" x3="38.38" y1="41.6" y2="41.6" y3="41.6"/>
+ <curve x1="38.15" x2="37.74" x3="37.74" y1="41.01" y2="40.38" y3="39.62"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="anti spam" strokewidth="inherit" w="76.71">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="59.35" y="35.61"/>
+ <curve x1="58.54" x2="57.96" x3="57.96" y1="35.61" y2="34.79" y3="34.21"/>
+ <curve x1="57.96" x2="58.54" x3="59.35" y1="33.22" y2="32.41" y3="32.41"/>
+ <curve x1="60.16" x2="60.75" x3="60.75" y1="32.41" y2="33.22" y3="34.21"/>
+ <curve x1="60.75" x2="60.16" x3="59.35" y1="34.79" y2="35.61" y3="35.61"/>
+ <close/>
+ <move x="58.36" y="24.61"/>
+ <curve x1="58.36" x2="58.77" x3="59.35" y1="23.8" y2="23.4" y3="23.4"/>
+ <curve x1="59.94" x2="60.34" x3="60.34" y1="23.4" y2="23.8" y3="24.61"/>
+ <curve x1="60.34" x2="60.34" x3="60.34" y1="29.39" y2="29.39" y3="29.39"/>
+ <curve x1="60.34" x2="59.94" x3="59.35" y1="30.02" y2="30.61" y3="30.61"/>
+ <curve x1="58.77" x2="58.36" x3="58.36" y1="30.61" y2="30.02" y3="29.39"/>
+ <line x="58.36" y="24.61"/>
+ <close/>
+ <move x="70.12" y="35.79"/>
+ <curve x1="70.12" x2="70.12" x3="70.12" y1="35.79" y2="35.79" y3="35.79"/>
+ <curve x1="70.12" x2="70.12" x3="70.12" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="70.12" x2="70.12" x3="70.12" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="60.75" x2="60.75" x3="60.75" y1="17" y2="17" y3="17"/>
+ <curve x1="60.34" x2="59.94" x3="59.35" y1="16.42" y2="16.01" y3="16.01"/>
+ <curve x1="58.54" x2="58.14" x3="57.73" y1="16.01" y2="16.6" y3="17.18"/>
+ <curve x1="48.36" x2="48.36" x3="48.36" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="48.14" x2="47.96" x3="47.96" y1="35.79" y2="36.42" y3="36.6"/>
+ <curve x1="47.96" x2="48.77" x3="49.76" y1="37.59" y2="38.4" y3="38.4"/>
+ <curve x1="68.95" x2="68.95" x3="68.95" y1="38.4" y2="38.4" y3="38.4"/>
+ <curve x1="69.76" x2="70.34" x3="70.34" y1="38.4" y2="37.59" y3="36.6"/>
+ <curve x1="70.34" x2="70.34" x3="70.12" y1="36.42" y2="36.01" y3="35.79"/>
+ <close/>
+ <move x="47.78" y="40.2"/>
+ <curve x1="46.74" x2="45.75" x3="45.17" y1="40.2" y2="39.79" y3="39.21"/>
+ <curve x1="41.56" x2="41.56" x3="41.56" y1="41.6" y2="41.6" y3="41.6"/>
+ <curve x1="56.97" x2="56.97" x3="56.97" y1="55.2" y2="55.2" y3="55.2"/>
+ <curve x1="57.33" x2="57.55" x3="57.55" y1="54.61" y2="53.8" y3="52.99"/>
+ <curve x1="57.55" x2="57.55" x3="57.55" y1="40.2" y2="40.2" y3="40.2"/>
+ <line x="47.78" y="40.2"/>
+ <close/>
+ <move x="35.01" y="46.19"/>
+ <curve x1="34.65" x2="34.25" x3="33.84" y1="46.42" y2="46.6" y3="46.6"/>
+ <curve x1="33.62" x2="33.03" x3="33.03" y1="46.6" y2="46.42" y3="46.19"/>
+ <curve x1="27.63" x2="27.63" x3="27.63" y1="42.41" y2="42.41" y3="42.41"/>
+ <curve x1="11.46" x2="11.46" x3="11.46" y1="57.59" y2="57.59" y3="57.59"/>
+ <curve x1="12.67" x2="13.66" x3="14.83" y1="58.22" y2="58.4" y3="58.4"/>
+ <curve x1="52.81" x2="52.81" x3="52.81" y1="58.4" y2="58.4" y3="58.4"/>
+ <curve x1="54.2" x2="55.19" x3="56.23" y1="58.4" y2="58.22" y3="57.59"/>
+ <curve x1="40.24" x2="40.24" x3="40.24" y1="42.41" y2="42.41" y3="42.41"/>
+ <line x="35.01" y="46.19"/>
+ <close/>
+ <move x="10.58" y="30.15"/>
+ <curve x1="10" x2="9.59" x3="9.59" y1="30.91" y2="31.95" y3="32.71"/>
+ <curve x1="9.59" x2="9.59" x3="9.59" y1="53.34" y2="53.34" y3="53.34"/>
+ <curve x1="9.59" x2="10" x3="10.4" y1="54.34" y2="55.15" y3="55.73"/>
+ <curve x1="25.58" x2="25.58" x3="25.58" y1="41.32" y2="41.32" y3="41.32"/>
+ <line x="10.58" y="30.15"/>
+ <close/>
+ <move x="44.14" y="37.19"/>
+ <curve x1="44.14" x2="44.14" x3="44.14" y1="37.01" y2="37.01" y3="36.78"/>
+ <curve x1="44.14" x2="44.55" x3="44.95" y1="35.79" y2="35.02" y3="34.39"/>
+ <curve x1="47.97" x2="47.97" x3="47.97" y1="28.81" y2="28.81" y3="28.81"/>
+ <curve x1="15.58" x2="15.58" x3="15.58" y1="28.81" y2="28.81" y3="28.81"/>
+ <curve x1="14.59" x2="13.6" x3="12.79" y1="28.81" y2="29.21" y3="29.39"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="44.8" y2="44.8" y3="44.8"/>
+ <line x="44.14" y="37.19"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.21" x3="38.38" y1="18.02" y2="0" y3="0"/>
+ <curve x1="59.73" x2="76.71" x3="76.71" y1="0" y2="18.02" y3="40"/>
+ <curve x1="76.71" x2="59.73" x3="38.38" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.21" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="anti virus" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.38" y="39.78"/>
+ <curve x1="66.38" x2="66.19" x3="66" y1="41.04" y2="42.31" y3="43.34"/>
+ <curve x1="64.92" x2="61.41" x3="56.62" y1="48.74" y2="53.34" y3="55.82"/>
+ <curve x1="54.74" x2="53.05" x3="51.6" y1="54.79" y2="53.52" y3="51.88"/>
+ <curve x1="66.38" x2="66.38" x3="66.38" y1="36.68" y2="36.68" y3="36.68"/>
+ <line x="66.38" y="39.78"/>
+ <close/>
+ <move x="47.47" y="43.34"/>
+ <curve x1="47.05" x2="47.05" x3="47.05" y1="42.31" y2="41.04" y3="39.78"/>
+ <curve x1="47.05" x2="47.05" x3="47.05" y1="34.8" y2="34.8" y3="34.8"/>
+ <curve x1="56.62" x2="56.62" x3="56.62" y1="32.5" y2="32.5" y3="32.5"/>
+ <curve x1="61.83" x2="64.31" x3="65.35" y1="33.77" y2="34.38" y3="34.57"/>
+ <curve x1="50.38" x2="50.38" x3="50.38" y1="50.19" y2="50.19" y3="50.19"/>
+ <curve x1="48.92" x2="47.89" x3="47.47" y1="48.13" y2="45.83" y3="43.34"/>
+ <close/>
+ <move x="65.16" y="28.75"/>
+ <curve x1="65.16" x2="65.16" x3="65.16" y1="30.63" y2="30.63" y3="30.63"/>
+ <curve x1="59.72" x2="59.72" x3="59.72" y1="29.17" y2="29.17" y3="29.17"/>
+ <curve x1="59.72" x2="59.72" x3="59.72" y1="27.48" y2="27.48" y3="27.48"/>
+ <curve x1="56.62" x2="56.62" x3="56.62" y1="26.69" y2="26.69" y3="26.69"/>
+ <curve x1="53.71" x2="53.71" x3="53.71" y1="27.48" y2="27.48" y3="27.48"/>
+ <curve x1="53.71" x2="53.71" x3="53.71" y1="29.17" y2="29.17" y3="29.17"/>
+ <curve x1="48.27" x2="48.27" x3="48.27" y1="30.63" y2="30.63" y3="30.63"/>
+ <curve x1="48.27" x2="48.27" x3="48.27" y1="28.75" y2="28.75" y3="28.75"/>
+ <curve x1="43.29" x2="43.29" x3="43.29" y1="29.78" y2="29.78" y3="29.78"/>
+ <curve x1="43.29" x2="43.29" x3="43.29" y1="39.78" y2="39.78" y3="39.78"/>
+ <curve x1="43.29" x2="48.92" x3="56.62" y1="48.97" y2="56.67" y3="60"/>
+ <curve x1="64.5" x2="69.94" x3="69.94" y1="56.67" y2="48.97" y3="39.78"/>
+ <curve x1="69.94" x2="69.94" x3="69.94" y1="29.78" y2="29.78" y3="29.78"/>
+ <line x="65.16" y="28.75"/>
+ <close/>
+ <move x="71.21" y="48.75"/>
+ <curve x1="71.58" x2="70.97" x3="69.33" y1="51.47" y2="54.57" y3="57.29"/>
+ <curve x1="65.34" x2="56.8" x3="50.19" y1="63.76" y2="66.06" y3="62.31"/>
+ <curve x1="47.65" x2="45.77" x3="44.56" y1="60.85" y2="58.98" y3="56.68"/>
+ <curve x1="43.71" x2="43.29" x3="43.1" y1="55.22" y2="53.77" y3="51.89"/>
+ <curve x1="41.65" x2="40.57" x3="40.19" y1="49.78" y2="47.29" y3="44.81"/>
+ <curve x1="39.96" x2="39.77" x3="39.53" y1="44.81" y2="44.81" y3="44.81"/>
+ <curve x1="38.31" x2="37.05" x3="36.44" y1="44.81" y2="44.15" y3="43.35"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="44.15" y2="44.15" y3="44.15"/>
+ <curve x1="34.75" x2="34.75" x3="34.98" y1="44.38" y2="44.81" y3="45.23"/>
+ <curve x1="36.63" x2="36.44" x3="34.56" y1="48.98" y2="53.11" y3="56.68"/>
+ <curve x1="33.29" x2="31.42" x3="28.93" y1="58.98" y2="60.85" y3="62.31"/>
+ <curve x1="22.27" x2="13.54" x3="9.79" y1="66.06" y2="63.76" y3="57.29"/>
+ <curve x1="5.85" x2="8.1" x3="14.76" y1="50.81" y2="42.51" y3="38.75"/>
+ <curve x1="17.29" x2="19.97" x3="22.69" y1="37.3" y2="36.69" y3="36.88"/>
+ <curve x1="26.63" x2="30.62" x3="33.29" y1="37.06" y2="38.94" y3="42.27"/>
+ <curve x1="33.53" x2="33.72" x3="33.9" y1="42.51" y2="42.7" y3="43.12"/>
+ <curve x1="35.59" x2="35.59" x3="35.59" y1="42.09" y2="42.09" y3="42.09"/>
+ <curve x1="35.41" x2="35.41" x3="35.41" y1="41.66" y2="41.24" y3="40.63"/>
+ <curve x1="35.41" x2="36.86" x3="38.74" y1="38.75" y2="37.06" y3="36.69"/>
+ <curve x1="38.74" x2="38.74" x3="38.74" y1="34.81" y2="34.81" y3="34.81"/>
+ <curve x1="38.5" x2="38.31" x3="37.89" y1="34.81" y2="34.81" y3="34.81"/>
+ <curve x1="33.53" x2="29.77" x3="27.66" y1="34.16" y2="31.86" y3="28.53"/>
+ <curve x1="26.21" x2="25.41" x3="25.41" y1="26.46" y2="23.97" y3="21.25"/>
+ <curve x1="25.41" x2="31.65" x3="39.53" y1="13.56" y2="7.5" y3="7.5"/>
+ <curve x1="47.46" x2="53.7" x3="53.7" y1="7.5" y2="13.56" y3="21.25"/>
+ <curve x1="53.7" x2="53.47" x3="53.09" y1="22.71" y2="23.97" y3="25.43"/>
+ <curve x1="56.43" x2="56.43" x3="56.43" y1="24.58" y2="24.58" y3="24.58"/>
+ <curve x1="59.76" x2="59.76" x3="59.76" y1="25.43" y2="25.43" y3="25.43"/>
+ <curve x1="59.34" x2="50.37" x3="39.53" y1="15.01" y2="6.66" y3="6.66"/>
+ <curve x1="28.32" x2="19.36" x3="19.36" y1="6.66" y2="15.43" y3="26.27"/>
+ <curve x1="19.36" x2="19.55" x3="19.78" y1="27.31" y2="28.53" y3="29.79"/>
+ <curve x1="18.51" x2="17.48" x3="16.45" y1="29.98" y2="30.4" y3="31.25"/>
+ <curve x1="6.64" x2="3.31" x3="8.94" y1="36.45" y2="48.33" y3="57.71"/>
+ <curve x1="14.57" x2="26.87" x3="36.63" y1="66.86" y2="70" y3="64.8"/>
+ <curve x1="37.66" x2="38.74" x3="39.53" y1="64.19" y2="63.53" y3="62.92"/>
+ <curve x1="40.38" x2="41.41" x3="42.44" y1="63.53" y2="64.19" y3="64.8"/>
+ <curve x1="52.25" x2="64.54" x3="70.13" y1="70" y2="66.86" y3="57.71"/>
+ <curve x1="72.66" x2="73.27" x3="72.43" y1="53.53" y2="48.75" y3="44.38"/>
+ <curve x1="72.24" x2="71.82" x3="71.21" y1="45.84" y2="47.29" y3="48.75"/>
+ <close/>
+ <move x="49.96" y="26.48"/>
+ <curve x1="49.12" x2="48.08" x3="47.05" y1="25.82" y2="25.21" y3="24.79"/>
+ <curve x1="44.94" x2="42.69" x3="40.39" y1="23.95" y2="23.34" y3="23.34"/>
+ <curve x1="38.09" x2="35.79" x3="33.73" y1="23.34" y2="23.95" y3="24.79"/>
+ <curve x1="32.27" x2="31.24" x3="29.97" y1="25.4" y2="26.06" y3="26.67"/>
+ <curve x1="30.39" x2="30.58" x3="30.82" y1="27.09" y2="27.51" y3="27.7"/>
+ <curve x1="31.24" x2="31.85" x3="32.88" y1="28.54" y2="29.39" y3="30"/>
+ <curve x1="34.95" x2="37.67" x3="40.39" y1="28.54" y2="27.7" y3="27.7"/>
+ <curve x1="41.23" x2="42.03" x3="42.69" y1="27.7" y2="27.7" y3="27.93"/>
+ <line x="49.96" y="26.48"/>
+ <close/>
+ <move x="27.07" y="41.89"/>
+ <curve x1="27.07" x2="27.07" x3="27.07" y1="41.46" y2="41.04" y3="40.62"/>
+ <curve x1="26.22" x2="25.38" x3="24.58" y1="40.2" y2="40.2" y3="40.01"/>
+ <curve x1="24.34" x2="24.16" x3="23.92" y1="40.01" y2="40.01" y3="40.01"/>
+ <curve x1="23.92" x2="23.73" x3="23.5" y1="40.01" y2="40.01" y3="40.01"/>
+ <curve x1="23.5" x2="23.31" x3="23.31" y1="40.62" y2="41.23" y3="41.89"/>
+ <curve x1="23.31" x2="23.92" x3="24.58" y1="44.19" y2="46.25" y3="48.31"/>
+ <curve x1="25.38" x2="26.22" x3="27.68" y1="50.19" y2="51.88" y3="53.33"/>
+ <curve x1="28.94" x2="30.4" x3="32.04" y1="54.79" y2="56.06" y3="56.67"/>
+ <curve x1="32.27" x2="32.46" x3="32.46" y1="56.48" y2="56.24" y3="55.82"/>
+ <curve x1="32.88" x2="33.31" x3="33.31" y1="55.02" y2="53.94" y3="52.91"/>
+ <curve x1="32.27" x2="31.01" x3="30.16" y1="52.3" y2="51.46" y3="50.61"/>
+ <curve x1="28.1" x2="27.07" x3="27.07" y1="48.13" y2="45.22" y3="41.89"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.22" x2="79.91" x3="79.91" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="79.91" x2="62.22" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="application" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="50.87" y="59.88"/>
+ <curve x1="50.21" x2="49.6" x3="49.18" y1="59.88" y2="59.69" y3="59.08"/>
+ <curve x1="49.18" x2="49.18" x3="49.18" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="48.76" x2="48.76" x3="48.76" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="49.18" x2="49.18" x3="49.18" y1="54.06" y2="54.06" y3="54.06"/>
+ <curve x1="49.6" x2="50.21" x3="51.05" y1="53.45" y2="53.03" y3="53.03"/>
+ <curve x1="52.74" x2="53.78" x3="53.78" y1="53.03" y2="54.25" y3="56.36"/>
+ <curve x1="53.78" x2="52.51" x3="50.87" y1="58.42" y2="59.88" y3="59.88"/>
+ <close/>
+ <move x="43.59" y="59.88"/>
+ <curve x1="42.94" x2="42.33" x3="41.9" y1="59.88" y2="59.69" y3="59.08"/>
+ <curve x1="41.9" x2="41.9" x3="41.9" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="40.03" x2="40.03" x3="40.03" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="40.03" x2="40.03" x3="40.03" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="41.48" x2="41.48" x3="41.48" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="41.72" x2="41.72" x3="41.72" y1="54.06" y2="54.06" y3="54.06"/>
+ <curve x1="42.33" x2="42.94" x3="43.78" y1="53.45" y2="53.03" y3="53.03"/>
+ <curve x1="45.42" x2="46.5" x3="46.5" y1="53.03" y2="54.25" y3="56.36"/>
+ <curve x1="46.5" x2="45.24" x3="43.59" y1="58.42" y2="59.88" y3="59.88"/>
+ <close/>
+ <move x="37.54" y="59.69"/>
+ <curve x1="36.93" x2="36.93" x3="36.93" y1="57.58" y2="57.58" y3="57.58"/>
+ <curve x1="33.98" x2="33.98" x3="33.98" y1="57.58" y2="57.58" y3="57.58"/>
+ <curve x1="33.37" x2="33.37" x3="33.37" y1="59.69" y2="59.69" y3="59.69"/>
+ <curve x1="31.49" x2="31.49" x3="31.49" y1="59.69" y2="59.69" y3="59.69"/>
+ <curve x1="34.4" x2="34.4" x3="34.4" y1="50.73" y2="50.73" y3="50.73"/>
+ <curve x1="36.51" x2="36.51" x3="36.51" y1="50.73" y2="50.73" y3="50.73"/>
+ <curve x1="39.42" x2="39.42" x3="39.42" y1="59.69" y2="59.69" y3="59.69"/>
+ <line x="37.54" y="59.69"/>
+ <close/>
+ <move x="71.04" y="29.28"/>
+ <curve x1="23.61" x2="23.61" x3="23.61" y1="29.28" y2="29.28" y3="29.28"/>
+ <curve x1="22.34" x2="21.07" x3="20.88" y1="29.28" y2="30.32" y3="31.54"/>
+ <curve x1="13.38" x2="13.38" x3="13.38" y1="63.86" y2="63.86" y3="63.86"/>
+ <curve x1="12.95" x2="13.8" x3="15.07" y1="65.08" y2="65.93" y3="65.93"/>
+ <curve x1="62.5" x2="62.5" x3="62.5" y1="65.93" y2="65.93" y3="65.93"/>
+ <curve x1="63.77" x2="64.99" x3="65.22" y1="65.93" y2="65.08" y3="63.86"/>
+ <curve x1="72.73" x2="72.73" x3="72.73" y1="31.54" y2="31.54" y3="31.54"/>
+ <curve x1="72.92" x2="72.31" x3="71.04" y1="30.32" y2="29.28" y3="29.28"/>
+ <close/>
+ <move x="34" y="56.62"/>
+ <line x="37.33" y="56.62"/>
+ <line x="35.64" y="53.29"/>
+ <line x="34" y="56.62"/>
+ <line x="34" y="56.62"/>
+ <close/>
+ <move x="44.13" y="55.02"/>
+ <curve x1="43.1" x2="42.26" x3="42.26" y1="55.02" y2="55.63" y3="56.71"/>
+ <curve x1="42.26" x2="43.1" x3="43.9" y1="57.93" y2="58.35" y3="58.35"/>
+ <curve x1="44.98" x2="45.59" x3="45.59" y1="58.35" y2="57.93" y3="56.71"/>
+ <curve x1="45.59" x2="44.98" x3="44.13" y1="55.63" y2="55.02" y3="55.02"/>
+ <close/>
+ <move x="51.08" y="55.02"/>
+ <curve x1="50.28" x2="49.44" x3="49.44" y1="55.02" y2="55.63" y3="56.71"/>
+ <curve x1="49.44" x2="50.28" x3="51.08" y1="57.93" y2="58.35" y3="58.35"/>
+ <curve x1="52.16" x2="52.77" x3="52.77" y1="58.35" y2="57.93" y3="56.71"/>
+ <curve x1="52.77" x2="52.16" x3="51.08" y1="55.63" y2="55.02" y3="55.02"/>
+ <close/>
+ <move x="23.74" y="28.56"/>
+ <curve x1="63.29" x2="63.29" x3="63.29" y1="28.56" y2="28.56" y3="28.56"/>
+ <curve x1="63.29" x2="63.29" x3="63.29" y1="25.23" y2="25.23" y3="25.23"/>
+ <curve x1="63.29" x2="62.45" x3="61.42" y1="24.15" y2="23.35" y3="23.35"/>
+ <curve x1="50.58" x2="50.58" x3="50.58" y1="23.35" y2="23.35" y3="23.35"/>
+ <curve x1="50.15" x2="49.73" x3="49.31" y1="23.35" y2="23.54" y3="23.73"/>
+ <curve x1="46.21" x2="46.21" x3="46.21" y1="26.26" y2="26.26" y3="26.26"/>
+ <curve x1="45.98" x2="45.6" x3="44.95" y1="26.68" y2="26.68" y3="26.68"/>
+ <curve x1="15.39" x2="15.39" x3="15.39" y1="26.68" y2="26.68" y3="26.68"/>
+ <curve x1="14.35" x2="13.32" x3="13.32" y1="26.68" y2="27.72" y3="28.75"/>
+ <curve x1="13.32" x2="13.32" x3="13.32" y1="56.67" y2="56.67" y3="56.67"/>
+ <curve x1="20.17" x2="20.17" x3="20.17" y1="31.05" y2="31.05" y3="31.05"/>
+ <curve x1="20.59" x2="22.05" x3="23.74" y1="29.59" y2="28.56" y3="28.56"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.22" x2="79.91" x3="79.91" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="79.91" x2="62.22" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="application visibility control" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.3" y="37.7"/>
+ <curve x1="39.63" x2="37.33" x3="37.33" y1="37.7" y2="39.43" y3="41.59"/>
+ <curve x1="37.33" x2="39.63" x3="42.3" y1="43.66" y2="45.2" y3="45.2"/>
+ <curve x1="45.26" x2="47.32" x3="47.32" y1="45.2" y2="43.66" y3="41.59"/>
+ <curve x1="47.32" x2="45.26" x3="42.3" y1="39.43" y2="37.7" y3="37.7"/>
+ <close/>
+ <move x="42.3" y="43.19"/>
+ <curve x1="41.27" x2="40.24" x3="40.24" y1="43.19" y2="42.39" y3="41.59"/>
+ <curve x1="40.24" x2="41.27" x3="42.3" y1="40.65" y2="39.9" y3="39.9"/>
+ <curve x1="43.57" x2="44.6" x3="44.6" y1="39.9" y2="40.65" y3="41.59"/>
+ <curve x1="44.6" x2="43.57" x3="42.3" y1="42.39" y2="43.19" y3="43.19"/>
+ <close/>
+ <move x="71.04" y="29.28"/>
+ <curve x1="23.61" x2="23.61" x3="23.61" y1="29.28" y2="29.28" y3="29.28"/>
+ <curve x1="22.34" x2="21.07" x3="20.88" y1="29.28" y2="30.32" y3="31.54"/>
+ <curve x1="13.38" x2="13.38" x3="13.38" y1="63.86" y2="63.86" y3="63.86"/>
+ <curve x1="12.95" x2="13.8" x3="15.07" y1="65.08" y2="65.93" y3="65.93"/>
+ <curve x1="62.5" x2="62.5" x3="62.5" y1="65.93" y2="65.93" y3="65.93"/>
+ <curve x1="63.77" x2="64.99" x3="65.22" y1="65.93" y2="65.08" y3="63.86"/>
+ <curve x1="72.73" x2="72.73" x3="72.73" y1="31.54" y2="31.54" y3="31.54"/>
+ <curve x1="72.92" x2="72.31" x3="71.04" y1="30.32" y2="29.28" y3="29.28"/>
+ <close/>
+ <move x="37.54" y="59.69"/>
+ <curve x1="36.93" x2="36.93" x3="36.93" y1="57.58" y2="57.58" y3="57.58"/>
+ <curve x1="33.98" x2="33.98" x3="33.98" y1="57.58" y2="57.58" y3="57.58"/>
+ <curve x1="33.37" x2="33.37" x3="33.37" y1="59.69" y2="59.69" y3="59.69"/>
+ <curve x1="31.49" x2="31.49" x3="31.49" y1="59.69" y2="59.69" y3="59.69"/>
+ <curve x1="34.4" x2="34.4" x3="34.4" y1="50.73" y2="50.73" y3="50.73"/>
+ <curve x1="36.51" x2="36.51" x3="36.51" y1="50.73" y2="50.73" y3="50.73"/>
+ <curve x1="39.42" x2="39.42" x3="39.42" y1="59.69" y2="59.69" y3="59.69"/>
+ <line x="37.54" y="59.69"/>
+ <close/>
+ <move x="43.59" y="59.88"/>
+ <curve x1="42.94" x2="42.33" x3="41.9" y1="59.88" y2="59.69" y3="59.08"/>
+ <curve x1="41.9" x2="41.9" x3="41.9" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="40.03" x2="40.03" x3="40.03" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="40.03" x2="40.03" x3="40.03" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="41.48" x2="41.48" x3="41.48" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="41.72" x2="41.72" x3="41.72" y1="54.06" y2="54.06" y3="54.06"/>
+ <curve x1="42.33" x2="42.94" x3="43.78" y1="53.45" y2="53.03" y3="53.03"/>
+ <curve x1="45.42" x2="46.5" x3="46.5" y1="53.03" y2="54.25" y3="56.36"/>
+ <curve x1="46.5" x2="45.24" x3="43.59" y1="58.42" y2="59.88" y3="59.88"/>
+ <close/>
+ <move x="50.87" y="59.88"/>
+ <curve x1="50.21" x2="49.6" x3="49.18" y1="59.88" y2="59.69" y3="59.08"/>
+ <curve x1="49.18" x2="49.18" x3="49.18" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="61.99" y2="61.99" y3="61.99"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="48.76" x2="48.76" x3="48.76" y1="53.21" y2="53.21" y3="53.21"/>
+ <curve x1="49.18" x2="49.18" x3="49.18" y1="54.06" y2="54.06" y3="54.06"/>
+ <curve x1="49.6" x2="50.21" x3="51.05" y1="53.45" y2="53.03" y3="53.03"/>
+ <curve x1="52.74" x2="53.78" x3="53.78" y1="53.03" y2="54.25" y3="56.36"/>
+ <curve x1="53.78" x2="52.51" x3="50.87" y1="58.42" y2="59.88" y3="59.88"/>
+ <close/>
+ <move x="30.46" y="41.76"/>
+ <curve x1="37.12" x2="47.96" x3="54.81" y1="31.77" y2="31.77" y3="41.76"/>
+ <curve x1="47.96" x2="37.12" x3="30.46" y1="51.57" y2="51.57" y3="41.76"/>
+ <close/>
+ <move x="34" y="56.62"/>
+ <line x="36.44" y="56.62"/>
+ <line x="35.22" y="53.29"/>
+ <line x="34" y="56.62"/>
+ <line x="34" y="56.62"/>
+ <close/>
+ <move x="43.79" y="54.67"/>
+ <curve x1="42.75" x2="41.91" x3="41.91" y1="54.67" y2="55.28" y3="56.36"/>
+ <curve x1="41.91" x2="42.75" x3="43.55" y1="57.58" y2="58.01" y3="58.01"/>
+ <curve x1="44.63" x2="45.24" x3="45.24" y1="58.01" y2="57.58" y3="56.36"/>
+ <curve x1="45.24" x2="44.63" x3="43.79" y1="55.28" y2="54.67" y3="54.67"/>
+ <close/>
+ <move x="50.73" y="54.67"/>
+ <curve x1="49.93" x2="49.09" x3="49.09" y1="54.67" y2="55.28" y3="56.36"/>
+ <curve x1="49.09" x2="49.93" x3="50.73" y1="57.58" y2="58.01" y3="58.01"/>
+ <curve x1="51.81" x2="52.42" x3="52.42" y1="58.01" y2="57.58" y3="56.36"/>
+ <curve x1="52.42" x2="51.81" x3="50.73" y1="55.28" y2="54.67" y3="54.67"/>
+ <close/>
+ <move x="23.74" y="28.56"/>
+ <curve x1="63.29" x2="63.29" x3="63.29" y1="28.56" y2="28.56" y3="28.56"/>
+ <curve x1="63.29" x2="63.29" x3="63.29" y1="25.23" y2="25.23" y3="25.23"/>
+ <curve x1="63.29" x2="62.45" x3="61.42" y1="24.15" y2="23.35" y3="23.35"/>
+ <curve x1="50.58" x2="50.58" x3="50.58" y1="23.35" y2="23.35" y3="23.35"/>
+ <curve x1="50.15" x2="49.73" x3="49.31" y1="23.35" y2="23.54" y3="23.73"/>
+ <curve x1="46.21" x2="46.21" x3="46.21" y1="26.26" y2="26.26" y3="26.26"/>
+ <curve x1="45.98" x2="45.6" x3="44.95" y1="26.68" y2="26.68" y3="26.68"/>
+ <curve x1="15.39" x2="15.39" x3="15.39" y1="26.68" y2="26.68" y3="26.68"/>
+ <curve x1="14.35" x2="13.32" x3="13.32" y1="26.68" y2="27.72" y3="28.75"/>
+ <curve x1="13.32" x2="13.32" x3="13.32" y1="56.67" y2="56.67" y3="56.67"/>
+ <curve x1="20.17" x2="20.17" x3="20.17" y1="31.05" y2="31.05" y3="31.05"/>
+ <curve x1="20.59" x2="22.05" x3="23.74" y1="29.59" y2="28.56" y3="28.56"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.22" x2="79.91" x3="79.91" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="79.91" x2="62.22" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.89" name="client based security" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="46.41" y="40.84"/>
+ <curve x1="48.03" x2="48.03" x3="48.03" y1="40.25" y2="40.25" y3="40.25"/>
+ <curve x1="49.21" x2="51.6" x3="54.03" y1="42.24" y2="43.45" y3="42.46"/>
+ <curve x1="56.42" x2="57.59" x3="56.83" y1="41.65" y2="38.63" y3="36.06"/>
+ <curve x1="55.84" x2="53.22" x3="50.6" y1="33.44" y2="32.05" y3="33.04"/>
+ <curve x1="50.42" x2="50.42" x3="50.42" y1="33.04" y2="33.04" y3="33.04"/>
+ <curve x1="48.39" x2="47" x3="47.4" y1="33.85" y2="36.24" y3="38.63"/>
+ <curve x1="42.62" x2="42.62" x3="42.62" y1="40.25" y2="40.25" y3="40.25"/>
+ <curve x1="35.99" x2="35.99" x3="35.99" y1="42.64" y2="42.64" y3="42.64"/>
+ <curve x1="35.59" x2="35.23" x3="35.41" y1="43.05" y2="43.45" y3="44.04"/>
+ <curve x1="35.41" x2="35.41" x3="35.41" y1="44.04" y2="44.04" y3="44.27"/>
+ <curve x1="35.81" x2="36.22" x3="36.8" y1="44.45" y2="44.67" y3="44.45"/>
+ <curve x1="37.39" x2="37.39" x3="37.39" y1="44.27" y2="44.27" y3="44.27"/>
+ <curve x1="38.79" x2="38.79" x3="38.79" y1="47.65" y2="47.65" y3="47.65"/>
+ <curve x1="38.79" x2="39.19" x3="39.6" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="40.23" x2="40.41" x3="40.23" y1="47.87" y2="47.47" y3="47.24"/>
+ <curve x1="39.83" x2="39.83" x3="39.83" y1="46.07" y2="46.07" y3="46.07"/>
+ <curve x1="41.22" x2="41.22" x3="41.22" y1="45.66" y2="45.66" y3="45.66"/>
+ <curve x1="41.4" x2="41.4" x3="41.4" y1="46.66" y2="46.66" y3="46.66"/>
+ <curve x1="41.63" x2="42.22" x3="42.4" y1="46.84" y2="47.24" y3="46.84"/>
+ <curve x1="43.03" x2="43.21" x3="43.03" y1="46.84" y2="46.48" y3="46.07"/>
+ <curve x1="42.22" x2="42.22" x3="42.22" y1="43.23" y2="43.23" y3="43.23"/>
+ <curve x1="41.99" x2="41.99" x3="41.99" y1="42.46" y2="42.46" y3="42.46"/>
+ <curve x1="43.61" x2="43.61" x3="43.61" y1="41.83" y2="41.83" y3="41.83"/>
+ <curve x1="46.41" x2="46.41" x3="46.41" y1="40.84" y2="40.84" y3="40.84"/>
+ <close/>
+ <move x="53.81" y="35.43"/>
+ <curve x1="54.62" x2="55.61" x3="55.84" y1="35.02" y2="35.43" y3="36.65"/>
+ <curve x1="56.2" x2="55.84" x3="54.8" y1="37.46" y2="38.45" y3="38.63"/>
+ <curve x1="54.03" x2="52.81" x3="52.63" y1="39.04" y2="38.63" y3="37.86"/>
+ <curve x1="52.41" x2="52.81" x3="53.81" y1="36.65" y2="35.65" y3="35.43"/>
+ <close/>
+ <move x="65.61" y="54.46"/>
+ <curve x1="63.62" x2="63.62" x3="63.62" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="62.22" x2="62.22" x3="62.22" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="62.22" x2="62.22" x3="62.22" y1="54.64" y2="54.64" y3="54.64"/>
+ <curve x1="62.22" x2="62.22" x3="62.22" y1="54.64" y2="54.64" y3="54.46"/>
+ <curve x1="62.22" x2="62.22" x3="62.22" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="62.22" x2="62" x3="62" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="62" x2="62" x3="62" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="33.59" x2="31.2" x3="31.02" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="31.02" x2="31.02" x3="31.02" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="30.79" x2="30.79" x3="30.79" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="30.79" x2="30.79" x3="30.79" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="30.79" x2="30.79" x3="30.79" y1="54.64" y2="54.64" y3="54.64"/>
+ <curve x1="30.79" x2="30.79" x3="30.79" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="29.62" x2="29.62" x3="29.62" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="27.41" x2="27.41" x3="27.41" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="26.42" x2="25.61" x3="25.61" y1="54.46" y2="54.87" y3="55.68"/>
+ <curve x1="25.61" x2="25.61" x3="25.61" y1="56.27" y2="56.27" y3="56.27"/>
+ <curve x1="25.61" x2="26.42" x3="27.41" y1="57.08" y2="57.67" y3="57.67"/>
+ <curve x1="65.61" x2="65.61" x3="65.61" y1="57.67" y2="57.67" y3="57.67"/>
+ <curve x1="66.6" x2="67.23" x3="67.23" y1="57.67" y2="57.08" y3="56.27"/>
+ <curve x1="67.23" x2="67.23" x3="67.23" y1="55.68" y2="55.68" y3="55.68"/>
+ <curve x1="67.23" x2="66.6" x3="65.61" y1="54.87" y2="54.46" y3="54.46"/>
+ <close/>
+ <move x="43.82" y="56.45"/>
+ <curve x1="43.42" x2="42.83" x3="42.83" y1="56.45" y2="56.27" y3="56.09"/>
+ <curve x1="42.83" x2="43.42" x3="43.82" y1="55.68" y2="55.46" y3="55.46"/>
+ <curve x1="44.41" x2="44.59" x3="44.59" y1="55.46" y2="55.68" y3="56.09"/>
+ <curve x1="44.59" x2="44.41" x3="43.82" y1="56.27" y2="56.45" y3="56.45"/>
+ <close/>
+ <move x="46.62" y="56.45"/>
+ <curve x1="45.99" x2="45.63" x3="45.63" y1="56.45" y2="56.27" y3="56.09"/>
+ <curve x1="45.63" x2="45.99" x3="46.62" y1="55.68" y2="55.46" y3="55.46"/>
+ <curve x1="47.03" x2="47.43" x3="47.43" y1="55.46" y2="55.68" y3="56.09"/>
+ <curve x1="47.43" x2="47.03" x3="46.62" y1="56.27" y2="56.45" y3="56.45"/>
+ <close/>
+ <move x="49.19" y="56.45"/>
+ <curve x1="48.83" x2="48.2" x3="48.2" y1="56.45" y2="56.27" y3="56.09"/>
+ <curve x1="48.2" x2="48.83" x3="49.19" y1="55.68" y2="55.46" y3="55.46"/>
+ <curve x1="49.6" x2="50" x3="50" y1="55.46" y2="55.68" y3="56.09"/>
+ <curve x1="50" x2="49.6" x3="49.19" y1="56.27" y2="56.45" y3="56.45"/>
+ <close/>
+ <move x="63.62" y="56.45"/>
+ <curve x1="55.82" x2="55.82" x3="55.82" y1="56.45" y2="56.45" y3="56.45"/>
+ <curve x1="55.82" x2="55.82" x3="55.82" y1="55.28" y2="55.28" y3="55.28"/>
+ <curve x1="62" x2="62" x3="62" y1="55.28" y2="55.28" y3="55.28"/>
+ <curve x1="63.62" x2="63.62" x3="63.62" y1="55.28" y2="55.28" y3="55.28"/>
+ <line x="63.62" y="56.45"/>
+ <close/>
+ <move x="27.82" y="43.86"/>
+ <curve x1="27.82" x2="27.82" x3="27.82" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="28.99" x2="28.99" x3="28.99" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="28.99" x2="28.99" x3="28.99" y1="43.86" y2="43.86" y3="43.86"/>
+ <curve x1="28.99" x2="28.99" x3="28.99" y1="43.86" y2="43.86" y3="43.86"/>
+ <curve x1="28.99" x2="28.99" x3="28.99" y1="39.85" y2="39.85" y3="39.85"/>
+ <curve x1="32.01" x2="33.82" x3="33.82" y1="39.26" y2="39.04" y3="39.04"/>
+ <curve x1="33.19" x2="33.19" x3="33.19" y1="31.42" y2="31.42" y3="31.42"/>
+ <curve x1="33.19" x2="33.01" x3="32.6" y1="30.65" y2="29.84" y3="29.25"/>
+ <curve x1="49.02" x2="49.02" x3="49.02" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="49.02" x2="49.02" x3="49.02" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="62.64" x2="62.64" x3="62.64" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="62.64" x2="62.64" x3="62.64" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="62.64" x2="62.64" x3="62.64" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="64.03" x2="64.03" x3="64.03" y1="54.46" y2="54.46" y3="54.46"/>
+ <curve x1="64.03" x2="64.03" x3="64.03" y1="29.25" y2="29.25" y3="29.25"/>
+ <curve x1="64.03" x2="63.4" x3="62.64" y1="28.62" y2="27.81" y3="27.81"/>
+ <curve x1="49.02" x2="49.02" x3="49.02" y1="27.81" y2="27.81" y3="27.81"/>
+ <curve x1="39.41" x2="34.41" x3="32.01" y1="27.81" y2="27.81" y3="27.81"/>
+ <curve x1="30.8" x2="29.4" x3="27.82" y1="26.64" y2="25.65" y3="25.24"/>
+ <curve x1="26.6" x2="25.79" x3="25.03" y1="25.01" y2="24.83" y3="24.25"/>
+ <curve x1="24.8" x2="24.62" x3="24.21" y1="24.02" y2="23.84" y3="23.62"/>
+ <curve x1="23.99" x2="23.81" x3="23.63" y1="23.44" y2="23.21" y3="23.03"/>
+ <curve x1="25.39" x2="26.83" x3="27.01" y1="22.04" y2="19.42" y3="16.63"/>
+ <curve x1="27.01" x2="27.19" x3="27.01" y1="15.81" y2="13.2" y3="12.21"/>
+ <curve x1="26.83" x2="26.6" x3="26.42" y1="11.22" y2="11.4" y3="11.22"/>
+ <curve x1="25.79" x2="25.39" x3="24.62" y1="11.03" y2="10.22" y3="10"/>
+ <curve x1="23.4" x2="21.82" x3="21.01" y1="9.59" y2="9.82" y3="10"/>
+ <curve x1="20.2" x2="19.79" x3="19.21" y1="10.22" y2="10.22" y3="10.22"/>
+ <curve x1="18.8" x2="18.62" x3="18.22" y1="10.22" y2="10.22" y3="10.22"/>
+ <curve x1="17.58" x2="16.59" x3="16.19" y1="10.4" y2="11.03" y3="12.21"/>
+ <curve x1="16.01" x2="16.41" x3="16.59" y1="13.42" y2="16.63" y3="17.03"/>
+ <curve x1="16.82" x2="17.99" x3="19.61" y1="19.83" y2="22.04" y3="23.03"/>
+ <curve x1="19.39" x2="19.39" x3="19.21" y1="23.03" y2="23.44" y3="23.44"/>
+ <curve x1="18.8" x2="18.62" x3="18.4" y1="23.62" y2="23.84" y3="24.02"/>
+ <curve x1="17.58" x2="16.82" x3="15.6" y1="24.83" y2="25.01" y3="25.24"/>
+ <curve x1="12.8" x2="10.41" x3="10.19" y1="26.23" y2="28.44" y3="31.42"/>
+ <curve x1="10.19" x2="10.19" x3="9.6" y1="31.42" y2="31.42" y3="39.04"/>
+ <curve x1="9.6" x2="14.79" x3="21.82" y1="39.04" y2="40.26" y3="40.26"/>
+ <curve x1="23.99" x2="26.02" x3="27.82" y1="40.26" y2="40.03" y3="39.85"/>
+ <curve x1="27.82" x2="27.82" x3="27.82" y1="43.86" y2="43.86" y3="43.86"/>
+ <close/>
+ <move x="0" y="38.47"/>
+ <curve x1="0" x2="17.99" x3="40" y1="17.23" y2="0" y3="0"/>
+ <curve x1="62.23" x2="80" x3="80" y1="0" y2="17.23" y3="38.47"/>
+ <curve x1="80" x2="62.23" x3="40" y1="59.89" y2="76.89" y3="76.89"/>
+ <curve x1="17.99" x2="0" x3="0" y1="76.89" y2="59.89" y3="38.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="cloud web security" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="48.55" y="28.98"/>
+ <curve x1="45.64" x2="45.64" x3="45.64" y1="28.37" y2="28.37" y3="28.37"/>
+ <curve x1="45.64" x2="45.64" x3="45.64" y1="29.4" y2="29.4" y3="29.4"/>
+ <curve x1="42.07" x2="42.07" x3="42.07" y1="28.56" y2="28.56" y3="28.56"/>
+ <curve x1="42.07" x2="42.07" x3="42.07" y1="27.53" y2="27.53" y3="27.53"/>
+ <curve x1="40.43" x2="40.43" x3="40.43" y1="26.92" y2="26.92" y3="26.92"/>
+ <curve x1="38.55" x2="38.55" x3="38.55" y1="27.53" y2="27.53" y3="27.53"/>
+ <curve x1="38.55" x2="38.55" x3="38.55" y1="28.56" y2="28.56" y3="28.56"/>
+ <curve x1="35.04" x2="35.04" x3="35.04" y1="29.4" y2="29.4" y3="29.4"/>
+ <curve x1="35.04" x2="35.04" x3="35.04" y1="28.37" y2="28.37" y3="28.37"/>
+ <curve x1="31.89" x2="31.89" x3="31.89" y1="28.98" y2="28.98" y3="28.98"/>
+ <curve x1="31.89" x2="31.89" x3="31.89" y1="34.85" y2="34.85" y3="34.85"/>
+ <curve x1="31.89" x2="35.41" x3="40.43" y1="40.24" y2="45.03" y3="46.91"/>
+ <curve x1="45.22" x2="48.55" x3="48.55" y1="45.03" y2="40.24" y3="34.85"/>
+ <curve x1="48.55" x2="48.55" x3="48.55" y1="28.98" y2="28.98" y3="28.98"/>
+ <close/>
+ <move x="34.61" y="36.91"/>
+ <curve x1="34.38" x2="34.19" x3="34.19" y1="36.3" y2="35.64" y3="34.85"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="31.89" y2="31.89" y3="31.89"/>
+ <curve x1="34.19" x2="34.19" x3="40.43" y1="31.89" y2="31.89" y3="30.44"/>
+ <curve x1="43.53" x2="44.98" x3="45.64" y1="31.28" y2="31.7" y3="31.7"/>
+ <curve x1="36.26" x2="36.26" x3="36.26" y1="41.09" y2="41.09" y3="41.09"/>
+ <curve x1="35.41" x2="34.8" x3="34.61" y1="39.82" y2="38.55" y3="36.91"/>
+ <close/>
+ <move x="46.48" y="34.85"/>
+ <curve x1="46.48" x2="46.25" x3="46.06" y1="35.64" y2="36.3" y3="36.91"/>
+ <curve x1="45.41" x2="43.34" x3="40.43" y1="40.24" y2="42.96" y3="44.42"/>
+ <curve x1="39.16" x2="38.13" x3="37.1" y1="44" y2="43.15" y3="42.12"/>
+ <curve x1="46.48" x2="46.48" x3="46.48" y1="33.16" y2="33.16" y3="33.16"/>
+ <line x="46.48" y="34.85"/>
+ <close/>
+ <move x="58.3" y="52.07"/>
+ <curve x1="65.99" x2="69.94" x3="69.94" y1="52.07" y2="49.58" y3="44.19"/>
+ <curve x1="69.94" x2="67.03" x3="63.7" y1="38.56" y2="36.68" y3="35.65"/>
+ <curve x1="63.88" x2="60.97" x3="58.67" y1="32.5" y2="30.81" y3="30.81"/>
+ <curve x1="62.24" x2="33.71" x3="31.23" y1="12.09" y2="9.98" y3="23.54"/>
+ <curve x1="23.53" x2="17.71" x3="18.51" y1="19.6" y2="26.03" y3="30.81"/>
+ <curve x1="3.31" x2="5" x3="17.9" y1="30.81" y2="52.07" y3="52.07"/>
+ <curve x1="22.5" x2="35.78" x3="35.78" y1="52.07" y2="52.07" y3="52.07"/>
+ <curve x1="35.78" x2="37.04" x3="39.11" y1="52.07" y2="52.07" y3="52.07"/>
+ <curve x1="39.11" x2="39.11" x3="39.11" y1="54.98" y2="54.98" y3="54.98"/>
+ <curve x1="38.5" x2="37.89" x3="37.65" y1="55.4" y2="55.82" y3="56.48"/>
+ <curve x1="25.41" x2="25.41" x3="25.41" y1="56.48" y2="56.48" y3="56.48"/>
+ <curve x1="24.99" x2="23.95" x3="22.87" y1="55.64" y2="54.98" y3="54.98"/>
+ <curve x1="21.42" x2="20.2" x3="20.2" y1="54.98" y2="56.06" y3="57.51"/>
+ <curve x1="20.2" x2="21.42" x3="22.87" y1="58.97" y2="60" y3="60"/>
+ <curve x1="23.95" x2="24.99" x3="25.41" y1="60" y2="59.39" y3="58.36"/>
+ <curve x1="37.65" x2="37.65" x3="37.65" y1="58.36" y2="58.36" y3="58.36"/>
+ <curve x1="38.08" x2="38.92" x3="40.19" y1="59.39" y2="60" y3="60"/>
+ <curve x1="41.22" x2="42.25" x3="42.44" y1="60" y2="59.39" y3="58.36"/>
+ <curve x1="54.97" x2="54.97" x3="54.97" y1="58.36" y2="58.36" y3="58.36"/>
+ <curve x1="55.34" x2="56.19" x3="57.45" y1="59.39" y2="60" y3="60"/>
+ <curve x1="58.67" x2="59.94" x3="59.94" y1="60" y2="58.97" y3="57.51"/>
+ <curve x1="59.94" x2="58.67" x3="57.45" y1="56.06" y2="54.98" y3="54.98"/>
+ <curve x1="56.19" x2="55.34" x3="54.97" y1="54.98" y2="55.64" y3="56.48"/>
+ <curve x1="42.44" x2="42.44" x3="42.44" y1="56.48" y2="56.48" y3="56.48"/>
+ <curve x1="42.25" x2="41.64" x3="41.22" y1="55.82" y2="55.4" y3="54.98"/>
+ <curve x1="41.22" x2="41.22" x3="41.22" y1="52.07" y2="52.07" y3="52.07"/>
+ <curve x1="46.19" x2="53.7" x3="58.3" y1="52.07" y2="52.07" y3="52.07"/>
+ <close/>
+ <move x="40.8" y="48.55"/>
+ <curve x1="40.19" x2="40.19" x3="40.19" y1="48.74" y2="48.74" y3="48.74"/>
+ <curve x1="39.53" x2="39.53" x3="39.53" y1="48.55" y2="48.55" y3="48.55"/>
+ <curve x1="33.95" x2="30.38" x3="30.38" y1="46.25" y2="41.04" y3="35.23"/>
+ <curve x1="30.38" x2="30.38" x3="30.38" y1="28.14" y2="28.14" y3="28.14"/>
+ <curve x1="36.62" x2="36.62" x3="36.62" y1="26.69" y2="26.69" y3="26.69"/>
+ <curve x1="36.62" x2="36.62" x3="36.62" y1="26.69" y2="26.69" y3="26.69"/>
+ <curve x1="40.19" x2="40.19" x3="40.19" y1="26.03" y2="26.03" y3="26.03"/>
+ <curve x1="43.71" x2="43.71" x3="43.71" y1="26.69" y2="26.69" y3="26.69"/>
+ <curve x1="43.71" x2="43.71" x3="43.71" y1="26.69" y2="26.69" y3="26.69"/>
+ <curve x1="49.95" x2="49.95" x3="49.95" y1="28.14" y2="28.14" y3="28.14"/>
+ <curve x1="49.95" x2="49.95" x3="49.95" y1="35.23" y2="35.23" y3="35.23"/>
+ <curve x1="49.95" x2="46.19" x3="40.8" y1="41.04" y2="46.25" y3="48.55"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.22" x2="79.91" x3="79.91" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="79.91" x2="62.22" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="conference bridge" strokewidth="inherit" w="96.05">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="46.76" y="6.43"/>
+ <curve x1="43.67" x2="41.02" x3="41.02" y1="6.43" y2="9.09" y3="12.23"/>
+ <curve x1="41.02" x2="43.67" x3="46.76" y1="15.58" y2="17.97" y3="17.97"/>
+ <curve x1="50.17" x2="52.55" x3="52.55" y1="17.97" y2="15.58" y3="12.23"/>
+ <curve x1="52.55" x2="50.17" x3="46.76" y1="9.09" y2="6.43" y3="6.43"/>
+ <close/>
+ <move x="53.8" y="78.6"/>
+ <curve x1="53.8" x2="54.99" x3="56.18" y1="79.79" y2="80.77" y3="80.77"/>
+ <curve x1="57.64" x2="58.62" x3="58.62" y1="80.77" y2="79.79" y3="78.6"/>
+ <line x="58.62" y="65.61"/>
+ <line x="59.54" y="65.61"/>
+ <line x="60.03" y="80.55"/>
+ <line x="70.64" y="80.55"/>
+ <line x="71.34" y="65.61"/>
+ <line x="72.04" y="65.61"/>
+ <line x="72.04" y="78.6"/>
+ <curve x1="72.04" x2="73.24" x3="74.7" y1="79.79" y2="80.77" y3="80.77"/>
+ <curve x1="75.89" x2="76.86" x3="76.86" y1="80.77" y2="79.79" y3="78.6"/>
+ <line x="76.86" y="62.52"/>
+ <curve x1="76.86" x2="74.7" x3="72.04" y1="60.09" y2="57.7" y3="57.7"/>
+ <line x="58.83" y="57.7"/>
+ <curve x1="58.47" x2="58.12" x3="57.77" y1="57.7" y2="57.76" y3="57.84"/>
+ <line x="49.48" y="42.09"/>
+ <line x="51.64" y="42.09"/>
+ <line x="52.13" y="27.14"/>
+ <line x="53.1" y="27.14"/>
+ <line x="53.1" y="40.14"/>
+ <curve x1="53.1" x2="54.02" x3="55.48" y1="41.33" y2="42.3" y3="42.3"/>
+ <curve x1="56.68" x2="57.65" x3="57.65" y1="42.3" y2="41.33" y3="40.14"/>
+ <line x="57.65" y="24.06"/>
+ <curve x1="57.65" x2="55.7" x3="52.83" y1="21.62" y2="19.24" y3="19.24"/>
+ <line x="39.4" y="19.24"/>
+ <curve x1="36.75" x2="34.59" x3="34.59" y1="19.24" y2="21.62" y3="24.06"/>
+ <line x="34.59" y="40.14"/>
+ <curve x1="34.59" x2="35.78" x3="36.97" y1="41.33" y2="42.3" y3="42.3"/>
+ <curve x1="38.43" x2="39.4" x3="39.4" y1="42.3" y2="41.33" y3="40.14"/>
+ <line x="39.4" y="27.14"/>
+ <line x="40.32" y="27.14"/>
+ <line x="40.81" y="42.09"/>
+ <line x="42.99" y="42.09"/>
+ <line x="34.6" y="57.7"/>
+ <curve x1="34.6" x2="34.59" x3="34.59" y1="57.7" y2="57.7" y3="57.7"/>
+ <line x="23.54" y="57.7"/>
+ <curve x1="21.11" x2="19.21" x3="19.21" y1="57.7" y2="60.09" y3="62.52"/>
+ <line x="19.21" y="78.6"/>
+ <curve x1="19.21" x2="20.19" x3="21.38" y1="79.79" y2="80.77" y3="80.77"/>
+ <curve x1="22.35" x2="23.28" x3="23.28" y1="80.77" y2="79.79" y3="78.6"/>
+ <line x="23.28" y="65.61"/>
+ <line x="24.03" y="65.61"/>
+ <line x="24.52" y="80.55"/>
+ <line x="33.4" y="80.55"/>
+ <line x="33.89" y="65.61"/>
+ <line x="34.59" y="65.61"/>
+ <line x="34.59" y="78.6"/>
+ <curve x1="34.59" x2="35.57" x3="36.49" y1="79.79" y2="80.77" y3="80.77"/>
+ <curve x1="37.73" x2="38.43" x3="38.43" y1="80.77" y2="79.79" y3="78.6"/>
+ <line x="38.43" y="67.66"/>
+ <line x="53.8" y="67.66"/>
+ <close/>
+ <move x="38.43" y="65.39"/>
+ <line x="38.43" y="62.52"/>
+ <curve x1="38.43" x2="37.49" x3="36.11" y1="60.69" y2="58.9" y3="58.11"/>
+ <line x="44.7" y="42.09"/>
+ <line x="47.56" y="42.09"/>
+ <line x="56.46" y="58.37"/>
+ <curve x1="54.92" x2="53.8" x3="53.8" y1="59.24" y2="60.86" y3="62.52"/>
+ <line x="53.8" y="65.39"/>
+ <close/>
+ <move x="46.12" y="39.46"/>
+ <line x="46.12" y="39.45"/>
+ <move x="28.8" y="44.22"/>
+ <curve x1="25.71" x2="23.06" x3="23.06" y1="44.22" y2="46.87" y3="50.01"/>
+ <curve x1="23.06" x2="25.71" x3="28.8" y1="53.37" y2="55.75" y3="55.75"/>
+ <curve x1="32.21" x2="34.59" x3="34.59" y1="55.75" y2="53.37" y3="50.01"/>
+ <curve x1="34.59" x2="32.21" x3="28.8" y1="46.87" y2="44.22" y3="44.22"/>
+ <close/>
+ <move x="64.76" y="44.22"/>
+ <curve x1="61.67" x2="59.02" x3="59.02" y1="44.22" y2="46.87" y3="50.01"/>
+ <curve x1="59.02" x2="61.67" x3="64.76" y1="53.37" y2="55.75" y3="55.75"/>
+ <curve x1="68.17" x2="70.55" x3="70.55" y1="55.75" y2="53.37" y3="50.01"/>
+ <curve x1="70.55" x2="68.17" x3="64.76" y1="46.87" y2="44.22" y3="44.22"/>
+ <close/>
+ <move x="0" y="50.03"/>
+ <curve x1="0" x2="21.6" x3="48.02" y1="22.58" y2="0" y3="0"/>
+ <curve x1="74.72" x2="96.05" x3="96.05" y1="0" y2="22.58" y3="50.03"/>
+ <curve x1="96.05" x2="74.72" x3="48.02" y1="77.64" y2="100" y3="100"/>
+ <curve x1="21.6" x2="0" x3="0" y1="100" y2="77.64" y3="50.03"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="17.76" name="database" strokewidth="inherit" w="17.74">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="8.87" y="3.19"/>
+ <curve x1="5.55" x2="2.13" x3="2.13" y1="3.19" y2="3.95" y3="5.37"/>
+ <curve x1="2.13" x2="2.13" x3="2.13" y1="12.39" y2="12.39" y3="12.39"/>
+ <curve x1="2.13" x2="5.55" x3="8.87" y1="13.81" y2="14.56" y3="14.56"/>
+ <curve x1="12.24" x2="15.62" x3="15.62" y1="14.56" y2="13.81" y3="12.39"/>
+ <curve x1="15.62" x2="15.62" x3="15.62" y1="5.37" y2="5.37" y3="5.37"/>
+ <curve x1="15.62" x2="12.24" x3="8.87" y1="3.95" y2="3.19" y3="3.19"/>
+ <close/>
+ <move x="8.87" y="4.08"/>
+ <curve x1="12.47" x2="14.68" x3="14.68" y1="4.08" y2="4.93" y3="5.37"/>
+ <curve x1="14.68" x2="12.6" x3="8.87" y1="5.86" y2="6.7" y3="6.7"/>
+ <curve x1="5.15" x2="3.11" x3="3.11" y1="6.7" y2="5.86" y3="5.37"/>
+ <curve x1="3.11" x2="5.28" x3="8.87" y1="4.93" y2="4.08" y3="4.08"/>
+ <close/>
+ <move x="8.87" y="13.72"/>
+ <curve x1="5.15" x2="3.11" x3="3.11" y1="13.72" y2="12.83" y3="12.39"/>
+ <curve x1="3.11" x2="3.11" x3="3.11" y1="6.57" y2="6.57" y3="6.57"/>
+ <curve x1="4.35" x2="6.65" x3="8.87" y1="7.23" y2="7.59" y3="7.59"/>
+ <curve x1="11.14" x2="13.44" x3="14.68" y1="7.59" y2="7.23" y3="6.57"/>
+ <curve x1="14.68" x2="14.68" x3="14.68" y1="12.39" y2="12.39" y3="12.39"/>
+ <curve x1="14.68" x2="12.6" x3="8.87" y1="12.83" y2="13.72" y3="13.72"/>
+ <close/>
+ <move x="0" y="8.88"/>
+ <curve x1="0" x2="3.99" x3="8.87" y1="4" y2="0" y3="0"/>
+ <curve x1="13.8" x2="17.74" x3="17.74" y1="0" y2="4" y3="8.88"/>
+ <curve x1="17.74" x2="13.8" x3="8.87" y1="13.81" y2="17.76" y3="17.76"/>
+ <curve x1="3.99" x2="0" x3="0" y1="17.76" y2="13.81" y3="8.88"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="data loss prevention" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ <move x="58.36" y="20.19"/>
+ <curve x1="51.15" x2="38.76" x3="31.15" y1="12.8" y2="12.8" y3="20.19"/>
+ <curve x1="27.59" x2="25.79" x3="25.79" y1="23.79" y2="28.38" y3="33.2"/>
+ <curve x1="25.79" x2="26.56" x3="28.58" y1="36.81" y2="40.01" y3="43.02"/>
+ <curve x1="28.58" x2="28.58" x3="13.99" y1="43.02" y2="43.02" y3="56.99"/>
+ <curve x1="12.77" x2="12.77" x3="13.99" y1="58.2" y2="60.19" y3="61.4"/>
+ <curve x1="13.99" x2="13.99" x3="15.79" y1="61.4" y2="61.4" y3="62.8"/>
+ <curve x1="17.01" x2="18.99" x3="19.98" y1="64.01" y2="64.01" y3="62.8"/>
+ <curve x1="19.98" x2="19.98" x3="34.76" y1="62.8" y2="62.8" y3="49.01"/>
+ <curve x1="42.14" x2="51.96" x3="58.36" y1="53.38" y2="52.62" y3="46.4"/>
+ <curve x1="62.14" x2="63.94" x3="63.94" y1="42.8" y2="37.8" y3="33.2"/>
+ <curve x1="63.94" x2="62.14" x3="58.36" y1="28.38" y2="23.79" y3="20.19"/>
+ <close/>
+ <move x="35.57" y="24.42"/>
+ <curve x1="33.36" x2="31.78" x3="31.78" y1="26.58" y2="29.78" y3="33.2"/>
+ <curve x1="31.78" x2="33.36" x3="35.57" y1="36.58" y2="39.6" y3="41.99"/>
+ <curve x1="40.75" x2="48.94" x3="53.94" y1="46.99" y2="46.99" y3="41.99"/>
+ <curve x1="56.56" x2="57.95" x3="57.95" y1="39.6" y2="36.58" y3="33.2"/>
+ <curve x1="57.95" x2="56.56" x3="53.94" y1="29.78" y2="26.58" y3="24.42"/>
+ <curve x1="51.74" x2="48.36" x3="44.98" y1="21.99" y2="20.59" y3="20.59"/>
+ <curve x1="41.38" x2="38.18" x3="35.57" y1="20.59" y2="21.99" y3="24.42"/>
+ <close/>
+ <move x="37.96" y="28.8"/>
+ <curve x1="40.35" x2="41.57" x3="41.57" y1="28.8" y2="30.38" y3="33.62"/>
+ <curve x1="41.57" x2="40.35" x3="37.96" y1="37" y2="38.4" y3="38.4"/>
+ <curve x1="35.17" x2="35.17" x3="35.17" y1="38.4" y2="38.4" y3="38.4"/>
+ <curve x1="35.17" x2="35.17" x3="35.17" y1="28.8" y2="28.8" y3="28.8"/>
+ <line x="37.96" y="28.8"/>
+ <close/>
+ <move x="36.97" y="30.38"/>
+ <curve x1="36.97" x2="36.97" x3="36.97" y1="36.82" y2="36.82" y3="36.82"/>
+ <curve x1="37.96" x2="37.96" x3="37.96" y1="36.82" y2="36.82" y3="36.82"/>
+ <curve x1="39.18" x2="39.94" x3="39.94" y1="36.82" y2="35.79" y3="33.62"/>
+ <curve x1="39.94" x2="39.18" x3="37.96" y1="31.42" y2="30.38" y3="30.38"/>
+ <line x="36.97" y="30.38"/>
+ <close/>
+ <move x="44.28" y="28.8"/>
+ <line x="44.28" y="36.6"/>
+ <line x="47.21" y="36.6"/>
+ <line x="47.21" y="38.4"/>
+ <line x="42.25" y="38.4"/>
+ <line x="42.25" y="28.8"/>
+ <line x="44.28" y="28.8"/>
+ <line x="44.28" y="28.8"/>
+ <close/>
+ <move x="50.98" y="28.8"/>
+ <curve x1="53.36" x2="54.35" x3="54.35" y1="28.8" y2="29.79" y3="32"/>
+ <curve x1="54.35" x2="53.14" x3="50.98" y1="34.21" y2="35.2" y3="35.2"/>
+ <curve x1="49.94" x2="49.94" x3="49.94" y1="35.2" y2="35.2" y3="35.2"/>
+ <curve x1="49.94" x2="49.94" x3="49.94" y1="38.4" y2="38.4" y3="38.4"/>
+ <curve x1="47.96" x2="47.96" x3="47.96" y1="38.4" y2="38.4" y3="38.4"/>
+ <curve x1="47.96" x2="47.96" x3="47.96" y1="28.8" y2="28.8" y3="28.8"/>
+ <line x="50.98" y="28.8"/>
+ <close/>
+ <move x="49.94" y="30.38"/>
+ <curve x1="49.94" x2="49.94" x3="49.94" y1="33.62" y2="33.62" y3="33.62"/>
+ <curve x1="51.16" x2="51.16" x3="51.16" y1="33.62" y2="33.62" y3="33.62"/>
+ <curve x1="51.97" x2="52.55" x3="52.55" y1="33.62" y2="33.22" y3="32"/>
+ <curve x1="52.55" x2="51.97" x3="50.98" y1="30.79" y2="30.38" y3="30.38"/>
+ <line x="49.94" y="30.38"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80.02" name="distributed denial of service protection" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="37.48" y="39.11"/>
+ <curve x1="36.86" x2="36.25" x3="36.25" y1="38.32" y2="37.29" y3="35.76"/>
+ <line x="36.25" y="33.89"/>
+ <line x="39.94" y="33.07"/>
+ <line x="43.33" y="33.84"/>
+ <close/>
+ <move x="39.97" y="41.14"/>
+ <curve x1="39.3" x2="38.63" x3="37.96" y1="40.85" y2="40.42" y3="39.8"/>
+ <line x="43.75" y="34.55"/>
+ <line x="43.74" y="35.66"/>
+ <curve x1="43.74" x2="42.51" x3="39.97" y1="37.45" y2="39.98" y3="41.14"/>
+ <close/>
+ <move x="39.96" y="42.62"/>
+ <curve x1="42.7" x2="45.1" x3="45.1" y1="41.6" y2="38.97" y3="35.7"/>
+ <line x="45.1" y="32.12"/>
+ <line x="43.16" y="31.72"/>
+ <line x="43.16" y="32.44"/>
+ <line x="41.18" y="31.93"/>
+ <line x="41.2" y="31.23"/>
+ <line x="39.94" y="30.97"/>
+ <line x="38.73" y="31.24"/>
+ <line x="38.71" y="31.95"/>
+ <line x="36.75" y="32.46"/>
+ <line x="36.73" y="31.72"/>
+ <line x="34.8" y="32.13"/>
+ <line x="34.8" y="35.66"/>
+ <curve x1="34.8" x2="36.24" x3="39.96" y1="38.08" y2="41.14" y3="42.62"/>
+ <close/>
+ <move x="31.75" y="43.24"/>
+ <curve x1="31.12" x2="30.3" x3="30.3" y1="43.24" y2="42.79" y3="41.88"/>
+ <line x="30.3" y="31.66"/>
+ <curve x1="30.3" x2="30.96" x3="31.57" y1="30.63" y2="30.37" y3="30.37"/>
+ <line x="48.17" y="30.37"/>
+ <curve x1="49.14" x2="49.72" x3="49.72" y1="30.37" y2="30.85" y3="31.86"/>
+ <line x="49.72" y="41.97"/>
+ <curve x1="49.72" x2="49.19" x3="48.31" y1="42.82" y2="43.24" y3="43.24"/>
+ <close/>
+ <move x="49.06" y="45.19"/>
+ <curve x1="50.62" x2="51.58" x3="51.58" y1="45.19" y2="43.93" y3="42.81"/>
+ <line x="51.58" y="31.15"/>
+ <curve x1="51.58" x2="50.52" x3="48.95" y1="29.36" y2="28.42" y3="28.42"/>
+ <line x="31.01" y="28.42"/>
+ <curve x1="29.56" x2="28.35" x3="28.35" y1="28.42" y2="29.7" y3="31.09"/>
+ <line x="28.35" y="42.8"/>
+ <curve x1="28.35" x2="29.51" x3="31.01" y1="44.06" y2="45.19" y3="45.19"/>
+ <close/>
+ <move x="39.82" y="51.06"/>
+ <curve x1="39.25" x2="38.84" x3="38.84" y1="51.06" y2="50.8" y3="50.25"/>
+ <line x="38.84" y="49.35"/>
+ <curve x1="38.84" x2="39.27" x3="39.77" y1="48.95" y2="48.64" y3="48.64"/>
+ <line x="49" y="48.64"/>
+ <curve x1="49.6" x2="49.86" x3="49.86" y1="48.64" y2="49.02" y3="49.42"/>
+ <line x="49.86" y="50.29"/>
+ <curve x1="49.86" x2="49.5" x3="48.95" y1="50.75" y2="51.06" y3="51.06"/>
+ <close/>
+ <move x="49.61" y="52.93"/>
+ <curve x1="50.79" x2="51.59" x3="51.58" y1="52.93" y2="51.84" y3="50.55"/>
+ <line x="51.58" y="49.02"/>
+ <curve x1="51.58" x2="50.69" x3="49.46" y1="47.62" y2="46.46" y3="46.46"/>
+ <line x="30.53" y="46.46"/>
+ <curve x1="29.46" x2="28.35" x3="28.35" y1="46.46" y2="47.45" y3="48.23"/>
+ <line x="28.35" y="51.07"/>
+ <curve x1="28.35" x2="29.32" x3="30.26" y1="52.08" y2="52.93" y3="52.93"/>
+ <close/>
+ <move x="26.68" y="52.91"/>
+ <line x="23.51" y="56.24"/>
+ <curve x1="22.9" x2="22.15" x3="20.55" y1="55.93" y2="55.47" y3="55.47"/>
+ <curve x1="17.58" x2="15.38" x3="15.38" y1="55.47" y2="57.34" y3="60.57"/>
+ <curve x1="15.35" x2="18.04" x3="20.53" y1="63.54" y2="65.95" y3="65.95"/>
+ <curve x1="22.91" x2="25.73" x3="25.73" y1="65.95" y2="63.57" y3="61.02"/>
+ <curve x1="25.73" x2="25.51" x3="25.05" y1="59.35" y2="58.83" y3="58.03"/>
+ <line x="28.35" y="54.42"/>
+ <curve x1="27.41" x2="26.97" x3="26.68" y1="54.42" y2="53.63" y3="52.91"/>
+ <close/>
+ <move x="25.8" y="39.22"/>
+ <line x="17.45" y="39.22"/>
+ <curve x1="17.2" x2="15.04" x3="12.71" y1="36.58" y2="34.87" y3="34.87"/>
+ <curve x1="10.44" x2="7.67" x3="7.67" y1="34.87" y2="37.26" y3="40.1"/>
+ <curve x1="7.67" x2="10.06" x3="12.64" y1="42.85" y2="45.26" y3="45.26"/>
+ <curve x1="15.16" x2="17.04" x3="17.4" y1="45.26" y2="43.91" y3="41.31"/>
+ <line x="25.8" y="41.31"/>
+ <close/>
+ <move x="28.36" y="27.95"/>
+ <line x="25.15" y="24.44"/>
+ <curve x1="25.6" x2="26.17" x3="26.17" y1="23.68" y2="22.84" y3="21.22"/>
+ <curve x1="26.17" x2="24.2" x3="20.52" y1="19.06" y2="15.46" y3="15.46"/>
+ <curve x1="17.63" x2="15.35" x3="15.35" y1="15.46" y2="18.26" y3="21.23"/>
+ <curve x1="15.35" x2="17.81" x3="20.58" y1="24.55" y2="26.93" y3="26.93"/>
+ <curve x1="21.82" x2="22.77" x3="23.37" y1="26.93" y2="26.48" y3="26.09"/>
+ <line x="27.07" y="29.67"/>
+ <curve x1="27.07" x2="27.83" x3="28.36" y1="28.5" y2="27.95" y3="27.95"/>
+ <close/>
+ <move x="41.18" y="27.12"/>
+ <line x="41.19" y="18.18"/>
+ <curve x1="43.38" x2="45.24" x3="45.24" y1="17.37" y2="16.17" y3="13.23"/>
+ <curve x1="45.24" x2="42.98" x3="39.85" y1="10.11" y2="7.78" y3="7.78"/>
+ <curve x1="37.45" x2="34.7" x3="34.7" y1="7.78" y2="9.74" y3="12.98"/>
+ <curve x1="34.7" x2="36.25" x3="38.74" y1="15.44" y2="17.47" y3="18.16"/>
+ <line x="38.72" y="27.12"/>
+ <close/>
+ <move x="56.63" y="26.07"/>
+ <curve x1="57.34" x2="58.3" x3="59.36" y1="26.48" y2="26.87" y3="26.87"/>
+ <curve x1="61.99" x2="64.51" x3="64.51" y1="26.87" y2="24.28" y3="21.38"/>
+ <curve x1="64.51" x2="62.23" x3="59.25" y1="17.9" y2="15.63" y3="15.63"/>
+ <curve x1="56.72" x2="54.08" x3="54.08" y1="15.63" y2="18.03" y3="21.03"/>
+ <curve x1="54.08" x2="54.43" x3="55.09" y1="22.54" y2="23.71" y3="24.46"/>
+ <line x="51.54" y="27.95"/>
+ <curve x1="52.41" x2="53.09" x3="53.09" y1="27.95" y2="29.09" y3="29.71"/>
+ <close/>
+ <move x="67.55" y="45.24"/>
+ <curve x1="70.3" x2="72.26" x3="72.26" y1="45.24" y2="42.71" y3="40.25"/>
+ <curve x1="72.26" x2="69.28" x3="67.09" y1="37.06" y2="34.88" y3="34.88"/>
+ <curve x1="65.32" x2="62.46" x3="62.08" y1="34.88" y2="36.42" y3="39.22"/>
+ <line x="52.84" y="39.22"/>
+ <line x="52.84" y="41.31"/>
+ <line x="62.1" y="41.31"/>
+ <curve x1="62.76" x2="64.12" x3="67.55" y1="43.83" y2="45.24" y3="45.24"/>
+ <close/>
+ <move x="59.61" y="65.89"/>
+ <curve x1="61.98" x2="64.48" x3="64.48" y1="65.89" y2="63.84" y3="60.66"/>
+ <curve x1="64.48" x2="62.28" x3="59.69" y1="57.33" y2="55.51" y3="55.51"/>
+ <curve x1="58.44" x2="57.65" x3="56.63" y1="55.51" y2="55.77" y3="56.27"/>
+ <line x="53.24" y="52.88"/>
+ <curve x1="53.24" x2="53.19" x3="51.57" y1="53.05" y2="54.52" y3="54.44"/>
+ <line x="54.93" y="58"/>
+ <curve x1="54.46" x2="54.32" x3="54.32" y1="59.08" y2="59.94" y3="60.87"/>
+ <curve x1="54.32" x2="56.93" x3="59.61" y1="63.98" y2="65.89" y3="65.89"/>
+ <close/>
+ <move x="39.82" y="73.66"/>
+ <curve x1="42.75" x2="45.18" x3="45.18" y1="73.66" y2="71.45" y3="68.49"/>
+ <curve x1="45.18" x2="43.48" x3="41.18" y1="65.4" y2="64.28" y3="63.26"/>
+ <line x="41.17" y="54.24"/>
+ <line x="38.74" y="54.24"/>
+ <line x="38.74" y="63.26"/>
+ <curve x1="36.73" x2="34.72" x3="34.72" y1="63.81" y2="65.68" y3="68.56"/>
+ <curve x1="34.72" x2="36.99" x3="39.82" y1="71.32" y2="73.66" y3="73.66"/>
+ <close/>
+ <move x="40.25" y="80.02"/>
+ <curve x1="18.36" x2="0" x3="0" y1="80.02" y2="62.94" y3="39.82"/>
+ <curve x1="0" x2="18.77" x3="40.07" y1="17.12" y2="0" y3="0"/>
+ <curve x1="62.01" x2="79.91" x3="79.91" y1="0" y2="18.16" y3="40.04"/>
+ <curve x1="79.91" x2="62.26" x3="40.25" y1="61.79" y2="80.02" y3="80.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.72" name="dns" strokewidth="inherit" w="78.36">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="52.63" y="26.11"/>
+ <curve x1="54.98" x2="57.7" x3="60.55" y1="25.41" y2="23.65" y3="21.51"/>
+ <curve x1="65.05" x2="67.41" x3="67.71" y1="27.08" y2="32.62" y3="39.37"/>
+ <line x="55.66" y="39.37"/>
+ <line x="55.66" y="35.53"/>
+ <curve x1="55.66" x2="54.91" x3="54.32" y1="33.74" y2="32.84" y3="32.24"/>
+ <curve x1="53.91" x2="53.4" x3="52.63" y1="30.47" y2="28.52" y3="26.11"/>
+ <close/>
+ <move x="51.81" y="24.23"/>
+ <curve x1="49.77" x2="47.08" x3="43.94" y1="19.41" y2="15.53" y3="12.31"/>
+ <curve x1="48.9" x2="54.92" x3="59.14" y1="13.02" y2="16.05" y3="20.04"/>
+ <curve x1="56.89" x2="54.01" x3="51.81" y1="21.67" y2="23.36" y3="24.23"/>
+ <close/>
+ <move x="40.36" y="31.08"/>
+ <line x="40.36" y="28.78"/>
+ <curve x1="44.42" x2="47.69" x3="50.67" y1="28.83" y2="28.01" y3="26.9"/>
+ <curve x1="51.2" x2="51.57" x3="51.89" y1="28.3" y2="29.68" y3="31.08"/>
+ <close/>
+ <move x="40.36" y="26.71"/>
+ <line x="40.36" y="12.03"/>
+ <curve x1="44.17" x2="47.45" x3="49.88" y1="15.15" y2="19.29" y3="24.94"/>
+ <curve x1="46.92" x2="43.83" x3="40.36" y1="25.92" y2="26.65" y3="26.71"/>
+ <close/>
+ <move x="26.71" y="24.23"/>
+ <curve x1="23.98" x2="21.51" x3="19.44" y1="22.99" y2="21.63" y3="20.09"/>
+ <curve x1="24.81" x2="30.3" x3="34.55" y1="14.85" y2="13.19" y3="12.36"/>
+ <curve x1="30.95" x2="28.28" x3="26.71" y1="16.11" y2="20.05" y3="24.23"/>
+ <close/>
+ <move x="28.7" y="24.97"/>
+ <curve x1="30.95" x2="34.31" x3="38.16" y1="19.38" y2="15.35" y3="12.01"/>
+ <line x="38.16" y="26.65"/>
+ <curve x1="34.84" x2="31.72" x3="28.7" y1="26.6" y2="25.96" y3="24.97"/>
+ <close/>
+ <move x="26.63" y="31.08"/>
+ <curve x1="26.9" x2="27.2" x3="27.83" y1="29.89" y2="28.66" y3="26.9"/>
+ <curve x1="30.69" x2="34.06" x3="38.16" y1="28" y2="28.69" y3="28.78"/>
+ <line x="38.16" y="31.08"/>
+ <close/>
+ <move x="10.86" y="39.37"/>
+ <curve x1="10.98" x2="13.44" x3="17.97" y1="33.05" y2="26.67" y3="21.56"/>
+ <curve x1="20.51" x2="23.66" x3="25.86" y1="23.66" y2="25.25" y3="26.11"/>
+ <curve x1="25.29" x2="24.7" x3="24.26" y1="27.98" y2="29.83" y3="32.13"/>
+ <curve x1="23.33" x2="22.71" x3="22.75" y1="33.04" y2="34.04" y3="35.67"/>
+ <line x="22.75" y="39.4"/>
+ <close/>
+ <move x="43.03" y="41.1"/>
+ <curve x1="43.17" x2="43.58" x3="45.57" y1="42.05" y2="43.23" y3="43.31"/>
+ <curve x1="47.31" x2="47.97" x3="48.21" y1="43.3" y2="42.67" y3="41.76"/>
+ <curve x1="48.39" x2="48.18" x3="47.24" y1="41.04" y2="40.04" y3="39.59"/>
+ <curve x1="46.35" x2="45.2" x3="44.65" y1="39.14" y2="39.16" y3="38.69"/>
+ <curve x1="44.43" x2="44.49" x3="44.72" y1="38.49" y2="38.09" y3="37.93"/>
+ <curve x1="45.15" x2="45.69" x3="46.02" y1="37.69" y2="37.69" y3="37.75"/>
+ <curve x1="46.58" x2="46.7" x3="46.79" y1="37.89" y2="38.26" y3="38.64"/>
+ <line x="48.08" y="38.59"/>
+ <curve x1="48.05" x2="47.79" x3="47" y1="37.9" y2="37.27" y3="36.89"/>
+ <curve x1="45.94" x2="44.59" x3="43.86" y1="36.46" y2="36.58" y3="37.13"/>
+ <curve x1="43.17" x2="42.99" x3="43.82" y1="37.74" y2="38.9" y3="39.71"/>
+ <curve x1="44.44" x2="45.85" x3="46.44" y1="40.27" y2="40.45" y3="40.68"/>
+ <curve x1="47.16" x2="46.99" x3="46.77" y1="40.93" y2="41.53" y3="41.82"/>
+ <curve x1="46.45" x2="45.94" x3="45.28" y1="42.18" y2="42.23" y3="42.16"/>
+ <curve x1="44.8" x2="44.42" x3="44.3" y1="42.01" y2="41.7" y3="40.96"/>
+ <close/>
+ <move x="36.88" y="43.18"/>
+ <line x="38.1" y="43.18"/>
+ <line x="38.1" y="38.99"/>
+ <line x="40.69" y="43.18"/>
+ <line x="41.99" y="43.18"/>
+ <line x="41.99" y="36.74"/>
+ <line x="40.78" y="36.74"/>
+ <line x="40.78" y="41.03"/>
+ <line x="38.14" y="36.74"/>
+ <line x="36.88" y="36.74"/>
+ <close/>
+ <move x="31.67" y="42.1"/>
+ <line x="31.67" y="37.83"/>
+ <line x="33.03" y="37.86"/>
+ <curve x1="33.48" x2="34.13" x3="34.35" y1="37.9" y2="38.08" y3="39.04"/>
+ <curve x1="34.47" x2="34.42" x3="34.31" y1="39.79" y2="40.43" y3="41.03"/>
+ <curve x1="34.18" x2="33.91" x3="33.16" y1="41.59" y2="42.03" y3="42.08"/>
+ <close/>
+ <move x="30.37" y="43.18"/>
+ <line x="32.95" y="43.18"/>
+ <curve x1="34.91" x2="35.76" x3="35.77" y1="43.25" y2="41.86" y3="40.05"/>
+ <curve x1="35.81" x2="35.22" x3="32.88" y1="38.5" y2="36.69" y3="36.74"/>
+ <line x="30.37" y="36.74"/>
+ <close/>
+ <move x="27.04" y="46.5"/>
+ <curve x1="26.53" x2="26.14" x3="26.14" y1="46.5" y2="46.07" y3="45.63"/>
+ <line x="26.14" y="35.35"/>
+ <curve x1="26.14" x2="26.57" x3="27.07" y1="34.91" y2="34.45" y3="34.45"/>
+ <line x="51.37" y="34.45"/>
+ <curve x1="51.97" x2="52.3" x3="52.3" y1="34.45" y2="34.92" y3="35.45"/>
+ <line x="52.3" y="45.59"/>
+ <curve x1="52.3" x2="51.96" x3="51.31" y1="46.11" y2="46.51" y3="46.5"/>
+ <close/>
+ <move x="59.38" y="60.71"/>
+ <curve x1="56.99" x2="54.53" x3="51.92" y1="59.07" y2="57.65" y3="56.66"/>
+ <curve x1="52.86" x2="53.68" x3="54.23" y1="54.3" y2="51.7" y3="48.79"/>
+ <curve x1="55.12" x2="55.69" x3="55.66" y1="48.04" y2="47.11" y3="45.39"/>
+ <line x="55.66" y="41.6"/>
+ <line x="67.72" y="41.6"/>
+ <curve x1="67.41" x2="64.43" x3="59.38" y1="48.89" y2="55.66" y3="60.71"/>
+ <close/>
+ <move x="40.36" y="54.26"/>
+ <line x="40.36" y="49.88"/>
+ <line x="51.84" y="49.88"/>
+ <curve x1="51.45" x2="50.85" x3="49.88" y1="51.71" y2="53.67" y3="55.87"/>
+ <curve x1="46.78" x2="43.61" x3="40.36" y1="54.92" y2="54.41" y3="54.26"/>
+ <close/>
+ <move x="28.61" y="55.9"/>
+ <curve x1="27.86" x2="27.1" x3="26.68" y1="53.96" y2="52.02" y3="49.88"/>
+ <line x="38.16" y="49.88"/>
+ <line x="38.16" y="54.29"/>
+ <curve x1="33.88" x2="31.18" x3="28.61" y1="54.42" y2="55.18" y3="55.9"/>
+ <close/>
+ <move x="26.63" y="56.6"/>
+ <curve x1="24.09" x2="21.59" x3="19.19" y1="57.7" y2="58.99" y3="60.66"/>
+ <curve x1="15.05" x2="11.14" x3="10.78" y1="56.61" y2="50.03" y3="41.63"/>
+ <line x="22.75" y="41.6"/>
+ <line x="22.75" y="44.92"/>
+ <curve x1="22.72" x2="23.26" x3="24.26" y1="47.08" y2="47.89" y3="48.84"/>
+ <curve x1="24.9" x2="25.54" x3="26.63" y1="51.84" y2="54.02" y3="56.6"/>
+ <close/>
+ <move x="34.55" y="68.69"/>
+ <curve x1="29.74" x2="24.9" x3="20.75" y1="67.73" y2="65.75" y3="62.18"/>
+ <curve x1="23.01" x2="25.27" x3="27.53" y1="60.52" y2="59.51" y3="58.56"/>
+ <curve x1="29.46" x2="31.97" x3="34.55" y1="62.88" y2="65.88" y3="68.69"/>
+ <close/>
+ <move x="38.16" y="69.02"/>
+ <curve x1="34.45" x2="31.66" x3="29.54" y1="66.12" y2="62.29" y3="57.8"/>
+ <curve x1="32.04" x2="34.86" x3="38.16" y1="57.02" y2="56.53" y3="56.47"/>
+ <close/>
+ <move x="40.36" y="69.02"/>
+ <line x="40.36" y="56.44"/>
+ <curve x1="43.4" x2="46.26" x3="49.01" y1="56.46" y2="57.02" y3="57.83"/>
+ <curve x1="46.66" x2="43.73" x3="40.36" y1="62.62" y2="66.26" y3="69.02"/>
+ <close/>
+ <move x="44" y="68.69"/>
+ <curve x1="46.74" x2="49.26" x3="50.99" y1="65.82" y2="62.33" y3="58.56"/>
+ <curve x1="53.46" x2="55.58" x3="57.69" y1="59.47" y2="60.79" y3="62.13"/>
+ <curve x1="54.27" x2="48.53" x3="44" y1="65.31" y2="67.91" y3="68.69"/>
+ <close/>
+ <move x="39.1" y="73.24"/>
+ <curve x1="57.83" x2="71.93" x3="71.93" y1="73.24" y2="58.41" y3="40.4"/>
+ <curve x1="71.93" x2="57.95" x3="38.82" y1="22.82" y2="7.68" y3="7.68"/>
+ <curve x1="22.66" x2="6.37" x3="6.37" y1="7.68" y2="21.46" y3="39.64"/>
+ <curve x1="6.37" x2="20.97" x3="39.1" y1="58.55" y2="73.24" y3="73.24"/>
+ <close/>
+ <move x="39.26" y="79.72"/>
+ <curve x1="20.67" x2="0" x3="0" y1="79.72" y2="64.69" y3="39.15"/>
+ <curve x1="0" x2="18.63" x3="38.5" y1="17.56" y2="0" y3="0"/>
+ <curve x1="61.47" x2="78.36" x3="78.36" y1="0" y2="18.02" y3="40.24"/>
+ <curve x1="78.36" x2="62.11" x3="39.26" y1="60.4" y2="79.72" y3="79.72"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="email encryption" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="46.29" y="29.73"/>
+ <curve x1="46.29" x2="45.92" x3="45.29" y1="28.33" y2="27.7" y3="27.7"/>
+ <curve x1="45.16" x2="45.16" x3="45.16" y1="27.7" y2="27.7" y3="27.7"/>
+ <curve x1="44.98" x2="44.98" x3="44.98" y1="28.33" y2="29.05" y3="29.73"/>
+ <curve x1="44.98" x2="44.98" x3="45.16" y1="30.36" y2="30.9" y3="31.58"/>
+ <curve x1="45.29" x2="45.29" x3="45.29" y1="31.58" y2="31.58" y3="31.58"/>
+ <curve x1="45.92" x2="46.29" x3="46.29" y1="31.58" y2="31.08" y3="29.73"/>
+ <close/>
+ <move x="49.56" y="22.17"/>
+ <curve x1="49.56" x2="50.01" x3="50.46" y1="21.13" y2="20.23" y3="20.23"/>
+ <curve x1="51" x2="51.36" x3="51.36" y1="20.23" y2="21.13" y3="22.17"/>
+ <curve x1="51.36" x2="51" x3="50.46" y1="23.3" y2="24.11" y3="24.11"/>
+ <curve x1="50.01" x2="49.56" x3="49.56" y1="24.11" y2="23.3" y3="22.17"/>
+ <close/>
+ <move x="58.77" y="22.11"/>
+ <curve x1="58.77" x2="59.26" x3="59.81" y1="21.07" y2="20.16" y3="20.16"/>
+ <curve x1="60.44" x2="60.8" x3="60.8" y1="20.16" y2="21.07" y3="22.11"/>
+ <curve x1="60.8" x2="60.44" x3="59.81" y1="23.23" y2="24.05" y3="24.05"/>
+ <curve x1="59.26" x2="58.77" x3="58.77" y1="24.05" y2="23.23" y3="22.11"/>
+ <close/>
+ <move x="66.3" y="29.74"/>
+ <curve x1="66.3" x2="66.93" x3="67.52" y1="28.7" y2="27.8" y3="27.8"/>
+ <curve x1="68.2" x2="68.74" x3="68.74" y1="27.8" y2="28.7" y3="29.74"/>
+ <curve x1="68.74" x2="68.2" x3="67.52" y1="30.87" y2="31.68" y3="31.68"/>
+ <curve x1="66.93" x2="66.3" x3="66.3" y1="31.68" y2="30.87" y3="29.74"/>
+ <close/>
+ <move x="63.89" y="32.09"/>
+ <curve x1="62.99" x2="62.99" x3="62.99" y1="32.09" y2="32.09" y3="32.09"/>
+ <curve x1="62.99" x2="62.99" x3="62.99" y1="28.93" y2="28.93" y3="28.93"/>
+ <curve x1="61.72" x2="61.72" x3="61.72" y1="28.93" y2="28.93" y3="28.93"/>
+ <curve x1="61.72" x2="61.72" x3="61.72" y1="28.21" y2="28.21" y3="28.21"/>
+ <curve x1="62.18" x2="62.45" x3="62.67" y1="28.21" y2="28.16" y3="27.89"/>
+ <curve x1="62.9" x2="63.08" x3="63.08" y1="27.89" y2="27.66" y3="27.26"/>
+ <curve x1="63.89" x2="63.89" x3="63.89" y1="27.26" y2="27.26" y3="27.26"/>
+ <line x="63.89" y="32.09"/>
+ <close/>
+ <move x="61.32" y="23.96"/>
+ <curve x1="60.91" x2="60.51" x3="59.87" y1="24.41" y2="24.68" y3="24.68"/>
+ <curve x1="59.2" x2="58.74" x3="58.38" y1="24.68" y2="24.41" y3="24.05"/>
+ <curve x1="58.07" x2="57.98" x3="57.98" y1="23.65" y2="22.97" y3="22.25"/>
+ <curve x1="57.98" x2="58.07" x3="58.38" y1="21.43" y2="20.8" y3="20.39"/>
+ <curve x1="58.79" x2="59.2" x3="59.87" y1="19.99" y2="19.76" y3="19.76"/>
+ <curve x1="60.51" x2="60.91" x3="61.23" y1="19.76" y2="19.99" y3="20.39"/>
+ <curve x1="61.54" x2="61.72" x3="61.72" y1="20.8" y2="21.43" y3="22.25"/>
+ <curve x1="61.72" x2="61.54" x3="61.32" y1="22.97" y2="23.56" y3="23.96"/>
+ <close/>
+ <move x="61.14" y="38.95"/>
+ <curve x1="60.82" x2="60.32" x3="59.69" y1="39.49" y2="39.67" y3="39.67"/>
+ <curve x1="59.06" x2="58.65" x3="58.25" y1="39.67" y2="39.49" y3="38.95"/>
+ <curve x1="57.98" x2="57.84" x3="57.84" y1="38.54" y2="38" y3="37.19"/>
+ <curve x1="57.84" x2="57.98" x3="58.25" y1="36.38" y2="35.79" y3="35.38"/>
+ <curve x1="58.65" x2="59.06" x3="59.69" y1="34.84" y2="34.66" y3="34.66"/>
+ <curve x1="60.32" x2="60.73" x3="61.14" y1="34.66" y2="34.84" y3="35.38"/>
+ <curve x1="61.45" x2="61.54" x3="61.54" y1="35.79" y2="36.38" y3="37.19"/>
+ <curve x1="61.54" x2="61.45" x3="61.14" y1="37.91" y2="38.54" y3="38.95"/>
+ <close/>
+ <move x="57.25" y="31.55"/>
+ <curve x1="57.03" x2="56.89" x3="56.89" y1="31.14" y2="30.42" y3="29.7"/>
+ <curve x1="56.89" x2="57.03" x3="57.25" y1="28.93" y2="28.39" y3="27.89"/>
+ <curve x1="57.66" x2="58.07" x3="58.74" y1="27.44" y2="27.17" y3="27.17"/>
+ <curve x1="59.38" x2="59.87" x3="60.19" y1="27.17" y2="27.44" y3="27.89"/>
+ <curve x1="60.51" x2="60.64" x3="60.64" y1="28.39" y2="28.93" y3="29.7"/>
+ <curve x1="60.64" x2="60.51" x3="60.19" y1="30.42" y2="31.05" y3="31.55"/>
+ <curve x1="59.87" x2="59.38" x3="58.74" y1="31.95" y2="32.27" y3="32.27"/>
+ <curve x1="58.07" x2="57.66" x3="57.25" y1="32.27" y2="31.95" y3="31.55"/>
+ <close/>
+ <move x="56.08" y="24.68"/>
+ <curve x1="55" x2="55" x3="55" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="55" x2="55" x3="55" y1="21.43" y2="21.43" y3="21.43"/>
+ <curve x1="53.82" x2="53.82" x3="53.82" y1="21.43" y2="21.43" y3="21.43"/>
+ <curve x1="53.82" x2="53.82" x3="53.82" y1="20.71" y2="20.71" y3="20.71"/>
+ <curve x1="54.23" x2="54.64" x3="54.86" y1="20.71" y2="20.71" y3="20.49"/>
+ <curve x1="54.95" x2="55.09" x3="55.18" y1="20.3" y2="20.08" y3="19.85"/>
+ <curve x1="56.08" x2="56.08" x3="56.08" y1="19.85" y2="19.85" y3="19.85"/>
+ <line x="56.08" y="24.68"/>
+ <close/>
+ <move x="55.9" y="39.58"/>
+ <curve x1="54.86" x2="54.86" x3="54.86" y1="39.58" y2="39.58" y3="39.58"/>
+ <curve x1="54.86" x2="54.86" x3="54.86" y1="36.38" y2="36.38" y3="36.38"/>
+ <curve x1="53.64" x2="53.64" x3="53.64" y1="36.38" y2="36.38" y3="36.38"/>
+ <curve x1="53.64" x2="53.64" x3="53.64" y1="35.65" y2="35.65" y3="35.65"/>
+ <curve x1="54.05" x2="54.46" x3="54.68" y1="35.65" y2="35.56" y3="35.47"/>
+ <curve x1="54.86" x2="54.95" x3="55" y1="35.34" y2="35.07" y3="34.84"/>
+ <curve x1="55.9" x2="55.9" x3="55.9" y1="34.84" y2="34.84" y3="34.84"/>
+ <line x="55.9" y="39.58"/>
+ <close/>
+ <move x="52.42" y="31.55"/>
+ <curve x1="52.11" x2="52.02" x3="52.02" y1="31.14" y2="30.42" y3="29.7"/>
+ <curve x1="52.02" x2="52.11" x3="52.51" y1="28.93" y2="28.39" y3="27.89"/>
+ <curve x1="52.83" x2="53.24" x3="53.87" y1="27.44" y2="27.17" y3="27.17"/>
+ <curve x1="54.55" x2="54.95" x3="55.36" y1="27.17" y2="27.44" y3="27.89"/>
+ <curve x1="55.67" x2="55.76" x3="55.76" y1="28.39" y2="28.93" y3="29.7"/>
+ <curve x1="55.76" x2="55.67" x3="55.36" y1="30.42" y2="31.05" y3="31.55"/>
+ <curve x1="55" x2="54.55" x3="53.87" y1="31.95" y2="32.27" y3="32.27"/>
+ <curve x1="53.24" x2="52.83" x3="52.42" y1="32.27" y2="31.95" y3="31.55"/>
+ <close/>
+ <move x="50.53" y="32.09"/>
+ <curve x1="49.44" x2="49.44" x3="49.44" y1="32.09" y2="32.09" y3="32.09"/>
+ <curve x1="49.44" x2="49.44" x3="49.44" y1="28.93" y2="28.93" y3="28.93"/>
+ <curve x1="48.27" x2="48.27" x3="48.27" y1="28.93" y2="28.93" y3="28.93"/>
+ <curve x1="48.27" x2="48.27" x3="48.27" y1="28.21" y2="28.21" y3="28.21"/>
+ <curve x1="48.68" x2="48.99" x3="49.22" y1="28.21" y2="28.16" y3="27.89"/>
+ <curve x1="49.4" x2="49.53" x3="49.72" y1="27.89" y2="27.66" y3="27.26"/>
+ <curve x1="50.53" x2="50.53" x3="50.53" y1="27.26" y2="27.26" y3="27.26"/>
+ <line x="50.53" y="32.09"/>
+ <close/>
+ <move x="65.97" y="31.55"/>
+ <curve x1="65.65" x2="65.47" x3="65.47" y1="31.14" y2="30.42" y3="29.7"/>
+ <curve x1="65.47" x2="65.65" x3="65.97" y1="28.93" y2="28.39" y3="27.89"/>
+ <curve x1="66.28" x2="66.78" x3="67.41" y1="27.44" y2="27.17" y3="27.17"/>
+ <curve x1="67.73" x2="68.09" x3="68.32" y1="27.17" y2="27.26" y3="27.44"/>
+ <curve x1="68.32" x2="68.23" x3="68.23" y1="27.35" y2="27.26" y3="27.26"/>
+ <curve x1="68.23" x2="68.14" x3="68.09" y1="26.94" y2="26.63" y3="26.31"/>
+ <curve x1="67.82" x2="67.5" x3="67.19" y1="25.5" y2="24.82" y3="24.19"/>
+ <curve x1="66.96" x2="66.69" x3="66.6" y1="23.87" y2="23.56" y3="23.24"/>
+ <curve x1="66.19" x2="65.83" x3="65.43" y1="22.74" y2="22.25" y3="21.79"/>
+ <curve x1="65.43" x2="65.43" x3="65.43" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="64.34" x2="64.34" x3="64.34" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="64.34" x2="64.34" x3="64.34" y1="21.43" y2="21.43" y3="21.43"/>
+ <curve x1="63.08" x2="63.08" x3="63.08" y1="21.43" y2="21.43" y3="21.43"/>
+ <curve x1="63.08" x2="63.08" x3="63.08" y1="20.71" y2="20.71" y3="20.71"/>
+ <curve x1="63.49" x2="63.8" x3="64.03" y1="20.71" y2="20.71" y3="20.58"/>
+ <curve x1="62.04" x2="59.51" x3="56.71" y1="19.04" y2="18.05" y3="18.05"/>
+ <curve x1="54.55" x2="52.42" x3="50.66" y1="18.05" y2="18.72" y3="19.76"/>
+ <curve x1="51.25" x2="51.57" x3="51.88" y1="19.76" y2="19.99" y3="20.39"/>
+ <curve x1="52.29" x2="52.38" x3="52.38" y1="20.8" y2="21.43" y3="22.25"/>
+ <curve x1="52.38" x2="52.29" x3="51.97" y1="22.97" y2="23.56" y3="23.96"/>
+ <curve x1="51.57" x2="51.16" x3="50.53" y1="24.41" y2="24.68" y3="24.68"/>
+ <curve x1="49.85" x2="49.4" x3="49.04" y1="24.68" y2="24.41" y3="24.05"/>
+ <curve x1="48.72" x2="48.5" x3="48.5" y1="23.65" y2="22.97" y3="22.25"/>
+ <curve x1="48.5" x2="48.68" x3="48.72" y1="21.84" y2="21.43" y3="21.21"/>
+ <curve x1="48.09" x2="47.46" x3="46.87" y1="21.84" y2="22.52" y3="23.24"/>
+ <curve x1="46.74" x2="46.56" x3="46.33" y1="23.56" y2="23.87" y3="24.19"/>
+ <curve x1="46.33" x2="46.15" x3="46.15" y1="24.19" y2="24.59" y3="24.68"/>
+ <curve x1="45.83" x2="45.61" x3="45.52" y1="25.18" y2="25.72" y3="26.31"/>
+ <curve x1="45.34" x2="45.29" x3="45.11" y1="26.63" y2="26.85" y3="27.17"/>
+ <curve x1="45.29" x2="45.29" x3="45.29" y1="27.17" y2="27.17" y3="27.17"/>
+ <curve x1="45.83" x2="46.33" x3="46.65" y1="27.17" y2="27.44" y3="27.89"/>
+ <curve x1="47.05" x2="47.14" x3="47.14" y1="28.39" y2="28.93" y3="29.7"/>
+ <curve x1="47.14" x2="47.05" x3="46.74" y1="30.42" y2="31.05" y3="31.55"/>
+ <curve x1="46.33" x2="45.92" x3="45.29" y1="31.95" y2="32.27" y3="32.27"/>
+ <curve x1="45.29" x2="45.29" x3="45.34" y1="32.36" y2="32.4" y3="32.58"/>
+ <curve x1="45.52" x2="45.74" x3="46.15" y1="33.4" y2="34.12" y3="34.84"/>
+ <curve x1="46.15" x2="46.42" x3="46.56" y1="34.84" y2="35.38" y3="35.56"/>
+ <curve x1="46.65" x2="46.78" x3="46.87" y1="35.74" y2="35.97" y3="36.2"/>
+ <curve x1="47.19" x2="47.59" x3="47.91" y1="36.69" y2="37.1" y3="37.51"/>
+ <curve x1="48.09" x2="48.27" x3="48.32" y1="37.6" y2="37.73" y3="37.91"/>
+ <curve x1="48.5" x2="48.5" x3="48.5" y1="38.05" y2="38.05" y3="38.05"/>
+ <curve x1="48.5" x2="48.5" x3="48.5" y1="37.73" y2="37.51" y3="37.19"/>
+ <curve x1="48.5" x2="48.68" x3="48.9" y1="36.38" y2="35.79" y3="35.38"/>
+ <curve x1="49.31" x2="49.72" x3="50.35" y1="34.84" y2="34.66" y3="34.66"/>
+ <curve x1="50.98" x2="51.48" x3="51.7" y1="34.66" y2="34.84" y3="35.38"/>
+ <curve x1="52.11" x2="52.29" x3="52.29" y1="35.79" y2="36.38" y3="37.19"/>
+ <curve x1="52.29" x2="52.11" x3="51.79" y1="37.91" y2="38.54" y3="38.95"/>
+ <curve x1="51.48" x2="51.16" x3="50.66" y1="39.27" y2="39.58" y3="39.67"/>
+ <curve x1="50.98" x2="51.3" x3="51.66" y1="39.85" y2="39.99" y3="40.26"/>
+ <curve x1="51.97" x2="52.29" x3="52.69" y1="40.3" y2="40.49" y3="40.62"/>
+ <curve x1="53.15" x2="53.82" x3="54.37" y1="40.71" y2="40.98" y3="41.03"/>
+ <curve x1="54.68" x2="55.18" x3="55.49" y1="41.12" y2="41.21" y3="41.21"/>
+ <curve x1="55.9" x2="56.31" x3="56.71" y1="41.21" y2="41.3" y3="41.3"/>
+ <curve x1="57.12" x2="57.53" x3="57.98" y1="41.3" y2="41.21" y3="41.21"/>
+ <curve x1="58.34" x2="58.74" x3="59.11" y1="41.21" y2="41.12" y3="41.03"/>
+ <curve x1="59.69" x2="60.23" x3="60.82" y1="40.98" y2="40.71" y3="40.62"/>
+ <curve x1="61.14" x2="61.45" x3="61.86" y1="40.49" y2="40.3" y3="40.26"/>
+ <curve x1="62.45" x2="63.08" x3="63.58" y1="39.9" y2="39.49" y3="39.18"/>
+ <curve x1="63.49" x2="63.39" x3="63.3" y1="39.13" y2="39.04" y3="38.95"/>
+ <curve x1="63.08" x2="62.9" x3="62.9" y1="38.54" y2="38" y3="37.19"/>
+ <curve x1="62.9" x2="63.08" x3="63.39" y1="36.38" y2="35.79" y3="35.38"/>
+ <curve x1="63.71" x2="64.12" x3="64.84" y1="34.84" y2="34.66" y3="34.66"/>
+ <curve x1="65.43" x2="65.83" x3="66.19" y1="34.66" y2="34.84" y3="35.38"/>
+ <curve x1="66.37" x2="66.46" x3="66.6" y1="35.56" y2="35.88" y3="36.2"/>
+ <curve x1="67.28" x2="67.82" x3="68.23" y1="35.07" y2="33.85" y3="32.58"/>
+ <curve x1="68.23" x2="68.23" x3="68.23" y1="32.4" y2="32.36" y3="32.09"/>
+ <curve x1="68.32" x2="68.32" x3="68.32" y1="32.09" y2="32" y3="31.95"/>
+ <curve x1="68.09" x2="67.73" x3="67.41" y1="32.09" y2="32.27" y3="32.27"/>
+ <curve x1="66.78" x2="66.28" x3="65.97" y1="32.27" y2="31.95" y3="31.55"/>
+ <close/>
+ <move x="49.35" y="37.11"/>
+ <curve x1="49.35" x2="49.81" x3="50.3" y1="36.07" y2="35.17" y3="35.17"/>
+ <curve x1="50.89" x2="51.25" x3="51.25" y1="35.17" y2="36.07" y3="37.11"/>
+ <curve x1="51.25" x2="50.89" x3="50.3" y1="38.24" y2="39.05" y3="39.05"/>
+ <curve x1="49.81" x2="49.35" x3="49.35" y1="39.05" y2="38.24" y3="37.11"/>
+ <close/>
+ <move x="52.77" y="29.74"/>
+ <curve x1="52.77" x2="53.31" x3="53.85" y1="28.7" y2="27.8" y3="27.8"/>
+ <curve x1="54.48" x2="54.93" x3="54.93" y1="27.8" y2="28.7" y3="29.74"/>
+ <curve x1="54.93" x2="54.48" x3="53.85" y1="30.87" y2="31.68" y3="31.68"/>
+ <curve x1="53.31" x2="52.77" x3="52.77" y1="31.68" y2="30.87" y3="29.74"/>
+ <close/>
+ <move x="64.79" y="35.03"/>
+ <curve x1="64.12" x2="63.76" x3="63.76" y1="35.03" y2="35.76" y3="37.11"/>
+ <curve x1="63.76" x2="63.98" x3="64.21" y1="38.01" y2="38.65" y3="38.92"/>
+ <curve x1="64.57" x2="64.79" x3="65.11" y1="38.65" y2="38.42" y3="38.01"/>
+ <curve x1="65.25" x2="65.34" x3="65.47" y1="37.92" y2="37.7" y3="37.61"/>
+ <curve x1="65.56" x2="65.56" x3="65.56" y1="37.52" y2="37.47" y3="37.38"/>
+ <curve x1="65.56" x2="65.56" x3="65.56" y1="37.11" y2="37.11" y3="37.11"/>
+ <curve x1="65.56" x2="65.34" x3="64.79" y1="35.76" y2="35.03" y3="35.03"/>
+ <close/>
+ <move x="36.48" y="47.49"/>
+ <curve x1="36.25" x2="35.76" x3="35.53" y1="47.67" y2="47.8" y3="47.8"/>
+ <curve x1="35.13" x2="34.72" x3="34.63" y1="47.8" y2="47.67" y3="47.49"/>
+ <curve x1="29.71" x2="29.71" x3="29.71" y1="43.87" y2="43.87" y3="43.87"/>
+ <curve x1="14.18" x2="14.18" x3="14.18" y1="58.55" y2="58.55" y3="58.55"/>
+ <curve x1="15.22" x2="16.25" x3="17.47" y1="59.04" y2="59.36" y3="59.36"/>
+ <curve x1="53.59" x2="53.59" x3="53.59" y1="59.36" y2="59.36" y3="59.36"/>
+ <curve x1="54.67" x2="55.76" x3="56.71" y1="59.36" y2="59.04" y3="58.55"/>
+ <curve x1="41.4" x2="41.4" x3="41.4" y1="43.87" y2="43.87" y3="43.87"/>
+ <line x="36.48" y="47.49"/>
+ <close/>
+ <move x="57.28" y="43.14"/>
+ <curve x1="53.57" x2="50.37" x3="47.93" y1="43.14" y2="41.43" y3="38.72"/>
+ <curve x1="43.82" x2="43.82" x3="43.82" y1="41.93" y2="41.93" y3="41.93"/>
+ <curve x1="58.58" x2="58.58" x3="58.58" y1="56.78" y2="56.78" y3="56.78"/>
+ <curve x1="59.04" x2="59.31" x3="59.31" y1="56.06" y2="55.24" y3="54.25"/>
+ <curve x1="59.31" x2="59.31" x3="59.31" y1="42.96" y2="42.96" y3="42.96"/>
+ <curve x1="58.63" x2="58" x3="57.28" y1="43.05" y2="43.14" y3="43.14"/>
+ <close/>
+ <move x="12.5" y="30.95"/>
+ <curve x1="11.92" x2="11.6" x3="11.6" y1="31.77" y2="32.76" y3="33.71"/>
+ <curve x1="11.6" x2="11.6" x3="11.6" y1="54.34" y2="54.34" y3="54.34"/>
+ <curve x1="11.6" x2="11.92" x3="12.23" y1="55.24" y2="56.06" y3="56.78"/>
+ <curve x1="27.09" x2="27.09" x3="27.09" y1="42.24" y2="42.24" y3="42.24"/>
+ <line x="12.5" y="30.95"/>
+ <close/>
+ <move x="45.1" y="37.09"/>
+ <curve x1="43.75" x2="42.94" x3="42.94" y1="34.69" y2="31.76" y3="28.64"/>
+ <curve x1="42.94" x2="42.94" x3="42.94" y1="28.37" y2="28.37" y3="28.37"/>
+ <curve x1="16.98" x2="16.98" x3="16.98" y1="28.37" y2="28.37" y3="28.37"/>
+ <curve x1="15.85" x2="14.99" x3="14.18" y1="28.37" y2="28.64" y3="29.05"/>
+ <curve x1="34.81" x2="34.81" x3="34.81" y1="45.17" y2="45.17" y3="45.17"/>
+ <line x="45.1" y="37.09"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="17.97" y2="0" y3="0"/>
+ <curve x1="62.03" x2="79.91" x3="79.91" y1="0" y2="17.97" y3="40"/>
+ <curve x1="79.91" x2="62.03" x3="39.95" y1="62.08" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.08" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="email security" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="35.59" y="44.62"/>
+ <curve x1="34.6" x2="33.97" x3="33.61" y1="43.18" y2="41.78" y3="39.98"/>
+ <curve x1="33.38" x2="33.2" x3="33.2" y1="39.4" y2="38.59" y3="37.6"/>
+ <curve x1="33.2" x2="33.2" x3="33.2" y1="34.4" y2="34.4" y3="34.4"/>
+ <curve x1="40.18" x2="40.18" x3="40.18" y1="32.82" y2="32.82" y3="32.82"/>
+ <curve x1="43.97" x2="45.59" x3="46.36" y1="33.59" y2="33.99" y3="34.22"/>
+ <line x="35.59" y="44.62"/>
+ <close/>
+ <move x="47.17" y="37.6"/>
+ <curve x1="47.17" x2="46.99" x3="46.76" y1="38.59" y2="39.4" y3="39.98"/>
+ <curve x1="46.18" x2="43.79" x3="40.18" y1="43.59" y2="46.78" y3="48.41"/>
+ <curve x1="38.79" x2="37.57" x3="36.58" y1="47.82" y2="47.01" y3="45.79"/>
+ <curve x1="47.17" x2="47.17" x3="47.17" y1="35.61" y2="35.61" y3="35.61"/>
+ <line x="47.17" y="37.6"/>
+ <close/>
+ <move x="46.36" y="31.42"/>
+ <curve x1="42.39" x2="42.39" x3="42.39" y1="30.61" y2="30.61" y3="30.61"/>
+ <curve x1="42.39" x2="42.39" x3="42.39" y1="29.4" y2="29.4" y3="29.4"/>
+ <curve x1="40.18" x2="40.18" x3="40.18" y1="28.81" y2="28.81" y3="28.81"/>
+ <curve x1="38.2" x2="38.2" x3="38.2" y1="29.4" y2="29.4" y3="29.4"/>
+ <curve x1="38.2" x2="38.2" x3="38.2" y1="30.61" y2="30.61" y3="30.61"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="31.42" y2="31.42" y3="31.42"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="30.21" y2="30.21" y3="30.21"/>
+ <curve x1="30.59" x2="30.59" x3="30.59" y1="31.02" y2="31.02" y3="31.02"/>
+ <curve x1="30.59" x2="30.59" x3="30.59" y1="37.6" y2="37.6" y3="37.6"/>
+ <curve x1="30.59" x2="34.6" x3="40.18" y1="43.81" y2="49.22" y3="51.2"/>
+ <curve x1="45.77" x2="49.78" x3="49.78" y1="49.22" y2="43.81" y3="37.6"/>
+ <curve x1="49.78" x2="49.78" x3="49.78" y1="31.02" y2="31.02" y3="31.02"/>
+ <curve x1="46.36" x2="46.36" x3="46.36" y1="30.21" y2="30.21" y3="30.21"/>
+ <line x="46.36" y="31.42"/>
+ <close/>
+ <move x="44.36" y="52.6"/>
+ <curve x1="43.37" x2="42.16" x3="40.99" y1="53.18" y2="54" y3="54.4"/>
+ <curve x1="40.17" x2="40.17" x3="40.17" y1="54.58" y2="54.58" y3="54.58"/>
+ <curve x1="39.36" x2="39.36" x3="39.36" y1="54.4" y2="54.4" y3="54.4"/>
+ <curve x1="35.99" x2="33.19" x3="31.17" y1="53" y2="50.62" y3="47.6"/>
+ <curve x1="30.76" x2="30.17" x3="29.99" y1="46.79" y2="46.02" y3="44.99"/>
+ <curve x1="29.99" x2="29.99" x3="29.99" y1="44.81" y2="44.81" y3="44.81"/>
+ <curve x1="15.99" x2="15.99" x3="15.99" y1="56.79" y2="56.79" y3="56.79"/>
+ <curve x1="17.2" x2="18.37" x3="19.77" y1="57.19" y2="57.6" y3="57.6"/>
+ <curve x1="60.36" x2="60.36" x3="60.36" y1="57.6" y2="57.6" y3="57.6"/>
+ <curve x1="61.75" x2="62.92" x3="63.96" y1="57.6" y2="57.19" y3="56.79"/>
+ <curve x1="50.36" x2="50.36" x3="50.36" y1="44.99" y2="44.99" y3="44.99"/>
+ <curve x1="49.14" x2="47.16" x3="44.36" y1="48" y2="50.62" y3="52.6"/>
+ <close/>
+ <move x="66.56" y="54.4"/>
+ <curve x1="66.92" x2="67.15" x3="67.15" y1="53.59" y2="52.6" y3="51.61"/>
+ <curve x1="67.15" x2="67.15" x3="67.15" y1="28.81" y2="28.81" y3="28.81"/>
+ <curve x1="67.15" x2="66.92" x3="66.33" y1="27.6" y2="26.38" y3="25.62"/>
+ <curve x1="51.33" x2="51.33" x3="51.33" y1="36.61" y2="36.61" y3="36.61"/>
+ <curve x1="51.33" x2="51.33" x3="51.33" y1="37.6" y2="37.6" y3="37.6"/>
+ <curve x1="51.33" x2="51.33" x3="51.15" y1="38.41" y2="39.22" y3="40.21"/>
+ <curve x1="66.56" x2="66.56" x3="66.56" y1="54.4" y2="54.4" y3="54.4"/>
+ <close/>
+ <move x="28.78" y="28.21"/>
+ <curve x1="35.99" x2="35.99" x3="35.99" y1="26.59" y2="26.59" y3="26.59"/>
+ <curve x1="35.99" x2="35.99" x3="35.99" y1="26.59" y2="26.59" y3="26.59"/>
+ <curve x1="40.17" x2="40.17" x3="40.17" y1="25.6" y2="25.6" y3="25.6"/>
+ <curve x1="44.36" x2="44.36" x3="44.36" y1="26.59" y2="26.59" y3="26.59"/>
+ <curve x1="44.36" x2="44.36" x3="44.36" y1="26.59" y2="26.59" y3="26.59"/>
+ <curve x1="51.57" x2="51.57" x3="51.57" y1="28.21" y2="28.21" y3="28.21"/>
+ <curve x1="51.57" x2="51.57" x3="51.57" y1="32" y2="32" y3="32"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="22.99" y2="22.99" y3="22.99"/>
+ <curve x1="63.15" x2="62.16" x3="60.76" y1="22.81" y2="22.4" y3="22.4"/>
+ <curve x1="52.16" x2="52.16" x3="52.16" y1="22.4" y2="22.4" y3="22.4"/>
+ <curve x1="28.19" x2="28.19" x3="28.19" y1="22.4" y2="22.4" y3="22.4"/>
+ <curve x1="19.36" x2="19.36" x3="19.36" y1="22.4" y2="22.4" y3="22.4"/>
+ <curve x1="18.19" x2="16.98" x3="15.99" y1="22.4" y2="22.81" y3="22.99"/>
+ <curve x1="28.78" x2="28.78" x3="28.78" y1="32" y2="32" y3="32"/>
+ <line x="28.78" y="28.21"/>
+ <close/>
+ <move x="28.78" y="37.6"/>
+ <curve x1="28.78" x2="28.78" x3="28.78" y1="36.79" y2="36.79" y3="36.79"/>
+ <curve x1="13.78" x2="13.78" x3="13.78" y1="25.62" y2="25.62" y3="25.62"/>
+ <curve x1="13.19" x2="12.79" x3="12.79" y1="26.38" y2="27.6" y3="28.81"/>
+ <curve x1="12.79" x2="12.79" x3="12.79" y1="51.61" y2="51.61" y3="51.61"/>
+ <curve x1="12.79" x2="13.19" x3="13.6" y1="52.82" y2="53.59" y3="54.4"/>
+ <curve x1="28.78" x2="28.78" x3="28.78" y1="39.98" y2="39.98" y3="39.98"/>
+ <curve x1="28.78" x2="28.78" x3="28.78" y1="39.22" y2="38.41" y3="37.6"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="fabric switching" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="69.95" y="38.82"/>
+ <curve x1="69.95" x2="69.73" x3="69.55" y1="38.6" y2="38.42" y3="38.42"/>
+ <curve x1="62.56" x2="62.56" x3="62.56" y1="31.21" y2="31.21" y3="31.21"/>
+ <curve x1="61.75" x2="60.76" x3="60.13" y1="30.58" y2="30.58" y3="31.21"/>
+ <curve x1="59.95" x2="59.95" x3="59.95" y1="31.39" y2="31.39" y3="31.39"/>
+ <curve x1="59.14" x2="59.14" x3="59.95" y1="32.2" y2="33.19" y3="34"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="38.19" y2="38.19" y3="38.19"/>
+ <curve x1="53.15" x2="53.15" x3="53.15" y1="38.19" y2="38.19" y3="38.19"/>
+ <curve x1="55.54" x2="57.56" x3="59.14" y1="35.22" y2="32.38" y3="29.99"/>
+ <curve x1="62.92" x2="63.74" x3="61.75" y1="24.18" y2="20.58" y3="18.6"/>
+ <curve x1="61.35" x2="60.54" x3="59.14" y1="18.19" y2="17.61" y3="17.61"/>
+ <curve x1="55.36" x2="48.56" x3="42.16" y1="17.61" y2="22.2" y3="27.79"/>
+ <curve x1="42.16" x2="42.16" x3="42.16" y1="16.21" y2="16.21" y3="16.21"/>
+ <curve x1="46.17" x2="46.17" x3="46.17" y1="20.22" y2="20.22" y3="20.22"/>
+ <curve x1="46.75" x2="47.97" x3="48.56" y1="20.99" y2="20.99" y3="20.22"/>
+ <curve x1="48.74" x2="48.74" x3="48.74" y1="19.99" y2="19.99" y3="19.99"/>
+ <curve x1="49.55" x2="49.55" x3="48.74" y1="19.41" y2="18.19" y3="17.61"/>
+ <curve x1="41.75" x2="41.75" x3="41.75" y1="10.4" y2="10.4" y3="10.4"/>
+ <curve x1="41.75" x2="41.57" x3="41.57" y1="10.4" y2="10.22" y3="10.22"/>
+ <curve x1="41.35" x2="40.76" x3="40.18" y1="9.99" y2="9.59" y3="9.59"/>
+ <curve x1="39.95" x2="39.95" x3="39.95" y1="9.59" y2="9.59" y3="9.59"/>
+ <curve x1="39.37" x2="38.96" x3="38.78" y1="9.59" y2="9.81" y3="10.22"/>
+ <curve x1="38.56" x2="38.56" x3="38.38" y1="10.22" y2="10.22" y3="10.4"/>
+ <curve x1="31.39" x2="31.39" x3="31.39" y1="17.61" y2="17.61" y3="17.61"/>
+ <curve x1="30.58" x2="30.58" x3="31.39" y1="18.19" y2="19.41" y3="19.99"/>
+ <curve x1="31.57" x2="31.57" x3="31.57" y1="20.22" y2="20.22" y3="20.22"/>
+ <curve x1="32.16" x2="33.38" x3="33.96" y1="20.99" y2="20.99" y3="20.22"/>
+ <curve x1="38.15" x2="38.15" x3="38.15" y1="16.21" y2="16.21" y3="16.21"/>
+ <curve x1="38.15" x2="38.15" x3="38.15" y1="27.79" y2="27.79" y3="27.79"/>
+ <curve x1="31.57" x2="24.59" x3="20.76" y1="22.2" y2="17.61" y3="17.61"/>
+ <curve x1="19.37" x2="18.6" x3="18.2" y1="17.61" y2="18.19" y3="18.6"/>
+ <curve x1="16.17" x2="17.2" x3="20.76" y1="20.58" y2="24.18" y3="29.99"/>
+ <curve x1="22.38" x2="24.59" x3="26.98" y1="32.38" y2="35.22" y3="38.19"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="38.19" y2="38.19" y3="38.19"/>
+ <curve x1="20.18" x2="20.18" x3="20.18" y1="34" y2="34" y3="34"/>
+ <curve x1="20.99" x2="20.99" x3="20.18" y1="33.19" y2="32.2" y3="31.39"/>
+ <curve x1="20" x2="20" x3="20" y1="31.21" y2="31.21" y3="31.21"/>
+ <curve x1="19.37" x2="18.2" x3="17.56" y1="30.58" y2="30.58" y3="31.21"/>
+ <curve x1="10.4" x2="10.4" x3="10.4" y1="38.42" y2="38.42" y3="38.42"/>
+ <curve x1="10.18" x2="10.18" x3="10.18" y1="38.42" y2="38.6" y3="38.82"/>
+ <curve x1="10" x2="9.59" x3="9.59" y1="39" y2="39.59" y3="39.99"/>
+ <curve x1="9.59" x2="9.59" x3="9.59" y1="40.4" y2="40.4" y3="40.4"/>
+ <curve x1="9.59" x2="10" x3="10.4" y1="40.8" y2="41.39" y3="41.8"/>
+ <curve x1="10.4" x2="10.4" x3="10.4" y1="41.8" y2="41.8" y3="41.8"/>
+ <curve x1="17.56" x2="17.56" x3="17.56" y1="49" y2="49" y3="49"/>
+ <curve x1="18.2" x2="19.37" x3="20" y1="49.59" y2="49.59" y3="49"/>
+ <curve x1="20.18" x2="20.18" x3="20.18" y1="48.82" y2="48.82" y3="48.82"/>
+ <curve x1="20.99" x2="20.99" x3="20.18" y1="48.01" y2="46.8" y3="46.21"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="42.02" y2="42.02" y3="42.02"/>
+ <curve x1="27.56" x2="27.56" x3="27.56" y1="42.02" y2="42.02" y3="42.02"/>
+ <curve x1="25" x2="22.56" x3="20.76" y1="45.22" y2="48.42" y3="51.21"/>
+ <curve x1="17.2" x2="16.17" x3="18.2" y1="57.02" y2="60.62" y3="62.38"/>
+ <curve x1="18.6" x2="19.37" x3="20.76" y1="62.79" y2="63.42" y3="63.42"/>
+ <curve x1="20.76" x2="20.76" x3="20.76" y1="63.42" y2="63.42" y3="63.42"/>
+ <curve x1="24.59" x2="31.57" x3="38.15" y1="63.42" y2="59" y3="53.19"/>
+ <curve x1="38.15" x2="38.15" x3="38.15" y1="64" y2="64" y3="64"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="59.81" y2="59.81" y3="59.81"/>
+ <curve x1="33.38" x2="32.16" x3="31.57" y1="59.18" y2="59.18" y3="59.81"/>
+ <curve x1="31.39" x2="31.39" x3="31.39" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="30.58" x2="30.58" x3="31.39" y1="60.81" y2="62.02" y3="62.61"/>
+ <curve x1="38.38" x2="38.38" x3="38.38" y1="69.81" y2="69.81" y3="69.81"/>
+ <curve x1="38.56" x2="38.56" x3="38.78" y1="69.99" y2="69.99" y3="69.99"/>
+ <curve x1="38.96" x2="39.37" x3="39.95" y1="70.4" y2="70.4" y3="70.4"/>
+ <curve x1="40.18" x2="40.18" x3="40.18" y1="70.4" y2="70.4" y3="70.4"/>
+ <curve x1="40.76" x2="41.35" x3="41.57" y1="70.4" y2="70.22" y3="69.99"/>
+ <curve x1="41.57" x2="41.75" x3="41.75" y1="69.99" y2="69.81" y3="69.81"/>
+ <curve x1="48.74" x2="48.74" x3="48.74" y1="62.61" y2="62.61" y3="62.61"/>
+ <curve x1="49.55" x2="49.55" x3="48.74" y1="62.02" y2="60.81" y3="60.22"/>
+ <curve x1="48.56" x2="48.56" x3="48.56" y1="59.81" y2="59.81" y3="59.81"/>
+ <curve x1="47.97" x2="46.75" x3="46.17" y1="59.18" y2="59.18" y3="59.81"/>
+ <curve x1="42.16" x2="42.16" x3="42.16" y1="64" y2="64" y3="64"/>
+ <curve x1="42.16" x2="42.16" x3="42.16" y1="53.42" y2="53.42" y3="53.42"/>
+ <curve x1="48.56" x2="55.36" x3="59.14" y1="59" y2="63.42" y3="63.42"/>
+ <curve x1="60.54" x2="61.35" x3="61.75" y1="63.42" y2="62.79" y3="62.38"/>
+ <curve x1="63.74" x2="62.92" x3="59.14" y1="60.62" y2="57.02" y3="51.21"/>
+ <curve x1="57.56" x2="54.95" x3="52.34" y1="48.42" y2="45.22" y3="42.02"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="42.02" y2="42.02" y3="42.02"/>
+ <curve x1="59.95" x2="59.95" x3="59.95" y1="46.21" y2="46.21" y3="46.21"/>
+ <curve x1="59.14" x2="59.14" x3="59.95" y1="46.8" y2="48.01" y3="48.82"/>
+ <curve x1="60.13" x2="60.13" x3="60.13" y1="49" y2="49" y3="49"/>
+ <curve x1="60.76" x2="61.75" x3="62.56" y1="49.59" y2="49.59" y3="49"/>
+ <curve x1="69.55" x2="69.55" x3="69.55" y1="41.8" y2="41.8" y3="41.8"/>
+ <curve x1="69.73" x2="69.73" x3="69.73" y1="41.8" y2="41.8" y3="41.8"/>
+ <curve x1="70.13" x2="70.36" x3="70.36" y1="41.39" y2="40.8" y3="40.4"/>
+ <curve x1="70.36" x2="70.36" x3="70.36" y1="39.99" y2="39.99" y3="39.99"/>
+ <curve x1="70.36" x2="70.13" x3="69.95" y1="39.59" y2="39" y3="38.82"/>
+ <close/>
+ <move x="20.76" y="60.22"/>
+ <curve x1="20.58" x2="20.4" x3="20.4" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="20" x2="22.79" x3="29.95" y1="58.82" y2="52.79" y3="44.41"/>
+ <curve x1="30.99" x2="33.15" x3="36.17" y1="47.38" y2="49.59" y3="50.62"/>
+ <curve x1="28.78" x2="23.2" x3="20.76" y1="57.02" y2="60.22" y3="60.22"/>
+ <close/>
+ <move x="29.95" y="36.62"/>
+ <curve x1="22.79" x2="20" x3="20.4" y1="28.19" y2="22.2" y3="20.99"/>
+ <curve x1="20.4" x2="20.58" x3="20.76" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="23.2" x2="28.78" x3="36.17" y1="20.99" y2="24.18" y3="30.4"/>
+ <curve x1="33.15" x2="30.99" x3="29.95" y1="31.39" y2="33.82" y3="36.62"/>
+ <close/>
+ <move x="59.14" y="20.99"/>
+ <curve x1="59.37" x2="59.55" x3="59.55" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="60.13" x2="57.16" x3="50.18" y1="22.2" y2="28.19" y3="36.62"/>
+ <curve x1="49.14" x2="46.75" x3="43.96" y1="33.82" y2="31.39" y3="30.4"/>
+ <curve x1="51.17" x2="56.93" x3="59.14" y1="24.18" y2="20.99" y3="20.99"/>
+ <close/>
+ <move x="59.55" y="60.22"/>
+ <curve x1="59.55" x2="59.37" x3="59.14" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="56.93" x2="51.17" x3="43.96" y1="60.22" y2="57.02" y3="50.62"/>
+ <curve x1="46.75" x2="49.14" x3="50.18" y1="49.59" y2="47.38" y3="44.41"/>
+ <curve x1="57.16" x2="60.13" x3="59.55" y1="52.79" y2="58.82" y3="60.22"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="firewall" strokewidth="inherit" w="79.96">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.6" y="51.61"/>
+ <line x="60.6" y="55.48"/>
+ <line x="68.35" y="55.48"/>
+ <line x="68.35" y="51.61"/>
+ <line x="60.6" y="51.61"/>
+ <line x="60.6" y="51.61"/>
+ <close/>
+ <move x="11.6" y="51.61"/>
+ <line x="11.6" y="55.48"/>
+ <line x="19.35" y="55.48"/>
+ <line x="19.35" y="51.61"/>
+ <line x="11.6" y="51.61"/>
+ <line x="11.6" y="51.61"/>
+ <close/>
+ <move x="41.26" y="51.61"/>
+ <line x="41.26" y="55.48"/>
+ <line x="58.02" y="55.48"/>
+ <line x="58.02" y="51.61"/>
+ <line x="41.26" y="51.61"/>
+ <line x="41.26" y="51.61"/>
+ <close/>
+ <move x="21.92" y="51.61"/>
+ <line x="21.92" y="55.48"/>
+ <line x="38.68" y="55.48"/>
+ <line x="38.68" y="51.61"/>
+ <line x="21.92" y="51.61"/>
+ <line x="21.92" y="51.61"/>
+ <close/>
+ <move x="50.29" y="46.44"/>
+ <line x="50.29" y="50.32"/>
+ <line x="68.35" y="50.32"/>
+ <line x="68.35" y="46.44"/>
+ <line x="50.29" y="46.44"/>
+ <line x="50.29" y="46.44"/>
+ <close/>
+ <move x="30.94" y="46.44"/>
+ <line x="30.94" y="50.32"/>
+ <line x="49.01" y="50.32"/>
+ <line x="49.01" y="46.44"/>
+ <line x="30.94" y="46.44"/>
+ <line x="30.94" y="46.44"/>
+ <close/>
+ <move x="11.6" y="46.44"/>
+ <line x="11.6" y="50.32"/>
+ <line x="29.67" y="50.32"/>
+ <line x="29.67" y="46.44"/>
+ <line x="11.6" y="46.44"/>
+ <line x="11.6" y="46.44"/>
+ <close/>
+ <move x="60.6" y="39.99"/>
+ <line x="60.6" y="43.86"/>
+ <line x="68.35" y="43.86"/>
+ <line x="68.35" y="39.99"/>
+ <line x="60.6" y="39.99"/>
+ <line x="60.6" y="39.99"/>
+ <close/>
+ <move x="11.6" y="39.99"/>
+ <line x="11.6" y="43.86"/>
+ <line x="19.35" y="43.86"/>
+ <line x="19.35" y="39.99"/>
+ <line x="11.6" y="39.99"/>
+ <line x="11.6" y="39.99"/>
+ <close/>
+ <move x="41.26" y="39.99"/>
+ <line x="41.26" y="43.86"/>
+ <line x="58.02" y="43.86"/>
+ <line x="58.02" y="39.99"/>
+ <line x="41.26" y="39.99"/>
+ <line x="41.26" y="39.99"/>
+ <close/>
+ <move x="21.92" y="39.99"/>
+ <line x="21.92" y="43.86"/>
+ <line x="38.68" y="43.86"/>
+ <line x="38.68" y="39.99"/>
+ <line x="21.92" y="39.99"/>
+ <line x="21.92" y="39.99"/>
+ <close/>
+ <move x="50.29" y="33.54"/>
+ <line x="50.29" y="37.41"/>
+ <line x="68.35" y="37.41"/>
+ <line x="68.35" y="33.54"/>
+ <line x="50.29" y="33.54"/>
+ <line x="50.29" y="33.54"/>
+ <close/>
+ <move x="30.94" y="33.54"/>
+ <line x="30.94" y="37.41"/>
+ <line x="49.01" y="37.41"/>
+ <line x="49.01" y="33.54"/>
+ <line x="30.94" y="33.54"/>
+ <line x="30.94" y="33.54"/>
+ <close/>
+ <move x="11.6" y="33.54"/>
+ <line x="11.6" y="37.41"/>
+ <line x="29.67" y="37.41"/>
+ <line x="29.67" y="33.54"/>
+ <line x="11.6" y="33.54"/>
+ <line x="11.6" y="33.54"/>
+ <close/>
+ <move x="60.6" y="27.08"/>
+ <line x="60.6" y="30.96"/>
+ <line x="68.35" y="30.96"/>
+ <line x="68.35" y="27.08"/>
+ <line x="60.6" y="27.08"/>
+ <line x="60.6" y="27.08"/>
+ <close/>
+ <move x="11.6" y="27.08"/>
+ <line x="11.6" y="30.96"/>
+ <line x="19.35" y="30.96"/>
+ <line x="19.35" y="27.08"/>
+ <line x="11.6" y="27.08"/>
+ <line x="11.6" y="27.08"/>
+ <close/>
+ <move x="41.26" y="27.08"/>
+ <line x="41.26" y="30.96"/>
+ <line x="58.02" y="30.96"/>
+ <line x="58.02" y="27.08"/>
+ <line x="41.26" y="27.08"/>
+ <line x="41.26" y="27.08"/>
+ <close/>
+ <move x="21.92" y="27.08"/>
+ <line x="21.92" y="30.96"/>
+ <line x="38.68" y="30.96"/>
+ <line x="38.68" y="27.08"/>
+ <line x="21.92" y="27.08"/>
+ <line x="21.92" y="27.08"/>
+ <close/>
+ <move x="50.29" y="21.92"/>
+ <line x="50.29" y="25.8"/>
+ <line x="68.35" y="25.8"/>
+ <line x="68.35" y="21.92"/>
+ <line x="50.29" y="21.92"/>
+ <line x="50.29" y="21.92"/>
+ <close/>
+ <move x="30.94" y="21.92"/>
+ <line x="30.94" y="25.8"/>
+ <line x="49.01" y="25.8"/>
+ <line x="49.01" y="21.92"/>
+ <line x="30.94" y="21.92"/>
+ <line x="30.94" y="21.92"/>
+ <close/>
+ <move x="11.6" y="21.92"/>
+ <line x="11.6" y="25.8"/>
+ <line x="29.67" y="25.8"/>
+ <line x="29.67" y="21.92"/>
+ <line x="11.6" y="21.92"/>
+ <line x="11.6" y="21.92"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.96" y1="17.97" y2="0" y3="0"/>
+ <curve x1="62.07" x2="79.96" x3="79.96" y1="0" y2="17.97" y3="40"/>
+ <curve x1="79.96" x2="62.07" x3="39.96" y1="62.12" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.12" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="flow analytics" strokewidth="inherit" w="78.59">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.69" y="20.65"/>
+ <curve x1="35.42" x2="31.01" x3="27.64" y1="20.65" y2="22.33" y3="25.47"/>
+ <curve x1="22.06" x2="21.45" x3="25.29" y1="31.05" y2="39.5" y3="45.78"/>
+ <line x="12.73" y="58.39"/>
+ <curve x1="11.6" x2="11.6" x3="12.73" y1="59.24" y2="61.02" y3="62.1"/>
+ <line x="14.18" y="63.46"/>
+ <curve x1="15.21" x2="17" x3="17.98" y1="64.49" y2="64.49" y3="63.46"/>
+ <line x="30.69" y="51.03"/>
+ <curve x1="33.5" x2="36.5" x3="39.69" y1="52.67" y2="53.47" y3="53.47"/>
+ <curve x1="43.91" x2="48.08" x3="51.41" y1="53.47" y2="51.83" y3="48.78"/>
+ <curve x1="57.98" x2="57.98" x3="51.41" y1="42.31" y2="31.85" y3="25.47"/>
+ <curve x1="48.08" x2="43.91" x3="39.69" y1="22.33" y2="20.65" y3="20.65"/>
+ <close/>
+ <move x="17.41" y="23.22"/>
+ <curve x1="16.99" x2="16.76" x3="16.76" y1="23.22" y2="23.55" y3="23.88"/>
+ <curve x1="16.76" x2="16.99" x3="17.41" y1="24.35" y2="24.53" y3="24.53"/>
+ <line x="25.75" y="24.53"/>
+ <curve x1="25.94" x2="26.04" x3="26.08" y1="24.44" y2="24.44" y3="24.35"/>
+ <curve x1="26.41" x2="26.84" x3="27.07" y1="23.88" y2="23.55" y3="23.22"/>
+ <line x="17.41" y="23.22"/>
+ <close/>
+ <move x="51.55" y="23.22"/>
+ <curve x1="51.88" x2="52.25" x3="52.54" y1="23.55" y2="23.88" y3="24.35"/>
+ <line x="52.77" y="24.53"/>
+ <line x="69.04" y="24.53"/>
+ <curve x1="69.37" x2="69.61" x3="69.61" y1="24.53" y2="24.35" y3="23.88"/>
+ <curve x1="69.61" x2="69.37" x3="69.04" y1="23.55" y2="23.22" y3="23.22"/>
+ <line x="51.55" y="23.22"/>
+ <close/>
+ <move x="39.69" y="25.9"/>
+ <curve x1="42.55" x2="45.5" x3="47.61" y1="25.9" y2="27.17" y3="29.37"/>
+ <curve x1="49.77" x2="50.99" x3="50.99" y1="31.2" y2="34.11" y3="37.11"/>
+ <curve x1="50.99" x2="49.77" x3="47.61" y1="40.02" y2="42.83" y3="44.99"/>
+ <curve x1="45.5" x2="42.55" x3="39.69" y1="47" y2="48.22" y3="48.22"/>
+ <curve x1="36.55" x2="33.74" x3="31.48" y1="48.22" y2="47" y3="44.99"/>
+ <curve x1="27.08" x2="27.08" x3="31.48" y1="40.58" y2="33.64" y3="29.37"/>
+ <curve x1="33.74" x2="36.55" x3="39.69" y1="27.17" y2="25.9" y3="25.9"/>
+ <close/>
+ <move x="17.31" y="27.09"/>
+ <curve x1="16.99" x2="16.76" x3="16.76" y1="27.09" y2="27.32" y3="27.75"/>
+ <curve x1="16.76" x2="16.99" x3="17.31" y1="28.12" y2="28.4" y3="28.4"/>
+ <line x="22.62" y="28.4"/>
+ <curve x1="22.81" x2="23.03" x3="23.18" y1="27.98" y2="27.51" y3="27.09"/>
+ <line x="17.31" y="27.09"/>
+ <close/>
+ <move x="38.64" y="27.09"/>
+ <curve x1="37.28" x2="36.02" x3="34.8" y1="27.27" y2="27.65" y3="28.4"/>
+ <line x="38.36" y="28.4"/>
+ <line x="38.64" y="27.09"/>
+ <close/>
+ <move x="38.66" y="27.09"/>
+ <line x="38.66" y="28.4"/>
+ <line x="43.82" y="28.4"/>
+ <curve x1="42.28" x2="40.68" x3="38.9" y1="27.65" y2="27.09" y3="27.09"/>
+ <line x="38.66" y="27.09"/>
+ <close/>
+ <move x="55.41" y="27.09"/>
+ <curve x1="55.74" x2="55.89" x3="56.07" y1="27.51" y2="27.98" y3="28.4"/>
+ <line x="69.11" y="28.4"/>
+ <curve x1="69.34" x2="69.58" x3="69.58" y1="28.4" y2="28.12" y3="27.75"/>
+ <curve x1="69.58" x2="69.34" x3="69.11" y1="27.32" y2="27.09" y3="27.09"/>
+ <line x="55.41" y="27.09"/>
+ <close/>
+ <move x="38.99" y="29.69"/>
+ <line x="34.96" y="40.95"/>
+ <line x="33.57" y="34.97"/>
+ <line x="34.17" y="36.14"/>
+ <line x="35.52" y="36.14"/>
+ <line x="36.09" y="34.83"/>
+ <line x="33.54" y="34.83"/>
+ <line x="33.51" y="34.67"/>
+ <line x="30.93" y="41.18"/>
+ <curve x1="31.16" x2="31.4" x3="31.63" y1="41.7" y2="42.07" y3="42.59"/>
+ <line x="33.27" y="38.7"/>
+ <line x="34.77" y="45.07"/>
+ <line x="34.77" y="45.17"/>
+ <line x="36.16" y="41.3"/>
+ <line x="37.35" y="41.3"/>
+ <line x="37.35" y="39.99"/>
+ <line x="36.98" y="39.99"/>
+ <line x="36.24" y="41.07"/>
+ <line x="38.01" y="36.12"/>
+ <line x="38.2" y="43.15"/>
+ <line x="38.93" y="41.3"/>
+ <line x="42.51" y="41.3"/>
+ <line x="42.28" y="39.99"/>
+ <line x="39.45" y="39.99"/>
+ <line x="41.48" y="34.85"/>
+ <line x="44.72" y="44.89"/>
+ <line x="46.4" y="38.6"/>
+ <line x="48" y="38.33"/>
+ <line x="48.98" y="35.32"/>
+ <curve x1="48.89" x2="48.66" x3="48.42" y1="34.76" y2="34.11" y3="33.64"/>
+ <line x="48.23" y="33.73"/>
+ <line x="47.11" y="37.43"/>
+ <line x="45.52" y="37.67"/>
+ <line x="44.62" y="40.71"/>
+ <line x="41.87" y="32.27"/>
+ <line x="47.66" y="32.27"/>
+ <curve x1="47.52" x2="47.11" x3="46.87" y1="31.85" y2="31.42" y3="30.95"/>
+ <line x="41.24" y="30.95"/>
+ <line x="41.48" y="31.62"/>
+ <line x="39.13" y="37.43"/>
+ <line x="39.04" y="32.27"/>
+ <line x="39.46" y="32.27"/>
+ <line x="39.93" y="30.95"/>
+ <line x="39.02" y="30.95"/>
+ <line x="38.99" y="29.69"/>
+ <close/>
+ <move x="17.41" y="30.95"/>
+ <curve x1="16.99" x2="16.76" x3="16.76" y1="30.95" y2="31.29" y3="31.71"/>
+ <curve x1="16.76" x2="16.99" x3="17.41" y1="32.08" y2="32.27" y3="32.27"/>
+ <line x="21.49" y="32.27"/>
+ <curve x1="21.58" x2="21.82" x3="21.92" y1="31.85" y2="31.42" y3="30.95"/>
+ <line x="17.41" y="30.95"/>
+ <close/>
+ <move x="31.63" y="30.95"/>
+ <curve x1="31.49" x2="31.16" x3="30.93" y1="31.42" y2="31.85" y3="32.27"/>
+ <line x="36.98" y="32.27"/>
+ <line x="37.35" y="30.95"/>
+ <line x="31.63" y="30.95"/>
+ <close/>
+ <move x="56.7" y="30.95"/>
+ <curve x1="56.84" x2="56.94" x3="57.03" y1="31.42" y2="31.85" y3="32.27"/>
+ <line x="69.04" y="32.27"/>
+ <curve x1="69.36" x2="69.6" x3="69.6" y1="32.27" y2="32.08" y3="31.71"/>
+ <curve x1="69.6" x2="69.36" x3="69.04" y1="31.29" y2="30.95" y3="30.95"/>
+ <line x="56.7" y="30.95"/>
+ <close/>
+ <move x="17.31" y="34.83"/>
+ <curve x1="16.99" x2="16.76" x3="16.76" y1="34.83" y2="35.06" y3="35.58"/>
+ <curve x1="16.76" x2="16.99" x3="17.31" y1="35.86" y2="36.14" y3="36.14"/>
+ <line x="20.55" y="36.14"/>
+ <curve x1="20.55" x2="20.55" x3="20.6" y1="35.81" y2="35.3" y3="34.83"/>
+ <line x="17.31" y="34.83"/>
+ <close/>
+ <move x="29.78" y="34.83"/>
+ <curve x1="29.64" x2="29.65" x3="29.65" y1="35.3" y2="35.81" y3="36.14"/>
+ <line x="31.76" y="36.14"/>
+ <line x="32.22" y="34.83"/>
+ <line x="29.78" y="34.83"/>
+ <close/>
+ <move x="43.82" y="34.83"/>
+ <line x="44.24" y="36.14"/>
+ <line x="46.26" y="36.14"/>
+ <line x="46.4" y="34.83"/>
+ <line x="43.82" y="34.83"/>
+ <close/>
+ <move x="57.99" y="34.83"/>
+ <curve x1="58.13" x2="58.13" x3="58.13" y1="35.3" y2="35.81" y3="36.14"/>
+ <line x="69.11" y="36.14"/>
+ <curve x1="69.34" x2="69.58" x3="69.58" y1="36.14" y2="35.86" y3="35.58"/>
+ <curve x1="69.58" x2="69.34" x3="69.11" y1="35.06" y2="34.83" y3="34.83"/>
+ <line x="57.99" y="34.83"/>
+ <close/>
+ <move x="17.31" y="39.99"/>
+ <curve x1="16.89" x2="16.76" x3="16.76" y1="39.99" y2="40.31" y3="40.64"/>
+ <curve x1="16.76" x2="16.89" x3="17.31" y1="41.11" y2="41.3" y3="41.3"/>
+ <line x="20.6" y="41.3"/>
+ <curve x1="20.55" x2="20.55" x3="20.55" y1="40.88" y2="40.46" y3="39.99"/>
+ <line x="17.31" y="39.99"/>
+ <close/>
+ <move x="29.65" y="39.99"/>
+ <curve x1="29.88" x2="29.87" x3="30.2" y1="40.46" y2="40.78" y3="41.3"/>
+ <line x="30.91" y="39.99"/>
+ <line x="29.65" y="39.99"/>
+ <close/>
+ <move x="46.86" y="39.99"/>
+ <line x="46.4" y="41.3"/>
+ <line x="48.51" y="41.3"/>
+ <curve x1="48.65" x2="48.83" x3="48.97" y1="40.88" y2="40.46" y3="39.99"/>
+ <line x="46.86" y="39.99"/>
+ <close/>
+ <move x="58.23" y="39.99"/>
+ <curve x1="58.23" x2="58.09" x3="57.99" y1="40.46" y2="40.88" y3="41.3"/>
+ <line x="69.11" y="41.3"/>
+ <curve x1="69.34" x2="69.58" x3="69.58" y1="41.3" y2="41.11" y3="40.64"/>
+ <curve x1="69.58" x2="69.34" x3="69.11" y1="40.31" y2="39.99" y3="39.99"/>
+ <line x="58.23" y="39.99"/>
+ <close/>
+ <move x="17.31" y="43.86"/>
+ <curve x1="16.89" x2="16.76" x3="16.76" y1="43.86" y2="44.1" y3="44.52"/>
+ <curve x1="16.76" x2="16.89" x3="17.31" y1="44.85" y2="45.17" y3="45.17"/>
+ <line x="21.92" y="45.17"/>
+ <curve x1="21.82" x2="21.68" x3="21.49" y1="44.75" y2="44.33" y3="43.86"/>
+ <line x="17.31" y="43.86"/>
+ <close/>
+ <move x="32.22" y="43.86"/>
+ <curve x1="32.22" x2="32.36" x3="32.36" y1="43.86" y2="43.86" y3="44.05"/>
+ <curve x1="32.78" x2="33.11" x3="33.48" y1="44.33" y2="44.84" y3="45.17"/>
+ <line x="33.25" y="43.86"/>
+ <line x="32.22" y="43.86"/>
+ <close/>
+ <move x="35.46" y="43.86"/>
+ <line x="34.8" y="45.17"/>
+ <line x="37.38" y="45.17"/>
+ <line x="37.38" y="43.86"/>
+ <line x="35.46" y="43.86"/>
+ <close/>
+ <move x="37.38" y="45.17"/>
+ <line x="43.8" y="45.17"/>
+ <line x="43.57" y="43.86"/>
+ <line x="37.94" y="43.86"/>
+ <line x="37.38" y="45.17"/>
+ <close/>
+ <move x="45.53" y="43.86"/>
+ <line x="45.11" y="45.17"/>
+ <curve x1="45.67" x2="46.09" x3="46.33" y1="44.84" y2="44.33" y3="44.05"/>
+ <line x="46.37" y="43.86"/>
+ <line x="45.53" y="43.86"/>
+ <close/>
+ <move x="55.98" y="43.86"/>
+ <curve x1="55.74" x2="55.56" x3="55.41" y1="44.33" y2="44.75" y3="45.17"/>
+ <line x="69.01" y="45.17"/>
+ <curve x1="69.25" x2="69.58" x3="69.58" y1="45.17" y2="44.85" y3="44.52"/>
+ <curve x1="69.58" x2="69.25" x3="69.01" y1="44.1" y2="43.86" y3="43.86"/>
+ <line x="55.98" y="43.86"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.63" x3="39.3" y1="18.01" y2="0" y3="0"/>
+ <curve x1="61.06" x2="78.59" x3="78.59" y1="0" y2="18.01" y3="40"/>
+ <curve x1="78.59" x2="61.06" x3="39.3" y1="62.09" y2="80" y3="80"/>
+ <curve x1="17.63" x2="0" x3="0" y1="80" y2="62.09" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="identity authorization" strokewidth="inherit" w="83.24">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="45.48" y="11.94"/>
+ <curve x1="44.27" x2="42.66" x3="41.61" y1="11.97" y2="13.29" y3="13.53"/>
+ <curve x1="41.41" x2="41.18" x3="40.98" y1="13.57" y2="13.55" y3="13.57"/>
+ <curve x1="40.91" x2="40.9" x3="40.81" y1="13.49" y2="13.43" y3="13.35"/>
+ <line x="38.51" y="13.35"/>
+ <curve x1="38.31" x2="37.88" x3="37.49" y1="13.55" y2="13.6" y3="13.73"/>
+ <curve x1="35.46" x2="33.67" x3="33.31" y1="13.78" y2="14.11" y3="16.48"/>
+ <curve x1="34.84" x2="36.05" x3="37.57" y1="17.44" y2="15.74" y3="15.49"/>
+ <curve x1="38.04" x2="38.56" x3="39.11" y1="15.66" y2="15.74" y3="15.7"/>
+ <curve x1="39.63" x2="40.12" x3="40.58" y1="15.91" y2="16.14" y3="16.25"/>
+ <curve x1="44.15" x2="46.4" x3="48.93" y1="16.67" y2="16.48" y3="17.7"/>
+ <curve x1="50.57" x2="52.03" x3="53.29" y1="18.35" y2="19.58" y3="20"/>
+ <curve x1="53.29" x2="51.57" x3="49.93" y1="17.79" y2="16.93" y3="16.16"/>
+ <curve x1="49.81" x2="47.46" x3="46.78" y1="14.85" y2="13.64" y3="15.06"/>
+ <curve x1="45.98" x2="45.21" x3="44.57" y1="14.81" y2="14.51" y3="13.94"/>
+ <curve x1="45.37" x2="46.02" x3="47.05" y1="13.33" y2="13.76" y3="13.76"/>
+ <curve x1="46.81" x2="46.21" x3="45.48" y1="12.35" y2="11.91" y3="11.94"/>
+ <close/>
+ <move x="29.97" y="17.09"/>
+ <curve x1="28.28" x2="27.06" x3="26.64" y1="16.67" y2="18.36" y3="20"/>
+ <curve x1="28.1" x2="29.55" x3="29.97" y1="20" y2="18.97" y3="17.09"/>
+ <close/>
+ <move x="37.07" y="17.16"/>
+ <curve x1="36.32" x2="35.59" x3="34.96" y1="17.09" y2="17.19" y3="17.71"/>
+ <curve x1="33.31" x2="31.43" x3="29.98" y1="18.97" y2="20.85" y3="21.88"/>
+ <curve x1="28.71" x2="26.65" x3="26.83" y1="22.73" y2="23.34" y3="24.98"/>
+ <curve x1="30.4" x2="32.28" x3="35.8" y1="24.98" y2="20.01" y3="20.2"/>
+ <curve x1="36.32" x2="36.93" x3="37.55" y1="20.34" y2="20.68" y3="20.99"/>
+ <curve x1="37.12" x2="36.68" x3="36.27" y1="21.08" y2="21.14" y3="21.26"/>
+ <curve x1="34.69" x2="31.75" x3="30.61" y1="20.38" y2="22.6" y3="23.95"/>
+ <curve x1="29.76" x2="29.57" x3="28.92" y1="24.8" y2="26.06" y3="26.85"/>
+ <curve x1="28.31" x2="27.27" x3="26.43" y1="27.51" y2="27.94" y3="28.55"/>
+ <curve x1="25.15" x2="23.72" x3="23.82" y1="29.66" y2="30.93" y3="32.62"/>
+ <curve x1="22.13" x2="20.71" x3="19.99" y1="34.94" y2="37.7" y3="40.19"/>
+ <line x="19.99" y="41.46"/>
+ <curve x1="21.25" x2="21.86" x3="22.47" y1="42.3" y2="39.16" y3="37.94"/>
+ <curve x1="23.74" x2="25.61" x3="28.28" y1="34.98" y2="31.46" y3="30.2"/>
+ <curve x1="29.36" x2="30.17" x3="31.01" y1="29.59" y2="29.59" y3="29.35"/>
+ <curve x1="32.47" x2="33.49" x3="34.95" y1="28.56" y2="27.1" y3="26.44"/>
+ <curve x1="39.78" x2="44.92" x3="48.12" y1="23.79" y2="26.18" y3="29.29"/>
+ <curve x1="46.34" x2="44.4" x3="43.29" y1="28.08" y2="27.18" y3="27.9"/>
+ <curve x1="43.71" x2="45.59" x3="46.44" y1="29.59" y2="29.59" y3="30.2"/>
+ <curve x1="48.69" x2="50.99" x3="52.44" y1="31.65" y2="34.18" y3="36.67"/>
+ <curve x1="53.29" x2="53.71" x3="54.32" y1="38.31" y2="40.19" y3="42.49"/>
+ <curve x1="54.32" x2="54.74" x3="54.93" y1="43.15" y2="43.76" y3="44.37"/>
+ <curve x1="54.94" x2="54.92" x3="54.93" y1="44.42" y2="44.47" y3="44.52"/>
+ <curve x1="54.91" x2="54.77" x3="54.74" y1="45.39" y2="46.34" y3="47.32"/>
+ <curve x1="54.58" x2="54.51" x3="55.16" y1="48.37" y2="49.35" y3="50"/>
+ <curve x1="55.17" x2="55.17" x3="55.18" y1="50" y2="49.99" y3="49.99"/>
+ <curve x1="55.18" x2="55.17" x3="55.18" y1="49.99" y2="50" y3="50"/>
+ <curve x1="55.2" x2="55.2" x3="55.23" y1="49.98" y2="49.95" y3="49.93"/>
+ <curve x1="55.49" x2="55.7" x3="55.87" y1="49.73" y2="49.46" y3="49.15"/>
+ <curve x1="55.91" x2="55.97" x3="56" y1="49.07" y2="49" y3="48.92"/>
+ <curve x1="56.02" x2="56.02" x3="56.04" y1="48.87" y2="48.81" y3="48.77"/>
+ <curve x1="56.17" x2="56.28" x3="56.33" y1="48.42" y2="48.06" y3="47.66"/>
+ <curve x1="56.54" x2="56.51" x3="56.39" y1="46.44" y2="45.02" y3="43.76"/>
+ <curve x1="56.38" x2="56.33" x3="56.31" y1="43.62" y2="43.46" y3="43.31"/>
+ <curve x1="55.9" x2="53.24" x3="50.39" y1="37.67" y2="32.61" y3="28.98"/>
+ <curve x1="48.51" x2="44.94" x3="41.19" y1="26.45" y2="23.77" y3="23.53"/>
+ <curve x1="37.9" x2="35.61" x3="33.73" y1="23.35" y2="23.96" y3="25.23"/>
+ <curve x1="32.89" x2="31.85" x3="30.59" y1="25.84" y2="26.87" y3="27.48"/>
+ <curve x1="30.25" x2="29.87" x3="29.53" y1="27.64" y2="27.77" y3="27.9"/>
+ <curve x1="29.68" x2="29.87" x3="29.99" y1="27.77" y2="27.66" y3="27.51"/>
+ <curve x1="30.51" x2="30.62" x3="30.89" y1="26.96" y2="26.34" y3="25.89"/>
+ <curve x1="32.02" x2="32.56" x3="33.72" y1="25.52" y2="24.26" y3="23.77"/>
+ <curve x1="39.96" x2="47.66" x3="51.42" y1="20.01" y2="23.12" y3="26.87"/>
+ <curve x1="54.32" x2="58.08" x3="58.69" y1="30.01" y2="36.44" y3="42.3"/>
+ <curve x1="58.69" x2="58.08" x3="58.08" y1="44.79" y2="47.51" y3="50"/>
+ <curve x1="59.72" x2="59.53" x3="59.96" y1="49.58" y2="47.28" y3="45.64"/>
+ <line x="59.96" y="42.49"/>
+ <curve x1="59.43" x2="58.05" x3="56" y1="38.27" y2="34.26" y3="30.81"/>
+ <curve x1="55.75" x2="55.15" x3="54.52" y1="29.47" y2="28.17" y3="27.28"/>
+ <curve x1="54.09" x2="53.3" x3="53.06" y1="26.67" y2="26.25" y3="25.4"/>
+ <curve x1="52.88" x2="52.88" x3="52.46" y1="24.37" y2="23.34" y3="22.49"/>
+ <curve x1="50.77" x2="46.22" x3="43.31" y1="20.19" y2="18.13" y3="17.9"/>
+ <curve x1="41.85" x2="40.59" x3="39.32" y1="17.71" y2="17.89" y3="17.71"/>
+ <curve x1="38.59" x2="37.82" x3="37.07" y1="17.49" y2="17.24" y3="17.16"/>
+ <close/>
+ <move x="36.41" y="18.56"/>
+ <curve x1="38.71" x2="40.16" x3="42.88" y1="18.98" y2="18.98" y3="19.16"/>
+ <curve x1="45.98" x2="50.39" x3="51.19" y1="19.59" y2="21.46" y3="23.76"/>
+ <curve x1="51.33" x2="51.38" x3="51.44" y1="24.27" y2="24.74" y3="25.25"/>
+ <curve x1="51.08" x2="50.71" x3="50.33" y1="24.93" y2="24.61" y3="24.32"/>
+ <curve x1="49.34" x2="45.65" x3="42.46" y1="21.59" y2="20.18" y3="20.01"/>
+ <curve x1="40.16" x2="37.25" x3="36.41" y1="19.77" y2="20.2" y3="18.56"/>
+ <close/>
+ <move x="26.65" y="23.34"/>
+ <curve x1="24.96" x2="23.32" x3="23.5" y1="23.76" y2="25.02" y3="26.66"/>
+ <curve x1="24.77" x2="26.42" x3="26.65" y1="26.05" y2="25.4" y3="23.34"/>
+ <close/>
+ <move x="39.66" y="26.92"/>
+ <curve x1="39.14" x2="38.52" x3="38.09" y1="26.87" y2="26.97" y3="27.09"/>
+ <curve x1="33.31" x2="32.47" x3="29.56" y1="27.51" y2="30.42" y3="33.33"/>
+ <curve x1="28.29" x2="26.41" x3="25.62" y1="34.6" y2="36.05" y3="37.51"/>
+ <curve x1="24.35" x2="23.74" x3="22.9" y1="39.38" y2="41.68" y3="43.32"/>
+ <curve x1="21.86" x2="19.98" x3="20.83" y1="45.43" y2="47.31" y3="49.19"/>
+ <curve x1="22.71" x2="23.32" x3="24.35" y1="48.53" y2="46.23" y3="44.35"/>
+ <curve x1="25.38" x2="26.04" x3="27.49" y1="42.29" y2="39.38" y3="37.93"/>
+ <curve x1="28.52" x2="30.4" x3="31.85" y1="36.66" y2="35.02" y3="33.94"/>
+ <curve x1="33.72" x2="36.01" x3="38.67" y1="32.49" y2="31.47" y3="31.46"/>
+ <curve x1="36.65" x2="34.61" x3="32.88" y1="31.71" y2="32.46" y3="33.76"/>
+ <curve x1="31.24" x2="29.13" x3="28.1" y1="34.98" y2="36.67" y3="38.12"/>
+ <curve x1="27.49" x2="28.1" x3="28.1" y1="39.81" y2="41.27" y3="42.91"/>
+ <curve x1="28.52" x2="27.49" x3="26.64" y1="45.4" y2="47.7" y3="49.15"/>
+ <curve x1="26.26" x2="25.75" x3="25.25" y1="49.69" y2="50.16" y3="50.65"/>
+ <curve x1="25.43" x2="25.62" x3="25.79" y1="50.22" y2="49.81" y3="49.39"/>
+ <curve x1="26.45" x2="26.63" x3="26.44" y1="47.94" y2="45.83" y3="43.76"/>
+ <curve x1="26.21" x2="26.21" x3="26.21" y1="43.76" y2="43.34" y3="43.53"/>
+ <curve x1="26.02" x2="26.03" x3="26.03" y1="43.76" y2="43.76" y3="43.95"/>
+ <curve x1="25.63" x2="23.6" x3="23.71" y1="47.49" y2="49.21" y3="52.69"/>
+ <curve x1="23.55" x2="23.39" x3="23.31" y1="53.02" y2="53.34" y3="53.75"/>
+ <curve x1="25.61" x2="26.83" x3="27.91" y1="53.75" y2="52.06" y3="50.84"/>
+ <curve x1="28.94" x2="30.4" x3="30.59" y1="49.39" y2="47.27" y3="45.63"/>
+ <curve x1="30.82" x2="30.39" x3="31.24" y1="43.75" y2="42.49" y3="41.03"/>
+ <curve x1="31.61" x2="32.89" x3="33.5" y1="40.42" y2="40" y3="39.39"/>
+ <curve x1="34.76" x2="35.37" x3="36.63" y1="38.12" y2="36.67" y3="36.06"/>
+ <curve x1="38.7" x2="42.04" x3="43.49" y1="34.98" y2="34.99" y3="36.86"/>
+ <curve x1="44.94" x2="44.15" x3="43.72" y1="39.16" y2="42.3" y3="45.02"/>
+ <curve x1="43.55" x2="43.26" x3="42.91" y1="46.32" y2="47.51" y3="48.62"/>
+ <curve x1="42.94" x2="42.87" x3="42.87" y1="47.81" y2="46.98" y3="46.05"/>
+ <curve x1="42.87" x2="43.3" x3="43.3" y1="45.44" y2="44.36" y3="43.33"/>
+ <curve x1="43.06" x2="40.39" x3="38.51" y1="41.26" y2="40" y3="41.45"/>
+ <curve x1="37.9" x2="37.48" x3="36.83" y1="42.06" y2="43.14" y3="43.75"/>
+ <curve x1="36.22" x2="35.61" x3="34.95" y1="44.6" y2="45.02" y3="45.44"/>
+ <curve x1="32.7" x2="32.04" x3="29.36" y1="48.54" y2="53.32" y3="55.86"/>
+ <curve x1="28.28" x2="26.64" x3="26.64" y1="56.66" y2="56.89" y3="58.77"/>
+ <curve x1="26.69" x2="26.73" x3="26.77" y1="58.78" y2="58.77" y3="58.78"/>
+ <curve x1="26.73" x2="26.68" x3="26.64" y1="58.84" y2="58.88" y3="58.96"/>
+ <curve x1="28.71" x2="30.82" x3="31.85" y1="59.99" y2="57.31" y3="56.23"/>
+ <curve x1="33.3" x2="34.57" x3="36.63" y1="54.59" y2="53.94" y3="53.14"/>
+ <curve x1="38.28" x2="39.97" x3="38.94" y1="52.29" y2="47.28" y3="45.82"/>
+ <curve x1="39.12" x2="39.73" x3="39.12" y1="45.21" y2="43.94" y3="43.33"/>
+ <line x="38.94" y="43.33"/>
+ <curve x1="38.83" x2="38.77" x3="38.68" y1="43.35" y2="43.43" y3="43.48"/>
+ <curve x1="39" x2="39.53" x3="40.58" y1="42.73" y2="42.14" y3="42.29"/>
+ <curve x1="42.27" x2="41.61" x3="41.61" y1="42.48" y2="44.59" y3="46.05"/>
+ <curve x1="41.43" x2="41.61" x3="41.61" y1="46.66" y2="47.08" y3="47.69"/>
+ <curve x1="41.61" x2="39.55" x3="37.06" y1="50.83" y2="54.59" y3="56.05"/>
+ <curve x1="36.4" x2="35.6" x3="34.76" y1="56.24" y2="56.47" y3="56.89"/>
+ <curve x1="33.3" x2="32.28" x3="30.82" y1="57.69" y2="59.8" y3="60.83"/>
+ <curve x1="30.63" x2="30.43" x3="30.23" y1="60.97" y2="61.05" y3="61.14"/>
+ <curve x1="28.95" x2="27.98" x3="28.1" y1="61.41" y2="61.86" y3="63.12"/>
+ <curve x1="28.99" x2="29.58" x3="30.2" y1="63.25" y2="62.93" y3="62.62"/>
+ <curve x1="30.54" x2="30.86" x3="31.17" y1="62.54" y2="62.42" y3="62.26"/>
+ <curve x1="32.8" x2="34.38" x3="35.61" y1="61.9" y2="62.26" y3="61.67"/>
+ <curve x1="37.25" x2="38.1" x3="39.55" y1="61.06" y2="59.98" y3="59.37"/>
+ <curve x1="41.62" x2="43.49" x3="44.95" y1="58.76" y2="58.53" y3="57.07"/>
+ <curve x1="48.94" x2="48.52" x3="49.74" y1="53.32" y2="48.11" y3="41.68"/>
+ <curve x1="49.97" x2="49.97" x3="49.97" y1="41.44" y2="40.84" y3="40.6"/>
+ <curve x1="49.97" x2="43.73" x3="36.83" y1="35.02" y2="28.96" y3="29.81"/>
+ <curve x1="35.8" x2="35.19" x3="33.92" y1="30" y2="30.61" y3="30.42"/>
+ <curve x1="34.53" x2="35.8" x3="36.83" y1="29.39" y2="29.15" y3="28.73"/>
+ <curve x1="38.1" x2="40.82" x3="40.59" y1="28.54" y2="28.73" y3="27.7"/>
+ <curve x1="40.59" x2="40.17" x3="39.66" y1="27.18" y2="26.97" y3="26.92"/>
+ <close/>
+ <move x="29.55" y="30.01"/>
+ <curve x1="27.9" x2="24.99" x3="23.92" y1="31.04" y2="33.34" y3="35.22"/>
+ <curve x1="23.12" x2="22.46" x3="21.85" y1="36.67" y2="38.97" y3="40.85"/>
+ <curve x1="21.01" x2="19.97" x3="20.4" y1="42.73" y2="44.79" y3="46.66"/>
+ <curve x1="22.46" x2="22.7" x3="23.73" y1="45.21" y2="42.3" y3="39.82"/>
+ <curve x1="24.34" x2="25.37" x3="26.63" y1="37.94" y2="36.06" y3="34.79"/>
+ <curve x1="27.9" x2="29.97" x3="29.97" y1="33.34" y2="32.49" y3="30.01"/>
+ <line x="29.55" y="30.01"/>
+ <close/>
+ <move x="40.58" y="32.92"/>
+ <curve x1="45.79" x2="47.48" x3="47.85" y1="33.11" y2="37.71" y3="43.34"/>
+ <curve x1="47.86" x2="47.87" x3="47.88" y1="43.33" y2="43.32" y3="43.31"/>
+ <curve x1="47.79" x2="47.67" x3="47.67" y1="43.94" y2="44.54" y3="45.2"/>
+ <curve x1="47.25" x2="46.4" x3="42.46" y1="50.41" y2="55.43" y3="56.88"/>
+ <curve x1="44.15" x2="45.18" x3="45.98" y1="54.77" y2="52.52" y3="49.57"/>
+ <curve x1="46.4" x2="47.42" x3="45.81" y1="48.12" y2="45.64" y3="45.02"/>
+ <curve x1="46.33" x2="45.93" x3="43.49" y1="40.86" y2="36.29" y3="34.79"/>
+ <curve x1="37.91" x2="33.07" x3="29.98" y1="31.04" y2="38.13" y3="39.58"/>
+ <curve x1="29.56" x2="31.43" x3="32.46" y1="38.13" y2="37.71" y3="36.86"/>
+ <curve x1="32.89" x2="33.07" x3="33.5" y1="36.44" y2="35.83" y3="35.64"/>
+ <curve x1="35.19" x2="37.9" x3="40.58" y1="33.95" y2="32.92" y3="32.92"/>
+ <close/>
+ <move x="41.09" y="37.84"/>
+ <curve x1="40.6" x2="40.23" x3="40.39" y1="37.85" y2="38.22" y3="39.16"/>
+ <curve x1="41.42" x2="42.03" x3="42.69" y1="39.39" y2="39.81" y3="40"/>
+ <curve x1="43.07" x2="41.91" x3="41.09" y1="38.83" y2="37.82" y3="37.84"/>
+ <close/>
+ <move x="38.51" y="37.87"/>
+ <curve x1="37.15" x2="36.11" x3="35.19" y1="37.82" y2="39.42" y3="40.19"/>
+ <curve x1="33.5" x2="29.99" x3="31.63" y1="41.88" y2="44.18" y3="46.66"/>
+ <curve x1="33.08" x2="33.08" x3="33.92" y1="46.05" y2="44.6" y3="43.52"/>
+ <curve x1="35.19" x2="37.25" x3="38.28" y1="42.06" y2="41.46" y3="39.82"/>
+ <curve x1="38.71" x2="39.98" x3="39.98" y1="39.39" y2="39.58" y3="38.55"/>
+ <curve x1="39.45" x2="38.96" x3="38.51" y1="38.08" y2="37.88" y3="37.87"/>
+ <close/>
+ <move x="52.03" y="43.34"/>
+ <curve x1="49.97" x2="50.81" x3="50.81" y1="43.76" y2="45.82" y3="46.66"/>
+ <curve x1="52.64" x2="53.3" x3="52.03" y1="46.48" y2="44.18" y3="43.34"/>
+ <close/>
+ <move x="37.48" y="47.2"/>
+ <curve x1="37.53" x2="37.57" x3="37.67" y1="47.22" y2="47.27" y3="47.27"/>
+ <curve x1="37.9" x2="36.64" x3="34.95" y1="49.38" y2="51.87" y3="52.1"/>
+ <curve x1="35.79" x2="36.63" x3="37.24" y1="50.42" y2="48.96" y3="47.27"/>
+ <curve x1="37.36" x2="37.43" x3="37.48" y1="47.18" y2="47.18" y3="47.2"/>
+ <close/>
+ <move x="52.45" y="49.99"/>
+ <curve x1="52.03" x2="52.02" x3="52.02" y1="50.23" y2="50.41" y3="50.6"/>
+ <curve x1="50.15" x2="49.96" x3="46.39" y1="54.17" y2="56.89" y3="58.96"/>
+ <curve x1="44.33" x2="41.24" x3="38.7" y1="60.23" y2="60.22" y3="61.68"/>
+ <curve x1="37.96" x2="37.27" x3="36.51" y1="62.12" y2="62.95" y3="63.72"/>
+ <curve x1="34.59" x2="30.57" x3="29.97" y1="63.37" y2="63.57" y3="65.42"/>
+ <curve x1="30.95" x2="32.37" x3="33.65" y1="66.02" y2="65.99" y3="65.65"/>
+ <curve x1="33.52" x2="33.39" x3="33.31" y1="65.81" y2="65.98" y3="66.23"/>
+ <curve x1="35.37" x2="36.45" x3="38.28" y1="66.65" y2="65.01" y3="64.59"/>
+ <curve x1="41" x2="45.78" x3="45.78" y1="63.74" y2="64.77" y3="61.86"/>
+ <curve x1="44.14" x2="42.03" x3="39.78" y1="61.86" y2="63.32" y3="62.9"/>
+ <curve x1="41.61" x2="44.14" x3="46.39" y1="61.44" y2="61.68" y3="60.65"/>
+ <curve x1="48.27" x2="49.72" x3="50.99" y1="59.8" y2="57.92" y3="56.23"/>
+ <curve x1="51.14" x2="51.29" x3="51.44" y1="56" y2="55.73" y3="55.47"/>
+ <curve x1="50.69" x2="49.65" x3="48.5" y1="57.48" y2="59.46" y3="60.61"/>
+ <curve x1="47.66" x2="46.63" x3="46.63" y1="61.27" y2="61.27" y3="62.72"/>
+ <curve x1="49.11" x2="50.14" x3="51.6" y1="63.33" y2="60" y3="58.73"/>
+ <curve x1="52.44" x2="53.29" x3="53.9" y1="57.93" y2="57.7" y3="57.09"/>
+ <curve x1="55.35" x2="56.62" x3="56.2" y1="55.63" y2="52.72" y3="50.19"/>
+ <curve x1="56.01" x2="55.78" x3="55.78" y1="50.19" y2="50" y3="50"/>
+ <curve x1="54.56" x2="54.32" x3="52.44" y1="51.64" y2="55.4" y3="56.06"/>
+ <curve x1="52.86" x2="54.74" x3="53.48" y1="54.37" y2="51.88" y3="50.19"/>
+ <curve x1="53.19" x2="53.01" x3="52.88" y1="50.31" y2="50.51" y3="50.73"/>
+ <curve x1="52.87" x2="52.91" x3="52.87" y1="50.49" y2="50.24" y3="49.99"/>
+ <line x="52.45" y="49.99"/>
+ <close/>
+ <move x="33.43" y="52.21"/>
+ <curve x1="33.4" x2="33.34" x3="33.31" y1="52.3" y2="52.39" y3="52.48"/>
+ <curve x1="33.24" x2="33.03" x3="32.86" y1="52.65" y2="52.93" y3="53.18"/>
+ <curve x1="33.05" x2="33.25" x3="33.43" y1="52.85" y2="52.55" y3="52.21"/>
+ <close/>
+ <move x="43.46" y="52.35"/>
+ <curve x1="41.56" x2="38.08" x3="34.16" y1="56.11" y2="58.98" y3="60.4"/>
+ <curve x1="33.89" x2="33.56" x3="33.26" y1="60.5" y2="60.54" y3="60.6"/>
+ <curve x1="33.94" x2="34.63" x3="35.34" y1="59.92" y2="59.27" y3="58.72"/>
+ <curve x1="36.16" x2="37.11" x3="37.9" y1="58.51" y2="58.31" y3="57.69"/>
+ <curve x1="39.93" x2="42.05" x3="43.46" y1="56.69" y2="54.57" y3="52.35"/>
+ <close/>
+ <move x="56.01" y="56.67"/>
+ <curve x1="53.71" x2="52.68" x3="51.22" y1="57.7" y2="60" y3="61.27"/>
+ <curve x1="50.15" x2="48.5" x3="47.05" y1="62.49" y2="63.15" y3="63.94"/>
+ <curve x1="45.78" x2="44.14" x3="43.29" y1="64.79" y2="65.4" y3="66.66"/>
+ <curve x1="47.47" x2="49.11" x3="53.28" y1="66.48" y2="63.15" y3="62.49"/>
+ <curve x1="53.89" x2="54.93" x3="54.74" y1="61.65" y2="61.46" y3="60.19"/>
+ <curve x1="54.13" x2="53.89" x3="53.28" y1="60" y2="61.04" y3="60.62"/>
+ <curve x1="54.32" x2="56.62" x3="56.39" y1="59.4" y2="58.74" y3="56.67"/>
+ <line x="56.01" y="56.67"/>
+ <close/>
+ <move x="41.58" y="67.54"/>
+ <curve x1="39.55" x2="37.06" x3="38.29" y1="67.42" y2="68.59" y3="70"/>
+ <line x="40.4" y="70"/>
+ <curve x1="41.44" x2="43.08" x3="43.31" y1="69.39" y2="69.39" y3="68.12"/>
+ <curve x1="42.89" x2="42.26" x3="41.58" y1="67.76" y2="67.58" y3="67.54"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="18.72" x3="41.62" y1="17.92" y2="0" y3="0"/>
+ <curve x1="64.75" x2="83.24" x3="83.24" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="83.24" x2="64.75" x3="41.62" y1="62.31" y2="80" y3="80"/>
+ <curve x1="18.72" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.89" name="identity authorization alt" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="32.01" y="57.08"/>
+ <line x="31.79" y="53.07"/>
+ <curve x1="31.79" x2="30.39" x3="28.99" y1="51.44" y2="50.27" y3="49.86"/>
+ <curve x1="28.4" x2="27.82" x3="27.41" y1="49.86" y2="49.64" y3="49.28"/>
+ <curve x1="27.19" x2="27.19" x3="27.01" y1="49.28" y2="49.05" y3="49.05"/>
+ <curve x1="26.83" x2="26.83" x3="26.6" y1="49.05" y2="48.87" y3="48.87"/>
+ <curve x1="27.59" x2="28.4" x3="28.4" y1="48.24" y2="46.84" y3="45.44"/>
+ <curve x1="28.58" x2="28.58" x3="28.58" y1="44.86" y2="43.64" y3="43.05"/>
+ <curve x1="28.4" x2="28.22" x3="28.22" y1="42.47" y2="42.65" y3="42.47"/>
+ <curve x1="27.82" x2="27.59" x3="27.19" y1="42.47" y2="42.06" y3="42.06"/>
+ <curve x1="26.6" x2="25.79" x3="25.2" y1="41.66" y2="41.84" y3="42.06"/>
+ <curve x1="25.02" x2="24.62" x3="24.39" y1="42.06" y2="42.06" y3="42.06"/>
+ <curve x1="24.21" x2="23.98" x3="23.8" y1="42.06" y2="42.06" y3="42.06"/>
+ <curve x1="23.62" x2="22.99" x3="22.81" y1="42.06" y2="42.47" y3="43.05"/>
+ <curve x1="22.59" x2="22.99" x3="22.99" y1="43.87" y2="45.44" y3="45.67"/>
+ <curve x1="22.99" x2="23.62" x3="24.62" y1="47.07" y2="48.24" y3="48.87"/>
+ <curve x1="24.62" x2="24.39" x3="24.39" y1="48.87" y2="48.87" y3="49.05"/>
+ <curve x1="24.21" x2="23.98" x3="23.98" y1="49.05" y2="49.05" y3="49.28"/>
+ <curve x1="23.62" x2="22.99" x3="22.41" y1="49.64" y2="49.86" y3="49.86"/>
+ <curve x1="21.01" x2="19.79" x3="19.61" y1="50.45" y2="51.44" y3="53.07"/>
+ <curve x1="19.61" x2="19.61" x3="19.2" y1="53.07" y2="53.07" y3="57.08"/>
+ <curve x1="19.2" x2="22" x3="25.79" y1="57.08" y2="57.67" y3="57.67"/>
+ <curve x1="29.22" x2="32.01" x3="32.01" y1="57.67" y2="57.08" y3="57.08"/>
+ <close/>
+ <move x="60.82" y="57.08"/>
+ <line x="60.59" y="53.07"/>
+ <curve x1="60.59" x2="59.6" x3="58.43" y1="51.44" y2="50.27" y3="49.86"/>
+ <curve x1="58.02" x2="57.8" x3="57.44" y1="49.86" y2="49.64" y3="49.28"/>
+ <curve x1="57.21" x2="57.21" x3="57.03" y1="49.28" y2="49.05" y3="49.05"/>
+ <curve x1="57.03" x2="57.03" x3="57.03" y1="49.05" y2="48.87" y3="48.87"/>
+ <curve x1="57.62" x2="58.2" x3="58.2" y1="48.24" y2="46.84" y3="45.44"/>
+ <curve x1="58.2" x2="58.2" x3="58.2" y1="44.86" y2="43.64" y3="43.05"/>
+ <curve x1="58.2" x2="58.02" x3="58.02" y1="42.47" y2="42.65" y3="42.47"/>
+ <curve x1="57.8" x2="57.62" x3="57.21" y1="42.47" y2="42.06" y3="42.06"/>
+ <curve x1="56.8" x2="55.99" x3="55.81" y1="41.66" y2="41.84" y3="42.06"/>
+ <curve x1="55.41" x2="55.41" x3="55" y1="42.06" y2="42.06" y3="42.06"/>
+ <curve x1="55" x2="54.82" x3="54.82" y1="42.06" y2="42.06" y3="42.06"/>
+ <curve x1="54.41" x2="54.23" x3="54.01" y1="42.06" y2="42.47" y3="43.05"/>
+ <curve x1="53.83" x2="54.01" x3="54.01" y1="43.87" y2="45.44" y3="45.67"/>
+ <curve x1="54.23" x2="54.59" x3="55.23" y1="47.07" y2="48.24" y3="48.87"/>
+ <curve x1="55.23" x2="55.23" x3="55" y1="48.87" y2="48.87" y3="49.05"/>
+ <curve x1="55" x2="55" x3="54.82" y1="49.05" y2="49.05" y3="49.28"/>
+ <curve x1="54.41" x2="54.23" x3="53.83" y1="49.64" y2="49.86" y3="49.86"/>
+ <curve x1="52.61" x2="51.62" x3="51.62" y1="50.45" y2="51.44" y3="53.07"/>
+ <curve x1="51.62" x2="51.62" x3="51.21" y1="53.07" y2="53.07" y3="57.08"/>
+ <curve x1="51.21" x2="53.42" x3="55.99" y1="57.08" y2="57.67" y3="57.67"/>
+ <curve x1="58.83" x2="60.82" x3="60.82" y1="57.67" y2="57.08" y3="57.08"/>
+ <close/>
+ <move x="52.62" y="15.01"/>
+ <curve x1="49.42" x2="45" x3="40.22" y1="11.81" y2="9.83" y3="9.83"/>
+ <curve x1="30.39" x2="22.41" x3="22.41" y1="9.6" y2="17.81" y3="27.82"/>
+ <curve x1="22.81" x2="24.62" x3="27.82" y1="32.64" y2="37.24" y3="40.26"/>
+ <curve x1="30.21" x2="33" x3="36.2" y1="42.84" y2="44.46" y3="45.27"/>
+ <curve x1="36.43" x2="36.43" x3="36.43" y1="64.48" y2="64.48" y3="64.48"/>
+ <curve x1="36.2" x2="37.6" x3="39.23" y1="66.06" y2="67.28" y3="67.28"/>
+ <curve x1="41.21" x2="41.21" x3="41.21" y1="67.28" y2="67.28" y3="67.28"/>
+ <curve x1="43.01" x2="44.23" x3="44.23" y1="67.28" y2="66.06" y3="64.48"/>
+ <curve x1="44.23" x2="44.23" x3="44.23" y1="45.27" y2="45.27" y3="45.27"/>
+ <curve x1="51.81" x2="57.63" x3="57.63" y1="43.24" y2="36.25" y3="27.64"/>
+ <curve x1="57.63" x2="55.82" x3="52.62" y1="22.81" y2="18.21" y3="15.01"/>
+ <close/>
+ <move x="39.99" y="41.44"/>
+ <curve x1="32.6" x2="26.6" x3="26.6" y1="41.44" y2="35.26" y3="27.64"/>
+ <curve x1="26.6" x2="32.6" x3="39.99" y1="20.24" y2="14.02" y3="14.02"/>
+ <curve x1="47.43" x2="53.43" x3="53.43" y1="14.02" y2="20.24" y3="27.64"/>
+ <curve x1="53.43" x2="47.43" x3="39.99" y1="35.26" y2="41.44" y3="41.44"/>
+ <close/>
+ <move x="39.4" y="16.62"/>
+ <curve x1="38.82" x2="38.41" x3="38.01" y1="16.8" y2="16.62" y3="16.62"/>
+ <curve x1="37.83" x2="37.42" x3="37.19" y1="16.62" y2="16.62" y3="16.62"/>
+ <curve x1="36.79" x2="36.02" x3="35.8" y1="16.8" y2="17.43" y3="18.6"/>
+ <curve x1="35.39" x2="35.8" x3="35.8" y1="19.82" y2="22.84" y3="23.25"/>
+ <curve x1="36.02" x2="37.01" x3="38.23" y1="25.82" y2="28.03" y3="28.84"/>
+ <curve x1="38.23" x2="38.23" x3="38.01" y1="29.02" y2="29.24" y3="29.24"/>
+ <curve x1="37.83" x2="37.6" x3="37.42" y1="29.65" y2="29.65" y3="29.83"/>
+ <curve x1="36.79" x2="36.02" x3="35.21" y1="30.42" y2="30.82" y3="31.05"/>
+ <curve x1="33.99" x2="32.82" x3="32.01" y1="31.45" y2="32.22" y3="33.44"/>
+ <curve x1="33.81" x2="36.79" x3="40.22" y1="36.46" y2="38.44" y3="38.44"/>
+ <curve x1="43.42" x2="46.21" x3="48.02" y1="38.44" y2="36.64" y3="33.62"/>
+ <curve x1="47.43" x2="46.03" x3="44.59" y1="32.45" y2="31.45" y3="31.05"/>
+ <curve x1="44" x2="43.19" x3="42.61" y1="30.82" y2="30.64" y3="30.06"/>
+ <curve x1="42.42" x2="42.2" x3="41.79" y1="29.83" y2="29.65" y3="29.42"/>
+ <curve x1="41.61" x2="41.61" x3="41.39" y1="29.24" y2="29.02" y3="29.02"/>
+ <curve x1="43.01" x2="44" x3="44.23" y1="28.03" y2="25.64" y3="22.61"/>
+ <curve x1="44.23" x2="44.23" x3="44.23" y1="22.03" y2="19.64" y3="18.42"/>
+ <curve x1="44" x2="43.82" x3="43.6" y1="17.61" y2="17.61" y3="17.61"/>
+ <curve x1="43.19" x2="42.83" x3="42.2" y1="17.43" y2="16.62" y3="16.44"/>
+ <curve x1="41.21" x2="39.99" x3="39.4" y1="16.03" y2="16.44" y3="16.62"/>
+ <close/>
+ <move x="0" y="38.47"/>
+ <curve x1="0" x2="17.99" x3="40" y1="17.23" y2="0" y3="0"/>
+ <curve x1="62.23" x2="80" x3="80" y1="0" y2="17.23" y3="38.47"/>
+ <curve x1="80" x2="62.23" x3="40" y1="59.89" y2="76.89" y3="76.89"/>
+ <curve x1="17.99" x2="0" x3="0" y1="76.89" y2="59.89" y3="38.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="intrusion detection" strokewidth="inherit" w="79.95">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="51.97" y="20.64"/>
+ <curve x1="49.08" x2="46.28" x3="43.84" y1="20.64" y2="21.45" y3="22.67"/>
+ <curve x1="44.47" x2="44.97" x3="45.38" y1="22.98" y2="23.21" y3="23.48"/>
+ <curve x1="47.32" x2="49.4" x3="51.66" y1="22.58" y2="22.03" y3="22.03"/>
+ <curve x1="50.8" x2="49.4" x3="48.05" y1="22.67" y2="23.62" y3="25.06"/>
+ <curve x1="48.14" x2="48.18" x3="48.27" y1="25.24" y2="25.33" y3="25.42"/>
+ <curve x1="49.9" x2="51.43" x3="52.24" y1="23.61" y2="22.58" y3="22.03"/>
+ <curve x1="54.23" x2="56.17" x3="57.89" y1="22.03" y2="22.39" y3="23.16"/>
+ <curve x1="58.02" x2="57.88" x3="57.7" y1="24.92" y2="26.78" y3="28.45"/>
+ <curve x1="54.72" x2="51.92" x3="49.58" y1="27.18" y2="26.68" y3="26.59"/>
+ <curve x1="49.67" x2="49.8" x3="49.89" y1="26.68" y2="26.87" y3="26.96"/>
+ <curve x1="52.15" x2="54.81" x3="57.61" y1="27.09" y2="27.68" y3="28.81"/>
+ <curve x1="57.07" x2="55.76" x3="54.32" y1="32.24" y2="35.58" y3="38.47"/>
+ <curve x1="54.32" x2="54.32" x3="54.22" y1="38.7" y2="39.06" y3="39.37"/>
+ <curve x1="55.85" x2="57.3" x3="58.02" y1="36.39" y2="32.82" y3="29.03"/>
+ <curve x1="59.24" x2="60.6" x3="61.82" y1="29.57" y2="30.39" y3="31.38"/>
+ <curve x1="61.32" x2="60.68" x3="59.73" y1="32.64" y2="34.04" y3="35.58"/>
+ <curve x1="58.52" x2="56.66" x3="54" y1="37.43" y2="39.6" y3="41.45"/>
+ <curve x1="54" x2="53.91" x3="53.91" y1="41.63" y2="41.76" y3="41.94"/>
+ <curve x1="56.76" x2="58.74" x3="60.14" y1="40.09" y2="37.83" y3="35.71"/>
+ <curve x1="60.91" x2="61.68" x3="62.22" y1="34.36" y2="32.91" y3="31.51"/>
+ <curve x1="63.66" x2="65.11" x3="66.33" y1="32.73" y2="34.04" y3="35.71"/>
+ <curve x1="64.3" x2="59.74" x3="55.85" y1="36.8" y2="39.5" y3="43.97"/>
+ <curve x1="54.95" x2="54.09" x3="53.28" y1="43.97" y2="43.88" y3="43.7"/>
+ <curve x1="53.28" x2="53.19" x3="53.19" y1="43.88" y2="43.97" y3="44.2"/>
+ <curve x1="53.91" x2="54.64" x3="55.63" y1="44.2" y2="44.34" y3="44.34"/>
+ <curve x1="54.18" x2="52.78" x3="51.93" y1="46.05" y2="48.08" y3="50.25"/>
+ <curve x1="50.93" x2="49.99" x3="49.08" y1="50.25" y2="50.16" y3="50.02"/>
+ <curve x1="48.68" x2="48.18" x3="47.77" y1="50.39" y2="50.75" y3="51.15"/>
+ <curve x1="49.17" x2="50.61" x3="51.97" y1="51.47" y2="51.6" y3="51.6"/>
+ <curve x1="61.09" x2="68.36" x3="68.36" y1="51.6" y2="44.7" y3="36.12"/>
+ <curve x1="68.36" x2="61.09" x3="51.97" y1="27.59" y2="20.64" y3="20.64"/>
+ <close/>
+ <move x="37.37" y="21.94"/>
+ <curve x1="33.44" x2="29.43" x3="26.27" y1="21.94" y2="23.48" y3="26.55"/>
+ <curve x1="21.21" x2="20.63" x3="24.2" y1="31.79" y2="39.68" y3="45.64"/>
+ <line x="12.63" y="57.52"/>
+ <curve x1="11.59" x2="11.59" x3="12.63" y1="58.33" y2="60" y3="60.99"/>
+ <line x="13.95" y="62.26"/>
+ <curve x1="14.98" x2="16.61" x3="17.42" y1="63.25" y2="63.25" y3="62.26"/>
+ <line x="29.11" y="50.56"/>
+ <curve x1="31.69" x2="34.39" x3="37.37" y1="52.19" y2="52.91" y3="52.91"/>
+ <curve x1="41.16" x2="45.05" x3="48.03" y1="52.91" y2="51.38" y3="48.49"/>
+ <curve x1="54.17" x2="54.17" x3="48.03" y1="42.35" y2="32.51" y3="26.55"/>
+ <curve x1="45.05" x2="41.16" x3="37.37" y1="23.48" y2="21.94" y3="21.94"/>
+ <close/>
+ <move x="58.29" y="23.3"/>
+ <curve x1="60.14" x2="61.72" x3="63.12" y1="24.11" y2="25.24" y3="26.68"/>
+ <curve x1="62.94" x2="62.72" x3="62.04" y1="27.4" y2="29.03" y3="30.88"/>
+ <curve x1="60.69" x2="59.33" x3="58.11" y1="29.98" y2="29.21" y3="28.62"/>
+ <curve x1="58.29" x2="58.33" x3="58.29" y1="26.95" y2="25.06" y3="23.3"/>
+ <close/>
+ <move x="37.37" y="26.86"/>
+ <curve x1="39.99" x2="42.61" x3="44.55" y1="26.86" y2="27.99" y3="29.98"/>
+ <curve x1="46.59" x2="47.71" x3="47.71" y1="31.92" y2="34.58" y3="37.43"/>
+ <curve x1="47.71" x2="46.59" x3="44.55" y1="40.18" y2="42.85" y3="44.83"/>
+ <curve x1="42.61" x2="39.99" x3="37.37" y1="46.77" y2="47.9" y3="47.9"/>
+ <curve x1="34.48" x2="31.92" x3="29.84" y1="47.9" y2="46.77" y3="44.83"/>
+ <curve x1="25.87" x2="25.87" x3="29.84" y1="40.72" y2="34.04" y3="29.98"/>
+ <curve x1="31.92" x2="34.48" x3="37.37" y1="27.99" y2="26.86" y3="26.86"/>
+ <close/>
+ <move x="63.44" y="27"/>
+ <curve x1="65.42" x2="66.82" x3="66.96" y1="29.26" y2="32.23" y3="35.39"/>
+ <curve x1="66.91" x2="66.82" x3="66.73" y1="35.39" y2="35.58" y3="35.58"/>
+ <curve x1="65.38" x2="63.84" x3="62.31" y1="33.77" y2="32.33" y3="31.2"/>
+ <curve x1="62.94" x2="63.26" x3="63.44" y1="29.35" y2="27.99" y3="27"/>
+ <close/>
+ <move x="34.16" y="29.67"/>
+ <curve x1="33.85" x2="33.53" x3="33.53" y1="29.67" y2="29.98" y3="30.25"/>
+ <line x="33.53" y="44.74"/>
+ <curve x1="34.02" x2="34.43" x3="34.84" y1="44.92" y2="45.11" y3="45.15"/>
+ <line x="34.84" y="39.98"/>
+ <line x="46.42" y="35.66"/>
+ <line x="34.82" y="29.69"/>
+ <line x="34.82" y="30.2"/>
+ <curve x1="34.79" x2="34.62" x3="34.16" y1="29.94" y2="29.67" y3="29.67"/>
+ <close/>
+ <move x="37.25" y="32.49"/>
+ <curve x1="37.48" x2="37.7" x3="37.7" y1="32.49" y2="32.67" y3="32.99"/>
+ <line x="37.7" y="35.07"/>
+ <curve x1="37.7" x2="37.48" x3="37.25" y1="35.34" y2="35.56" y3="35.56"/>
+ <curve x1="36.89" x2="36.76" x3="36.76" y1="35.56" y2="35.34" y3="35.07"/>
+ <line x="36.76" y="32.99"/>
+ <curve x1="36.76" x2="36.89" x3="37.25" y1="32.67" y2="32.49" y3="32.49"/>
+ <close/>
+ <move x="66.64" y="36.03"/>
+ <curve x1="66.73" x2="66.91" x3="66.96" y1="36.12" y2="36.39" y3="36.52"/>
+ <curve x1="66.91" x2="66.33" x3="65.38" y1="38.64" y2="40.72" y3="42.48"/>
+ <curve x1="62.13" x2="58.92" x3="56.48" y1="43.7" y2="43.97" y3="43.97"/>
+ <curve x1="60.18" x2="64.65" x3="66.64" y1="39.68" y2="37.11" y3="36.03"/>
+ <close/>
+ <move x="37.25" y="36.47"/>
+ <curve x1="37.57" x2="37.89" x3="37.89" y1="36.47" y2="36.78" y3="37.19"/>
+ <curve x1="37.89" x2="37.57" x3="37.25" y1="37.5" y2="37.82" y3="37.82"/>
+ <curve x1="36.85" x2="36.49" x3="36.49" y1="37.82" y2="37.5" y3="37.19"/>
+ <curve x1="36.49" x2="36.85" x3="37.25" y1="36.78" y2="36.47" y3="36.47"/>
+ <close/>
+ <move x="65.11" y="43.07"/>
+ <curve x1="62.63" x2="57.8" x3="52.24" y1="47.36" y2="50.16" y3="50.25"/>
+ <curve x1="53.28" x2="54.64" x3="56.08" y1="48.08" y2="46.05" y3="44.34"/>
+ <line x="56.8" y="44.34"/>
+ <curve x1="59.24" x2="62.13" x3="65.11" y1="44.34" y2="44.02" y3="43.07"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="17.97" y2="0" y3="0"/>
+ <curve x1="62.08" x2="79.95" x3="79.95" y1="0" y2="17.97" y3="40"/>
+ <curve x1="79.95" x2="62.08" x3="39.95" y1="62.12" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.12" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="intrusion prevention" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="58.18" y="31.28"/>
+ <curve x1="57.19" x2="53.41" x3="39.48" y1="40.22" y2="58.52" y3="64.72"/>
+ <curve x1="30.13" x2="25.28" x3="22.9" y1="60.63" y2="51.41" y3="42.56"/>
+ <curve x1="21.5" x2="21.01" x3="20.78" y1="38.47" y2="34.25" y3="31.28"/>
+ <curve x1="20.47" x2="20.47" x3="20.29" y1="29.66" y2="28.45" y3="27.55"/>
+ <curve x1="21.5" x2="22.49" x3="23.62" y1="27.55" y2="27.82" y3="27.82"/>
+ <curve x1="32.47" x2="37.64" x3="39.48" y1="27.82" y2="23.68" y3="21.53"/>
+ <curve x1="41.41" x2="46.22" x3="55.35" y1="23.68" y2="27.82" y3="27.82"/>
+ <curve x1="56.29" x2="57.19" x3="58.49" y1="27.82" y2="27.55" y3="27.55"/>
+ <curve x1="58.49" x2="58.49" x3="58.18" y1="28.45" y2="29.66" y3="31.28"/>
+ <close/>
+ <move x="59.44" y="25.3"/>
+ <curve x1="58" x2="56.56" x3="55.35" y1="25.48" y2="25.48" y3="25.48"/>
+ <curve x1="49.77" x2="46" x3="43.57" y1="25.48" y2="24.18" y3="22.47"/>
+ <curve x1="42.36" x2="41.64" x3="41.23" y1="21.53" y2="20.9" y3="20.49"/>
+ <curve x1="40.92" x2="40.7" x3="40.43" y1="19.91" y2="19.73" y3="19.73"/>
+ <curve x1="40.43" x2="40.43" x3="40.43" y1="19.5" y2="19.5" y3="19.5"/>
+ <curve x1="39.48" x2="39.48" x3="39.48" y1="18.07" y2="18.07" y3="18.07"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="19.5" y2="19.5" y3="19.5"/>
+ <curve x1="38.27" x2="38.27" x3="38.27" y1="19.73" y2="19.73" y3="19.73"/>
+ <curve x1="37.28" x2="33.28" x3="23.62" y1="20.63" y2="25.48" y3="25.48"/>
+ <curve x1="22.22" x2="20.78" x3="19.35" y1="25.48" y2="25.48" y3="25.3"/>
+ <curve x1="18.04" x2="18.04" x3="18.04" y1="25.3" y2="25.3" y3="25.3"/>
+ <curve x1="18.04" x2="18.04" x3="18.04" y1="26.43" y2="26.43" y3="26.43"/>
+ <curve x1="18.04" x2="18.04" x3="20.78" y1="26.43" y2="34.25" y3="43.28"/>
+ <curve x1="23.12" x2="28.43" x3="39.08" y1="52.31" y2="62.38" y3="67.1"/>
+ <curve x1="39.48" x2="39.48" x3="39.48" y1="67.1" y2="67.1" y3="67.1"/>
+ <curve x1="39.93" x2="39.93" x3="39.93" y1="67.1" y2="67.1" y3="67.1"/>
+ <curve x1="50.58" x2="55.57" x3="58.18" y1="62.38" y2="52.31" y3="43.28"/>
+ <curve x1="60.56" x2="60.56" x3="60.56" y1="34.25" y2="26.43" y3="26.43"/>
+ <curve x1="60.56" x2="60.56" x3="60.56" y1="25.3" y2="25.3" y3="25.3"/>
+ <line x="59.44" y="25.3"/>
+ <close/>
+ <move x="37.76" y="37.31"/>
+ <curve x1="37.76" x2="37.76" x3="37.76" y1="37.31" y2="37.31" y3="37.31"/>
+ <curve x1="37.72" x2="37.54" x3="37.31" y1="37.58" y2="37.72" y3="37.72"/>
+ <curve x1="37.04" x2="36.95" x3="36.95" y1="37.67" y2="37.31" y3="37.18"/>
+ <curve x1="37.76" x2="40.46" x3="43.24" y1="34.52" y2="32.73" y3="33.31"/>
+ <curve x1="43.51" x2="43.56" x3="43.51" y1="33.31" y2="33.54" y3="33.76"/>
+ <curve x1="43.51" x2="43.33" x3="43.15" y1="34.12" y2="34.16" y3="34.12"/>
+ <curve x1="40.77" x2="38.52" x3="37.76" y1="33.76" y2="35.15" y3="37.31"/>
+ <close/>
+ <move x="46.7" y="40.64"/>
+ <curve x1="48.1" x2="47.11" x3="44.37" y1="37.89" y2="34.43" y3="32.91"/>
+ <curve x1="41.63" x2="38.25" x3="36.91" y1="31.42" y2="32.5" y3="35.33"/>
+ <curve x1="35.42" x2="36.41" x3="39.06" y1="38.07" y2="41.58" y3="43.06"/>
+ <curve x1="41.81" x2="45.27" x3="46.7" y1="44.59" y2="43.47" y3="40.64"/>
+ <close/>
+ <move x="52.86" y="28.86"/>
+ <curve x1="45.09" x2="41.09" x3="39.47" y1="28.86" y2="25.09" y3="23.2"/>
+ <curve x1="37.85" x2="33.49" x3="26.12" y1="25.09" y2="28.86" y3="28.86"/>
+ <curve x1="25.13" x2="24.23" x3="23.2" y1="28.86" y2="28.68" y3="28.68"/>
+ <curve x1="23.42" x2="23.42" x3="23.69" y1="29.45" y2="30.48" y3="32.01"/>
+ <curve x1="23.83" x2="24.23" x3="25.45" y1="34.57" y2="38.3" y3="42.07"/>
+ <curve x1="26.57" x2="28.19" x3="30.7" y1="46.25" y2="50.61" y3="54.25"/>
+ <curve x1="31.11" x2="32.05" x3="35.2" y1="53.63" y2="51.69" y3="45.89"/>
+ <curve x1="36.01" x2="36.01" x3="36.01" y1="46.34" y2="46.34" y3="46.34"/>
+ <curve x1="37.04" x2="37.04" x3="37.04" y1="44.32" y2="44.32" y3="44.32"/>
+ <curve x1="33.99" x2="33.04" x3="34.79" y1="42.07" y2="37.72" y3="34.16"/>
+ <curve x1="36.91" x2="41.58" x3="45.45" y1="30.21" y2="28.77" y3="30.88"/>
+ <curve x1="49.22" x2="50.66" x3="48.64" y1="32.91" y2="37.8" y3="41.67"/>
+ <curve x1="46.79" x2="42.84" x3="39.24" y1="45.22" y2="46.75" y3="45.63"/>
+ <curve x1="38.16" x2="38.16" x3="38.16" y1="47.56" y2="47.56" y3="47.56"/>
+ <curve x1="39.06" x2="39.06" x3="39.06" y1="48.14" y2="48.14" y3="48.14"/>
+ <curve x1="39.06" x2="38.25" x3="33.9" y1="48.14" y2="49.8" y3="58.03"/>
+ <curve x1="35.51" x2="37.31" x3="39.47" y1="59.56" y2="60.95" y3="61.94"/>
+ <curve x1="51.24" x2="54.43" x3="55.24" y1="56.37" y2="40.01" y3="32.01"/>
+ <curve x1="55.42" x2="55.42" x3="55.42" y1="30.48" y2="29.45" y3="28.68"/>
+ <curve x1="54.43" x2="53.63" x3="52.86" y1="28.68" y2="28.86" y3="28.86"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.98" x3="39.96" y1="17.98" y2="0" y3="0"/>
+ <curve x1="62.02" x2="79.91" x3="79.91" y1="0" y2="17.98" y3="40"/>
+ <curve x1="79.91" x2="62.02" x3="39.96" y1="62.07" y2="80" y3="80"/>
+ <curve x1="17.98" x2="0" x3="0" y1="80" y2="62.07" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="l2 l3 network" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.96" y="12.8"/>
+ <curve x1="24.96" x2="12.75" x3="12.75" y1="12.8" y2="25.14" y3="40"/>
+ <curve x1="12.75" x2="24.96" x3="39.96" y1="55.09" y2="67.21" y3="67.21"/>
+ <curve x1="55.19" x2="67.17" x3="67.17" y1="67.21" y2="55.09" y3="40"/>
+ <curve x1="67.17" x2="55.19" x3="39.96" y1="25.14" y2="12.8" y3="12.8"/>
+ <close/>
+ <move x="42.17" y="18.34"/>
+ <curve x1="45.95" x2="45.95" x3="45.95" y1="18.34" y2="18.34" y3="18.34"/>
+ <curve x1="45.95" x2="45.95" x3="45.95" y1="34.28" y2="34.28" y3="34.28"/>
+ <curve x1="55.37" x2="55.37" x3="55.37" y1="34.28" y2="34.28" y3="34.28"/>
+ <curve x1="55.37" x2="55.37" x3="55.37" y1="31.71" y2="31.71" y3="31.71"/>
+ <curve x1="62.98" x2="62.98" x3="62.98" y1="35.95" y2="35.95" y3="35.95"/>
+ <curve x1="55.37" x2="55.37" x3="55.37" y1="40.41" y2="40.41" y3="40.41"/>
+ <curve x1="55.37" x2="55.37" x3="55.37" y1="37.89" y2="37.89" y3="37.89"/>
+ <curve x1="42.17" x2="42.17" x3="42.17" y1="37.89" y2="37.89" y3="37.89"/>
+ <line x="42.17" y="18.34"/>
+ <close/>
+ <move x="17.93" y="34.28"/>
+ <curve x1="33.97" x2="33.97" x3="33.97" y1="34.28" y2="34.28" y3="34.28"/>
+ <curve x1="33.97" x2="33.97" x3="33.97" y1="24.69" y2="24.69" y3="24.69"/>
+ <curve x1="31.36" x2="31.36" x3="31.36" y1="24.69" y2="24.69" y3="24.69"/>
+ <curve x1="35.77" x2="35.77" x3="35.77" y1="17.25" y2="17.25" y3="17.25"/>
+ <curve x1="39.96" x2="39.96" x3="39.96" y1="24.69" y2="24.69" y3="24.69"/>
+ <curve x1="37.57" x2="37.57" x3="37.57" y1="24.69" y2="24.69" y3="24.69"/>
+ <curve x1="37.57" x2="37.57" x3="37.57" y1="37.89" y2="37.89" y3="37.89"/>
+ <curve x1="17.93" x2="17.93" x3="17.93" y1="37.89" y2="37.89" y3="37.89"/>
+ <line x="17.93" y="34.28"/>
+ <close/>
+ <move x="37.57" y="62.35"/>
+ <curve x1="33.97" x2="33.97" x3="33.97" y1="62.35" y2="62.35" y3="62.35"/>
+ <curve x1="33.97" x2="33.97" x3="33.97" y1="46.17" y2="46.17" y3="46.17"/>
+ <curve x1="24.38" x2="24.38" x3="24.38" y1="46.17" y2="46.17" y3="46.17"/>
+ <curve x1="24.38" x2="24.38" x3="24.38" y1="48.7" y2="48.7" y3="48.7"/>
+ <curve x1="16.94" x2="16.94" x3="16.94" y1="44.46" y2="44.46" y3="44.46"/>
+ <curve x1="24.38" x2="24.38" x3="24.38" y1="40" y2="40" y3="40"/>
+ <curve x1="24.38" x2="24.38" x3="24.38" y1="42.57" y2="42.57" y3="42.57"/>
+ <curve x1="37.57" x2="37.57" x3="37.57" y1="42.57" y2="42.57" y3="42.57"/>
+ <line x="37.57" y="62.35"/>
+ <close/>
+ <move x="61.76" y="46.17"/>
+ <curve x1="45.95" x2="45.95" x3="45.95" y1="46.17" y2="46.17" y3="46.17"/>
+ <curve x1="45.95" x2="45.95" x3="45.95" y1="55.72" y2="55.72" y3="55.72"/>
+ <curve x1="48.56" x2="48.56" x3="48.56" y1="55.72" y2="55.72" y3="55.72"/>
+ <curve x1="44.15" x2="44.15" x3="44.15" y1="63.16" y2="63.16" y3="63.16"/>
+ <curve x1="39.78" x2="39.78" x3="39.78" y1="55.72" y2="55.72" y3="55.72"/>
+ <curve x1="42.17" x2="42.17" x3="42.17" y1="55.72" y2="55.72" y3="55.72"/>
+ <curve x1="42.17" x2="42.17" x3="42.17" y1="42.57" y2="42.57" y3="42.57"/>
+ <curve x1="61.76" x2="61.76" x3="61.76" y1="42.57" y2="42.57" y3="42.57"/>
+ <line x="61.76" y="46.17"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="l2 l3 network virtual" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.78" y="8.78"/>
+ <curve x1="39.37" x2="40.18" x3="40.94" y1="8.78" y2="8.78" y3="8.78"/>
+ <curve x1="40.94" x2="40.94" x3="40.94" y1="8.78" y2="8.78" y3="6.39"/>
+ <curve x1="40.18" x2="39.37" x3="38.56" y1="6.39" y2="6.39" y3="6.39"/>
+ <curve x1="38.56" x2="38.56" x3="38.78" y1="6.39" y2="6.39" y3="8.78"/>
+ <close/>
+ <move x="45.36" y="9.19"/>
+ <line x="45.76" y="6.98"/>
+ <curve x1="44.95" x2="44.14" x3="43.38" y1="6.8" y2="6.8" y3="6.62"/>
+ <curve x1="43.38" x2="43.38" x3="43.15" y1="6.62" y2="6.62" y3="8.78"/>
+ <curve x1="43.78" x2="44.55" x3="45.36" y1="9.01" y2="9.01" y3="9.19"/>
+ <close/>
+ <move x="34.37" y="9.19"/>
+ <curve x1="35.18" x2="35.76" x3="36.57" y1="9.01" y2="9.01" y3="9.01"/>
+ <curve x1="36.57" x2="36.57" x3="36.35" y1="9.01" y2="9.01" y3="6.8"/>
+ <curve x1="35.58" x2="34.77" x3="33.96" y1="6.8" y2="6.8" y3="6.98"/>
+ <curve x1="33.96" x2="33.96" x3="34.37" y1="6.98" y2="6.98" y3="9.19"/>
+ <close/>
+ <move x="49.55" y="10.22"/>
+ <line x="50.13" y="8.01"/>
+ <curve x1="49.55" x2="48.74" x3="47.97" y1="7.79" y2="7.61" y3="7.38"/>
+ <curve x1="47.97" x2="47.97" x3="47.57" y1="7.38" y2="7.38" y3="9.59"/>
+ <curve x1="48.15" x2="48.74" x3="49.55" y1="9.82" y2="10" y3="10.22"/>
+ <close/>
+ <move x="30.18" y="10.4"/>
+ <curve x1="30.76" x2="31.57" x3="32.39" y1="10" y2="9.82" y3="9.59"/>
+ <curve x1="32.39" x2="32.39" x3="31.75" y1="9.59" y2="9.59" y3="7.61"/>
+ <curve x1="30.99" x2="30.18" x3="29.37" y1="7.79" y2="8.01" y3="8.19"/>
+ <curve x1="29.37" x2="29.37" x3="30.18" y1="8.19" y2="8.19" y3="10.4"/>
+ <close/>
+ <move x="53.56" y="11.8"/>
+ <line x="54.55" y="9.82"/>
+ <curve x1="53.74" x2="53.15" x3="52.57" y1="9.41" y2="9.01" y3="8.78"/>
+ <curve x1="52.57" x2="52.57" x3="51.57" y1="8.78" y2="8.78" y3="10.81"/>
+ <curve x1="52.16" x2="52.97" x3="53.56" y1="11.21" y2="11.39" y3="11.8"/>
+ <close/>
+ <move x="26.17" y="11.98"/>
+ <curve x1="26.75" x2="27.39" x3="28.2" y1="11.62" y2="11.39" y3="11.21"/>
+ <curve x1="28.2" x2="28.2" x3="27.39" y1="11.21" y2="11.21" y3="9.01"/>
+ <curve x1="26.57" x2="25.76" x3="25.18" y1="9.41" y2="9.59" y3="10"/>
+ <curve x1="25.18" x2="25.18" x3="26.17" y1="10" y2="10" y3="11.98"/>
+ <close/>
+ <move x="57.34" y="14.01"/>
+ <line x="58.74" y="12.2"/>
+ <curve x1="57.97" x2="57.34" x3="56.53" y1="11.62" y2="11.21" y3="10.81"/>
+ <curve x1="56.53" x2="56.53" x3="55.54" y1="10.81" y2="10.81" y3="12.79"/>
+ <curve x1="56.17" x2="56.75" x3="57.34" y1="13.19" y2="13.6" y3="14.01"/>
+ <close/>
+ <move x="22.39" y="14.19"/>
+ <curve x1="22.97" x2="23.6" x3="24.19" y1="13.78" y2="13.42" y3="13.01"/>
+ <curve x1="24.19" x2="24.19" x3="23.2" y1="13.01" y2="13.01" y3="11.21"/>
+ <curve x1="22.39" x2="21.8" x3="21.17" y1="11.39" y2="11.8" y3="12.38"/>
+ <curve x1="21.17" x2="21.17" x3="22.39" y1="12.38" y2="12.38" y3="14.19"/>
+ <close/>
+ <move x="60.76" y="16.62"/>
+ <line x="62.34" y="15"/>
+ <curve x1="61.75" x2="61.12" x3="60.54" y1="14.41" y2="14.01" y3="13.42"/>
+ <curve x1="60.54" x2="60.54" x3="59.14" y1="13.42" y2="13.42" y3="15.22"/>
+ <curve x1="59.73" x2="60.36" x3="60.76" y1="15.81" y2="16.21" y3="16.62"/>
+ <close/>
+ <move x="18.96" y="16.8"/>
+ <curve x1="19.59" x2="20" x3="20.58" y1="16.39" y2="15.99" y3="15.4"/>
+ <curve x1="20.58" x2="20.58" x3="19.19" y1="15.4" y2="15.4" y3="13.6"/>
+ <curve x1="18.6" x2="17.97" x3="17.39" y1="14.19" y2="14.82" y3="15.22"/>
+ <curve x1="17.39" x2="17.39" x3="18.96" y1="15.22" y2="15.22" y3="16.8"/>
+ <close/>
+ <move x="63.96" y="19.82"/>
+ <line x="65.54" y="18.42"/>
+ <curve x1="65.13" x2="64.55" x3="63.96" y1="17.61" y2="17.02" y3="16.62"/>
+ <curve x1="63.96" x2="63.96" x3="62.34" y1="16.62" y2="16.62" y3="18.01"/>
+ <curve x1="62.93" x2="63.33" x3="63.96" y1="18.6" y2="19.19" y3="19.82"/>
+ <close/>
+ <move x="15.99" y="20"/>
+ <curve x1="16.39" x2="16.98" x3="17.39" y1="19.41" y2="18.78" y3="18.42"/>
+ <curve x1="17.39" x2="17.39" x3="15.76" y1="18.42" y2="18.42" y3="16.8"/>
+ <curve x1="15.18" x2="14.77" x3="14.19" y1="17.38" y2="18.01" y3="18.6"/>
+ <curve x1="14.19" x2="14.19" x3="15.99" y1="18.6" y2="18.6" y3="20"/>
+ <close/>
+ <move x="66.53" y="23.19"/>
+ <line x="68.33" y="22.02"/>
+ <curve x1="67.93" x2="67.52" x3="67.16" y1="21.39" y2="20.58" y3="20.22"/>
+ <curve x1="67.16" x2="67.16" x3="65.36" y1="20.22" y2="20.22" y3="21.39"/>
+ <curve x1="65.76" x2="66.12" x3="66.53" y1="22.02" y2="22.61" y3="23.19"/>
+ <close/>
+ <move x="13.38" y="23.42"/>
+ <curve x1="13.78" x2="14.19" x3="14.59" y1="23.01" y2="22.38" y3="21.62"/>
+ <curve x1="14.59" x2="14.59" x3="12.79" y1="21.62" y2="21.62" y3="20.4"/>
+ <curve x1="12.39" x2="11.98" x3="11.39" y1="20.99" y2="21.62" y3="22.38"/>
+ <curve x1="11.39" x2="11.39" x3="13.38" y1="22.38" y2="22.38" y3="23.42"/>
+ <close/>
+ <move x="68.56" y="27.02"/>
+ <line x="70.54" y="25.99"/>
+ <curve x1="70.13" x2="69.95" x3="69.55" y1="25.4" y2="24.82" y3="24.01"/>
+ <curve x1="69.55" x2="69.55" x3="67.52" y1="24.01" y2="24.01" y3="25"/>
+ <curve x1="67.93" x2="68.15" x3="68.56" y1="25.81" y2="26.39" y3="27.02"/>
+ <close/>
+ <move x="11.39" y="27.38"/>
+ <curve x1="11.8" x2="11.98" x3="12.39" y1="26.8" y2="25.99" y3="25.4"/>
+ <curve x1="12.39" x2="12.39" x3="10.4" y1="25.4" y2="25.4" y3="24.41"/>
+ <curve x1="10" x2="9.59" x3="9.41" y1="25" y2="25.81" y3="26.62"/>
+ <curve x1="9.41" x2="9.41" x3="11.39" y1="26.62" y2="26.62" y3="27.38"/>
+ <close/>
+ <move x="70.13" y="31.21"/>
+ <line x="72.34" y="30.4"/>
+ <curve x1="72.12" x2="71.75" x3="71.53" y1="29.59" y2="29.01" y3="28.19"/>
+ <curve x1="71.53" x2="71.53" x3="69.32" y1="28.19" y2="28.19" y3="29.01"/>
+ <curve x1="69.73" x2="69.95" x3="70.13" y1="29.59" y2="30.4" y3="31.21"/>
+ <close/>
+ <move x="9.77" y="31.39"/>
+ <curve x1="10.18" x2="10.4" x3="10.58" y1="30.81" y2="30.22" y3="29.41"/>
+ <curve x1="10.58" x2="10.58" x3="8.38" y1="29.41" y2="29.41" y3="28.6"/>
+ <curve x1="8.2" x2="7.97" x3="7.79" y1="29.41" y2="30.22" y3="30.99"/>
+ <curve x1="7.79" x2="7.79" x3="9.77" y1="30.99" y2="30.99" y3="31.39"/>
+ <close/>
+ <move x="70.94" y="35.4"/>
+ <line x="73.33" y="35"/>
+ <curve x1="73.15" x2="72.93" x3="72.93" y1="34.19" y2="33.6" y3="32.79"/>
+ <curve x1="72.93" x2="72.93" x3="70.54" y1="32.79" y2="32.79" y3="33.19"/>
+ <curve x1="70.72" x2="70.94" x3="70.94" y1="34.01" y2="34.59" y3="35.4"/>
+ <close/>
+ <move x="9.01" y="35.81"/>
+ <curve x1="9.19" x2="9.19" x3="9.41" y1="35" y2="34.19" y3="33.6"/>
+ <curve x1="9.41" x2="9.41" x3="7.21" y1="33.6" y2="33.6" y3="33.19"/>
+ <curve x1="6.98" x2="6.8" x3="6.8" y1="33.78" y2="34.59" y3="35.4"/>
+ <curve x1="6.8" x2="6.8" x3="9.01" y1="35.4" y2="35.4" y3="35.81"/>
+ <close/>
+ <move x="71.35" y="39.59"/>
+ <line x="73.56" y="39.59"/>
+ <curve x1="73.56" x2="73.56" x3="73.56" y1="39.01" y2="38.19" y3="37.38"/>
+ <curve x1="73.56" x2="73.56" x3="71.35" y1="37.38" y2="37.38" y3="37.38"/>
+ <curve x1="71.35" x2="71.35" x3="71.35" y1="38.19" y2="39.01" y3="39.59"/>
+ <close/>
+ <move x="6.39" y="40.99"/>
+ <line x="8.78" y="40.81"/>
+ <curve x1="8.78" x2="8.78" x3="8.78" y1="40.58" y2="40.4" y3="40"/>
+ <curve x1="8.78" x2="8.78" x3="8.78" y1="39.41" y2="38.6" y3="37.79"/>
+ <curve x1="8.78" x2="8.78" x3="6.39" y1="37.79" y2="37.79" y3="37.79"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="38.42" y2="39.19" y3="40"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="40.4" y2="40.58" y3="40.99"/>
+ <close/>
+ <move x="73.33" y="44.41"/>
+ <curve x1="73.56" x2="73.56" x3="73.56" y1="43.6" y2="42.79" y3="42.02"/>
+ <curve x1="73.56" x2="73.56" x3="71.35" y1="42.02" y2="42.02" y3="41.8"/>
+ <curve x1="71.35" x2="71.35" x3="71.12" y1="42.61" y2="43.42" y3="44.01"/>
+ <curve x1="71.12" x2="71.12" x3="73.33" y1="44.01" y2="44.01" y3="44.41"/>
+ <close/>
+ <move x="6.98" y="45.58"/>
+ <line x="9.19" y="45.22"/>
+ <curve x1="9.01" x2="8.78" x3="8.78" y1="44.41" y2="43.78" y3="43.01"/>
+ <curve x1="8.78" x2="8.78" x3="6.57" y1="43.01" y2="43.01" y3="43.19"/>
+ <curve x1="6.8" x2="6.8" x3="6.98" y1="44.01" y2="44.82" y3="45.58"/>
+ <close/>
+ <move x="72.52" y="48.78"/>
+ <curve x1="72.75" x2="72.93" x3="72.93" y1="48.19" y2="47.38" y3="46.62"/>
+ <curve x1="72.93" x2="72.93" x3="70.72" y1="46.62" y2="46.62" y3="46.21"/>
+ <curve x1="70.72" x2="70.54" x3="70.13" y1="47.02" y2="47.61" y3="48.19"/>
+ <curve x1="70.13" x2="70.13" x3="72.52" y1="48.19" y2="48.19" y3="48.78"/>
+ <close/>
+ <move x="7.97" y="50"/>
+ <line x="10.18" y="49.41"/>
+ <curve x1="9.77" x2="9.77" x3="9.59" y1="48.78" y2="48.01" y3="47.2"/>
+ <curve x1="9.59" x2="9.59" x3="7.39" y1="47.2" y2="47.2" y3="47.79"/>
+ <curve x1="7.61" x2="7.79" x3="7.97" y1="48.6" y2="49.41" y3="50"/>
+ <close/>
+ <move x="70.94" y="53.19"/>
+ <curve x1="71.35" x2="71.53" x3="71.75" y1="52.61" y2="51.8" y3="50.99"/>
+ <curve x1="71.75" x2="71.75" x3="69.73" y1="50.99" y2="50.99" y3="50.4"/>
+ <curve x1="69.55" x2="69.14" x3="68.92" y1="50.99" y2="51.8" y3="52.38"/>
+ <curve x1="68.92" x2="68.92" x3="70.94" y1="52.38" y2="52.38" y3="53.19"/>
+ <close/>
+ <move x="9.59" y="54.41"/>
+ <line x="11.8" y="53.42"/>
+ <curve x1="11.39" x2="11.17" x3="10.81" y1="52.79" y2="52.02" y3="51.39"/>
+ <curve x1="10.81" x2="10.81" x3="8.78" y1="51.39" y2="51.39" y3="52.38"/>
+ <curve x1="9.01" x2="9.41" x3="9.59" y1="53.01" y2="53.6" y3="54.41"/>
+ <close/>
+ <move x="68.74" y="57.38"/>
+ <curve x1="69.14" x2="69.55" x3="69.95" y1="56.62" y2="55.99" y3="55.4"/>
+ <curve x1="69.95" x2="69.95" x3="67.93" y1="55.4" y2="55.4" y3="54.41"/>
+ <curve x1="67.52" x2="67.34" x3="66.75" y1="55" y2="55.58" y3="56.21"/>
+ <curve x1="66.75" x2="66.75" x3="68.74" y1="56.21" y2="56.21" y3="57.38"/>
+ <close/>
+ <move x="11.98" y="58.42"/>
+ <line x="13.78" y="57.2"/>
+ <curve x1="13.38" x2="12.97" x3="12.79" y1="56.62" y2="55.99" y3="55.4"/>
+ <curve x1="12.79" x2="12.79" x3="10.58" y1="55.4" y2="55.4" y3="56.39"/>
+ <curve x1="11.17" x2="11.39" x3="11.98" y1="57.2" y2="57.79" y3="58.42"/>
+ <close/>
+ <move x="66.12" y="61.21"/>
+ <curve x1="66.53" x2="67.16" x3="67.52" y1="60.58" y2="60" y3="59.41"/>
+ <curve x1="67.52" x2="67.52" x3="65.76" y1="59.41" y2="59.41" y3="58.01"/>
+ <curve x1="65.36" x2="64.73" x3="64.32" y1="58.6" y2="59.19" y3="59.82"/>
+ <curve x1="64.32" x2="64.32" x3="66.12" y1="59.82" y2="59.82" y3="61.21"/>
+ <close/>
+ <move x="14.77" y="62.2"/>
+ <line x="16.39" y="60.81"/>
+ <curve x1="15.99" x2="15.58" x3="15.18" y1="60.22" y2="59.59" y3="59.01"/>
+ <curve x1="15.18" x2="15.18" x3="13.2" y1="59.01" y2="59.01" y3="60.4"/>
+ <curve x1="13.78" x2="14.37" x3="14.77" y1="60.99" y2="61.62" y3="62.2"/>
+ <close/>
+ <move x="62.93" y="64.59"/>
+ <curve x1="63.56" x2="64.14" x3="64.55" y1="64.19" y2="63.6" y3="63.01"/>
+ <curve x1="64.55" x2="64.55" x3="62.93" y1="63.01" y2="63.01" y3="61.39"/>
+ <curve x1="62.34" x2="61.93" x3="61.35" y1="62.02" y2="62.61" y3="63.01"/>
+ <curve x1="61.35" x2="61.35" x3="62.93" y1="63.01" y2="63.01" y3="64.59"/>
+ <close/>
+ <move x="17.97" y="65.4"/>
+ <line x="19.59" y="63.82"/>
+ <curve x1="18.96" x2="18.6" x3="17.97" y1="63.42" y2="62.79" y3="62.38"/>
+ <curve x1="17.97" x2="17.97" x3="16.39" y1="62.38" y2="62.38" y3="64.01"/>
+ <curve x1="16.98" x2="17.39" x3="17.97" y1="64.41" y2="65" y3="65.4"/>
+ <close/>
+ <move x="59.37" y="67.61"/>
+ <curve x1="59.95" x2="60.54" x3="61.12" y1="67.2" y2="66.62" y3="66.21"/>
+ <curve x1="61.12" x2="61.12" x3="59.73" y1="66.21" y2="66.21" y3="64.41"/>
+ <curve x1="59.14" x2="58.56" x3="57.97" y1="65" y2="65.4" y3="65.81"/>
+ <curve x1="57.97" x2="57.97" x3="59.37" y1="65.81" y2="65.81" y3="67.61"/>
+ <close/>
+ <move x="21.8" y="68.19"/>
+ <line x="22.97" y="66.39"/>
+ <curve x1="22.39" x2="21.8" x3="21.17" y1="65.99" y2="65.58" y3="65.22"/>
+ <curve x1="21.17" x2="21.17" x3="19.77" y1="65.22" y2="65.22" y3="67.02"/>
+ <curve x1="20.58" x2="21.17" x3="21.8" y1="67.38" y2="67.79" y3="68.19"/>
+ <close/>
+ <move x="55.36" y="70"/>
+ <curve x1="55.94" x2="56.53" x3="57.34" y1="69.59" y2="69.41" y3="68.82"/>
+ <curve x1="57.34" x2="57.34" x3="56.17" y1="68.82" y2="68.82" y3="67.02"/>
+ <curve x1="55.54" x2="54.95" x3="54.37" y1="67.2" y2="67.61" y3="68.01"/>
+ <curve x1="54.37" x2="54.37" x3="55.36" y1="68.01" y2="68.01" y3="70"/>
+ <close/>
+ <move x="25.76" y="70.58"/>
+ <line x="26.75" y="68.6"/>
+ <curve x1="26.17" x2="25.58" x3="25" y1="68.19" y2="67.79" y3="67.61"/>
+ <curve x1="25" x2="25" x3="23.78" y1="67.61" y2="67.61" y3="69.59"/>
+ <curve x1="24.59" x2="25.18" x3="25.76" y1="69.82" y2="70.22" y3="70.58"/>
+ <close/>
+ <move x="50.94" y="71.8"/>
+ <curve x1="51.75" x2="52.57" x3="53.15" y1="71.62" y2="71.39" y3="70.99"/>
+ <curve x1="53.15" x2="53.15" x3="52.34" y1="70.99" y2="70.99" y3="68.82"/>
+ <curve x1="51.75" x2="50.94" x3="50.36" y1="69.19" y2="69.41" y3="69.59"/>
+ <curve x1="50.36" x2="50.36" x3="50.94" y1="69.59" y2="69.59" y3="71.8"/>
+ <close/>
+ <move x="30.18" y="72.2"/>
+ <line x="30.99" y="70"/>
+ <curve x1="30.18" x2="29.59" x3="28.96" y1="69.82" y2="69.59" y3="69.41"/>
+ <curve x1="28.96" x2="28.96" x3="27.97" y1="69.41" y2="69.41" y3="71.39"/>
+ <curve x1="28.78" x2="29.37" x3="30.18" y1="71.8" y2="72.02" y3="72.2"/>
+ <close/>
+ <move x="46.35" y="73.01"/>
+ <curve x1="47.16" x2="47.97" x3="48.74" y1="73.01" y2="72.61" y3="72.38"/>
+ <curve x1="48.74" x2="48.74" x3="48.15" y1="72.38" y2="72.38" y3="70.4"/>
+ <curve x1="47.57" x2="46.75" x3="45.94" y1="70.58" y2="70.58" y3="70.81"/>
+ <curve x1="45.94" x2="45.94" x3="46.35" y1="70.81" y2="70.81" y3="73.01"/>
+ <close/>
+ <move x="34.77" y="73.19"/>
+ <line x="35.18" y="70.99"/>
+ <curve x1="34.37" x2="33.78" x3="33.15" y1="70.81" y2="70.81" y3="70.58"/>
+ <curve x1="33.15" x2="33.15" x3="32.57" y1="70.58" y2="70.58" y3="72.79"/>
+ <curve x1="33.38" x2="34.19" x3="34.77" y1="73.01" y2="73.19" y3="73.19"/>
+ <close/>
+ <move x="41.75" y="73.6"/>
+ <curve x1="42.57" x2="43.38" x3="44.14" y1="73.6" y2="73.42" y3="73.42"/>
+ <curve x1="44.14" x2="44.14" x3="43.78" y1="73.42" y2="73.42" y3="71.21"/>
+ <curve x1="43.15" x2="42.57" x3="41.75" y1="71.21" y2="71.39" y3="71.39"/>
+ <curve x1="41.75" x2="41.75" x3="41.75" y1="71.39" y2="71.39" y3="73.6"/>
+ <close/>
+ <move x="39.55" y="73.6"/>
+ <line x="39.55" y="71.39"/>
+ <curve x1="38.78" x2="38.15" x3="37.39" y1="71.39" y2="71.39" y3="71.39"/>
+ <curve x1="37.39" x2="37.39" x3="37.16" y1="71.39" y2="71.39" y3="73.6"/>
+ <curve x1="37.97" x2="38.78" x3="39.55" y1="73.6" y2="73.6" y3="73.6"/>
+ <close/>
+ <move x="39.95" y="12.79"/>
+ <curve x1="25" x2="12.79" x3="12.79" y1="12.79" y2="24.99" y3="39.99"/>
+ <curve x1="12.79" x2="25" x3="39.95" y1="55.22" y2="67.2" y3="67.2"/>
+ <curve x1="54.95" x2="67.16" x3="67.16" y1="67.2" y2="55.22" y3="39.99"/>
+ <curve x1="67.16" x2="54.95" x3="39.95" y1="24.99" y2="12.79" y3="12.79"/>
+ <close/>
+ <move x="42.38" y="18.19"/>
+ <curve x1="45.94" x2="45.94" x3="45.94" y1="18.19" y2="18.19" y3="18.19"/>
+ <curve x1="45.94" x2="45.94" x3="45.94" y1="34.18" y2="34.18" y3="34.18"/>
+ <curve x1="55.36" x2="55.36" x3="55.36" y1="34.18" y2="34.18" y3="34.18"/>
+ <curve x1="55.36" x2="55.36" x3="55.36" y1="31.61" y2="31.61" y3="31.61"/>
+ <curve x1="62.92" x2="62.92" x3="62.92" y1="35.98" y2="35.98" y3="35.98"/>
+ <curve x1="55.36" x2="55.36" x3="55.36" y1="40.4" y2="40.4" y3="40.4"/>
+ <curve x1="55.36" x2="55.36" x3="55.36" y1="37.79" y2="37.79" y3="37.79"/>
+ <curve x1="42.38" x2="42.38" x3="42.38" y1="37.79" y2="37.79" y3="37.79"/>
+ <line x="42.38" y="18.19"/>
+ <close/>
+ <move x="17.97" y="34.18"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="34.18" y2="34.18" y3="34.18"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="24.59" y2="24.59" y3="24.59"/>
+ <curve x1="31.39" x2="31.39" x3="31.39" y1="24.59" y2="24.59" y3="24.59"/>
+ <curve x1="35.76" x2="35.76" x3="35.76" y1="17.2" y2="17.2" y3="17.2"/>
+ <curve x1="39.95" x2="39.95" x3="39.95" y1="24.59" y2="24.59" y3="24.59"/>
+ <curve x1="37.38" x2="37.38" x3="37.38" y1="24.59" y2="24.59" y3="24.59"/>
+ <curve x1="37.38" x2="37.38" x3="37.38" y1="37.79" y2="37.79" y3="37.79"/>
+ <curve x1="17.97" x2="17.97" x3="17.97" y1="37.79" y2="37.79" y3="37.79"/>
+ <line x="17.97" y="34.18"/>
+ <close/>
+ <move x="37.38" y="62.2"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="62.2" y2="62.2" y3="62.2"/>
+ <curve x1="33.96" x2="33.96" x3="33.96" y1="46.21" y2="46.21" y3="46.21"/>
+ <curve x1="24.37" x2="24.37" x3="24.37" y1="46.21" y2="46.21" y3="46.21"/>
+ <curve x1="24.37" x2="24.37" x3="24.37" y1="48.82" y2="48.82" y3="48.82"/>
+ <curve x1="16.98" x2="16.98" x3="16.98" y1="44.41" y2="44.41" y3="44.41"/>
+ <curve x1="24.37" x2="24.37" x3="24.37" y1="39.99" y2="39.99" y3="39.99"/>
+ <curve x1="24.37" x2="24.37" x3="24.37" y1="42.6" y2="42.6" y3="42.6"/>
+ <curve x1="37.38" x2="37.38" x3="37.38" y1="42.6" y2="42.6" y3="42.6"/>
+ <line x="37.38" y="62.2"/>
+ <close/>
+ <move x="61.75" y="46.39"/>
+ <curve x1="45.94" x2="45.94" x3="45.94" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="45.94" x2="45.94" x3="45.94" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="48.37" x2="48.37" x3="48.37" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="43.96" x2="43.96" x3="43.96" y1="63.19" y2="63.19" y3="63.19"/>
+ <curve x1="39.77" x2="39.77" x3="39.77" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="42.38" x2="42.38" x3="42.38" y1="55.8" y2="55.8" y3="55.8"/>
+ <curve x1="42.38" x2="42.38" x3="42.38" y1="42.6" y2="42.6" y3="42.6"/>
+ <curve x1="61.75" x2="61.75" x3="61.75" y1="42.6" y2="42.6" y3="42.6"/>
+ <line x="61.75" y="46.39"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.6" name="l2 switching" strokewidth="inherit" w="79.51">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="22.27" y="15.93"/>
+ <line x="12.72" y="25.3"/>
+ <line x="12.72" y="25.88"/>
+ <line x="22.27" y="35.02"/>
+ <line x="22.27" y="30.27"/>
+ <line x="38.18" y="30.27"/>
+ <line x="38.18" y="20.9"/>
+ <line x="22.27" y="20.9"/>
+ <line x="22.27" y="15.93"/>
+ <line x="22.27" y="15.93"/>
+ <close/>
+ <move x="22.27" y="38.22"/>
+ <line x="12.72" y="47.67"/>
+ <line x="12.72" y="47.67"/>
+ <line x="22.27" y="56.23"/>
+ <line x="22.27" y="51.75"/>
+ <line x="38.18" y="51.75"/>
+ <line x="38.18" y="42.92"/>
+ <line x="22.27" y="42.92"/>
+ <line x="22.27" y="38.22"/>
+ <line x="22.27" y="38.22"/>
+ <close/>
+ <move x="57.27" y="44.57"/>
+ <line x="66.41" y="35.43"/>
+ <line x="66.81" y="34.85"/>
+ <line x="57.27" y="25.48"/>
+ <line x="57.27" y="30.46"/>
+ <line x="41.36" y="30.46"/>
+ <line x="41.36" y="39.82"/>
+ <line x="57.27" y="39.82"/>
+ <line x="57.27" y="44.57"/>
+ <line x="57.27" y="44.57"/>
+ <close/>
+ <move x="57.27" y="52.75"/>
+ <line x="41.36" y="52.75"/>
+ <line x="41.36" y="62.11"/>
+ <line x="57.27" y="62.11"/>
+ <line x="57.27" y="66.86"/>
+ <line x="66.41" y="57.72"/>
+ <line x="66.81" y="57.72"/>
+ <line x="57.27" y="47.77"/>
+ <line x="57.27" y="52.75"/>
+ <line x="57.27" y="52.75"/>
+ <close/>
+ <move x="0" y="39.8"/>
+ <curve x1="0" x2="17.88" x3="39.76" y1="17.93" y2="0" y3="0"/>
+ <curve x1="61.85" x2="79.51" x3="79.51" y1="0" y2="17.93" y3="39.8"/>
+ <curve x1="79.51" x2="61.85" x3="39.76" y1="61.9" y2="79.6" y3="79.6"/>
+ <curve x1="17.88" x2="0" x3="0" y1="79.6" y2="61.9" y3="39.8"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="l3 switching" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="73.15" y="39.01"/>
+ <curve x1="73.15" x2="73.15" x3="72.93" y1="38.78" y2="38.78" y3="38.6"/>
+ <curve x1="66.93" x2="66.93" x3="66.93" y1="32.61" y2="32.61" y3="32.61"/>
+ <curve x1="66.35" x2="65.54" x3="64.95" y1="32.02" y2="32.02" y3="32.61"/>
+ <curve x1="64.73" x2="64.73" x3="64.73" y1="32.79" y2="32.79" y3="32.79"/>
+ <curve x1="64.14" x2="64.14" x3="64.73" y1="33.42" y2="34.41" y3="35"/>
+ <curve x1="68.33" x2="68.33" x3="68.33" y1="38.42" y2="38.42" y3="38.42"/>
+ <curve x1="57.57" x2="57.57" x3="57.57" y1="38.42" y2="38.42" y3="38.42"/>
+ <curve x1="57.16" x2="55.76" x3="53.56" y1="34.82" y2="31.39" y3="28.78"/>
+ <curve x1="61.12" x2="61.12" x3="61.12" y1="21.21" y2="21.21" y3="21.21"/>
+ <curve x1="61.12" x2="61.12" x3="61.12" y1="26.21" y2="26.21" y3="26.21"/>
+ <curve x1="61.12" x2="61.75" x3="62.57" y1="27.02" y2="27.79" y3="27.79"/>
+ <curve x1="62.93" x2="62.93" x3="62.93" y1="27.79" y2="27.79" y3="27.79"/>
+ <curve x1="63.74" x2="64.32" x3="64.32" y1="27.79" y2="27.02" y3="26.21"/>
+ <curve x1="64.32" x2="64.32" x3="64.32" y1="17.79" y2="17.79" y3="17.79"/>
+ <curve x1="64.32" x2="64.32" x3="64.32" y1="17.79" y2="17.61" y3="17.61"/>
+ <curve x1="64.32" x2="64.14" x3="63.96" y1="17.2" y2="16.62" y3="16.39"/>
+ <curve x1="63.74" x2="63.74" x3="63.74" y1="16.21" y2="16.21" y3="16.21"/>
+ <curve x1="63.33" x2="63.15" x3="62.75" y1="15.81" y2="15.81" y3="15.81"/>
+ <curve x1="62.57" x2="62.57" x3="62.34" y1="15.81" y2="15.81" y3="15.81"/>
+ <curve x1="53.96" x2="53.96" x3="53.96" y1="15.81" y2="15.81" y3="15.81"/>
+ <curve x1="53.15" x2="52.34" x3="52.34" y1="15.81" y2="16.39" y3="17.2"/>
+ <curve x1="52.34" x2="52.34" x3="52.34" y1="17.61" y2="17.61" y3="17.61"/>
+ <curve x1="52.34" x2="53.15" x3="53.96" y1="18.42" y2="19.01" y3="19.01"/>
+ <curve x1="58.96" x2="58.96" x3="58.96" y1="19.01" y2="19.01" y3="19.01"/>
+ <curve x1="51.35" x2="51.35" x3="51.35" y1="26.62" y2="26.62" y3="26.62"/>
+ <curve x1="48.56" x2="45.36" x3="41.57" y1="24.41" y2="22.79" y3="22.61"/>
+ <curve x1="41.57" x2="41.57" x3="41.57" y1="11.8" y2="11.8" y3="11.8"/>
+ <curve x1="45.18" x2="45.18" x3="45.18" y1="15.4" y2="15.4" y3="15.4"/>
+ <curve x1="45.76" x2="46.57" x3="47.34" y1="15.81" y2="15.81" y3="15.4"/>
+ <curve x1="47.34" x2="47.34" x3="47.34" y1="15" y2="15" y3="15"/>
+ <curve x1="47.97" x2="47.97" x3="47.34" y1="14.59" y2="13.6" y3="13.01"/>
+ <curve x1="41.35" x2="41.35" x3="41.35" y1="6.98" y2="6.98" y3="6.98"/>
+ <curve x1="41.35" x2="41.35" x3="41.35" y1="6.98" y2="6.98" y3="6.98"/>
+ <curve x1="41.17" x2="40.58" x3="40.18" y1="6.8" y2="6.39" y3="6.39"/>
+ <curve x1="39.95" x2="39.95" x3="39.95" y1="6.39" y2="6.39" y3="6.39"/>
+ <curve x1="39.55" x2="39.19" x3="38.96" y1="6.39" y2="6.62" y3="6.8"/>
+ <curve x1="38.78" x2="38.78" x3="38.56" y1="6.98" y2="6.98" y3="6.98"/>
+ <curve x1="32.57" x2="32.57" x3="32.57" y1="13.01" y2="13.01" y3="13.01"/>
+ <curve x1="31.98" x2="31.98" x3="32.57" y1="13.6" y2="14.59" y3="15"/>
+ <curve x1="32.79" x2="32.79" x3="32.79" y1="15.4" y2="15.4" y3="15.4"/>
+ <curve x1="33.38" x2="34.37" x3="34.95" y1="15.81" y2="15.81" y3="15.4"/>
+ <curve x1="38.38" x2="38.38" x3="38.38" y1="11.8" y2="11.8" y3="11.8"/>
+ <curve x1="38.38" x2="38.38" x3="38.38" y1="22.61" y2="22.61" y3="22.61"/>
+ <curve x1="34.77" x2="31.39" x3="28.78" y1="22.79" y2="24.41" y3="26.62"/>
+ <curve x1="21.17" x2="21.17" x3="21.17" y1="19.01" y2="19.01" y3="19.01"/>
+ <curve x1="26.17" x2="26.17" x3="26.17" y1="19.01" y2="19.01" y3="19.01"/>
+ <curve x1="26.98" x2="27.79" x3="27.79" y1="19.01" y2="18.42" y3="17.61"/>
+ <curve x1="27.79" x2="27.79" x3="27.79" y1="17.2" y2="17.2" y3="17.2"/>
+ <curve x1="27.79" x2="26.98" x3="26.17" y1="16.39" y2="15.81" y3="15.81"/>
+ <curve x1="17.79" x2="17.79" x3="17.79" y1="15.81" y2="15.81" y3="15.81"/>
+ <curve x1="17.57" x2="17.57" x3="17.39" y1="15.81" y2="15.81" y3="15.81"/>
+ <curve x1="16.98" x2="16.57" x3="16.39" y1="15.81" y2="15.81" y3="16.21"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="16.39" y2="16.39" y3="16.39"/>
+ <curve x1="15.76" x2="15.58" x3="15.76" y1="16.62" y2="17.2" y3="17.61"/>
+ <curve x1="15.76" x2="15.76" x3="15.76" y1="17.61" y2="17.79" y3="17.79"/>
+ <curve x1="15.76" x2="15.76" x3="15.76" y1="26.21" y2="26.21" y3="26.21"/>
+ <curve x1="15.76" x2="16.39" x3="17.21" y1="27.02" y2="27.79" y3="27.79"/>
+ <curve x1="17.57" x2="17.57" x3="17.57" y1="27.79" y2="27.79" y3="27.79"/>
+ <curve x1="18.38" x2="18.96" x3="18.96" y1="27.79" y2="27.02" y3="26.21"/>
+ <curve x1="18.96" x2="18.96" x3="18.96" y1="21.21" y2="21.21" y3="21.21"/>
+ <curve x1="26.57" x2="26.57" x3="26.57" y1="28.78" y2="28.78" y3="28.78"/>
+ <curve x1="24.37" x2="22.97" x3="22.57" y1="31.39" y2="34.82" y3="38.42"/>
+ <curve x1="11.8" x2="11.8" x3="11.8" y1="38.42" y2="38.42" y3="38.42"/>
+ <curve x1="15.4" x2="15.4" x3="15.4" y1="35" y2="35" y3="35"/>
+ <curve x1="15.76" x2="15.76" x3="15.4" y1="34.41" y2="33.42" y3="32.79"/>
+ <curve x1="15.18" x2="15.18" x3="15.18" y1="32.61" y2="32.61" y3="32.61"/>
+ <curve x1="14.59" x2="13.6" x3="12.97" y1="32.02" y2="32.02" y3="32.61"/>
+ <curve x1="6.98" x2="6.98" x3="6.98" y1="38.6" y2="38.6" y3="38.6"/>
+ <curve x1="6.98" x2="6.98" x3="6.8" y1="38.78" y2="38.78" y3="39.01"/>
+ <curve x1="6.57" x2="6.39" x3="6.39" y1="39.19" y2="39.59" y3="40"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="40.22" y2="40.22" y3="40.22"/>
+ <curve x1="6.39" x2="6.8" x3="6.98" y1="40.58" y2="41.21" y3="41.39"/>
+ <curve x1="6.98" x2="6.98" x3="6.98" y1="41.39" y2="41.39" y3="41.39"/>
+ <curve x1="12.97" x2="12.97" x3="12.97" y1="47.38" y2="47.38" y3="47.38"/>
+ <curve x1="13.6" x2="14.59" x3="15.18" y1="48.01" y2="48.01" y3="47.38"/>
+ <curve x1="15.4" x2="15.4" x3="15.4" y1="47.2" y2="47.2" y3="47.2"/>
+ <curve x1="15.76" x2="15.76" x3="15.4" y1="46.62" y2="45.81" y3="45.22"/>
+ <curve x1="11.8" x2="11.8" x3="11.8" y1="41.62" y2="41.62" y3="41.62"/>
+ <curve x1="22.57" x2="22.57" x3="22.57" y1="41.62" y2="41.62" y3="41.62"/>
+ <curve x1="22.97" x2="24.37" x3="26.57" y1="45.4" y2="48.6" y3="51.39"/>
+ <curve x1="18.96" x2="18.96" x3="18.96" y1="59.01" y2="59.01" y3="59.01"/>
+ <curve x1="18.96" x2="18.96" x3="18.96" y1="54.01" y2="54.01" y3="54.01"/>
+ <curve x1="18.96" x2="18.38" x3="17.57" y1="53.19" y2="52.38" y3="52.38"/>
+ <curve x1="17.21" x2="17.21" x3="17.21" y1="52.38" y2="52.38" y3="52.38"/>
+ <curve x1="16.39" x2="15.76" x3="15.76" y1="52.38" y2="53.19" y3="54.01"/>
+ <curve x1="15.76" x2="15.76" x3="15.76" y1="62.38" y2="62.38" y3="62.38"/>
+ <curve x1="15.76" x2="15.76" x3="15.76" y1="62.38" y2="62.61" y3="62.61"/>
+ <curve x1="15.76" x2="15.99" x3="16.17" y1="63.19" y2="63.42" y3="63.82"/>
+ <curve x1="16.39" x2="16.39" x3="16.39" y1="64.01" y2="64.01" y3="64.01"/>
+ <curve x1="16.8" x2="17.21" x3="17.57" y1="64.19" y2="64.41" y3="64.41"/>
+ <curve x1="17.79" x2="17.79" x3="17.79" y1="64.41" y2="64.41" y3="64.41"/>
+ <curve x1="26.17" x2="26.17" x3="26.17" y1="64.41" y2="64.41" y3="64.41"/>
+ <curve x1="26.98" x2="27.79" x3="27.79" y1="64.41" y2="63.82" y3="63.01"/>
+ <curve x1="27.79" x2="27.79" x3="27.79" y1="62.61" y2="62.61" y3="62.61"/>
+ <curve x1="27.79" x2="26.98" x3="26.17" y1="61.8" y2="60.99" y3="60.99"/>
+ <curve x1="21.39" x2="21.39" x3="21.39" y1="60.99" y2="60.99" y3="60.99"/>
+ <curve x1="28.78" x2="28.78" x3="28.78" y1="53.6" y2="53.6" y3="53.6"/>
+ <curve x1="31.57" x2="34.77" x3="38.38" y1="55.81" y2="57.2" y3="57.61"/>
+ <curve x1="38.38" x2="38.38" x3="38.38" y1="68.42" y2="68.42" y3="68.42"/>
+ <curve x1="34.95" x2="34.95" x3="34.95" y1="64.82" y2="64.82" y3="64.82"/>
+ <curve x1="34.37" x2="33.38" x3="32.79" y1="64.19" y2="64.19" y3="64.82"/>
+ <curve x1="32.57" x2="32.57" x3="32.57" y1="65" y2="65" y3="65"/>
+ <curve x1="31.98" x2="31.98" x3="32.57" y1="65.58" y2="66.39" y3="67.02"/>
+ <curve x1="38.56" x2="38.56" x3="38.56" y1="73.01" y2="73.01" y3="73.01"/>
+ <curve x1="38.78" x2="38.78" x3="38.96" y1="73.19" y2="73.19" y3="73.19"/>
+ <curve x1="39.19" x2="39.55" x3="39.95" y1="73.42" y2="73.6" y3="73.6"/>
+ <curve x1="40.18" x2="40.18" x3="40.18" y1="73.6" y2="73.6" y3="73.6"/>
+ <curve x1="40.58" x2="41.17" x3="41.35" y1="73.6" y2="73.42" y3="73.19"/>
+ <curve x1="41.35" x2="41.35" x3="41.35" y1="73.19" y2="73.19" y3="73.01"/>
+ <curve x1="47.34" x2="47.34" x3="47.34" y1="67.02" y2="67.02" y3="67.02"/>
+ <curve x1="47.97" x2="47.97" x3="47.34" y1="66.39" y2="65.58" y3="65"/>
+ <curve x1="47.34" x2="47.34" x3="47.34" y1="64.82" y2="64.82" y3="64.82"/>
+ <curve x1="46.57" x2="45.76" x3="45.18" y1="64.19" y2="64.19" y3="64.82"/>
+ <curve x1="41.57" x2="41.57" x3="41.57" y1="68.19" y2="68.19" y3="68.19"/>
+ <curve x1="41.57" x2="41.57" x3="41.57" y1="57.61" y2="57.61" y3="57.61"/>
+ <curve x1="45.36" x2="48.56" x3="51.17" y1="57.2" y2="55.81" y3="53.6"/>
+ <curve x1="58.74" x2="58.74" x3="58.74" y1="60.99" y2="60.99" y3="60.99"/>
+ <curve x1="53.96" x2="53.96" x3="53.96" y1="60.99" y2="60.99" y3="60.99"/>
+ <curve x1="53.15" x2="52.34" x3="52.34" y1="60.99" y2="61.8" y3="62.61"/>
+ <curve x1="52.34" x2="52.34" x3="52.34" y1="63.01" y2="63.01" y3="63.01"/>
+ <curve x1="52.34" x2="53.15" x3="53.96" y1="63.82" y2="64.41" y3="64.41"/>
+ <curve x1="62.34" x2="62.34" x3="62.34" y1="64.41" y2="64.41" y3="64.41"/>
+ <curve x1="62.34" x2="62.34" x3="62.57" y1="64.41" y2="64.41" y3="64.41"/>
+ <curve x1="62.93" x2="63.33" x3="63.74" y1="64.41" y2="64.19" y3="64.01"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="63.82" y2="63.82" y3="63.82"/>
+ <curve x1="64.14" x2="64.14" x3="64.32" y1="63.42" y2="63.19" y3="62.61"/>
+ <curve x1="64.32" x2="64.32" x3="64.32" y1="62.61" y2="62.38" y3="62.38"/>
+ <curve x1="64.32" x2="64.32" x3="64.32" y1="54.01" y2="54.01" y3="54.01"/>
+ <curve x1="64.32" x2="63.74" x3="62.93" y1="53.19" y2="52.38" y3="52.38"/>
+ <curve x1="62.57" x2="62.57" x3="62.57" y1="52.38" y2="52.38" y3="52.38"/>
+ <curve x1="61.75" x2="61.12" x3="61.12" y1="52.38" y2="53.19" y3="54.01"/>
+ <curve x1="61.12" x2="61.12" x3="61.12" y1="59.01" y2="59.01" y3="59.01"/>
+ <curve x1="53.56" x2="53.56" x3="53.56" y1="51.39" y2="51.39" y3="51.39"/>
+ <curve x1="55.76" x2="57.16" x3="57.57" y1="48.6" y2="45.4" y3="41.62"/>
+ <curve x1="68.15" x2="68.15" x3="68.15" y1="41.62" y2="41.62" y3="41.62"/>
+ <curve x1="64.73" x2="64.73" x3="64.73" y1="45.22" y2="45.22" y3="45.22"/>
+ <curve x1="64.14" x2="64.14" x3="64.73" y1="45.81" y2="46.62" y3="47.2"/>
+ <curve x1="64.95" x2="64.95" x3="64.95" y1="47.38" y2="47.38" y3="47.38"/>
+ <curve x1="65.54" x2="66.35" x3="66.93" y1="48.01" y2="48.01" y3="47.38"/>
+ <curve x1="72.93" x2="72.93" x3="72.93" y1="41.39" y2="41.39" y3="41.39"/>
+ <curve x1="73.15" x2="73.15" x3="73.15" y1="41.39" y2="41.39" y3="41.39"/>
+ <curve x1="73.33" x2="73.56" x3="73.56" y1="41.21" y2="40.58" y3="40.22"/>
+ <curve x1="73.56" x2="73.56" x3="73.56" y1="40" y2="40" y3="40"/>
+ <curve x1="73.56" x2="73.56" x3="73.15" y1="39.59" y2="39.19" y3="39.01"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="load balancer" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.99" x3="39.95" y1="17.99" y2="0" y3="0"/>
+ <curve x1="62.06" x2="79.91" x3="79.91" y1="0" y2="17.99" y3="40"/>
+ <curve x1="79.91" x2="62.06" x3="39.95" y1="62.1" y2="80" y3="80"/>
+ <curve x1="17.99" x2="0" x3="0" y1="80" y2="62.1" y3="40"/>
+ <close/>
+ <move x="6.45" y="38.08"/>
+ <line x="6.45" y="42.01"/>
+ <line x="17.97" y="42.01"/>
+ <line x="17.97" y="45.81"/>
+ <line x="23.21" y="40.02"/>
+ <line x="17.97" y="34.19"/>
+ <line x="17.97" y="38.08"/>
+ <line x="6.45" y="38.08"/>
+ <line x="6.45" y="38.08"/>
+ <close/>
+ <move x="39.97" y="54.84"/>
+ <curve x1="47.79" x2="54.12" x3="54.12" y1="54.84" y2="48.56" y3="40.65"/>
+ <curve x1="54.12" x2="47.79" x3="39.97" y1="32.83" y2="26.45" y3="26.45"/>
+ <curve x1="32.15" x2="25.78" x3="25.78" y1="26.45" y2="32.83" y3="40.65"/>
+ <curve x1="25.78" x2="32.15" x3="39.97" y1="48.56" y2="54.84" y3="54.84"/>
+ <close/>
+ <move x="39.97" y="29.62"/>
+ <curve x1="33.83" x2="28.86" x3="28.86" y1="29.62" y2="34.59" y3="40.65"/>
+ <curve x1="28.86" x2="33.83" x3="39.97" y1="46.79" y2="51.77" y3="51.77"/>
+ <curve x1="46.08" x2="51.09" x3="51.09" y1="51.77" y2="46.79" y3="40.65"/>
+ <curve x1="51.09" x2="46.08" x3="39.97" y1="34.59" y2="29.62" y3="29.62"/>
+ <close/>
+ <move x="62.05" y="22.58"/>
+ <curve x1="63.9" x2="63.9" x3="63.9" y1="25.65" y2="25.65" y3="25.65"/>
+ <curve x1="54.14" x2="54.14" x3="54.14" y1="31.12" y2="31.12" y3="31.12"/>
+ <curve x1="55.05" x2="55.59" x3="56.18" y1="32.02" y2="33.15" y3="34.19"/>
+ <curve x1="65.8" x2="65.8" x3="65.8" y1="28.86" y2="28.86" y3="28.86"/>
+ <curve x1="67.61" x2="67.61" x3="67.61" y1="31.93" y2="31.93" y3="31.93"/>
+ <curve x1="69.6" x2="69.6" x3="69.6" y1="24.52" y2="24.52" y3="24.52"/>
+ <line x="62.05" y="22.58"/>
+ <close/>
+ <move x="73.47" y="40.11"/>
+ <curve x1="68.22" x2="68.22" x3="68.22" y1="34.19" y2="34.19" y3="34.19"/>
+ <curve x1="68.22" x2="68.22" x3="68.22" y1="38.08" y2="38.08" y3="38.08"/>
+ <curve x1="58.01" x2="58.01" x3="58.01" y1="38.08" y2="38.08" y3="38.08"/>
+ <curve x1="58.19" x2="58.19" x3="58.19" y1="38.71" y2="39.34" y3="40.02"/>
+ <curve x1="58.19" x2="58.19" x3="58.01" y1="40.74" y2="41.38" y3="42.01"/>
+ <curve x1="68.22" x2="68.22" x3="68.22" y1="42.01" y2="42.01" y3="42.01"/>
+ <curve x1="68.22" x2="68.22" x3="68.22" y1="45.81" y2="45.81" y3="45.81"/>
+ <line x="73.47" y="40.11"/>
+ <close/>
+ <move x="69.6" y="55.48"/>
+ <curve x1="67.61" x2="67.61" x3="67.61" y1="48.15" y2="48.15" y3="48.15"/>
+ <curve x1="65.8" x2="65.8" x3="65.8" y1="51.23" y2="51.23" y3="51.23"/>
+ <curve x1="56.18" x2="56.18" x3="56.18" y1="45.8" y2="45.8" y3="45.8"/>
+ <curve x1="55.59" x2="55.05" x3="54.14" y1="46.93" y2="47.97" y3="48.97"/>
+ <curve x1="63.9" x2="63.9" x3="63.9" y1="54.35" y2="54.35" y3="54.35"/>
+ <curve x1="62.05" x2="62.05" x3="62.05" y1="57.42" y2="57.42" y3="57.42"/>
+ <line x="69.6" y="55.48"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="logging reporting" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="49.29" y="10.32"/>
+ <curve x1="49.2" x2="48.97" x3="48.97" y1="10.32" y2="10.5" y3="10.73"/>
+ <line x="48.97" y="26.79"/>
+ <curve x1="48.97" x2="49.2" x3="49.29" y1="27.02" y2="27.11" y3="27.11"/>
+ <line x="60.31" y="27.11"/>
+ <curve x1="60.49" x2="60.59" x3="60.59" y1="27.11" y2="27.02" y3="26.79"/>
+ <line x="60.59" y="15.32"/>
+ <line x="60.59" y="15.14"/>
+ <curve x1="60.59" x2="60.5" x3="60.5" y1="15.14" y2="15.14" y3="15.09"/>
+ <line x="56.13" y="10.5"/>
+ <curve x1="56.13" x2="56.09" x3="56.09" y1="10.32" y2="10.32" y3="10.32"/>
+ <line x="56" y="10.32"/>
+ <line x="49.29" y="10.32"/>
+ <close/>
+ <move x="49.56" y="10.95"/>
+ <line x="55.72" y="10.95"/>
+ <line x="55.72" y="15.32"/>
+ <curve x1="55.72" x2="55.82" x3="56" y1="15.5" y2="15.64" y3="15.64"/>
+ <line x="60" y="15.64"/>
+ <line x="60" y="26.52"/>
+ <line x="49.56" y="26.52"/>
+ <line x="49.56" y="10.95"/>
+ <close/>
+ <move x="36.96" y="14.19"/>
+ <line x="36.96" y="20.4"/>
+ <line x="34.8" y="20.4"/>
+ <line x="37.95" y="23.24"/>
+ <line x="41.23" y="20.4"/>
+ <line x="39.17" y="20.4"/>
+ <line x="39.17" y="14.19"/>
+ <line x="36.96" y="14.19"/>
+ <close/>
+ <move x="50.67" y="16.77"/>
+ <curve x1="50.49" x2="50.27" x3="50.27" y1="16.77" y2="17.09" y3="17.49"/>
+ <curve x1="50.27" x2="50.49" x3="50.67" y1="17.67" y2="18.08" y3="18.08"/>
+ <line x="59.04" y="18.08"/>
+ <curve x1="59.22" x2="59.31" x3="59.31" y1="18.08" y2="17.67" y3="17.49"/>
+ <curve x1="59.31" x2="59.22" x3="59.04" y1="17.09" y2="16.77" y3="16.77"/>
+ <line x="50.67" y="16.77"/>
+ <close/>
+ <move x="22.14" y="18.06"/>
+ <curve x1="22.09" x2="21.91" x3="21.91" y1="18.06" y2="18.24" y3="18.29"/>
+ <line x="21.91" y="30.8"/>
+ <curve x1="21.91" x2="22.09" x3="22.14" y1="30.89" y2="30.98" y3="30.98"/>
+ <line x="30.77" y="30.98"/>
+ <curve x1="30.86" x2="30.95" x3="30.95" y1="30.98" y2="30.89" y3="30.8"/>
+ <line x="30.95" y="21.84"/>
+ <curve x1="30.95" x2="30.95" x3="30.86" y1="21.84" y2="21.75" y3="21.75"/>
+ <line x="27.49" y="18.06"/>
+ <line x="27.4" y="18.06"/>
+ <line x="22.14" y="18.06"/>
+ <close/>
+ <move x="22.31" y="18.47"/>
+ <line x="27.13" y="18.47"/>
+ <line x="27.13" y="21.84"/>
+ <curve x1="27.13" x2="27.22" x3="27.4" y1="22.11" y2="22.11" y3="22.11"/>
+ <line x="30.6" y="22.11"/>
+ <line x="30.6" y="30.58"/>
+ <line x="29.58" y="30.58"/>
+ <curve x1="29.6" x2="29.63" x3="29.63" y1="30.46" y2="30.45" y3="30.3"/>
+ <curve x1="29.63" x2="29.54" x3="29.5" y1="29.99" y2="29.68" y3="29.68"/>
+ <line x="23.43" y="29.68"/>
+ <curve x1="23.38" x2="23.2" x3="23.2" y1="29.68" y2="29.99" y3="30.3"/>
+ <curve x1="23.2" x2="23.25" x3="23.29" y1="30.45" y2="30.46" y3="30.58"/>
+ <line x="22.31" y="30.58"/>
+ <line x="22.31" y="18.47"/>
+ <close/>
+ <move x="50.67" y="19.35"/>
+ <curve x1="50.49" x2="50.27" x3="50.27" y1="19.35" y2="19.76" y3="19.98"/>
+ <curve x1="50.27" x2="50.49" x3="50.67" y1="20.48" y2="20.66" y3="20.66"/>
+ <line x="59.04" y="20.66"/>
+ <curve x1="59.22" x2="59.31" x3="59.31" y1="20.66" y2="20.48" y3="19.98"/>
+ <curve x1="59.31" x2="59.22" x3="59.04" y1="19.76" y2="19.35" y3="19.35"/>
+ <line x="50.67" y="19.35"/>
+ <close/>
+ <move x="50.67" y="21.93"/>
+ <curve x1="50.49" x2="50.27" x3="50.27" y1="21.93" y2="22.25" y3="22.65"/>
+ <curve x1="50.27" x2="50.49" x3="50.67" y1="23.06" y2="23.24" y3="23.24"/>
+ <line x="59.04" y="23.24"/>
+ <curve x1="59.22" x2="59.31" x3="59.31" y1="23.24" y2="23.06" y3="22.65"/>
+ <curve x1="59.31" x2="59.22" x3="59.04" y1="22.25" y2="21.93" y3="21.93"/>
+ <line x="50.67" y="21.93"/>
+ <close/>
+ <move x="23.43" y="23.22"/>
+ <curve x1="23.38" x2="23.2" x3="23.2" y1="23.22" y2="23.62" y3="23.8"/>
+ <curve x1="23.2" x2="23.38" x3="23.43" y1="24.21" y2="24.53" y3="24.53"/>
+ <line x="29.5" y="24.53"/>
+ <curve x1="29.54" x2="29.63" x3="29.63" y1="24.53" y2="24.21" y3="23.8"/>
+ <curve x1="29.63" x2="29.54" x3="29.5" y1="23.62" y2="23.22" y3="23.22"/>
+ <line x="23.43" y="23.22"/>
+ <close/>
+ <move x="50.67" y="24.52"/>
+ <curve x1="50.49" x2="50.27" x3="50.27" y1="24.52" y2="25.01" y3="25.14"/>
+ <curve x1="50.27" x2="50.49" x3="50.67" y1="25.64" y2="25.82" y3="25.82"/>
+ <line x="59.04" y="25.82"/>
+ <curve x1="59.22" x2="59.31" x3="59.31" y1="25.82" y2="25.64" y3="25.14"/>
+ <curve x1="59.31" x2="59.22" x3="59.04" y1="25.01" y2="24.52" y3="24.52"/>
+ <line x="50.67" y="24.52"/>
+ <close/>
+ <move x="32.72" y="25.79"/>
+ <curve x1="32.4" x2="32.22" x3="32.22" y1="25.79" y2="26.06" y3="26.2"/>
+ <line x="32.22" y="37.49"/>
+ <curve x1="32.16" x2="32.12" x3="32.04" y1="37.46" y2="37.4" y3="37.4"/>
+ <line x="25.47" y="37.4"/>
+ <curve x1="25.29" x2="25.11" x3="24.98" y1="37.4" y2="37.59" y3="37.68"/>
+ <line x="18.27" y="44.33"/>
+ <curve x1="18.05" x2="18.05" x3="18.18" y1="44.51" y2="44.74" y3="45.01"/>
+ <curve x1="18.27" x2="18.54" x3="18.68" y1="45.14" y2="45.41" y3="45.41"/>
+ <line x="20.07" y="45.41"/>
+ <line x="20.07" y="66.51"/>
+ <curve x1="20.07" x2="20.3" x3="20.61" y1="66.92" y2="67.1" y3="67.1"/>
+ <line x="60.75" y="67.1"/>
+ <curve x1="61.06" x2="61.29" x3="61.29" y1="67.1" y2="66.92" y3="66.51"/>
+ <line x="61.29" y="45.41"/>
+ <line x="62.59" y="45.41"/>
+ <curve x1="62.82" x2="63.09" x3="63.09" y1="45.41" y2="45.14" y3="45.01"/>
+ <curve x1="63.14" x2="63.13" x3="63" y1="44.74" y2="44.51" y3="44.33"/>
+ <line x="56.29" y="37.68"/>
+ <curve x1="56.25" x2="55.98" x3="55.89" y1="37.59" y2="37.4" y3="37.4"/>
+ <line x="49.95" y="37.4"/>
+ <curve x1="49.55" x2="49.32" x3="49.32" y1="37.4" y2="37.72" y3="38.08"/>
+ <curve x1="49.32" x2="49.55" x3="49.95" y1="38.48" y2="38.62" y3="38.62"/>
+ <line x="55.67" y="38.62"/>
+ <line x="61.15" y="44.2"/>
+ <line x="20.12" y="44.2"/>
+ <line x="25.7" y="38.62"/>
+ <line x="32.04" y="38.62"/>
+ <curve x1="32.12" x2="32.16" x3="32.22" y1="38.62" y2="38.58" y3="38.57"/>
+ <line x="32.22" y="40"/>
+ <line x="27.47" y="40"/>
+ <curve x1="27.24" x2="27.07" x3="27.07" y1="40" y2="40.4" y3="40.71"/>
+ <curve x1="27.07" x2="27.24" x3="27.47" y1="40.98" y2="41.3" y3="41.3"/>
+ <line x="53.79" y="41.3"/>
+ <curve x1="53.97" x2="54.16" x3="54.16" y1="41.3" y2="40.98" y3="40.71"/>
+ <curve x1="54.16" x2="53.97" x3="53.79" y1="40.4" y2="40" y3="40"/>
+ <line x="48.96" y="40"/>
+ <line x="48.96" y="31.91"/>
+ <line x="48.96" y="31.86"/>
+ <line x="48.96" y="31.77"/>
+ <curve x1="48.96" x2="48.96" x3="48.92" y1="31.77" y2="31.59" y3="31.59"/>
+ <line x="42.62" y="25.97"/>
+ <curve x1="42.53" x2="42.53" x3="42.53" y1="25.97" y2="25.79" y3="25.79"/>
+ <line x="42.44" y="25.79"/>
+ <line x="42.39" y="25.79"/>
+ <line x="32.72" y="25.79"/>
+ <close/>
+ <move x="23.43" y="25.8"/>
+ <curve x1="23.38" x2="23.2" x3="23.2" y1="25.8" y2="26.21" y3="26.43"/>
+ <curve x1="23.2" x2="23.38" x3="23.43" y1="26.79" y2="27.09" y3="27.1"/>
+ <curve x1="23.38" x2="23.2" x3="23.2" y1="27.11" y2="27.41" y3="27.72"/>
+ <curve x1="23.2" x2="23.38" x3="23.43" y1="28.08" y2="28.4" y3="28.4"/>
+ <line x="29.5" y="28.4"/>
+ <curve x1="29.54" x2="29.63" x3="29.63" y1="28.4" y2="28.08" y3="27.72"/>
+ <curve x1="29.63" x2="29.55" x3="29.5" y1="27.41" y2="27.12" y3="27.11"/>
+ <curve x1="29.5" x2="29.5" x3="29.5" y1="27.11" y2="27.1" y3="27.1"/>
+ <curve x1="29.5" x2="29.5" x3="29.5" y1="27.1" y2="27.1" y3="27.1"/>
+ <curve x1="29.55" x2="29.63" x3="29.63" y1="27.08" y2="26.79" y3="26.43"/>
+ <curve x1="29.63" x2="29.54" x3="29.5" y1="26.21" y2="25.8" y3="25.8"/>
+ <line x="23.43" y="25.8"/>
+ <close/>
+ <move x="33.12" y="26.6"/>
+ <line x="41.89" y="26.6"/>
+ <line x="41.89" y="31.91"/>
+ <curve x1="41.89" x2="42.12" x3="42.39" y1="32.09" y2="32.31" y3="32.31"/>
+ <line x="48.15" y="32.31"/>
+ <line x="48.15" y="40"/>
+ <line x="33.12" y="40"/>
+ <line x="33.12" y="26.6"/>
+ <close/>
+ <move x="56.29" y="28.38"/>
+ <line x="56.29" y="34.51"/>
+ <line x="54.13" y="34.51"/>
+ <line x="57.51" y="37.43"/>
+ <line x="60.57" y="34.51"/>
+ <line x="58.5" y="34.51"/>
+ <line x="58.5" y="28.38"/>
+ <line x="56.29" y="28.38"/>
+ <close/>
+ <move x="35.29" y="33.54"/>
+ <curve x1="35.02" x2="34.8" x3="34.8" y1="33.54" y2="33.86" y3="34.17"/>
+ <curve x1="34.8" x2="35.02" x3="35.29" y1="34.67" y2="34.85" y3="34.85"/>
+ <line x="46.09" y="34.85"/>
+ <curve x1="46.23" x2="46.41" x3="46.41" y1="34.85" y2="34.67" y3="34.17"/>
+ <curve x1="46.41" x2="46.23" x3="46.09" y1="33.86" y2="33.54" y3="33.54"/>
+ <line x="35.29" y="33.54"/>
+ <close/>
+ <move x="35.29" y="37.42"/>
+ <curve x1="35.02" x2="34.8" x3="34.8" y1="37.42" y2="37.59" y3="38.13"/>
+ <curve x1="34.8" x2="35.02" x3="35.29" y1="38.4" y2="38.72" y3="38.72"/>
+ <line x="46.09" y="38.72"/>
+ <curve x1="46.23" x2="46.41" x3="46.41" y1="38.72" y2="38.4" y3="38.13"/>
+ <curve x1="46.41" x2="46.23" x3="46.09" y1="37.59" y2="37.42" y3="37.42"/>
+ <line x="35.29" y="37.42"/>
+ <close/>
+ <move x="23.61" y="42.58"/>
+ <curve x1="23.43" x2="23.2" x3="23.2" y1="42.58" y2="42.8" y3="43.2"/>
+ <curve x1="23.2" x2="23.43" x3="23.61" y1="43.56" y2="43.88" y3="43.88"/>
+ <line x="56.4" y="43.88"/>
+ <curve x1="56.54" x2="56.72" x3="56.72" y1="43.88" y2="43.56" y3="43.2"/>
+ <curve x1="56.72" x2="56.54" x3="56.4" y1="42.8" y2="42.58" y3="42.58"/>
+ <line x="23.61" y="42.58"/>
+ <close/>
+ <move x="21.2" y="45.41"/>
+ <line x="60.17" y="45.41"/>
+ <line x="60.17" y="65.97"/>
+ <line x="21.2" y="65.97"/>
+ <line x="21.2" y="45.41"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.95" x3="39.96" y1="18" y2="0" y3="0"/>
+ <curve x1="62.05" x2="79.91" x3="79.91" y1="0" y2="18" y3="40"/>
+ <curve x1="79.91" x2="62.05" x3="39.96" y1="62.09" y2="80" y3="80"/>
+ <curve x1="17.95" x2="0" x3="0" y1="80" y2="62.09" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="malware sandbox" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="32.84" y="18.49"/>
+ <curve x1="31.84" x2="31.03" x3="31.03" y1="18.49" y2="19.48" y3="20.29"/>
+ <curve x1="31.03" x2="31.84" x3="32.84" y1="21.1" y2="21.87" y3="21.87"/>
+ <line x="33.42" y="21.87"/>
+ <line x="35.81" y="24.71"/>
+ <curve x1="35.22" x2="34.64" x3="34.23" y1="25.3" y2="25.89" y3="26.7"/>
+ <line x="34.41" y="26.87"/>
+ <curve x1="36.22" x2="38.42" x3="40.81" y1="27.69" y2="28.09" y3="28.09"/>
+ <curve x1="43.25" x2="45.41" x3="47.22" y1="28.09" y2="27.69" y3="26.87"/>
+ <curve x1="47.22" x2="47.45" x3="47.63" y1="26.87" y2="26.7" y3="26.7"/>
+ <curve x1="47.04" x2="46.22" x3="45.41" y1="25.89" y2="25.07" y3="24.71"/>
+ <line x="48.25" y="21.87"/>
+ <line x="48.62" y="21.87"/>
+ <curve x1="49.66" x2="50.24" x3="50.24" y1="21.87" y2="21.1" y3="20.29"/>
+ <curve x1="50.24" x2="49.66" x3="48.62" y1="19.48" y2="18.49" y3="18.49"/>
+ <curve x1="47.63" x2="46.82" x3="46.82" y1="18.49" y2="19.48" y3="20.29"/>
+ <curve x1="46.82" x2="46.82" x3="47.04" y1="20.47" y2="20.7" y3="20.88"/>
+ <line x="44.24" y="23.9"/>
+ <curve x1="43.25" x2="42.03" x3="40.81" y1="23.31" y2="23.09" y3="23.09"/>
+ <curve x1="39.64" x2="38.43" x3="37.25" y1="23.09" y2="23.31" y3="23.9"/>
+ <curve x1="35.22" x2="34.64" x3="34.41" y1="21.69" y2="21.1" y3="20.88"/>
+ <curve x1="34.64" x2="34.64" x3="34.64" y1="20.7" y2="20.47" y3="20.29"/>
+ <curve x1="34.64" x2="33.83" x3="32.84" y1="19.48" y2="18.49" y3="18.49"/>
+ <close/>
+ <move x="33.53" y="28.1"/>
+ <curve x1="32.95" x2="32.76" x3="32.36" y1="28.91" y2="29.9" y3="30.71"/>
+ <line x="28.35" y="29.09"/>
+ <curve x1="27.76" x2="27.13" x3="26.77" y1="28.91" y2="29.09" y3="29.68"/>
+ <curve x1="26.77" x2="26.95" x3="27.54" y1="30.31" y2="30.89" y3="31.3"/>
+ <line x="31.77" y="32.88"/>
+ <curve x1="31.55" x2="31.37" x3="31.37" y1="34.1" y2="35.32" y3="36.31"/>
+ <line x="26.77" y="36.31"/>
+ <curve x1="25.96" x2="25.55" x3="25.55" y1="36.31" y2="36.72" y3="37.53"/>
+ <curve x1="25.55" x2="25.96" x3="26.77" y1="37.89" y2="38.7" y3="38.7"/>
+ <line x="31.37" y="38.7"/>
+ <curve x1="31.37" x2="31.55" x3="31.55" y1="39.33" y2="40.32" y3="40.91"/>
+ <line x="41.56" y="40.91"/>
+ <line x="49.76" y="40.91"/>
+ <curve x1="49.94" x2="49.94" x3="49.94" y1="40.32" y2="39.33" y3="38.7"/>
+ <line x="53.37" y="38.7"/>
+ <curve x1="53.95" x2="54.36" x3="54.36" y1="38.7" y2="37.89" y3="37.53"/>
+ <curve x1="54.36" x2="53.96" x3="53.55" y1="36.72" y2="36.31" y3="36.31"/>
+ <line x="49.94" y="36.31"/>
+ <curve x1="49.94" x2="49.76" x3="49.54" y1="35.09" y2="33.91" y3="32.88"/>
+ <line x="52.96" y="31.3"/>
+ <curve x1="53.37" x2="53.55" x3="53.37" y1="30.89" y2="30.31" y3="29.68"/>
+ <curve x1="53.37" x2="52.56" x3="52.15" y1="29.09" y2="28.91" y3="29.09"/>
+ <line x="49.18" y="30.49"/>
+ <curve x1="48.95" x2="48.55" x3="48.14" y1="29.9" y2="28.91" y3="28.1"/>
+ <curve x1="47.96" x2="47.77" x3="47.77" y1="28.28" y2="28.51" y3="28.51"/>
+ <curve x1="46.15" x2="43.95" x3="41.56" y1="29.5" y2="30.31" y3="30.31"/>
+ <curve x1="41.56" x2="41.55" x3="41.55" y1="30.31" y2="30.31" y3="30.31"/>
+ <curve x1="38.76" x2="36.14" x3="34.16" y1="30.31" y2="29.5" y3="28.51"/>
+ <curve x1="33.93" x2="33.76" x3="33.53" y1="28.51" y2="28.28" y3="28.1"/>
+ <close/>
+ <move x="17.76" y="32.7"/>
+ <curve x1="17.53" x2="17.17" x3="16.76" y1="32.7" y2="33.1" y3="33.1"/>
+ <line x="6.93" y="43.3"/>
+ <curve x1="6.53" x2="6.34" x3="6.75" y1="43.7" y2="44.29" y3="44.92"/>
+ <curve x1="6.93" x2="7.57" x3="7.93" y1="45.28" y2="45.5" y3="45.5"/>
+ <line x="9.55" y="45.5"/>
+ <line x="9.55" y="60.12"/>
+ <curve x1="9.55" x2="9.95" x3="10.77" y1="60.93" y2="61.51" y3="61.51"/>
+ <line x="38.14" y="61.51"/>
+ <line x="69.34" y="61.51"/>
+ <curve x1="70.15" x2="70.74" x3="70.74" y1="61.51" y2="60.93" y3="60.12"/>
+ <line x="70.74" y="45.5"/>
+ <line x="72.36" y="45.5"/>
+ <curve x1="72.77" x2="73.36" x3="73.36" y1="45.5" y2="45.28" y3="44.92"/>
+ <curve x1="73.54" x2="73.54" x3="73.18" y1="44.29" y2="43.7" y3="43.3"/>
+ <line x="63.35" y="33.1"/>
+ <curve x1="63.17" x2="62.53" x3="62.35" y1="33.1" y2="32.7" y3="32.7"/>
+ <line x="53.56" y="32.7"/>
+ <curve x1="52.97" x2="52.16" x3="52.16" y1="32.7" y2="33.47" y3="34.1"/>
+ <curve x1="52.16" x2="52.97" x3="53.56" y1="34.91" y2="35.49" y3="35.49"/>
+ <line x="61.77" y="35.49"/>
+ <line x="68.94" y="42.89"/>
+ <line x="38.95" y="42.89"/>
+ <line x="11.13" y="42.89"/>
+ <line x="18.34" y="35.49"/>
+ <line x="26.55" y="35.49"/>
+ <curve x1="27.36" x2="27.95" x3="27.95" y1="35.49" y2="34.91" y3="34.1"/>
+ <curve x1="27.95" x2="27.36" x3="26.55" y1="33.47" y2="32.7" y3="32.7"/>
+ <line x="17.76" y="32.7"/>
+ <close/>
+ <move x="12.16" y="45.5"/>
+ <line x="38.95" y="45.69"/>
+ <line x="68.17" y="45.5"/>
+ <line x="68.17" y="58.72"/>
+ <line x="38.14" y="58.9"/>
+ <line x="12.16" y="58.72"/>
+ <line x="12.16" y="45.5"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.99" x3="40" y1="17.9" y2="0" y3="0"/>
+ <curve x1="62.23" x2="80" x3="80" y1="0" y2="17.9" y3="40"/>
+ <curve x1="80" x2="62.23" x3="40" y1="62.28" y2="80" y3="80"/>
+ <curve x1="17.99" x2="0" x3="0" y1="80" y2="62.28" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="mobile device manager" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.75" y="23.99"/>
+ <curve x1="25.16" x2="24.58" x3="24.58" y1="23.99" y2="24.57" y3="25.2"/>
+ <line x="24.58" y="38.78"/>
+ <curve x1="19.75" x2="15.56" x3="12.35" y1="38.42" y2="38.19" y3="37.61"/>
+ <line x="12.35" y="30.98"/>
+ <line x="23.18" y="30.98"/>
+ <line x="23.18" y="27.78"/>
+ <curve x1="21.96" x2="20.56" x3="19.57" y1="27.37" y2="26.97" y3="26.97"/>
+ <line x="17.95" y="26.97"/>
+ <line x="17.54" y="26.97"/>
+ <line x="16.15" y="26.97"/>
+ <curve x1="14.57" x2="10.96" x3="10.96" y1="26.97" y2="28" y3="29.81"/>
+ <line x="10.96" y="33.01"/>
+ <curve x1="5.37" x2="1.76" x3="1.76" y1="33.78" y2="34.81" y3="35.8"/>
+ <curve x1="2.16" x2="19.17" x3="40.36" y1="38.19" y2="40" y3="40"/>
+ <curve x1="61.38" x2="78.37" x3="78.55" y1="40" y2="38.19" y3="35.8"/>
+ <curve x1="78.55" x2="75.35" x3="69.99" y1="34.81" y2="33.77" y3="33.19"/>
+ <line x="69.99" y="29.81"/>
+ <curve x1="69.99" x2="69.17" x3="68.18" y1="28.77" y2="28.18" y3="28.18"/>
+ <line x="50.19" y="28.18"/>
+ <line x="50.19" y="29.58"/>
+ <line x="66.97" y="29.58"/>
+ <curve x1="67.78" x2="68.18" x3="68.18" y1="29.58" y2="30.22" y3="30.98"/>
+ <line x="68.18" y="37.61"/>
+ <curve x1="63.58" x2="56.55" x3="48.56" y1="38.42" y2="38.78" y3="39.01"/>
+ <line x="48.56" y="25.2"/>
+ <curve x1="48.56" x2="47.98" x3="47.35" y1="24.57" y2="23.99" y3="23.99"/>
+ <line x="25.75" y="23.99"/>
+ <close/>
+ <move x="34.59" y="25.8"/>
+ <line x="38.56" y="25.8"/>
+ <curve x1="38.78" x2="38.78" x3="38.78" y1="25.8" y2="25.79" y3="25.97"/>
+ <line x="38.56" y="25.97"/>
+ <line x="34.59" y="25.97"/>
+ <line x="34.36" y="25.97"/>
+ <curve x1="34.36" x2="34.59" x3="34.59" y1="25.79" y2="25.8" y3="25.8"/>
+ <close/>
+ <move x="26.38" y="27.37"/>
+ <line x="46.76" y="27.37"/>
+ <line x="46.76" y="39.01"/>
+ <curve x1="44.55" x2="42.39" x3="40.36" y1="39.01" y2="39.18" y3="39.18"/>
+ <curve x1="35.36" x2="30.58" x3="26.38" y1="39.18" y2="39.01" y3="38.78"/>
+ <line x="26.38" y="27.37"/>
+ <close/>
+ <move x="15.38" y="29.4"/>
+ <line x="20.15" y="29.4"/>
+ <curve x1="20.56" x2="20.56" x3="20.56" y1="29.4" y2="29.58" y3="29.81"/>
+ <curve x1="20.56" x2="20.56" x3="20.15" y1="29.99" y2="30.21" y3="30.21"/>
+ <line x="15.38" y="30.21"/>
+ <curve x1="15.38" x2="14.97" x3="14.97" y1="30.21" y2="29.99" y3="29.81"/>
+ <curve x1="14.97" x2="15.38" x3="15.38" y1="29.58" y2="29.4" y3="29.4"/>
+ <close/>
+ <move x="10.96" y="33.77"/>
+ <line x="10.96" y="37.38"/>
+ <curve x1="9.56" x2="8.16" x3="7.35" y1="37.38" y2="36.98" y3="36.8"/>
+ <curve x1="6.18" x2="5.54" x3="5.36" y1="36.39" y2="35.98" y3="35.58"/>
+ <curve x1="5.36" x2="7.58" x3="10.96" y1="34.81" y2="34.18" y3="33.77"/>
+ <close/>
+ <move x="69.99" y="33.77"/>
+ <curve x1="73.19" x2="75.17" x3="75.17" y1="34.18" y2="34.81" y3="35.58"/>
+ <curve x1="75.17" x2="74.36" x3="73.37" y1="35.98" y2="36.39" y3="36.8"/>
+ <curve x1="72.56" x2="71.38" x3="69.99" y1="36.98" y2="37.2" y3="37.38"/>
+ <line x="69.99" y="33.77"/>
+ <close/>
+ <move x="68.98" y="40"/>
+ <curve x1="68.57" x2="67.99" x3="67.58" y1="40" y2="40" y3="40.18"/>
+ <line x="67.58" y="40.81"/>
+ <curve x1="67.58" x2="66.77" x3="66.19" y1="41.4" y2="41.98" y3="41.98"/>
+ <line x="49.77" y="41.98"/>
+ <line x="49.77" y="43.2"/>
+ <line x="68.98" y="43.2"/>
+ <line x="68.98" y="40"/>
+ <close/>
+ <move x="11.36" y="40.01"/>
+ <line x="11.36" y="50.01"/>
+ <curve x1="11.36" x2="15.15" x3="16.77" y1="51.59" y2="52.81" y3="52.81"/>
+ <line x="17.94" y="52.81"/>
+ <line x="18.58" y="52.81"/>
+ <line x="20.56" y="52.81"/>
+ <curve x1="21.56" x2="22.95" x3="24.17" y1="52.81" y2="52.63" y3="51.82"/>
+ <line x="24.17" y="48.62"/>
+ <line x="12.76" y="48.62"/>
+ <line x="12.76" y="40.18"/>
+ <curve x1="12.35" x2="11.77" x3="11.36" y1="40.18" y2="40.01" y3="40.01"/>
+ <close/>
+ <move x="24.75" y="41.65"/>
+ <line x="24.75" y="53.47"/>
+ <curve x1="24.75" x2="25.38" x3="25.83" y1="54.05" y2="54.45" y3="54.45"/>
+ <line x="47.84" y="54.45"/>
+ <curve x1="48.29" x2="48.69" x3="48.69" y1="54.45" y2="54.05" y3="53.47"/>
+ <line x="48.69" y="42.05"/>
+ <line x="46.98" y="42.05"/>
+ <line x="46.98" y="49.45"/>
+ <line x="26.46" y="49.45"/>
+ <line x="26.46" y="41.83"/>
+ <curve x1="25.83" x2="25.38" x3="24.75" y1="41.83" y2="41.83" y3="41.65"/>
+ <close/>
+ <move x="49.77" y="46.41"/>
+ <line x="49.77" y="49.61"/>
+ <line x="72.18" y="49.61"/>
+ <line x="68.75" y="46.41"/>
+ <line x="49.77" y="46.41"/>
+ <close/>
+ <move x="18.76" y="49.61"/>
+ <curve x1="19.17" x2="19.57" x3="19.57" y1="49.61" y2="50.02" y3="50.61"/>
+ <curve x1="19.57" x2="19.17" x3="18.76" y1="51.01" y2="51.42" y3="51.42"/>
+ <curve x1="18.35" x2="17.77" x3="17.77" y1="51.42" y2="51.01" y3="50.61"/>
+ <curve x1="17.77" x2="18.35" x3="18.76" y1="50.02" y2="49.61" y3="49.61"/>
+ <close/>
+ <move x="36.92" y="50.85"/>
+ <curve x1="37.38" x2="38.01" x3="38.01" y1="50.85" y2="51.25" y3="52.06"/>
+ <curve x1="38.01" x2="37.38" x3="36.92" y1="52.65" y2="53.24" y3="53.24"/>
+ <curve x1="36.07" x2="35.44" x3="35.44" y1="53.24" y2="52.65" y3="52.06"/>
+ <curve x1="35.44" x2="36.07" x3="36.92" y1="51.25" y2="50.85" y3="50.85"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.99" x3="40" y1="17.9" y2="0" y3="0"/>
+ <curve x1="62.23" x2="80" x3="80" y1="0" y2="17.9" y3="40"/>
+ <curve x1="80" x2="62.23" x3="40" y1="62.28" y2="80" y3="80"/>
+ <curve x1="17.99" x2="0" x3="0" y1="80" y2="62.28" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="monitoring" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.38" y="16.66"/>
+ <curve x1="35.6" x2="30.99" x3="27.29" y1="16.66" y2="18.36" y3="21.88"/>
+ <curve x1="21.23" x2="20.63" x3="24.76" y1="27.7" y2="36.89" y3="43.56"/>
+ <line x="11.24" y="56.88"/>
+ <curve x1="9.97" x2="9.97" x3="11.24" y1="57.72" y2="59.6" y3="60.82"/>
+ <line x="12.7" y="62.27"/>
+ <curve x1="13.96" x2="15.84" x3="16.87" y1="63.35" y2="63.35" y3="62.27"/>
+ <line x="30.62" y="48.95"/>
+ <curve x1="33.72" x2="36.86" x3="40.38" y1="50.83" y2="51.67" y3="51.67"/>
+ <curve x1="44.74" x2="49.34" x3="52.86" y1="51.67" y2="49.98" y3="46.65"/>
+ <curve x1="59.33" x2="59.87" x3="54.53" y1="40.4" y2="30.48" y3="23.72"/>
+ <curve x1="56.81" x2="59.18" x3="61.59" y1="23.98" y2="24.36" y3="25.41"/>
+ <curve x1="60.98" x2="59.71" x3="58.07" y1="29.16" y2="32.73" y3="35.83"/>
+ <line x="58.07" y="36.86"/>
+ <curve x1="59.95" x2="61.41" x3="62.02" y1="33.77" y2="29.77" y3="25.65"/>
+ <curve x1="63.47" x2="64.92" x3="66.38" y1="26.44" y2="27.1" y3="28.32"/>
+ <curve x1="65.77" x2="64.93" x3="64.13" y1="29.59" y2="31.23" y3="32.73"/>
+ <curve x1="62.67" x2="60.56" x3="57.65" y1="34.8" y2="37.1" y3="38.97"/>
+ <line x="57.65" y="39.58"/>
+ <curve x1="60.8" x2="62.86" x3="64.31" y1="37.71" y2="35.22" y3="32.92"/>
+ <curve x1="65.34" x2="66" x3="66.61" y1="31.46" y2="30.01" y3="28.56"/>
+ <curve x1="68.25" x2="69.71" x3="71.17" y1="29.59" y2="31.23" y3="32.92"/>
+ <curve x1="68.91" x2="64.12" x3="59.95" y1="34.18" y2="37.1" y3="41.88"/>
+ <curve x1="58.68" x2="57.65" x3="57.04" y1="41.88" y2="41.65" y3="41.46"/>
+ <curve x1="56.8" x2="56.8" x3="56.8" y1="41.65" y2="41.88" y3="41.88"/>
+ <curve x1="57.65" x2="58.5" x3="59.53" y1="42.07" y2="42.07" y3="42.07"/>
+ <curve x1="57.89" x2="56.62" x3="55.35" y1="43.94" y2="46.06" y3="48.55"/>
+ <curve x1="54.32" x2="53.29" x3="52.26" y1="48.55" y2="48.55" y3="48.36"/>
+ <curve x1="51.84" x2="51.41" x3="50.99" y1="48.73" y2="49.16" y3="49.39"/>
+ <curve x1="52.26" x2="53.9" x3="55.59" y1="49.81" y2="50" y3="50"/>
+ <curve x1="65.35" x2="73.28" x3="73.28" y1="50" y2="42.49" y3="33.34"/>
+ <curve x1="73.28" x2="65.35" x3="55.59" y1="24.15" y2="16.69" y3="16.69"/>
+ <curve x1="52.72" x2="50.18" x3="47.79" y1="16.69" y2="17.3" y3="18.39"/>
+ <curve x1="45.4" x2="42.86" x3="40.38" y1="17.28" y2="16.66" y3="16.66"/>
+ <close/>
+ <move x="55.16" y="18.14"/>
+ <curve x1="54.32" x2="53.05" x3="51.74" y1="18.79" y2="19.79" y3="20.87"/>
+ <curve x1="51.07" x2="50.36" x3="49.63" y1="20.3" y2="19.81" y3="19.36"/>
+ <curve x1="51.29" x2="53.13" x3="55.16" y1="18.71" y2="18.14" y3="18.14"/>
+ <close/>
+ <move x="56.01" y="18.14"/>
+ <curve x1="57.89" x2="60.14" x3="61.83" y1="18.14" y2="18.56" y3="19.36"/>
+ <curve x1="62.25" x2="62.01" x3="61.83" y1="21.47" y2="23.35" y3="25.23"/>
+ <curve x1="59.07" x2="56.47" x3="54.13" y1="24.03" y2="23.4" y3="23.2"/>
+ <curve x1="53.73" x2="53.31" x3="52.86" y1="22.74" y2="22.3" y3="21.88"/>
+ <curve x1="52.63" x2="52.39" x3="52.16" y1="21.65" y2="21.45" y3="21.24"/>
+ <curve x1="53.7" x2="55.09" x3="56.01" y1="19.82" y2="18.82" y3="18.14"/>
+ <close/>
+ <move x="62.43" y="19.6"/>
+ <curve x1="64.31" x2="66" x3="67.65" y1="20.44" y2="21.66" y3="23.12"/>
+ <curve x1="67.46" x2="67.22" x3="66.38" y1="23.96" y2="25.65" y3="27.71"/>
+ <curve x1="65.16" x2="63.47" x3="62.25" y1="26.87" y2="25.83" y3="25.41"/>
+ <curve x1="62.44" x2="62.67" x3="62.43" y1="23.53" y2="21.47" y3="19.6"/>
+ <close/>
+ <move x="40.38" y="22.29"/>
+ <curve x1="43.29" x2="46.62" x3="48.69" y1="22.29" y2="23.56" y3="25.81"/>
+ <curve x1="51.22" x2="52.44" x3="52.44" y1="27.93" y2="31.02" y3="34.35"/>
+ <curve x1="52.44" x2="51.22" x3="48.69" y1="37.31" y2="40.22" y3="42.52"/>
+ <curve x1="46.62" x2="43.29" x3="40.38" y1="44.77" y2="46.04" y3="46.04"/>
+ <curve x1="37.05" x2="33.9" x3="31.41" y1="46.04" y2="44.77" y3="42.52"/>
+ <curve x1="26.86" x2="26.86" x3="31.41" y1="37.92" y2="30.41" y3="25.81"/>
+ <curve x1="33.9" x2="37.05" x3="40.38" y1="23.56" y2="22.29" y3="22.29"/>
+ <close/>
+ <move x="68.06" y="23.53"/>
+ <curve x1="70.36" x2="71.58" x3="71.82" y1="26.02" y2="29.17" y3="32.73"/>
+ <line x="71.58" y="32.73"/>
+ <curve x1="69.94" x2="68.49" x3="66.8" y1="30.86" y2="29.36" y3="28.14"/>
+ <curve x1="67.46" x2="67.83" x3="68.06" y1="26.26" y2="24.57" y3="23.53"/>
+ <close/>
+ <move x="39.35" y="26.68"/>
+ <line x="39.35" y="29.16"/>
+ <line x="31.85" y="29.16"/>
+ <line x="31.24" y="29.16"/>
+ <line x="31.24" y="32.07"/>
+ <curve x1="30.58" x2="29.97" x3="29.97" y1="32.07" y2="32.49" y3="33.34"/>
+ <curve x1="29.97" x2="30.58" x3="31.24" y1="33.95" y2="34.37" y3="34.37"/>
+ <line x="31.24" y="36.48"/>
+ <line x="39.55" y="36.48"/>
+ <line x="39.55" y="40.43"/>
+ <curve x1="38.94" x2="38.51" x3="38.51" y1="40.61" y2="41.04" y3="41.69"/>
+ <line x="30.81" y="41.69"/>
+ <line x="31" y="41.88"/>
+ <line x="31.24" y="42.07"/>
+ <line x="38.51" y="42.07"/>
+ <curve x1="38.7" x2="39.12" x3="39.96" y1="42.49" y2="42.72" y3="42.72"/>
+ <curve x1="40.57" x2="41.42" x3="41.42" y1="42.72" y2="42.49" y3="42.07"/>
+ <line x="43.91" y="42.07"/>
+ <line x="43.91" y="43.34"/>
+ <curve x1="44.14" x2="44.33" x3="44.57" y1="43.34" y2="43.15" y3="43.15"/>
+ <line x="44.57" y="42.07"/>
+ <line x="46.63" y="42.07"/>
+ <line x="46.82" y="41.88"/>
+ <line x="47.05" y="41.69"/>
+ <line x="44.57" y="41.69"/>
+ <line x="44.57" y="37.28"/>
+ <curve x1="45.18" x2="45.59" x3="45.59" y1="37.28" y2="36.86" y3="36.48"/>
+ <line x="49.96" y="36.48"/>
+ <line x="49.96" y="35.83"/>
+ <line x="45.59" y="35.83"/>
+ <curve x1="45.36" x2="44.94" x3="44.14" y1="35.41" y2="34.98" y3="34.98"/>
+ <curve x1="43.49" x2="42.88" x3="42.69" y1="34.98" y2="35.41" y3="35.83"/>
+ <line x="40.15" y="35.83"/>
+ <line x="40.15" y="32.73"/>
+ <curve x1="40.81" x2="41.42" x3="41.42" y1="32.49" y2="32.31" y3="31.65"/>
+ <line x="49.11" y="31.65"/>
+ <curve x1="48.93" x2="48.93" x3="48.69" y1="31.65" y2="31.46" y3="31.46"/>
+ <line x="41.42" y="31.46"/>
+ <curve x1="41.42" x2="40.57" x3="39.96" y1="30.85" y2="30.2" y3="30.2"/>
+ <curve x1="39.12" x2="38.51" x3="38.51" y1="30.2" y2="30.85" y3="31.46"/>
+ <curve x1="38.51" x2="38.94" x3="39.55" y1="32.07" y2="32.49" y3="32.73"/>
+ <line x="39.55" y="35.83"/>
+ <line x="31.85" y="35.83"/>
+ <line x="31.85" y="34.37"/>
+ <curve x1="32.46" x2="32.88" x3="32.88" y1="34.18" y2="33.76" y3="33.34"/>
+ <curve x1="32.88" x2="32.46" x3="31.85" y1="32.73" y2="32.31" y3="32.07"/>
+ <line x="31.85" y="29.58"/>
+ <line x="39.96" y="29.58"/>
+ <line x="39.96" y="26.86"/>
+ <curve x1="39.54" x2="39.54" x3="39.35" y1="26.67" y2="26.68" y3="26.68"/>
+ <close/>
+ <move x="71.4" y="33.34"/>
+ <curve x1="71.59" x2="71.58" x3="71.82" y1="33.34" y2="33.77" y3="33.77"/>
+ <curve x1="71.82" x2="71.16" x3="70.13" y1="36.07" y2="38.31" y3="40.19"/>
+ <curve x1="66.61" x2="63.05" x3="60.37" y1="41.46" y2="41.88" y3="41.88"/>
+ <curve x1="64.32" x2="69.34" x3="71.4" y1="37.1" y2="34.38" y3="33.34"/>
+ <close/>
+ <move x="40.15" y="36.48"/>
+ <line x="42.69" y="36.48"/>
+ <curve x1="42.88" x2="43.49" x3="43.91" y1="36.86" y2="37.28" y3="37.28"/>
+ <line x="43.91" y="41.69"/>
+ <line x="41.42" y="41.69"/>
+ <curve x1="41.42" x2="40.81" x3="40.15" y1="41.04" y2="40.61" y3="40.43"/>
+ <line x="40.15" y="36.48"/>
+ <close/>
+ <move x="69.94" y="40.85"/>
+ <curve x1="67.03" x2="61.83" x3="56.01" y1="45.4" y2="48.55" y3="48.55"/>
+ <curve x1="57.04" x2="58.5" x3="60.14" y1="46.06" y2="43.94" y3="42.07"/>
+ <line x="60.98" y="42.07"/>
+ <curve x1="63.47" x2="66.61" x3="69.94" y1="42.07" y2="41.88" y3="40.85"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.22" x2="79.91" x3="79.91" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="79.91" x2="62.22" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="policy configuration" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.43" y="13.53"/>
+ <curve x1="37.94" x2="35.83" x3="35.4" y1="13.34" y2="15.22" y3="17.51"/>
+ <curve x1="35.22" x2="35.4" x3="35.4" y1="18.55" y2="19.58" y3="20.62"/>
+ <curve x1="35.22" x2="34.98" x3="34.19" y1="21.27" y2="21.88" y3="22.3"/>
+ <curve x1="33.95" x2="33.77" x3="33.34" y1="22.3" y2="22.49" y3="22.73"/>
+ <curve x1="31.28" x2="30.2" x3="30.01" y1="23.15" y2="24.6" y3="26.66"/>
+ <line x="50" y="26.66"/>
+ <line x="50" y="26.06"/>
+ <curve x1="49.58" x2="48.73" x3="46.85" y1="24.37" y2="23.15" y3="22.73"/>
+ <curve x1="46.67" x2="46.43" x3="46.25" y1="22.49" y2="22.49" y3="22.3"/>
+ <curve x1="45.4" x2="44.98" x3="44.98" y1="21.88" y2="21.46" y3="20.43"/>
+ <line x="44.98" y="18.31"/>
+ <curve x1="44.79" x2="42.91" x3="40.43" y1="15.83" y2="13.76" y3="13.53"/>
+ <close/>
+ <move x="23.35" y="16.65"/>
+ <curve x1="21.47" x2="20.01" x3="20.01" y1="16.65" y2="18.34" y3="20.21"/>
+ <line x="20.01" y="63.52"/>
+ <curve x1="20.01" x2="21.47" x3="23.35" y1="65.21" y2="66.66" y3="66.66"/>
+ <line x="56.85" y="66.66"/>
+ <curve x1="58.72" x2="59.99" x3="59.99" y1="66.66" y2="65.21" y3="63.52"/>
+ <line x="59.99" y="20.21"/>
+ <curve x1="59.99" x2="58.73" x3="56.66" y1="18.34" y2="16.65" y3="16.65"/>
+ <line x="49.16" y="16.65"/>
+ <line x="48.55" y="16.65"/>
+ <line x="48.55" y="18.34"/>
+ <curve x1="48.55" x2="49.58" x3="51.03" y1="19.79" y2="20.64" y3="20.64"/>
+ <line x="54.55" y="20.64"/>
+ <curve x1="55.82" x2="56.43" x3="56.43" y1="20.64" y2="21.24" y3="22.7"/>
+ <line x="56.43" y="33.35"/>
+ <line x="56.43" y="61.03"/>
+ <curve x1="56.43" x2="55.82" x3="54.79" y1="62.3" y2="62.91" y3="62.91"/>
+ <line x="25.65" y="62.91"/>
+ <curve x1="24.38" x2="23.77" x3="23.77" y1="62.91" y2="62.3" y3="61.03"/>
+ <line x="23.77" y="49.79"/>
+ <curve x1="23.93" x2="24.06" x3="24.19" y1="49.88" y2="49.98" y3="50.19"/>
+ <curve x1="24.38" x2="24.8" x3="24.99" y1="50.43" y2="51.04" y3="51.69"/>
+ <line x="25.23" y="52.3"/>
+ <curve x1="25.41" x2="25.41" x3="25.65" y1="52.72" y2="53.15" y3="53.34"/>
+ <curve x1="25.83" x2="26.07" x3="26.49" y1="53.15" y2="52.91" y3="52.72"/>
+ <line x="27.1" y="52.3"/>
+ <curve x1="27.71" x2="28.74" x3="29.82" y1="50.85" y2="49.16" y3="47.51"/>
+ <curve x1="30.43" x2="30.85" x3="31.28" y1="46.86" y2="46.25" y3="45.64"/>
+ <line x="31.47" y="45.64"/>
+ <curve x1="31.65" x2="32.07" x3="32.31" y1="45.4" y2="44.98" y3="44.79"/>
+ <line x="50" y="44.79"/>
+ <line x="50" y="43.34"/>
+ <line x="29.4" y="43.34"/>
+ <line x="29.4" y="44.79"/>
+ <line x="31.04" y="44.79"/>
+ <curve x1="30.62" x2="30.01" x3="29.4" y1="45.22" y2="46.06" y3="46.48"/>
+ <curve x1="28.13" x2="27.1" x3="26.25" y1="47.94" y2="49.39" y3="50.84"/>
+ <line x="26.07" y="50.19"/>
+ <curve x1="25.65" x2="25.22" x3="24.8" y1="49.16" y2="48.55" y3="48.55"/>
+ <curve x1="24.49" x2="24.15" x3="23.77" y1="48.55" y2="48.82" y3="49.19"/>
+ <line x="23.77" y="43.21"/>
+ <curve x1="23.93" x2="24.06" x3="24.19" y1="43.35" y2="43.51" y3="43.75"/>
+ <curve x1="24.38" x2="24.8" x3="24.99" y1="43.94" y2="44.37" y3="45.21"/>
+ <line x="25.23" y="45.63"/>
+ <curve x1="25.41" x2="25.41" x3="25.65" y1="46.05" y2="46.48" y3="46.66"/>
+ <curve x1="25.83" x2="26.07" x3="26.49" y1="46.48" y2="46.48" y3="46.06"/>
+ <line x="27.1" y="45.63"/>
+ <curve x1="27.71" x2="28.74" x3="29.82" y1="44.18" y2="42.72" y3="41.27"/>
+ <curve x1="30.86" x2="31.66" x3="32.73" y1="39.81" y2="38.73" y3="38.12"/>
+ <line x="50" y="38.12"/>
+ <line x="50" y="36.67"/>
+ <line x="29.4" y="36.67"/>
+ <line x="29.4" y="38.12"/>
+ <line x="31.65" y="38.12"/>
+ <curve x1="30.85" x2="30.01" x3="29.4" y1="38.73" y2="39.39" y3="40.19"/>
+ <curve x1="28.13" x2="27.1" x3="26.25" y1="41.46" y2="42.91" y3="44.18"/>
+ <line x="26.07" y="43.75"/>
+ <curve x1="25.65" x2="25.22" x3="24.8" y1="42.72" y2="42.07" y3="42.07"/>
+ <curve x1="24.49" x2="24.15" x3="23.77" y1="42.07" y2="42.31" y3="42.6"/>
+ <line x="23.77" y="36.46"/>
+ <curve x1="23.93" x2="24.06" x3="24.19" y1="36.54" y2="36.64" y3="36.85"/>
+ <curve x1="24.38" x2="24.61" x3="24.8" y1="37.09" y2="37.28" y3="37.7"/>
+ <curve x1="24.8" x2="24.8" x3="24.99" y1="37.93" y2="38.12" y3="38.36"/>
+ <line x="25.23" y="38.73"/>
+ <curve x1="25.41" x2="25.41" x3="25.65" y1="39.58" y2="40" y3="40"/>
+ <curve x1="25.83" x2="26.07" x3="26.49" y1="40" y2="39.58" y3="39.39"/>
+ <line x="27.1" y="39.16"/>
+ <line x="27.29" y="38.97"/>
+ <curve x1="27.29" x2="27.52" x3="27.71" y1="38.54" y2="38.35" y3="37.7"/>
+ <curve x1="28.32" x2="29.16" x3="30.01" y1="36.67" y2="35.4" y3="34.18"/>
+ <curve x1="31.27" x2="32.31" x3="33.34" y1="32.49" y2="31.27" y3="30.62"/>
+ <line x="33.11" y="30.01"/>
+ <curve x1="31.89" x2="30.62" x3="29.4" y1="30.85" y2="31.88" y3="33.34"/>
+ <curve x1="28.13" x2="27.1" x3="26.25" y1="34.6" y2="36.06" y3="37.28"/>
+ <line x="26.07" y="36.85"/>
+ <curve x1="25.65" x2="25.22" x3="24.8" y1="36.06" y2="35.4" y3="35.4"/>
+ <curve x1="24.49" x2="24.15" x3="23.77" y1="35.4" y2="35.59" y3="35.9"/>
+ <line x="23.77" y="22.51"/>
+ <curve x1="23.77" x2="24.38" x3="25.41" y1="21.25" y2="20.64" y3="20.64"/>
+ <line x="29.4" y="20.64"/>
+ <curve x1="30.62" x2="31.47" x3="31.47" y1="20.64" y2="19.98" y3="18.76"/>
+ <curve x1="31.65" x2="31.47" x3="31.47" y1="18.1" y2="17.49" y3="16.65"/>
+ <line x="30.86" y="16.65"/>
+ <line x="23.35" y="16.65"/>
+ <close/>
+ <move x="40" y="16.86"/>
+ <curve x1="40.84" x2="41.46" x3="41.46" y1="16.86" y2="17.52" y3="18.31"/>
+ <curve x1="41.46" x2="40.84" x3="40" y1="19.16" y2="19.82" y3="19.82"/>
+ <curve x1="39.16" x2="38.55" x3="38.55" y1="19.82" y2="19.16" y3="18.31"/>
+ <curve x1="38.55" x2="39.16" x3="40" y1="17.52" y2="16.86" y3="16.86"/>
+ <close/>
+ <move x="30.01" y="49.96"/>
+ <line x="30.01" y="52.5"/>
+ <line x="50" y="52.5"/>
+ <line x="50" y="49.96"/>
+ <line x="30.01" y="49.96"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.92" x3="39.98" y1="17.92" y2="0" y3="0"/>
+ <curve x1="62.31" x2="80" x3="80" y1="0" y2="17.92" y3="40.02"/>
+ <curve x1="80" x2="62.31" x3="39.98" y1="62.31" y2="80" y3="80"/>
+ <curve x1="17.92" x2="0" x3="0" y1="80" y2="62.31" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="posture assesment" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.83" y="41.19"/>
+ <curve x1="40.83" x2="40.83" x3="40.83" y1="41.19" y2="41.19" y3="41.19"/>
+ <curve x1="40.83" x2="41.42" x3="41.82" y1="41.19" y2="40.6" y3="41.01"/>
+ <curve x1="42" x2="42" x3="42" y1="41.19" y2="41.19" y3="41.19"/>
+ <curve x1="43.81" x2="46.42" x3="48.81" y1="42.59" y2="43.22" y3="42.18"/>
+ <curve x1="52.02" x2="53.41" x3="52.2" y1="40.78" y2="37" y3="33.79"/>
+ <curve x1="50.62" x2="46.83" x3="43.63" y1="30.59" y2="28.97" y3="30.41"/>
+ <curve x1="41.19" x2="39.79" x3="39.61" y1="31.4" y2="33.61" y3="36"/>
+ <curve x1="39.79" x2="38.4" x3="38.4" y1="36.82" y2="37.4" y3="37.4"/>
+ <curve x1="28.79" x2="28.79" x3="28.79" y1="41.42" y2="41.42" y3="41.42"/>
+ <curve x1="28.79" x2="28.02" x3="27.8" y1="41.42" y2="41.82" y3="42.41"/>
+ <curve x1="27.8" x2="26.99" x3="26.99" y1="42.99" y2="44.62" y3="44.62"/>
+ <curve x1="26.99" x2="26.63" x3="28.02" y1="44.62" y2="45.79" y3="46.02"/>
+ <curve x1="30.19" x2="30.19" x3="30.19" y1="46.83" y2="46.83" y3="46.83"/>
+ <curve x1="31" x2="31" x3="31" y1="46.6" y2="46.6" y3="46.6"/>
+ <curve x1="31.41" x2="31.41" x3="31.41" y1="45.61" y2="45.61" y3="45.61"/>
+ <curve x1="31.99" x2="31.99" x3="31.99" y1="45.2" y2="45.2" y3="45.2"/>
+ <curve x1="32.8" x2="32.8" x3="32.8" y1="45.61" y2="45.61" y3="45.61"/>
+ <curve x1="33.8" x2="33.8" x3="33.8" y1="45.2" y2="45.2" y3="45.2"/>
+ <curve x1="34.02" x2="34.02" x3="34.02" y1="44.39" y2="44.39" y3="44.39"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="43.99" y2="43.99" y3="43.99"/>
+ <curve x1="36.01" x2="36.01" x3="36.01" y1="44.21" y2="44.21" y3="44.21"/>
+ <curve x1="36.41" x2="36.41" x3="36.41" y1="44.21" y2="44.21" y3="44.21"/>
+ <curve x1="37" x2="37" x3="37" y1="42.81" y2="42.81" y3="42.81"/>
+ <curve x1="38.8" x2="38.8" x3="38.8" y1="42" y2="42" y3="42"/>
+ <curve x1="39.39" x2="39.39" x3="39.39" y1="43.4" y2="43.4" y3="43.4"/>
+ <curve x1="40.2" x2="40.2" x3="40.2" y1="43.22" y2="43.22" y3="43.22"/>
+ <curve x1="40.83" x2="40.83" x3="40.83" y1="41.42" y2="41.42" y3="41.42"/>
+ <line x="40.83" y="41.19"/>
+ <close/>
+ <move x="47.01" y="35.78"/>
+ <curve x1="46.6" x2="47.01" x3="47.82" y1="35.01" y2="34.2" y3="33.79"/>
+ <curve x1="48.63" x2="49.63" x3="49.81" y1="33.61" y2="33.79" y3="34.61"/>
+ <curve x1="50.03" x2="49.81" x3="48.99" y1="35.42" y2="36.18" y3="36.59"/>
+ <curve x1="48.23" x2="47.42" x3="47.01" y1="37" y2="36.59" y3="35.78"/>
+ <close/>
+ <move x="19.59" y="42"/>
+ <curve x1="17.2" x2="17.2" x3="17.2" y1="45.43" y2="45.43" y3="45.43"/>
+ <curve x1="15.62" x2="15.62" x3="15.62" y1="43.81" y2="43.81" y3="43.81"/>
+ <curve x1="15.22" x2="14.81" x3="14.81" y1="43.63" y2="43.63" y3="43.99"/>
+ <curve x1="14.41" x2="14.41" x3="14.81" y1="44.21" y2="44.62" y3="44.8"/>
+ <curve x1="16.8" x2="16.8" x3="16.8" y1="46.83" y2="46.83" y3="46.83"/>
+ <curve x1="16.8" x2="17.2" x3="17.2" y1="46.83" y2="46.83" y3="46.83"/>
+ <curve x1="17.2" x2="17.2" x3="17.2" y1="46.83" y2="46.83" y3="46.83"/>
+ <curve x1="17.38" x2="17.61" x3="17.61" y1="46.83" y2="46.83" y3="46.6"/>
+ <curve x1="20.58" x2="20.58" x3="20.58" y1="42.59" y2="42.59" y3="42.59"/>
+ <curve x1="20.81" x2="20.81" x3="20.4" y1="42.59" y2="42.18" y3="42"/>
+ <curve x1="20.22" x2="19.82" x3="19.59" y1="41.82" y2="42" y3="42"/>
+ <close/>
+ <move x="49.81" y="55.44"/>
+ <curve x1="47.19" x2="47.19" x3="47.19" y1="58.82" y2="58.82" y3="58.82"/>
+ <curve x1="45.61" x2="45.61" x3="45.61" y1="57.24" y2="57.24" y3="57.24"/>
+ <curve x1="45.43" x2="45.03" x3="44.8" y1="57.02" y2="57.02" y3="57.24"/>
+ <curve x1="44.62" x2="44.62" x3="44.8" y1="57.24" y2="57.83" y3="58.01"/>
+ <curve x1="46.83" x2="46.83" x3="46.83" y1="59.81" y2="59.81" y3="59.81"/>
+ <curve x1="47.01" x2="47.19" x3="47.42" y1="60.04" y2="60.22" y3="60.22"/>
+ <curve x1="47.42" x2="47.42" x3="47.42" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="47.42" x2="47.6" x3="47.82" y1="60.22" y2="60.04" y3="59.81"/>
+ <curve x1="50.62" x2="50.62" x3="50.62" y1="56.03" y2="56.03" y3="56.03"/>
+ <curve x1="50.8" x2="50.8" x3="50.62" y1="55.62" y2="55.44" y3="55.22"/>
+ <curve x1="50.39" x2="50.03" x3="49.81" y1="55.03" y2="55.03" y3="55.44"/>
+ <close/>
+ <move x="30.01" y="19.36"/>
+ <curve x1="27.62" x2="27.62" x3="27.62" y1="22.57" y2="22.57" y3="22.57"/>
+ <curve x1="25.81" x2="25.81" x3="25.81" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="25.59" x2="25.41" x3="25" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="24.82" x2="24.82" x3="25.23" y1="21.39" y2="21.8" y3="21.8"/>
+ <curve x1="27.21" x2="27.21" x3="27.21" y1="23.96" y2="23.96" y3="23.96"/>
+ <curve x1="27.39" x2="27.39" x3="27.8" y1="24.19" y2="24.19" y3="24.19"/>
+ <curve x1="27.8" x2="28.02" x3="28.02" y1="24.19" y2="23.96" y3="23.96"/>
+ <curve x1="31" x2="31" x3="31" y1="20" y2="20" y3="20"/>
+ <curve x1="31.23" x2="31.23" x3="30.82" y1="19.77" y2="19.36" y3="19.18"/>
+ <curve x1="30.59" x2="30.19" x3="30.01" y1="18.96" y2="19.18" y3="19.36"/>
+ <close/>
+ <move x="36.59" y="52.82"/>
+ <curve x1="36.82" x2="37" x3="37.4" y1="52.6" y2="52.6" y3="52.82"/>
+ <curve x1="37.63" x2="37.63" x3="37.4" y1="53.01" y2="53.41" y3="53.64"/>
+ <curve x1="36.01" x2="35.83" x3="35.83" y1="55.03" y2="55.22" y3="55.22"/>
+ <curve x1="37.22" x2="37.4" x3="37.4" y1="56.43" y2="56.84" y3="56.84"/>
+ <curve x1="37.63" x2="37.63" x3="37.4" y1="57.02" y2="57.24" y3="57.61"/>
+ <curve x1="37" x2="36.82" x3="36.59" y1="57.83" y2="57.83" y3="57.61"/>
+ <curve x1="35.19" x2="35.01" x3="35.01" y1="56.21" y2="56.03" y3="56.03"/>
+ <curve x1="33.62" x2="33.39" x3="33.39" y1="57.24" y2="57.61" y3="57.61"/>
+ <curve x1="33.03" x2="32.8" x3="32.62" y1="57.83" y2="57.83" y3="57.61"/>
+ <curve x1="32.4" x2="32.4" x3="32.62" y1="57.24" y2="57.02" y3="56.84"/>
+ <curve x1="34.02" x2="34.2" x3="34.2" y1="55.44" y2="55.22" y3="55.22"/>
+ <curve x1="32.8" x2="32.62" x3="32.62" y1="53.82" y2="53.64" y3="53.64"/>
+ <curve x1="32.4" x2="32.4" x3="32.62" y1="53.41" y2="53.01" y3="52.82"/>
+ <curve x1="32.8" x2="33.03" x3="33.39" y1="52.6" y2="52.6" y3="52.82"/>
+ <curve x1="34.79" x2="35.01" x3="35.01" y1="54.22" y2="54.4" y3="54.4"/>
+ <line x="36.59" y="52.82"/>
+ <close/>
+ <move x="65.63" y="40.2"/>
+ <curve x1="65.81" x2="66.22" x3="66.4" y1="40.02" y2="40.02" y3="40.2"/>
+ <curve x1="66.63" x2="66.63" x3="66.4" y1="40.42" y2="40.78" y3="41.01"/>
+ <curve x1="65" x2="64.82" x3="64.82" y1="42.41" y2="42.59" y3="42.59"/>
+ <curve x1="66.22" x2="66.4" x3="66.4" y1="43.99" y2="44.21" y3="44.21"/>
+ <curve x1="66.63" x2="66.63" x3="66.4" y1="44.21" y2="44.8" y3="45.02"/>
+ <curve x1="66.22" x2="65.81" x3="65.63" y1="45.02" y2="45.02" y3="45.02"/>
+ <curve x1="64.24" x2="64.24" x3="64.24" y1="43.4" y2="43.4" y3="43.4"/>
+ <curve x1="62.61" x2="62.61" x3="62.61" y1="44.8" y2="45.02" y3="45.02"/>
+ <curve x1="62.21" x2="61.8" x3="61.8" y1="45.02" y2="45.02" y3="45.02"/>
+ <curve x1="61.4" x2="61.4" x3="61.8" y1="44.8" y2="44.21" y3="44.21"/>
+ <curve x1="63.02" x2="63.42" x3="63.42" y1="42.59" y2="42.59" y3="42.59"/>
+ <curve x1="61.8" x2="61.8" x3="61.8" y1="41.19" y2="41.01" y3="41.01"/>
+ <curve x1="61.4" x2="61.4" x3="61.8" y1="40.78" y2="40.42" y3="40.2"/>
+ <curve x1="61.8" x2="62.21" x3="62.61" y1="40.02" y2="40.02" y3="40.2"/>
+ <curve x1="63.83" x2="64.24" x3="64.24" y1="41.6" y2="41.82" y3="41.82"/>
+ <line x="65.63" y="40.2"/>
+ <close/>
+ <move x="53.41" y="20.18"/>
+ <curve x1="53.59" x2="54" x3="54.23" y1="20" y2="20" y3="20.18"/>
+ <curve x1="54.41" x2="54.41" x3="54.23" y1="20.4" y2="20.76" y3="20.99"/>
+ <curve x1="52.83" x2="52.6" x3="52.6" y1="22.39" y2="22.57" y3="22.57"/>
+ <curve x1="54" x2="54.23" x3="54.23" y1="23.96" y2="24.19" y3="24.19"/>
+ <curve x1="54.41" x2="54.41" x3="54.23" y1="24.37" y2="24.78" y3="25"/>
+ <curve x1="54" x2="53.59" x3="53.41" y1="25.18" y2="25.18" y3="25"/>
+ <curve x1="52.02" x2="52.02" x3="52.02" y1="23.38" y2="23.38" y3="23.38"/>
+ <curve x1="50.39" x2="50.39" x3="50.39" y1="24.78" y2="25" y3="25"/>
+ <curve x1="50.03" x2="49.81" x3="49.63" y1="25.18" y2="25.18" y3="25"/>
+ <curve x1="49.22" x2="49.22" x3="49.63" y1="24.78" y2="24.37" y3="24.19"/>
+ <curve x1="50.8" x2="51.2" x3="51.2" y1="22.79" y2="22.57" y3="22.57"/>
+ <curve x1="49.63" x2="49.63" x3="49.63" y1="21.17" y2="20.99" y3="20.99"/>
+ <curve x1="49.22" x2="49.22" x3="49.63" y1="20.76" y2="20.4" y3="20.18"/>
+ <curve x1="49.81" x2="50.03" x3="50.39" y1="20" y2="20" y3="20.18"/>
+ <curve x1="51.61" x2="52.02" x3="52.02" y1="21.57" y2="21.8" y3="21.8"/>
+ <line x="53.41" y="20.18"/>
+ <close/>
+ <move x="52.6" y="56.03"/>
+ <curve x1="52.42" x2="52.02" x3="51.2" y1="55.03" y2="54.22" y3="53.41"/>
+ <curve x1="54" x2="57.2" x3="60" y1="50.21" y2="47.59" y3="45.61"/>
+ <curve x1="61.03" x2="62.43" x3="64.24" y1="46.83" y2="47.59" y3="47.59"/>
+ <curve x1="66.81" x2="69.02" x3="69.02" y1="47.59" y2="45.2" y3="42.59"/>
+ <curve x1="69.02" x2="68.84" x3="68.43" y1="41.6" y2="40.78" y3="40.02"/>
+ <curve x1="68.43" x2="68.61" x3="68.61" y1="40.02" y2="39.79" y3="39.79"/>
+ <curve x1="68.84" x2="69.02" x3="69.42" y1="40.2" y2="40.42" y3="40.78"/>
+ <curve x1="69.2" x2="68.02" x3="66.22" y1="45.2" y2="49.4" y3="53.23"/>
+ <curve x1="61.4" x2="56.8" x3="52.6" y1="55.03" y2="55.8" y3="56.03"/>
+ <close/>
+ <move x="40.61" y="69.24"/>
+ <curve x1="41.82" x2="43.4" x3="45.03" y1="66.44" y2="63.83" y3="61.44"/>
+ <curve x1="45.79" x2="46.83" x3="48" y1="62.02" y2="62.43" y3="62.43"/>
+ <curve x1="50.62" x2="53.01" x3="53.01" y1="62.43" y2="60.22" y3="57.42"/>
+ <curve x1="53.01" x2="53.01" x3="53.01" y1="56.84" y2="56.84" y3="56.84"/>
+ <curve x1="56.8" x2="61.22" x3="65.63" y1="56.61" y2="55.8" y3="54.22"/>
+ <curve x1="60.81" x2="51.43" x3="40.61" y1="63.02" y2="69.24" y3="69.24"/>
+ <close/>
+ <move x="39.79" y="69.24"/>
+ <curve x1="36.59" x2="33.21" x3="30.19" y1="69.24" y2="68.65" y3="67.62"/>
+ <curve x1="31.41" x2="33.8" x3="36.59" y1="66.44" y2="63.65" y3="59.81"/>
+ <curve x1="38.4" x2="39.61" x3="40.02" y1="59.41" y2="58.01" y3="56.03"/>
+ <curve x1="40.83" x2="41.82" x3="43" y1="56.21" y2="56.43" y3="56.43"/>
+ <curve x1="42.82" x2="42.82" x3="42.82" y1="56.84" y2="57.24" y3="57.42"/>
+ <curve x1="42.82" x2="43.4" x3="44.39" y1="58.82" y2="60.04" y3="60.81"/>
+ <curve x1="42.59" x2="41.01" x3="39.79" y1="63.65" y2="66.22" y3="69.24"/>
+ <close/>
+ <move x="19.19" y="60.45"/>
+ <curve x1="23.42" x2="27.39" x3="31" y1="60.04" y2="59.23" y3="58.01"/>
+ <curve x1="31.81" x2="33.39" x3="35.01" y1="59.41" y2="60.22" y3="60.22"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="32.62" x2="30.41" x3="29.42" y1="63.83" y2="66.22" y3="67.44"/>
+ <curve x1="25.41" x2="22.03" x3="19.19" y1="65.81" y2="63.42" y3="60.45"/>
+ <close/>
+ <move x="17.38" y="58.64"/>
+ <curve x1="17.38" x2="17.61" x3="18.01" y1="55.22" y2="52.19" y3="49.22"/>
+ <curve x1="19.59" x2="20.81" x3="21.62" y1="49.22" y2="48.41" y3="47.19"/>
+ <curve x1="24.19" x2="27.21" x3="30.59" y1="49.22" y2="51.2" y3="52.82"/>
+ <curve x1="30.19" x2="30.01" x3="30.01" y1="53.64" y2="54.4" y3="55.22"/>
+ <curve x1="30.01" x2="30.19" x3="30.59" y1="56.03" y2="56.84" y3="57.42"/>
+ <curve x1="26.99" x2="23.02" x3="18.42" y1="58.64" y2="59.41" y3="59.63"/>
+ <curve x1="18.19" x2="17.79" x3="17.38" y1="59.41" y2="58.82" y3="58.64"/>
+ <close/>
+ <move x="11.02" y="40.02"/>
+ <curve x1="11.02" x2="11.02" x3="11.2" y1="38.62" y2="37" y3="35.6"/>
+ <curve x1="12.02" x2="13.19" x3="14.81" y1="36.82" y2="38.39" y3="40.42"/>
+ <curve x1="13.41" x2="12.78" x3="12.78" y1="41.19" y2="42.59" y3="44.21"/>
+ <curve x1="12.78" x2="14.81" x3="17.2" y1="46.83" y2="48.81" y3="49.22"/>
+ <curve x1="16.8" x2="16.62" x3="16.62" y1="51.83" y2="54.63" y3="57.61"/>
+ <curve x1="13.19" x2="11.02" x3="11.02" y1="52.6" y2="46.6" y3="40.02"/>
+ <close/>
+ <move x="15.98" y="23.38"/>
+ <curve x1="17.61" x2="20.22" x3="23.2" y1="22.97" y2="22.39" y3="21.8"/>
+ <curve x1="23.2" x2="24.19" x3="25.59" y1="23.38" y2="24.78" y3="25.77"/>
+ <curve x1="23.2" x2="20.81" x3="19.19" y1="29.38" y2="33.79" y3="39.39"/>
+ <curve x1="18.82" x2="18.19" x3="17.79" y1="39.39" y2="39.21" y3="39.21"/>
+ <curve x1="16.8" x2="15.98" x3="15.4" y1="39.21" y2="39.39" y3="39.79"/>
+ <curve x1="13.41" x2="12.2" x3="11.61" y1="37.58" y2="35.6" y3="34.38"/>
+ <curve x1="12.42" x2="14" x3="15.98" y1="30.41" y2="26.8" y3="23.38"/>
+ <close/>
+ <move x="22.03" y="17.15"/>
+ <curve x1="22.39" x2="23.2" x3="24.01" y1="17.56" y2="17.97" y3="18.78"/>
+ <curve x1="23.61" x2="23.2" x3="23.2" y1="19.36" y2="20.18" y3="20.99"/>
+ <curve x1="20.58" x2="18.42" x3="16.8" y1="21.39" y2="21.8" y3="22.39"/>
+ <curve x1="18.42" x2="20.22" x3="22.03" y1="20.4" y2="18.78" y3="17.15"/>
+ <close/>
+ <move x="39.21" y="10.98"/>
+ <curve x1="37.4" x2="34.61" x3="31.59" y1="12.15" y2="14.58" y3="17.79"/>
+ <curve x1="30.59" x2="29.6" x3="28.2" y1="16.97" y2="16.39" y3="16.39"/>
+ <curve x1="26.63" x2="25.41" x3="24.42" y1="16.39" y2="16.97" y3="18.19"/>
+ <curve x1="23.79" x2="23.2" x3="22.61" y1="17.56" y2="16.97" y3="16.57"/>
+ <curve x1="27.39" x2="33.03" x3="39.21" y1="13.19" y2="11.16" y3="10.98"/>
+ <close/>
+ <move x="40.61" y="10.98"/>
+ <curve x1="44.39" x2="48.23" x3="51.61" y1="10.98" y2="11.79" y3="13.19"/>
+ <curve x1="51.61" x2="51.61" x3="51.61" y1="14.58" y2="16.16" y3="17.56"/>
+ <curve x1="48.99" x2="46.83" x3="46.83" y1="17.79" y2="19.77" y3="22.57"/>
+ <curve x1="42.41" x2="37.99" x3="34.43" y1="20.99" y2="20.4" y3="20.18"/>
+ <curve x1="33.8" x2="33.62" x3="33.03" y1="20.18" y2="20.18" y3="20.18"/>
+ <curve x1="33.03" x2="32.62" x3="32.22" y1="19.59" y2="18.96" y3="18.37"/>
+ <curve x1="35.83" x2="38.8" x3="40.61" y1="14.58" y2="12.15" y3="10.98"/>
+ <close/>
+ <move x="61.8" y="20.4"/>
+ <curve x1="61.4" x2="61.03" x3="59.64" y1="21.98" y2="25.18" y3="29.38"/>
+ <curve x1="58.01" x2="56.62" x3="54.99" y1="28.2" y2="27.39" y3="26.4"/>
+ <curve x1="56.21" x2="57.02" x3="57.02" y1="25.59" y2="24.19" y3="22.57"/>
+ <curve x1="57.02" x2="54.99" x3="52.42" y1="20" y2="17.79" y3="17.56"/>
+ <curve x1="52.42" x2="52.42" x3="52.42" y1="16.16" y2="14.99" y3="13.59"/>
+ <curve x1="55.8" x2="59.01" x3="61.8" y1="15.4" y2="17.79" y3="20.4"/>
+ <close/>
+ <move x="20" y="39.61"/>
+ <curve x1="21.62" x2="24.01" x3="26.22" y1="34.38" y2="29.78" y3="25.99"/>
+ <curve x1="26.99" x2="27.62" x3="28.2" y1="26.17" y2="26.58" y3="26.58"/>
+ <curve x1="28.79" x2="29.42" x3="30.01" y1="26.58" y2="26.17" y3="25.99"/>
+ <curve x1="31.99" x2="33.8" x3="35.42" y1="28.97" y2="32.4" y3="36.82"/>
+ <curve x1="36.01" x2="36.01" x3="36.01" y1="36.41" y2="36.41" y3="36.41"/>
+ <curve x1="34.61" x2="32.62" x3="30.82" y1="31.99" y2="28.38" y3="25.77"/>
+ <curve x1="32.22" x2="33.21" x3="33.21" y1="25" y2="23.2" y3="21.39"/>
+ <curve x1="33.21" x2="33.21" x3="33.21" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="33.62" x2="33.8" x3="34.2" y1="20.99" y2="20.99" y3="20.99"/>
+ <curve x1="37.99" x2="42.41" x3="46.83" y1="20.99" y2="21.8" y3="23.38"/>
+ <curve x1="47.42" x2="48.81" x3="50.62" y1="25.41" y2="26.8" y3="27.39"/>
+ <curve x1="50.39" x2="50.39" x3="50.39" y1="27.98" y2="28.61" y3="29.19"/>
+ <curve x1="50.39" x2="50.8" x3="51.02" y1="29.19" y2="29.38" y3="29.6"/>
+ <curve x1="51.2" x2="51.2" x3="51.43" y1="28.97" y2="28.2" y3="27.57"/>
+ <curve x1="52.02" x2="52.02" x3="52.02" y1="27.57" y2="27.57" y3="27.57"/>
+ <curve x1="52.83" x2="53.82" x3="54.41" y1="27.57" y2="27.39" y3="26.8"/>
+ <curve x1="56.03" x2="57.83" x3="59.41" y1="27.8" y2="28.97" y3="30.19"/>
+ <curve x1="58.19" x2="57.02" x3="54.99" y1="32.8" y2="36" y3="38.8"/>
+ <curve x1="52.2" x2="48" x3="41.19" y1="43.4" y2="48.63" y3="52.82"/>
+ <curve x1="41.6" x2="41.82" x3="42" y1="52.42" y2="51.83" y3="51.43"/>
+ <curve x1="43.4" x2="44.39" x3="45.79" y1="49.22" y2="47.01" y3="44.62"/>
+ <curve x1="45.43" x2="45.21" x3="44.8" y1="44.62" y2="44.62" y3="44.39"/>
+ <curve x1="43.63" x2="42.59" x3="41.42" y1="46.83" y2="48.99" y3="51.02"/>
+ <curve x1="40.83" x2="40.43" x3="39.79" y1="51.83" y2="52.82" y3="53.64"/>
+ <curve x1="39.79" x2="39.79" x3="39.79" y1="53.64" y2="53.64" y3="53.64"/>
+ <curve x1="39.61" x2="39.61" x3="39.39" y1="53.41" y2="53.01" y3="52.82"/>
+ <curve x1="39.21" x2="39.03" x3="38.62" y1="50.21" y2="48" y3="45.79"/>
+ <curve x1="37.99" x2="37.99" x3="37.99" y1="44.8" y2="44.8" y3="44.8"/>
+ <curve x1="37.81" x2="37.81" x3="37.81" y1="45.61" y2="45.61" y3="45.61"/>
+ <curve x1="37.63" x2="37.63" x3="37.63" y1="45.61" y2="45.61" y3="45.61"/>
+ <curve x1="37.99" x2="38.4" x3="38.4" y1="47.59" y2="49.4" y3="51.61"/>
+ <curve x1="37.63" x2="36.41" x3="35.01" y1="50.8" y2="50.21" y3="50.21"/>
+ <curve x1="33.39" x2="31.81" x3="31" y1="50.21" y2="51.02" y3="52.19"/>
+ <curve x1="27.62" x2="24.6" x3="22.21" y1="50.62" y2="48.63" y3="46.6"/>
+ <curve x1="22.61" x2="22.79" x3="22.79" y1="46.02" y2="45.02" y3="44.21"/>
+ <curve x1="22.79" x2="21.62" x3="20" y1="42.18" y2="40.42" y3="39.61"/>
+ <close/>
+ <move x="67.8" y="39.39"/>
+ <curve x1="67.03" x2="65.63" x3="64.24" y1="38.21" y2="37.4" y3="37.4"/>
+ <curve x1="61.22" x2="59.01" x3="59.01" y1="37.4" y2="39.79" y3="42.59"/>
+ <curve x1="59.01" x2="59.23" x3="59.64" y1="43.4" y2="44.21" y3="44.8"/>
+ <curve x1="56.62" x2="53.41" x3="50.39" y1="47.01" y2="49.8" y3="53.01"/>
+ <curve x1="49.63" x2="48.99" x3="48" y1="52.6" y2="52.42" y3="52.42"/>
+ <curve x1="45.79" x2="43.81" x3="43.22" y1="52.42" y2="53.82" y3="55.62"/>
+ <curve x1="41.82" x2="40.83" x3="40.02" y1="55.62" y2="55.44" y3="55.22"/>
+ <curve x1="40.02" x2="40.02" x3="40.02" y1="55.22" y2="55.22" y3="55.22"/>
+ <curve x1="40.02" x2="40.02" x3="40.02" y1="54.81" y2="54.81" y3="54.81"/>
+ <curve x1="40.02" x2="40.2" x3="40.43" y1="54.63" y2="54.4" y3="54.22"/>
+ <curve x1="48" x2="52.6" x3="55.8" y1="50.03" y2="44.21" y3="39.39"/>
+ <curve x1="57.61" x2="59.01" x3="59.82" y1="36.18" y2="33.39" y3="30.59"/>
+ <curve x1="62.79" x2="65.63" x3="68.2" y1="32.98" y2="35.78" y3="39.39"/>
+ <curve x1="68.02" x2="68.02" x3="67.8" y1="39.39" y2="39.39" y3="39.39"/>
+ <close/>
+ <move x="69.2" y="38.62"/>
+ <curve x1="69.2" x2="69.02" x3="68.84" y1="38.8" y2="38.8" y3="38.8"/>
+ <curve x1="66" x2="63.2" x3="60.22" y1="35.19" y2="32.17" y3="29.78"/>
+ <curve x1="61.4" x2="62.03" x3="62.43" y1="26.17" y2="23.2" y3="21.17"/>
+ <curve x1="66.4" x2="68.84" x3="69.2" y1="25.99" y2="31.99" y3="38.62"/>
+ <close/>
+ <move x="40.02" y="7.95"/>
+ <curve x1="22.39" x2="8" x3="8" y1="7.95" y2="22.57" y3="40.02"/>
+ <curve x1="8" x2="22.39" x3="40.02" y1="57.83" y2="72.04" y3="72.04"/>
+ <curve x1="57.83" x2="72.04" x3="72.04" y1="72.04" y2="57.83" y3="40.02"/>
+ <curve x1="72.04" x2="57.83" x3="40.02" y1="22.57" y2="7.95" y3="7.95"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.99" x3="40" y1="17.9" y2="0" y3="0"/>
+ <curve x1="62.23" x2="80" x3="80" y1="0" y2="17.9" y3="40"/>
+ <curve x1="80" x2="62.23" x3="40" y1="62.28" y2="80" y3="80"/>
+ <curve x1="17.99" x2="0" x3="0" y1="80" y2="62.28" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="routing" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ <move x="61.75" y="33.59"/>
+ <curve x1="62.92" x2="63.96" x3="63.96" y1="33.59" y2="32.6" y3="31.39"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="19" y2="19" y3="19"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="19" y2="19" y3="18.82"/>
+ <curve x1="63.96" x2="63.73" x3="63.33" y1="18.19" y2="17.6" y3="17.2"/>
+ <curve x1="62.92" x2="62.92" x3="62.92" y1="16.79" y2="16.79" y3="16.79"/>
+ <curve x1="62.56" x2="62.16" x3="61.53" y1="16.39" y2="16.21" y3="16.21"/>
+ <curve x1="61.35" x2="61.17" x3="60.94" y1="15.98" y2="15.98" y3="15.98"/>
+ <curve x1="48.55" x2="48.55" x3="48.55" y1="15.98" y2="15.98" y3="15.98"/>
+ <curve x1="47.34" x2="46.35" x3="46.35" y1="15.98" y2="17.2" y3="18.19"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="18.59" y2="18.59" y3="18.59"/>
+ <curve x1="46.35" x2="47.34" x3="48.55" y1="19.99" y2="20.8" y3="20.8"/>
+ <curve x1="55.94" x2="55.94" x3="55.94" y1="20.8" y2="20.8" y3="20.8"/>
+ <curve x1="43.55" x2="43.55" x3="43.55" y1="33.41" y2="33.41" y3="33.41"/>
+ <curve x1="42.74" x2="42.74" x3="43.55" y1="34" y2="35.62" y3="36.39"/>
+ <curve x1="43.78" x2="43.78" x3="43.78" y1="36.61" y2="36.61" y3="36.61"/>
+ <curve x1="44.54" x2="45.94" x3="46.98" y1="37.42" y2="37.42" y3="36.61"/>
+ <curve x1="59.14" x2="59.14" x3="59.14" y1="24.4" y2="24.4" y3="24.4"/>
+ <curve x1="59.14" x2="59.14" x3="59.14" y1="31.39" y2="31.39" y3="31.39"/>
+ <curve x1="59.14" x2="60.13" x3="61.35" y1="32.6" y2="33.59" y3="33.59"/>
+ <line x="61.75" y="33.59"/>
+ <close/>
+ <move x="33.78" y="61.39"/>
+ <curve x1="33.78" x2="32.56" x3="31.39" y1="60.22" y2="59.4" y3="59.4"/>
+ <curve x1="24.36" x2="24.36" x3="24.36" y1="59.4" y2="59.4" y3="59.4"/>
+ <curve x1="36.57" x2="36.57" x3="36.57" y1="47.02" y2="47.02" y3="47.02"/>
+ <curve x1="37.56" x2="37.56" x3="36.57" y1="45.98" y2="44.81" y3="43.82"/>
+ <curve x1="36.35" x2="36.35" x3="36.35" y1="43.59" y2="43.59" y3="43.59"/>
+ <curve x1="35.58" x2="34.18" x3="33.19" y1="42.6" y2="42.6" y3="43.59"/>
+ <curve x1="20.99" x2="20.99" x3="20.99" y1="55.98" y2="55.98" y3="55.98"/>
+ <curve x1="20.99" x2="20.99" x3="20.99" y1="48.59" y2="48.59" y3="48.59"/>
+ <curve x1="20.99" x2="19.99" x3="18.6" y1="47.42" y2="46.61" y3="46.61"/>
+ <curve x1="18.37" x2="18.37" x3="18.37" y1="46.61" y2="46.61" y3="46.61"/>
+ <curve x1="17.2" x2="15.99" x3="15.99" y1="46.61" y2="47.42" y3="48.59"/>
+ <curve x1="15.99" x2="15.99" x3="15.99" y1="61.21" y2="61.21" y3="61.21"/>
+ <curve x1="15.99" x2="16.17" x3="16.17" y1="61.21" y2="61.39" y3="61.79"/>
+ <curve x1="16.17" x2="16.39" x3="16.8" y1="62.2" y2="62.78" y3="63.19"/>
+ <curve x1="17.2" x2="17.2" x3="17.2" y1="63.41" y2="63.41" y3="63.41"/>
+ <curve x1="17.56" x2="18.19" x3="19" y1="63.82" y2="64" y3="64"/>
+ <curve x1="19" x2="19" x3="19.18" y1="64" y2="64" y3="64"/>
+ <curve x1="31.39" x2="31.39" x3="31.39" y1="64" y2="64" y3="64"/>
+ <curve x1="32.56" x2="33.78" x3="33.78" y1="64" y2="63.01" y3="62.02"/>
+ <line x="33.78" y="61.39"/>
+ <close/>
+ <move x="60.13" y="44.81"/>
+ <curve x1="60.13" x2="59.14" x3="58.15" y1="43.82" y2="42.6" y3="42.6"/>
+ <curve x1="45.58" x2="45.58" x3="45.58" y1="42.6" y2="42.6" y3="42.6"/>
+ <curve x1="45.58" x2="45.58" x3="45.36" y1="42.6" y2="42.6" y3="42.6"/>
+ <curve x1="44.77" x2="44.14" x3="43.78" y1="42.6" y2="43.01" y3="43.41"/>
+ <curve x1="43.37" x2="43.37" x3="43.37" y1="43.59" y2="43.59" y3="43.59"/>
+ <curve x1="42.97" x2="42.74" x3="42.74" y1="44" y2="44.58" y3="44.99"/>
+ <curve x1="42.74" x2="42.74" x3="42.74" y1="45.4" y2="45.62" y3="45.62"/>
+ <curve x1="42.74" x2="42.74" x3="42.74" y1="58.01" y2="58.01" y3="58.01"/>
+ <curve x1="42.74" x2="43.55" x3="44.77" y1="59.4" y2="60.22" y3="60.22"/>
+ <curve x1="45.36" x2="45.36" x3="45.36" y1="60.22" y2="60.22" y3="60.22"/>
+ <curve x1="46.35" x2="47.34" x3="47.34" y1="60.22" y2="59.4" y3="58.01"/>
+ <curve x1="47.34" x2="47.34" x3="47.34" y1="50.8" y2="50.8" y3="50.8"/>
+ <curve x1="59.95" x2="59.95" x3="59.95" y1="63.19" y2="63.19" y3="63.19"/>
+ <curve x1="60.76" x2="61.93" x3="62.92" y1="64" y2="64" y3="63.19"/>
+ <curve x1="63.33" x2="63.33" x3="63.33" y1="63.01" y2="63.01" y3="63.01"/>
+ <curve x1="63.96" x2="63.96" x3="63.33" y1="62.02" y2="60.62" y3="59.99"/>
+ <curve x1="50.94" x2="50.94" x3="50.94" y1="47.42" y2="47.42" y3="47.42"/>
+ <curve x1="58.15" x2="58.15" x3="58.15" y1="47.42" y2="47.42" y3="47.42"/>
+ <curve x1="59.14" x2="60.13" x3="60.13" y1="47.42" y2="46.61" y3="45.4"/>
+ <line x="60.13" y="44.81"/>
+ <close/>
+ <move x="35.58" y="20.22"/>
+ <line x="34.95" y="20.22"/>
+ <curve x1="33.96" x2="32.97" x3="32.97" y1="20.22" y2="20.98" y3="22.42"/>
+ <curve x1="32.97" x2="32.97" x3="32.97" y1="22.42" y2="22.42" y3="29.4"/>
+ <curve x1="32.97" x2="32.97" x3="20.58" y1="29.4" y2="29.4" y3="17.2"/>
+ <curve x1="19.77" x2="18.37" x3="17.56" y1="16.21" y2="16.21" y3="17.2"/>
+ <curve x1="17.56" x2="17.56" x3="17.2" y1="17.2" y2="17.2" y3="17.42"/>
+ <curve x1="16.39" x2="16.39" x3="17.2" y1="18.19" y2="19.58" y3="20.62"/>
+ <curve x1="17.2" x2="17.2" x3="29.59" y1="20.62" y2="20.62" y3="32.78"/>
+ <curve x1="29.59" x2="29.59" x3="22.38" y1="32.78" y2="32.78" y3="32.78"/>
+ <curve x1="21.17" x2="20.17" x3="20.17" y1="32.78" y2="33.82" y3="35.22"/>
+ <curve x1="20.17" x2="20.17" x3="20.17" y1="35.22" y2="35.22" y3="35.62"/>
+ <curve x1="20.17" x2="21.17" x3="22.38" y1="36.61" y2="37.78" y3="37.78"/>
+ <curve x1="22.38" x2="22.38" x3="34.77" y1="37.78" y2="37.78" y3="37.78"/>
+ <curve x1="34.95" x2="34.95" x3="35.17" y1="37.78" y2="37.6" y3="37.6"/>
+ <curve x1="35.76" x2="36.35" x3="36.75" y1="37.6" y2="37.42" y3="37.02"/>
+ <curve x1="36.75" x2="36.75" x3="37.16" y1="37.02" y2="37.02" y3="36.61"/>
+ <curve x1="37.56" x2="37.79" x3="37.56" y1="36.21" y2="35.62" y3="34.81"/>
+ <curve x1="37.56" x2="37.56" x3="37.56" y1="34.81" y2="34.81" y3="34.81"/>
+ <curve x1="37.56" x2="37.56" x3="37.56" y1="34.81" y2="34.81" y3="22.42"/>
+ <curve x1="37.56" x2="36.75" x3="35.58" y1="20.98" y2="20.22" y3="20.22"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="server based security" strokewidth="inherit" w="79.95">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="18.34" y="15.73"/>
+ <line x="18.34" y="19.66"/>
+ <line x="31.44" y="19.66"/>
+ <line x="31.44" y="15.73"/>
+ <line x="18.34" y="15.73"/>
+ <close/>
+ <move x="34.07" y="15.73"/>
+ <line x="34.07" y="19.66"/>
+ <line x="47.17" y="19.66"/>
+ <line x="47.17" y="15.73"/>
+ <line x="34.07" y="15.73"/>
+ <close/>
+ <move x="48.49" y="15.73"/>
+ <line x="48.49" y="19.66"/>
+ <line x="61.59" y="19.66"/>
+ <line x="61.59" y="15.73"/>
+ <line x="48.49" y="15.73"/>
+ <close/>
+ <move x="18.34" y="20.98"/>
+ <line x="18.34" y="23.6"/>
+ <line x="23.59" y="23.6"/>
+ <line x="23.59" y="20.98"/>
+ <line x="18.34" y="20.98"/>
+ <close/>
+ <move x="26.21" y="20.98"/>
+ <line x="26.21" y="23.6"/>
+ <line x="39.31" y="23.6"/>
+ <line x="39.31" y="20.98"/>
+ <line x="26.21" y="20.98"/>
+ <close/>
+ <move x="40.63" y="20.98"/>
+ <line x="40.63" y="23.6"/>
+ <line x="53.73" y="23.6"/>
+ <line x="53.73" y="20.98"/>
+ <line x="40.63" y="20.98"/>
+ <close/>
+ <move x="56.35" y="20.98"/>
+ <line x="56.35" y="23.6"/>
+ <line x="61.59" y="23.6"/>
+ <line x="61.59" y="20.98"/>
+ <line x="56.35" y="20.98"/>
+ <close/>
+ <move x="18.34" y="26.22"/>
+ <line x="18.34" y="28.85"/>
+ <line x="27.79" y="28.85"/>
+ <line x="27.79" y="27.49"/>
+ <curve x1="27.79" x2="27.83" x3="31.44" y1="27.49" y2="27.4" y3="26.72"/>
+ <line x="31.44" y="26.22"/>
+ <line x="18.34" y="26.22"/>
+ <close/>
+ <move x="34.07" y="26.22"/>
+ <line x="34.07" y="27.53"/>
+ <curve x1="34.66" x2="35.48" x3="36.7" y1="27.49" y2="27.3" y3="26.9"/>
+ <line x="36.7" y="26.22"/>
+ <line x="34.07" y="26.22"/>
+ <close/>
+ <move x="43.25" y="26.22"/>
+ <line x="43.25" y="26.9"/>
+ <line x="47.18" y="27.53"/>
+ <line x="47.18" y="26.22"/>
+ <line x="43.25" y="26.22"/>
+ <close/>
+ <move x="48.49" y="26.22"/>
+ <line x="48.49" y="26.81"/>
+ <line x="52.42" y="27.53"/>
+ <line x="52.42" y="28.85"/>
+ <line x="61.59" y="28.85"/>
+ <line x="61.59" y="26.22"/>
+ <line x="48.49" y="26.22"/>
+ <close/>
+ <move x="39.99" y="26.26"/>
+ <curve x1="39.09" x2="38.5" x3="38.18" y1="26.48" y2="26.57" y3="26.75"/>
+ <line x="38.18" y="28.11"/>
+ <line x="37.42" y="28.2"/>
+ <line x="37.42" y="28.29"/>
+ <curve x1="34.98" x2="33.85" x3="33.35" y1="28.88" y2="29.1" y3="29.19"/>
+ <line x="32.45" y="29.42"/>
+ <line x="32.35" y="27.97"/>
+ <curve x1="28.92" x2="28.83" x3="28.83" y1="28.69" y2="28.78" y3="28.78"/>
+ <line x="28.83" y="36.55"/>
+ <curve x1="28.83" x2="33.44" x3="39.99" y1="43.78" y2="49.93" y3="52.46"/>
+ <curve x1="46.54" x2="51.1" x3="51.1" y1="49.93" y2="43.78" y3="36.55"/>
+ <line x="51.1" y="28.78"/>
+ <line x="47.85" y="28.06"/>
+ <line x="47.76" y="29.51"/>
+ <line x="47.04" y="29.28"/>
+ <line x="42.61" y="28.29"/>
+ <line x="42.61" y="28.2"/>
+ <line x="41.84" y="28.11"/>
+ <line x="41.84" y="26.75"/>
+ <curve x1="40.03" x2="39.99" x3="39.99" y1="26.25" y2="26.26" y3="26.26"/>
+ <close/>
+ <move x="39.99" y="30.82"/>
+ <curve x1="44.33" x2="46.27" x3="47.26" y1="31.81" y2="32.31" y3="32.49"/>
+ <line x="34.57" y="44.68"/>
+ <curve x1="33.49" x2="32.67" x3="32.26" y1="43.15" y2="41.34" y3="39.36"/>
+ <curve x1="32.04" x2="31.95" x3="31.95" y1="38.45" y2="37.55" y3="36.55"/>
+ <line x="31.95" y="32.71"/>
+ <line x="39.99" y="30.82"/>
+ <close/>
+ <move x="18.34" y="32.78"/>
+ <line x="18.34" y="35.4"/>
+ <line x="27.52" y="35.4"/>
+ <line x="27.52" y="32.78"/>
+ <line x="18.34" y="32.78"/>
+ <close/>
+ <move x="52.42" y="32.78"/>
+ <line x="52.42" y="35.4"/>
+ <line x="61.59" y="35.4"/>
+ <line x="61.59" y="32.78"/>
+ <line x="52.42" y="32.78"/>
+ <close/>
+ <move x="48.07" y="34.2"/>
+ <line x="48.07" y="36.55"/>
+ <curve x1="48.07" x2="47.98" x3="47.76" y1="37.55" y2="38.45" y3="39.36"/>
+ <curve x1="46.94" x2="43.97" x3="39.99" y1="43.6" y2="47.22" y3="49.29"/>
+ <curve x1="38.41" x2="36.96" x3="35.78" y1="48.48" y2="47.3" y3="46.08"/>
+ <line x="48.07" y="34.2"/>
+ <close/>
+ <move x="18.34" y="38.03"/>
+ <line x="18.34" y="40.65"/>
+ <line x="23.59" y="40.65"/>
+ <line x="23.59" y="38.03"/>
+ <line x="18.34" y="38.03"/>
+ <close/>
+ <move x="26.21" y="38.03"/>
+ <line x="26.21" y="40.65"/>
+ <line x="28.83" y="40.65"/>
+ <curve x1="28.65" x2="28.42" x3="28.33" y1="39.83" y2="38.93" y3="38.03"/>
+ <line x="26.21" y="38.03"/>
+ <close/>
+ <move x="51.69" y="38.03"/>
+ <curve x1="51.6" x2="51.42" x3="51.11" y1="38.93" y2="39.83" y3="40.65"/>
+ <line x="53.73" y="40.65"/>
+ <line x="53.73" y="38.03"/>
+ <line x="51.69" y="38.03"/>
+ <close/>
+ <move x="56.35" y="38.03"/>
+ <line x="56.35" y="40.65"/>
+ <line x="61.59" y="40.65"/>
+ <line x="61.59" y="38.03"/>
+ <line x="56.35" y="38.03"/>
+ <close/>
+ <move x="18.34" y="41.97"/>
+ <line x="18.34" y="44.59"/>
+ <line x="30.14" y="44.59"/>
+ <curve x1="29.64" x2="29.14" x3="28.83" y1="43.77" y2="42.87" y3="41.97"/>
+ <line x="18.34" y="41.97"/>
+ <close/>
+ <move x="51.2" y="41.97"/>
+ <curve x1="50.79" x2="50.38" x3="49.8" y1="42.87" y2="43.77" y3="44.59"/>
+ <line x="61.59" y="44.59"/>
+ <line x="61.59" y="41.97"/>
+ <line x="51.2" y="41.97"/>
+ <close/>
+ <move x="18.34" y="49.84"/>
+ <line x="18.34" y="52.46"/>
+ <line x="31.44" y="52.46"/>
+ <line x="31.44" y="49.84"/>
+ <line x="18.34" y="49.84"/>
+ <close/>
+ <move x="34.07" y="49.84"/>
+ <line x="34.07" y="52.46"/>
+ <line x="36.7" y="52.46"/>
+ <curve x1="35.79" x2="34.88" x3="34.07" y1="51.73" y2="50.83" y3="49.84"/>
+ <close/>
+ <move x="47.18" y="49.84"/>
+ <curve x1="45.96" x2="44.74" x3="43.25" y1="50.83" y2="51.73" y3="52.46"/>
+ <line x="47.18" y="52.46"/>
+ <line x="47.18" y="49.84"/>
+ <close/>
+ <move x="48.49" y="49.84"/>
+ <line x="48.49" y="52.46"/>
+ <line x="61.59" y="52.46"/>
+ <line x="61.59" y="49.84"/>
+ <line x="48.49" y="49.84"/>
+ <close/>
+ <move x="18.34" y="53.77"/>
+ <line x="18.34" y="56.39"/>
+ <line x="23.59" y="56.39"/>
+ <line x="23.59" y="53.77"/>
+ <line x="18.34" y="53.77"/>
+ <close/>
+ <move x="26.21" y="53.77"/>
+ <line x="26.21" y="56.39"/>
+ <line x="39.31" y="56.39"/>
+ <line x="39.31" y="53.77"/>
+ <line x="26.21" y="53.77"/>
+ <close/>
+ <move x="40.63" y="53.77"/>
+ <line x="40.63" y="56.39"/>
+ <line x="53.73" y="56.39"/>
+ <line x="53.73" y="53.77"/>
+ <line x="40.63" y="53.77"/>
+ <close/>
+ <move x="56.35" y="53.77"/>
+ <line x="56.35" y="56.39"/>
+ <line x="61.59" y="56.39"/>
+ <line x="61.59" y="53.77"/>
+ <line x="56.35" y="53.77"/>
+ <close/>
+ <move x="18.34" y="59.01"/>
+ <line x="18.34" y="61.64"/>
+ <line x="31.44" y="61.64"/>
+ <line x="31.44" y="59.01"/>
+ <line x="18.34" y="59.01"/>
+ <close/>
+ <move x="34.07" y="59.01"/>
+ <line x="34.07" y="61.64"/>
+ <line x="47.17" y="61.64"/>
+ <line x="47.17" y="59.01"/>
+ <line x="34.07" y="59.01"/>
+ <close/>
+ <move x="48.49" y="59.01"/>
+ <line x="48.49" y="61.64"/>
+ <line x="61.59" y="61.64"/>
+ <line x="61.59" y="59.01"/>
+ <line x="48.49" y="59.01"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.93" x3="39.98" y1="17.98" y2="0" y3="0"/>
+ <curve x1="62.07" x2="79.95" x3="79.95" y1="0" y2="17.98" y3="40.02"/>
+ <curve x1="79.95" x2="62.07" x3="39.98" y1="62.16" y2="80" y3="80"/>
+ <curve x1="17.93" x2="0" x3="0" y1="80" y2="62.16" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="78.8" name="ssl tls offload" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.52" y="16.8"/>
+ <curve x1="36.2" x2="33.06" x3="30.8" y1="16.8" y2="18.17" y3="20.61"/>
+ <curve x1="28.54" x2="27.17" x3="27.17" y1="22.96" y2="26.1" y3="29.55"/>
+ <curve x1="27.17" x2="27.17" x3="27.35" y1="29.95" y2="30.31" y3="30.62"/>
+ <line x="17.16" y="42.3"/>
+ <line x="8.53" y="42.3"/>
+ <curve x1="7.16" x2="6.45" x3="6.45" y1="42.3" y2="45.05" y3="47.66"/>
+ <curve x1="6.45" x2="7.16" x3="8.53" y1="50.23" y2="52.98" y3="52.98"/>
+ <line x="34.12" y="52.98"/>
+ <line x="34.12" y="51.03"/>
+ <line x="22.35" y="51.03"/>
+ <line x="23.54" y="49.57"/>
+ <line x="31.86" y="49.57"/>
+ <line x="31.86" y="47.57"/>
+ <line x="25.22" y="47.57"/>
+ <line x="32" y="39.65"/>
+ <curve x1="34.12" x2="36.69" x3="39.52" y1="41.2" y2="42.17" y3="42.17"/>
+ <curve x1="42.58" x2="45.41" x3="47.49" y1="42.17" y2="41.02" y3="38.98"/>
+ <line x="54.84" y="47.57"/>
+ <line x="51.21" y="47.57"/>
+ <line x="51.21" y="49.57"/>
+ <line x="56.52" y="49.57"/>
+ <line x="57.8" y="51.03"/>
+ <line x="53.47" y="51.03"/>
+ <line x="53.47" y="52.98"/>
+ <line x="71.62" y="52.98"/>
+ <curve x1="72.99" x2="73.57" x3="73.57" y1="52.98" y2="50.23" y3="47.66"/>
+ <curve x1="73.57" x2="72.99" x3="71.62" y1="45.05" y2="42.3" y3="42.3"/>
+ <line x="62.99" y="42.3"/>
+ <line x="51.7" y="29.33"/>
+ <curve x1="51.61" x2="46.21" x3="39.52" y1="22.47" y2="16.8" y3="16.8"/>
+ <close/>
+ <move x="39.52" y="18.57"/>
+ <curve x1="41.96" x2="44.13" x3="46.03" y1="18.57" y2="19.37" y3="20.92"/>
+ <curve x1="45.81" x2="45.5" x3="45.15" y1="20.92" y2="21.1" y3="21.1"/>
+ <line x="45.15" y="21.72"/>
+ <line x="46.38" y="21.72"/>
+ <line x="46.38" y="24.72"/>
+ <line x="47.18" y="24.72"/>
+ <line x="47.18" y="22.07"/>
+ <curve x1="47.58" x2="47.89" x3="48.24" y1="22.47" y2="22.87" y3="23.44"/>
+ <curve x1="48.47" x2="48.64" x3="48.78" y1="23.75" y2="23.98" y3="24.33"/>
+ <curve x1="49.18" x2="49.35" x3="49.61" y1="24.86" y2="25.53" y3="26.32"/>
+ <curve x1="49.66" x2="49.84" x3="49.84" y1="26.63" y2="26.99" y3="27.3"/>
+ <curve x1="49.84" x2="49.93" x3="49.93" y1="27.3" y2="27.29" y3="27.38"/>
+ <curve x1="49.62" x2="49.26" x3="48.95" y1="27.29" y2="27.21" y3="27.21"/>
+ <curve x1="48.46" x2="48.07" x3="47.8" y1="27.21" y2="27.38" y3="27.78"/>
+ <curve x1="47.49" x2="47.27" x3="47.27" y1="28.18" y2="28.76" y3="29.55"/>
+ <curve x1="47.27" x2="47.49" x3="47.76" y1="30.31" y2="30.84" y3="31.23"/>
+ <curve x1="48.07" x2="48.46" x3="48.95" y1="31.68" y2="31.9" y3="31.9"/>
+ <curve x1="49.26" x2="49.62" x3="49.93" y1="31.9" y2="31.81" y3="31.68"/>
+ <curve x1="49.93" x2="49.92" x3="49.84" y1="31.72" y2="31.72" y3="31.81"/>
+ <curve x1="49.84" x2="49.84" x3="49.66" y1="31.99" y2="32.08" y3="32.21"/>
+ <curve x1="49.35" x2="48.95" x3="48.24" y1="33.49" y2="34.65" y3="35.62"/>
+ <curve x1="48.24" x2="48.16" x3="47.89" y1="35.35" y2="35.13" y3="34.87"/>
+ <curve x1="47.58" x2="47.18" x3="46.69" y1="34.47" y2="34.24" y3="34.24"/>
+ <curve x1="46.12" x2="45.72" x3="45.5" y1="34.24" y2="34.47" y3="34.87"/>
+ <curve x1="45.14" x2="45.01" x3="45.01" y1="35.31" y2="35.84" y3="36.68"/>
+ <curve x1="45.01" x2="45.14" x3="45.41" y1="37.3" y2="37.88" y3="38.28"/>
+ <curve x1="45.5" x2="45.5" x3="45.5" y1="38.36" y2="38.45" y3="38.54"/>
+ <curve x1="45.14" x2="44.62" x3="44.13" y1="38.85" y2="39.16" y3="39.42"/>
+ <curve x1="43.77" x2="43.37" x3="43.06" y1="39.65" y2="39.65" y3="39.92"/>
+ <curve x1="42.66" x2="42.18" x3="41.6" y1="39.96" y2="40.22" y3="40.31"/>
+ <curve x1="41.29" x2="40.99" x3="40.59" y1="40.31" y2="40.44" y3="40.44"/>
+ <curve x1="40.23" x2="39.83" x3="39.52" y1="40.53" y2="40.53" y3="40.53"/>
+ <curve x1="39.12" x2="38.77" x3="38.37" y1="40.53" y2="40.53" y3="40.44"/>
+ <curve x1="38.06" x2="37.58" x3="37.36" y1="40.44" y2="40.31" y3="40.31"/>
+ <curve x1="36.87" x2="36.21" x3="35.81" y1="40.22" y2="39.96" y3="39.92"/>
+ <curve x1="35.5" x2="35.14" x3="34.92" y1="39.65" y2="39.65" y3="39.42"/>
+ <curve x1="34.61" x2="34.26" x3="34.04" y1="39.25" y2="39.07" y3="38.94"/>
+ <curve x1="34.43" x2="34.74" x3="35" y1="38.85" y2="38.59" y3="38.28"/>
+ <curve x1="35.31" x2="35.41" x3="35.41" y1="37.88" y2="37.3" y3="36.68"/>
+ <curve x1="35.41" x2="35.31" x3="35" y1="35.84" y2="35.31" y3="34.87"/>
+ <curve x1="34.69" x2="34.26" x3="33.72" y1="34.47" y2="34.24" y3="34.24"/>
+ <curve x1="33.06" x2="32.75" x3="32.49" y1="34.24" y2="34.47" y3="34.87"/>
+ <curve x1="32.18" x2="32" x3="32" y1="35.31" y2="35.84" y3="36.68"/>
+ <line x="32" y="37.3"/>
+ <line x="32" y="37.39"/>
+ <line x="31.96" y="37.25"/>
+ <line x="31.93" y="37.19"/>
+ <line x="31.6" y="36.9"/>
+ <curve x1="31.29" x2="30.98" x3="30.63" y1="36.5" y2="36.11" y3="35.62"/>
+ <curve x1="30.58" x2="30.31" x3="30.31" y1="35.44" y2="35.22" y3="35.05"/>
+ <curve x1="30.23" x2="29.91" x3="29.91" y1="34.87" y2="34.33" y3="34.33"/>
+ <curve x1="29.6" x2="29.3" x3="29.21" y1="33.67" y2="32.96" y3="32.21"/>
+ <curve x1="29.21" x2="29.21" x3="29.12" y1="32.12" y2="31.99" y3="31.9"/>
+ <line x="29.21" y="31.9"/>
+ <curve x1="29.74" x2="30.18" x3="30.49" y1="31.9" y2="31.68" y3="31.23"/>
+ <curve x1="30.63" x2="30.89" x3="30.89" y1="30.84" y2="30.31" y3="29.55"/>
+ <curve x1="30.89" x2="30.62" x3="30.31" y1="28.76" y2="28.27" y3="27.87"/>
+ <curve x1="30.18" x2="29.61" x3="29.21" y1="27.39" y2="27.21" y3="27.21"/>
+ <line x="29.12" y="27.21"/>
+ <curve x1="29.21" x2="29.3" x3="29.3" y1="26.81" y2="26.5" y3="26.32"/>
+ <curve x1="29.52" x2="29.6" x3="29.91" y1="25.7" y2="25.21" y3="24.72"/>
+ <curve x1="29.91" x2="30.18" x3="30.18" y1="24.64" y2="24.33" y3="24.33"/>
+ <curve x1="30.32" x2="30.49" x3="30.63" y1="23.98" y2="23.75" y3="23.44"/>
+ <curve x1="31.11" x2="31.69" x3="32.26" y1="22.69" y2="22.07" y3="21.49"/>
+ <curve x1="32.18" x2="32.18" x3="32.18" y1="21.72" y2="22.07" y3="22.47"/>
+ <curve x1="32.18" x2="32.35" x3="32.57" y1="23.18" y2="23.75" y3="24.15"/>
+ <curve x1="32.88" x2="33.33" x3="33.81" y1="24.64" y2="24.81" y3="24.81"/>
+ <curve x1="34.43" x2="34.74" x3="35.14" y1="24.81" y2="24.64" y3="24.15"/>
+ <curve x1="35.41" x2="35.5" x3="35.5" y1="23.75" y2="23.09" y3="22.47"/>
+ <curve x1="35.5" x2="35.41" x3="35.14" y1="21.72" y2="21.18" y3="20.74"/>
+ <curve x1="34.74" x2="34.43" x3="34.04" y1="20.25" y2="20.21" y3="20.03"/>
+ <curve x1="35.63" x2="37.48" x3="39.52" y1="19.06" y2="18.57" y3="18.57"/>
+ <close/>
+ <move x="31.93" y="37.19"/>
+ <line x="31.95" y="37.21"/>
+ <line x="31.86" y="37.08"/>
+ <line x="31.93" y="37.19"/>
+ <close/>
+ <move x="31.95" y="37.21"/>
+ <line x="31.96" y="37.25"/>
+ <line x="32" y="37.3"/>
+ <curve x1="31.95" x2="31.95" x3="31.95" y1="37.3" y2="37.3" y3="37.21"/>
+ <close/>
+ <move x="38.21" y="20.66"/>
+ <curve x1="38.21" x2="38.13" x3="38.08" y1="21.02" y2="21.06" y3="21.24"/>
+ <curve x1="37.91" x2="37.73" x3="37.42" y1="21.42" y2="21.51" y3="21.51"/>
+ <line x="37.42" y="22.03"/>
+ <line x="38.21" y="22.03"/>
+ <line x="38.21" y="24.56"/>
+ <line x="38.71" y="24.56"/>
+ <line x="38.71" y="20.66"/>
+ <line x="38.21" y="20.66"/>
+ <close/>
+ <move x="42.04" y="20.66"/>
+ <curve x1="41.29" x2="40.89" x3="40.49" y1="20.66" y2="20.93" y3="21.24"/>
+ <curve x1="40.22" x2="40" x3="40" y1="21.55" y2="22.03" y3="22.7"/>
+ <curve x1="40" x2="40.22" x3="40.49" y1="23.36" y2="23.68" y3="24.07"/>
+ <curve x1="40.89" x2="41.29" x3="42.04" y1="24.47" y2="24.56" y3="24.56"/>
+ <curve x1="42.57" x2="43.05" x3="43.45" y1="24.56" y2="24.47" y3="24.07"/>
+ <curve x1="43.72" x2="43.85" x3="43.85" y1="23.68" y2="23.27" y3="22.7"/>
+ <curve x1="43.85" x2="43.72" x3="43.45" y1="22.03" y2="21.55" y3="21.24"/>
+ <curve x1="43.05" x2="42.57" x3="42.04" y1="20.93" y2="20.66" y3="20.66"/>
+ <close/>
+ <move x="33.81" y="20.83"/>
+ <curve x1="34.35" x2="34.61" x3="34.61" y1="20.83" y2="21.41" y3="22.47"/>
+ <curve x1="34.61" x2="34.35" x3="33.81" y1="23.49" y2="24.06" y3="24.06"/>
+ <curve x1="33.33" x2="33.06" x3="33.06" y1="24.06" y2="23.49" y3="22.47"/>
+ <curve x1="33.06" x2="33.33" x3="33.81" y1="21.41" y2="20.83" y3="20.83"/>
+ <close/>
+ <move x="42.04" y="21.33"/>
+ <curve x1="42.48" x2="42.92" x3="42.92" y1="21.33" y2="21.81" y3="22.7"/>
+ <curve x1="42.92" x2="42.48" x3="42.04" y1="23.58" y2="23.98" y3="23.98"/>
+ <curve x1="41.46" x2="41.2" x3="41.2" y1="23.98" y2="23.58" y3="22.7"/>
+ <curve x1="41.2" x2="41.46" x3="42.04" y1="21.81" y2="21.33" y3="21.33"/>
+ <close/>
+ <move x="33.05" y="27.13"/>
+ <curve x1="32.96" x2="32.96" x3="32.83" y1="27.44" y2="27.71" y3="27.8"/>
+ <curve x1="32.74" x2="32.57" x3="32.26" y1="28.02" y2="28.1" y3="28.1"/>
+ <line x="32.26" y="28.81"/>
+ <line x="32.96" y="28.81"/>
+ <line x="32.96" y="32.31"/>
+ <line x="33.54" y="32.31"/>
+ <line x="33.54" y="27.13"/>
+ <line x="33.05" y="27.13"/>
+ <close/>
+ <move x="36.79" y="27.13"/>
+ <curve x1="36.21" x2="35.73" x3="35.33" y1="27.13" y2="27.31" y3="27.8"/>
+ <curve x1="35.06" x2="34.84" x3="34.84" y1="28.28" y2="28.81" y3="29.74"/>
+ <curve x1="34.84" x2="35.06" x3="35.33" y1="30.54" y2="31.16" y3="31.64"/>
+ <curve x1="35.73" x2="36.21" x3="36.79" y1="32.04" y2="32.31" y3="32.31"/>
+ <curve x1="37.5" x2="37.89" x3="38.29" y1="32.31" y2="32.04" y3="31.64"/>
+ <curve x1="38.64" x2="38.69" x3="38.69" y1="31.16" y2="30.54" y3="29.74"/>
+ <curve x1="38.69" x2="38.64" x3="38.29" y1="28.81" y2="28.37" y3="27.88"/>
+ <curve x1="37.89" x2="37.5" x3="36.79" y1="27.3" y2="27.13" y3="27.13"/>
+ <close/>
+ <move x="41.29" y="27.13"/>
+ <curve x1="40.89" x2="40.58" x3="40.31" y1="27.13" y2="27.31" y3="27.8"/>
+ <curve x1="40.18" x2="40" x3="40" y1="28.28" y2="28.81" y3="29.74"/>
+ <curve x1="40" x2="40.18" x3="40.31" y1="30.54" y2="31.16" y3="31.64"/>
+ <curve x1="40.58" x2="40.89" x3="41.29" y1="32.04" y2="32.31" y3="32.31"/>
+ <curve x1="41.77" x2="42.08" x3="42.34" y1="32.31" y2="32.04" y3="31.64"/>
+ <curve x1="42.48" x2="42.57" x3="42.57" y1="31.16" y2="30.54" y3="29.74"/>
+ <curve x1="42.57" x2="42.48" x3="42.34" y1="28.81" y2="28.37" y3="27.88"/>
+ <curve x1="42.08" x2="41.77" x3="41.29" y1="27.3" y2="27.13" y3="27.13"/>
+ <close/>
+ <move x="45.55" y="27.13"/>
+ <curve x1="45.42" x2="45.24" x3="45.02" y1="27.44" y2="27.71" y3="27.8"/>
+ <curve x1="44.84" x2="44.45" x3="43.87" y1="28.02" y2="28.1" y3="28.1"/>
+ <line x="43.87" y="28.81"/>
+ <line x="45.42" y="28.81"/>
+ <line x="45.42" y="32.31"/>
+ <line x="46.44" y="32.31"/>
+ <line x="46.44" y="27.13"/>
+ <line x="45.55" y="27.13"/>
+ <close/>
+ <move x="28.94" y="27.96"/>
+ <line x="29.21" y="27.96"/>
+ <curve x1="29.61" x2="29.91" x3="29.91" y1="27.96" y2="28.45" y3="29.55"/>
+ <curve x1="29.91" x2="29.61" x3="29.21" y1="30.62" y2="31.19" y3="31.19"/>
+ <curve x1="29.12" x2="29.03" x3="28.94" y1="31.19" y2="31.19" y3="31.1"/>
+ <curve x1="28.94" x2="28.85" x3="28.85" y1="30.62" y2="30.04" y3="29.55"/>
+ <curve x1="28.85" x2="28.94" x3="28.94" y1="28.98" y2="28.45" y3="27.96"/>
+ <close/>
+ <move x="48.95" y="27.96"/>
+ <curve x1="49.61" x2="49.84" x3="49.84" y1="27.96" y2="28.45" y3="29.55"/>
+ <curve x1="49.84" x2="49.61" x3="48.95" y1="30.62" y2="31.19" y3="31.19"/>
+ <curve x1="48.55" x2="48.24" x3="48.24" y1="31.19" y2="30.62" y3="29.55"/>
+ <curve x1="48.24" x2="48.55" x3="48.95" y1="28.45" y2="27.96" y3="27.96"/>
+ <close/>
+ <move x="36.79" y="28.02"/>
+ <curve x1="37.41" x2="37.76" x3="37.76" y1="28.02" y2="28.5" y3="29.74"/>
+ <curve x1="37.76" x2="37.41" x3="36.79" y1="30.94" y2="31.51" y3="31.51"/>
+ <curve x1="36.3" x2="35.99" x3="35.99" y1="31.51" y2="30.94" y3="29.74"/>
+ <curve x1="35.99" x2="36.3" x3="36.79" y1="28.5" y2="28.02" y3="28.02"/>
+ <close/>
+ <move x="41.29" y="28.02"/>
+ <curve x1="41.68" x2="41.86" x3="41.86" y1="28.02" y2="28.5" y3="29.74"/>
+ <curve x1="41.86" x2="41.68" x3="41.29" y1="30.94" y2="31.51" y3="31.51"/>
+ <curve x1="40.98" x2="40.71" x3="40.71" y1="31.51" y2="30.94" y3="29.74"/>
+ <curve x1="40.71" x2="40.98" x3="41.29" y1="28.5" y2="28.02" y3="28.02"/>
+ <close/>
+ <move x="41.95" y="33.59"/>
+ <curve x1="41.29" x2="40.89" x3="40.49" y1="33.59" y2="33.9" y3="34.34"/>
+ <curve x1="40.18" x2="40" x3="40" y1="34.83" y2="35.45" y3="36.24"/>
+ <curve x1="40" x2="40.18" x3="40.49" y1="36.99" y2="37.62" y3="38.1"/>
+ <curve x1="40.8" x2="41.29" x3="41.95" y1="38.59" y2="38.77" y3="38.77"/>
+ <curve x1="42.57" x2="43.05" x3="43.45" y1="38.77" y2="38.59" y3="38.1"/>
+ <curve x1="43.72" x2="43.85" x3="43.85" y1="37.62" y2="36.99" y3="36.24"/>
+ <curve x1="43.85" x2="43.72" x3="43.32" y1="35.45" y2="34.83" y3="34.34"/>
+ <curve x1="43.05" x2="42.48" x3="41.95" y1="33.9" y2="33.59" y3="33.59"/>
+ <close/>
+ <move x="41.95" y="34.47"/>
+ <curve x1="42.48" x2="42.83" x3="42.83" y1="34.47" y2="35.14" y3="36.24"/>
+ <curve x1="42.83" x2="42.48" x3="41.95" y1="37.39" y2="37.97" y3="37.97"/>
+ <curve x1="41.29" x2="41.06" x3="41.06" y1="37.97" y2="37.39" y3="36.24"/>
+ <curve x1="41.06" x2="41.29" x3="41.95" y1="35.14" y2="34.47" y3="34.47"/>
+ <close/>
+ <move x="37.81" y="34.87"/>
+ <curve x1="37.72" x2="37.5" x3="37.32" y1="35.23" y2="35.36" y3="35.54"/>
+ <curve x1="37.1" x2="36.71" x3="36.13" y1="35.63" y2="35.71" y3="35.71"/>
+ <line x="36.13" y="36.24"/>
+ <line x="37.59" y="36.24"/>
+ <line x="37.59" y="38.77"/>
+ <line x="38.7" y="38.77"/>
+ <line x="38.7" y="34.87"/>
+ <line x="37.81" y="34.87"/>
+ <close/>
+ <move x="33.72" y="34.96"/>
+ <curve x1="34.26" x2="34.43" x3="34.43" y1="34.96" y2="35.53" y3="36.68"/>
+ <curve x1="34.43" x2="34.26" x3="33.72" y1="37.7" y2="38.19" y3="38.19"/>
+ <curve x1="33.24" x2="32.97" x3="32.97" y1="38.19" y2="37.7" y3="36.68"/>
+ <curve x1="32.97" x2="33.24" x3="33.72" y1="35.53" y2="34.96" y3="34.96"/>
+ <close/>
+ <move x="46.69" y="34.96"/>
+ <curve x1="47.18" x2="47.49" x3="47.49" y1="34.96" y2="35.53" y3="36.68"/>
+ <line x="47.49" y="36.73"/>
+ <curve x1="47.4" x2="47.4" x3="47.27" y1="36.73" y2="36.9" y3="36.9"/>
+ <curve x1="47.18" x2="47.09" x3="46.92" y1="37.08" y2="37.08" y3="37.3"/>
+ <curve x1="46.78" x2="46.52" x3="46.21" y1="37.57" y2="37.79" y3="37.96"/>
+ <curve x1="46.03" x2="45.9" x3="45.9" y1="37.7" y2="37.3" y3="36.68"/>
+ <curve x1="45.9" x2="46.21" x3="46.69" y1="35.53" y2="34.96" y3="34.96"/>
+ <close/>
+ <move x="8.53" y="43.46"/>
+ <curve x1="8.89" x2="9.51" x3="9.51" y1="43.55" y2="44.96" y3="47.66"/>
+ <curve x1="9.51" x2="8.89" x3="8.53" y1="50.41" y2="51.82" y3="51.91"/>
+ <curve x1="8.22" x2="7.51" x3="7.51" y1="51.82" y2="50.41" y3="47.66"/>
+ <curve x1="7.51" x2="8.22" x3="8.53" y1="44.96" y2="43.55" y3="43.46"/>
+ <close/>
+ <move x="34.84" y="47.82"/>
+ <line x="34.84" y="49.1"/>
+ <line x="40.02" y="49.1"/>
+ <line x="40.02" y="47.82"/>
+ <line x="34.84" y="47.82"/>
+ <close/>
+ <move x="42.58" y="47.82"/>
+ <line x="42.58" y="49.1"/>
+ <line x="47.76" y="49.1"/>
+ <line x="47.76" y="47.82"/>
+ <line x="42.58" y="47.82"/>
+ <close/>
+ <move x="37.42" y="50.4"/>
+ <line x="37.42" y="52.98"/>
+ <line x="42.6" y="52.98"/>
+ <line x="42.6" y="50.4"/>
+ <line x="37.42" y="50.4"/>
+ <close/>
+ <move x="45.16" y="50.4"/>
+ <line x="45.16" y="52.98"/>
+ <line x="50.34" y="52.98"/>
+ <line x="50.34" y="50.4"/>
+ <line x="45.16" y="50.4"/>
+ <close/>
+ <move x="0" y="39.4"/>
+ <curve x1="0" x2="17.97" x3="40.02" y1="17.71" y2="0" y3="0"/>
+ <curve x1="62.11" x2="80" x3="80" y1="0" y2="17.71" y3="39.4"/>
+ <curve x1="80" x2="62.11" x3="40.02" y1="61.18" y2="78.8" y3="78.8"/>
+ <curve x1="17.97" x2="0" x3="0" y1="78.8" y2="61.18" y3="39.4"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="storage" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.95" y="15.98"/>
+ <curve x1="28.19" x2="15.98" x3="15.98" y1="15.98" y2="18.59" y3="23.82"/>
+ <line x="15.98" y="35.2"/>
+ <line x="15.98" y="44.81"/>
+ <line x="15.98" y="56.21"/>
+ <curve x1="15.98" x2="28.19" x3="39.95" y1="61.39" y2="64" y3="64"/>
+ <curve x1="51.93" x2="63.96" x3="63.96" y1="64" y2="61.39" y3="56.21"/>
+ <line x="63.96" y="44.81"/>
+ <line x="63.96" y="35.2"/>
+ <line x="63.96" y="23.82"/>
+ <curve x1="63.96" x2="51.93" x3="39.95" y1="18.59" y2="15.98" y3="15.98"/>
+ <close/>
+ <move x="39.95" y="19.18"/>
+ <curve x1="52.97" x2="60.76" x3="60.76" y1="19.18" y2="22.2" y3="23.82"/>
+ <curve x1="60.76" x2="53.37" x3="39.95" y1="25.39" y2="28.41" y3="28.41"/>
+ <curve x1="26.8" x2="19.59" x3="19.59" y1="28.41" y2="25.39" y3="23.82"/>
+ <curve x1="19.59" x2="27.38" x3="39.95" y1="22.2" y2="19.18" y3="19.18"/>
+ <close/>
+ <move x="19.59" y="28.01"/>
+ <curve x1="23.96" x2="32.16" x3="39.95" y1="30.21" y2="31.38" y3="31.38"/>
+ <curve x1="48.15" x2="56.17" x3="60.76" y1="31.38" y2="30.21" y3="28.01"/>
+ <line x="60.76" y="35.2"/>
+ <curve x1="60.76" x2="53.37" x3="39.95" y1="36.59" y2="39.21" y3="39.21"/>
+ <curve x1="26.8" x2="19.59" x3="19.59" y1="39.21" y2="36.59" y3="35.2"/>
+ <line x="19.59" y="28.01"/>
+ <close/>
+ <move x="60.76" y="38.5"/>
+ <line x="60.76" y="44.81"/>
+ <curve x1="60.76" x2="53.37" x3="39.95" y1="46.79" y2="50.61" y3="50.61"/>
+ <curve x1="26.8" x2="19.59" x3="19.59" y1="50.61" y2="46.79" y3="44.81"/>
+ <line x="19.59" y="38.67"/>
+ <curve x1="24.06" x2="32.06" x3="39.95" y1="40.59" y2="41.6" y3="41.6"/>
+ <curve x1="48.22" x2="56.42" x3="60.76" y1="41.6" y2="40.53" y3="38.5"/>
+ <close/>
+ <move x="60.76" y="49.79"/>
+ <line x="60.76" y="56.21"/>
+ <curve x1="60.76" x2="53.37" x3="39.95" y1="58.01" y2="60.98" y3="60.98"/>
+ <curve x1="26.8" x2="19.59" x3="19.59" y1="60.98" y2="58.01" y3="56.21"/>
+ <line x="19.59" y="50.04"/>
+ <curve x1="24.06" x2="32.06" x3="39.95" y1="52.92" y2="54.4" y3="54.4"/>
+ <curve x1="48.22" x2="56.42" x3="60.76" y1="54.4" y2="52.84" y3="49.79"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat intelligence" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.57" y="41.97"/>
+ <line x="42.57" y="43.29"/>
+ <line x="51.59" y="43.29"/>
+ <line x="51.59" y="41.97"/>
+ <line x="42.57" y="41.97"/>
+ <line x="42.57" y="41.97"/>
+ <close/>
+ <move x="42.57" y="39.35"/>
+ <line x="42.57" y="40.67"/>
+ <line x="52.91" y="40.67"/>
+ <line x="52.91" y="39.35"/>
+ <line x="42.57" y="39.35"/>
+ <line x="42.57" y="39.35"/>
+ <close/>
+ <move x="42.57" y="35.41"/>
+ <line x="42.57" y="38.04"/>
+ <line x="51.59" y="38.04"/>
+ <line x="51.59" y="35.41"/>
+ <line x="42.57" y="35.41"/>
+ <line x="42.57" y="35.41"/>
+ <close/>
+ <move x="42.57" y="32.79"/>
+ <line x="42.57" y="34.11"/>
+ <line x="52.91" y="34.11"/>
+ <line x="52.91" y="32.79"/>
+ <line x="42.57" y="32.79"/>
+ <line x="42.57" y="32.79"/>
+ <close/>
+ <move x="34.19" y="37.75"/>
+ <curve x1="34.05" x2="34.05" x3="34.05" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="33.25" x2="33.25" x3="33.25" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="32.92" x2="32.92" x3="32.92" y1="37.75" y2="37.89" y3="38.13"/>
+ <curve x1="32.92" x2="32.92" x3="32.92" y1="38.74" y2="38.74" y3="38.74"/>
+ <curve x1="33.01" x2="33.15" x3="33.34" y1="38.98" y2="39.07" y3="39.07"/>
+ <curve x1="33.91" x2="33.91" x3="33.91" y1="39.07" y2="39.07" y3="39.07"/>
+ <curve x1="34.05" x2="34.19" x3="34.19" y1="39.07" y2="38.98" y3="38.74"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="37.89" y2="37.89" y3="37.89"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="37.75" y2="37.75" y3="37.75"/>
+ <close/>
+ <move x="31.37" y="37.75"/>
+ <curve x1="30.48" x2="30.48" x3="30.48" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="30.43" x2="30.43" x3="30.43" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="30.34" x2="30.34" x3="30.34" y1="37.75" y2="37.75" y3="37.89"/>
+ <curve x1="30.34" x2="30.34" x3="30.34" y1="38.74" y2="38.74" y3="38.74"/>
+ <curve x1="30.34" x2="30.48" x3="30.81" y1="38.98" y2="39.07" y3="39.07"/>
+ <curve x1="31.23" x2="31.23" x3="31.23" y1="39.07" y2="39.07" y3="39.07"/>
+ <curve x1="31.47" x2="31.61" x3="31.61" y1="39.07" y2="38.98" y3="38.74"/>
+ <curve x1="31.61" x2="31.61" x3="31.61" y1="38.13" y2="38.13" y3="38.13"/>
+ <curve x1="31.61" x2="31.61" x3="31.37" y1="37.89" y2="37.75" y3="37.75"/>
+ <close/>
+ <move x="34.75" y="38.86"/>
+ <curve x1="34.75" x2="34.75" x3="34.52" y1="39.09" y2="39.33" y3="39.33"/>
+ <curve x1="34.19" x2="34.19" x3="34.19" y1="39.33" y2="39.33" y3="39.33"/>
+ <curve x1="33.86" x2="33.62" x3="33.62" y1="39.33" y2="39.56" y3="39.89"/>
+ <curve x1="33.62" x2="33.62" x3="33.62" y1="41.07" y2="41.07" y3="41.07"/>
+ <curve x1="32.92" x2="31.7" x3="31.04" y1="41.4" y2="41.4" y3="41.07"/>
+ <curve x1="31.04" x2="31.04" x3="31.04" y1="39.89" y2="39.89" y3="39.89"/>
+ <curve x1="31.04" x2="30.8" x3="30.47" y1="39.56" y2="39.33" y3="39.33"/>
+ <curve x1="30.05" x2="30.05" x3="30.05" y1="39.33" y2="39.33" y3="39.33"/>
+ <curve x1="29.91" x2="29.82" x3="29.82" y1="39.33" y2="39.09" y3="38.86"/>
+ <curve x1="29.82" x2="29.82" x3="29.82" y1="37.78" y2="37.78" y3="37.78"/>
+ <curve x1="29.82" x2="29.91" x3="29.91" y1="37.64" y2="37.45" y3="37.31"/>
+ <curve x1="30.62" x2="31.46" x3="32.26" y1="37.36" y2="37.45" y3="37.45"/>
+ <curve x1="32.31" x2="32.31" x3="32.31" y1="37.45" y2="37.45" y3="37.45"/>
+ <curve x1="33.2" x2="34.05" x3="34.75" y1="37.45" y2="37.36" y3="37.31"/>
+ <curve x1="34.75" x2="34.75" x3="34.75" y1="37.45" y2="37.64" y3="37.78"/>
+ <line x="34.75" y="38.86"/>
+ <close/>
+ <move x="35.08" y="35.71"/>
+ <curve x1="34.28" x2="34.28" x3="34.28" y1="33.03" y2="33.03" y3="33.03"/>
+ <curve x1="34.28" x2="34.28" x3="34.09" y1="32.94" y2="32.8" y3="32.8"/>
+ <curve x1="30.62" x2="30.62" x3="30.62" y1="32.8" y2="32.8" y3="32.8"/>
+ <curve x1="30.38" x2="30.38" x3="30.33" y1="32.8" y2="32.94" y3="33.03"/>
+ <curve x1="29.49" x2="29.49" x3="29.49" y1="35.71" y2="35.71" y3="35.71"/>
+ <curve x1="28.12" x2="27.09" x3="27.09" y1="35.9" y2="36.32" y3="36.56"/>
+ <curve x1="27.09" x2="27.98" x3="29.2" y1="36.79" y2="37.03" y3="37.21"/>
+ <curve x1="29.11" x2="28.92" x3="28.92" y1="37.54" y2="37.92" y3="38.34"/>
+ <curve x1="28.92" x2="29.11" x3="29.2" y1="38.58" y2="39.09" y3="39.33"/>
+ <curve x1="29.11" x2="29.11" x3="29.11" y1="39.33" y2="39.33" y3="39.33"/>
+ <curve x1="28.78" x2="28.55" x3="28.55" y1="39.33" y2="39.56" y3="39.89"/>
+ <curve x1="28.55" x2="28.55" x3="28.55" y1="40.55" y2="40.55" y3="40.55"/>
+ <curve x1="28.08" x2="27.79" x3="27.79" y1="40.55" y2="41.07" y3="41.44"/>
+ <curve x1="27.79" x2="27.79" x3="27.79" y1="44.92" y2="44.92" y3="44.92"/>
+ <curve x1="27.79" x2="28.12" x3="28.64" y1="45.49" y2="45.91" y3="45.91"/>
+ <curve x1="32.07" x2="32.07" x3="32.07" y1="45.91" y2="45.91" y3="45.91"/>
+ <curve x1="32.07" x2="32.07" x3="32.07" y1="41.44" y2="41.44" y3="41.44"/>
+ <curve x1="32.5" x2="32.5" x3="32.5" y1="41.44" y2="41.44" y3="41.44"/>
+ <curve x1="32.5" x2="32.5" x3="32.5" y1="45.91" y2="45.91" y3="45.91"/>
+ <curve x1="36.02" x2="36.02" x3="36.02" y1="45.91" y2="45.91" y3="45.91"/>
+ <curve x1="36.44" x2="36.87" x3="36.87" y1="45.91" y2="45.49" y3="44.92"/>
+ <curve x1="36.87" x2="36.87" x3="36.87" y1="41.44" y2="41.44" y3="41.44"/>
+ <curve x1="36.87" x2="36.54" x3="36.11" y1="41.07" y2="40.55" y3="40.55"/>
+ <curve x1="36.11" x2="36.11" x3="36.11" y1="39.89" y2="39.89" y3="39.89"/>
+ <curve x1="36.11" x2="35.79" x3="35.64" y1="39.56" y2="39.33" y3="39.33"/>
+ <curve x1="35.46" x2="35.46" x3="35.46" y1="39.33" y2="39.33" y3="39.33"/>
+ <curve x1="35.55" x2="35.64" x3="35.64" y1="39.09" y2="38.58" y3="38.34"/>
+ <curve x1="35.64" x2="35.55" x3="35.46" y1="37.92" y2="37.54" y3="37.21"/>
+ <curve x1="36.68" x2="37.43" x3="37.43" y1="37.03" y2="36.79" y3="36.56"/>
+ <curve x1="37.43" x2="36.54" x3="35.08" y1="36.32" y2="35.9" y3="35.71"/>
+ <close/>
+ <move x="54.67" y="31.39"/>
+ <curve x1="54.67" x2="54.67" x3="54.67" y1="47.14" y2="47.14" y3="47.14"/>
+ <curve x1="54.67" x2="54.67" x3="54.67" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="52.74" x2="52.74" x3="52.74" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="42.16" x2="42.16" x3="42.16" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="40.14" x2="40.14" x3="40.14" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="40.14" x2="40.14" x3="40.14" y1="47.14" y2="47.14" y3="47.14"/>
+ <curve x1="40.14" x2="40.14" x3="40.14" y1="31.39" y2="31.39" y3="31.39"/>
+ <curve x1="40.14" x2="40.14" x3="40.14" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="42.16" x2="42.16" x3="42.16" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="52.74" x2="52.74" x3="52.74" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="54.67" x2="54.67" x3="54.67" y1="29.33" y2="29.33" y3="29.33"/>
+ <line x="54.67" y="31.39"/>
+ <close/>
+ <move x="38.68" y="31.39"/>
+ <curve x1="38.68" x2="38.68" x3="38.68" y1="47.14" y2="47.14" y3="47.14"/>
+ <curve x1="38.68" x2="38.68" x3="38.68" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="36.66" x2="36.66" x3="36.66" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="26.04" x2="26.04" x3="26.04" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="24.21" x2="24.21" x3="24.21" y1="49.02" y2="49.02" y3="49.02"/>
+ <curve x1="24.21" x2="24.21" x3="24.21" y1="47.14" y2="47.14" y3="47.14"/>
+ <curve x1="24.21" x2="24.21" x3="24.21" y1="31.39" y2="31.39" y3="31.39"/>
+ <curve x1="24.21" x2="24.21" x3="24.21" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="26.04" x2="26.04" x3="26.04" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="36.66" x2="36.66" x3="36.66" y1="29.33" y2="29.33" y3="29.33"/>
+ <curve x1="38.68" x2="38.68" x3="38.68" y1="29.33" y2="29.33" y3="29.33"/>
+ <line x="38.68" y="31.39"/>
+ <close/>
+ <move x="65.15" y="18.37"/>
+ <curve x1="54.2" x2="54.2" x3="54.2" y1="18.37" y2="18.37" y3="18.37"/>
+ <curve x1="53.68" x2="53.21" x3="52.88" y1="18.37" y2="18.61" y3="18.94"/>
+ <curve x1="49.82" x2="49.82" x3="49.82" y1="21.62" y2="21.62" y3="21.62"/>
+ <curve x1="49.49" x2="49.12" x3="48.6" y1="21.95" y2="22.23" y3="22.23"/>
+ <curve x1="13.63" x2="13.63" x3="13.63" y1="22.23" y2="22.23" y3="22.23"/>
+ <curve x1="12.6" x2="11.61" x3="11.61" y1="22.23" y2="23.12" y3="24.15"/>
+ <curve x1="11.61" x2="11.61" x3="11.61" y1="54.33" y2="54.33" y3="54.33"/>
+ <curve x1="11.61" x2="12.6" x3="13.63" y1="55.46" y2="56.4" y3="56.4"/>
+ <curve x1="65.15" x2="65.15" x3="65.15" y1="56.4" y2="56.4" y3="56.4"/>
+ <curve x1="66.27" x2="67.07" x3="67.07" y1="56.4" y2="55.46" y3="54.33"/>
+ <curve x1="67.07" x2="67.07" x3="67.07" y1="20.39" y2="20.39" y3="20.39"/>
+ <curve x1="67.07" x2="66.27" x3="65.15" y1="19.36" y2="18.37" y3="18.37"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="18" x3="40" y1="17.96" y2="0" y3="0"/>
+ <curve x1="62.09" x2="80" x3="80" y1="0" y2="17.96" y3="40"/>
+ <curve x1="80" x2="62.09" x3="40" y1="62.14" y2="80" y3="80"/>
+ <curve x1="18" x2="0" x3="0" y1="80" y2="62.14" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="time synchronization" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="51.21" y="31.61"/>
+ <curve x1="42.41" x2="42.41" x3="42.41" y1="37.38" y2="37.38" y3="37.38"/>
+ <curve x1="42.41" x2="42.41" x3="42.41" y1="19.8" y2="19.8" y3="19.8"/>
+ <curve x1="42.41" x2="41.6" x3="40.39" y1="18.58" y2="17.59" y3="17.59"/>
+ <curve x1="39.39" x2="38.4" x3="38.4" y1="17.59" y2="18.58" y3="19.8"/>
+ <curve x1="38.4" x2="38.4" x3="38.4" y1="40.99" y2="40.99" y3="40.99"/>
+ <curve x1="38.4" x2="38.81" x3="39.21" y1="41.8" y2="42.39" y3="42.62"/>
+ <curve x1="39.21" x2="39.21" x3="39.39" y1="42.8" y2="42.8" y3="42.8"/>
+ <curve x1="39.39" x2="39.39" x3="39.39" y1="42.8" y2="42.8" y3="42.8"/>
+ <curve x1="39.8" x2="39.98" x3="40.39" y1="43.02" y2="43.2" y3="43.2"/>
+ <curve x1="41.02" x2="41.2" x3="41.6" y1="43.2" y2="43.2" y3="43.02"/>
+ <curve x1="53.19" x2="53.19" x3="53.19" y1="35.17" y2="35.17" y3="35.17"/>
+ <curve x1="54.18" x2="54.41" x3="53.82" y1="34.59" y2="33.19" y3="32.2"/>
+ <curve x1="53.42" x2="52.02" x3="51.21" y1="31.21" y2="30.98" y3="31.61"/>
+ <close/>
+ <move x="39.99" y="11.15"/>
+ <curve x1="24.25" x2="11.17" x3="11.17" y1="11.15" y2="24.19" y3="40.2"/>
+ <curve x1="11.17" x2="24.25" x3="39.99" y1="56.02" y2="68.83" y3="68.83"/>
+ <curve x1="55.95" x2="68.85" x3="68.85" y1="68.83" y2="56.02" y3="40.2"/>
+ <curve x1="68.85" x2="55.95" x3="39.99" y1="24.19" y2="11.15" y3="11.15"/>
+ <close/>
+ <move x="39.99" y="64.23"/>
+ <curve x1="26.73" x2="15.9" x3="15.9" y1="64.23" y2="53.41" y3="40.2"/>
+ <curve x1="15.9" x2="26.73" x3="39.99" y1="26.8" y2="15.98" y3="15.98"/>
+ <curve x1="53.47" x2="64.29" x3="64.29" y1="15.98" y2="26.8" y3="40.2"/>
+ <curve x1="64.29" x2="53.47" x3="39.99" y1="53.41" y2="64.23" y3="64.23"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.9" x3="40" y1="17.9" y2="0" y3="0"/>
+ <curve x1="62.28" x2="80" x3="80" y1="0" y2="17.9" y3="40"/>
+ <curve x1="80" x2="62.28" x3="40" y1="62.28" y2="80" y3="80"/>
+ <curve x1="17.9" x2="0" x3="0" y1="80" y2="62.28" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="user" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ <move x="31.97" y="17.8"/>
+ <curve x1="31.97" x2="35.58" x3="39.94" y1="22.17" y2="25.6" y3="25.6"/>
+ <curve x1="44.54" x2="47.96" x3="47.96" y1="25.6" y2="22.17" y3="17.8"/>
+ <curve x1="47.96" x2="44.54" x3="39.94" y1="13.66" y2="10.01" y3="10.01"/>
+ <curve x1="35.58" x2="31.97" x3="31.97" y1="10.01" y2="13.66" y3="17.8"/>
+ <close/>
+ <move x="48.15" y="67.02"/>
+ <curve x1="49.14" x2="49.14" x3="49.14" y1="41.79" y2="41.79" y3="41.79"/>
+ <curve x1="50.35" x2="50.35" x3="50.35" y1="41.79" y2="41.79" y3="41.79"/>
+ <curve x1="50.35" x2="50.35" x3="50.35" y1="63.42" y2="63.42" y3="63.42"/>
+ <curve x1="50.35" x2="51.97" x3="53.96" y1="65.62" y2="67.2" y3="67.2"/>
+ <curve x1="55.94" x2="57.56" x3="57.56" y1="67.2" y2="65.62" y3="63.42"/>
+ <curve x1="57.56" x2="57.56" x3="57.56" y1="36.79" y2="36.79" y3="36.79"/>
+ <curve x1="57.56" x2="54.36" x3="50.35" y1="32.38" y2="28.82" y3="28.82"/>
+ <curve x1="29.77" x2="29.77" x3="29.77" y1="28.82" y2="28.82" y3="28.82"/>
+ <curve x1="25.76" x2="22.38" x3="22.38" y1="28.82" y2="32.38" y3="36.79"/>
+ <curve x1="22.38" x2="22.38" x3="22.38" y1="63.42" y2="63.42" y3="63.42"/>
+ <curve x1="22.38" x2="24.18" x3="26.16" y1="65.62" y2="67.2" y3="67.2"/>
+ <curve x1="28.19" x2="29.77" x3="29.77" y1="67.2" y2="65.62" y3="63.42"/>
+ <curve x1="29.77" x2="29.77" x3="29.77" y1="41.79" y2="41.79" y3="41.79"/>
+ <curve x1="30.98" x2="30.98" x3="30.98" y1="41.79" y2="41.79" y3="41.79"/>
+ <curve x1="31.97" x2="31.97" x3="31.97" y1="67.02" y2="67.02" y3="67.02"/>
+ <line x="48.15" y="67.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="video" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="14.59" y="15.98"/>
+ <curve x1="13.79" x2="12.09" x3="12.79" y1="17.06" y2="17.87" y3="19.81"/>
+ <curve x1="12.79" x2="12.79" x3="12.79" y1="32.94" y2="46.08" y3="59.22"/>
+ <curve x1="13.3" x2="14.42" x3="15.84" y1="60.61" y2="61.02" y3="60.8"/>
+ <curve x1="32.6" x2="49.36" x3="66.12" y1="60.8" y2="60.8" y3="60.8"/>
+ <curve x1="67.58" x2="67.06" x3="67.16" y1="59.72" y2="57.7" y3="56.12"/>
+ <curve x1="67.16" x2="67.16" x3="67.16" y1="43.28" y2="30.44" y3="17.6"/>
+ <curve x1="65.88" x2="63.92" x3="62.01" y1="15.97" y2="15.84" y3="15.98"/>
+ <curve x1="46.2" x2="30.4" x3="14.59" y1="15.98" y2="15.98" y3="15.98"/>
+ <close/>
+ <move x="17.2" y="19.22"/>
+ <curve x1="19.22" x2="21.11" x3="19.22" y1="18.48" y2="21.38" y3="22.72"/>
+ <curve x1="17.08" x2="14.9" x3="17.09" y1="24.14" y2="20.86" y3="19.6"/>
+ <line x="17.2" y="19.22"/>
+ <close/>
+ <move x="23.78" y="19.22"/>
+ <curve x1="25.72" x2="27.89" x3="25.58" y1="18.46" y2="21.64" y3="22.71"/>
+ <curve x1="23.12" x2="21.58" x3="23.78" y1="24.17" y2="20.82" y3="19.22"/>
+ <close/>
+ <move x="30.36" y="19.22"/>
+ <curve x1="32.92" x2="33.99" x3="31.54" y1="18.3" y2="22.6" y3="23"/>
+ <curve x1="29.08" x2="28.63" x3="30.36" y1="23.36" y2="20.7" y3="19.22"/>
+ <close/>
+ <move x="17.79" y="27.78"/>
+ <curve x1="32.44" x2="47.1" x3="61.75" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="63.3" x2="64.47" x3="63.96" y1="28.44" y2="29.63" y3="31.66"/>
+ <curve x1="63.96" x2="63.96" x3="63.96" y1="39.78" y2="47.9" y3="56.02"/>
+ <curve x1="63.09" x2="62.07" x3="60.65" y1="57.07" y2="57.92" y3="57.6"/>
+ <curve x1="46.16" x2="31.68" x3="17.2" y1="57.6" y2="57.6" y3="57.6"/>
+ <curve x1="16.86" x2="15.74" x3="16.17" y1="56.58" y2="56.05" y3="54.61"/>
+ <curve x1="16.17" x2="16.17" x3="16.17" y1="46.01" y2="37.41" y3="28.81"/>
+ <curve x1="16.65" x2="17.49" x3="17.79" y1="28.36" y2="28.46" y3="27.78"/>
+ <close/>
+ <move x="35.17" y="32.01"/>
+ <curve x1="34.39" x2="30.94" x3="31.59" y1="33.11" y2="33.42" y3="35.92"/>
+ <curve x1="30.91" x2="30.4" x3="32.77" y1="37.47" y2="39.97" y3="40.45"/>
+ <curve x1="33.38" x2="35.12" x3="31.81" y1="42.41" y2="44.74" y3="45.36"/>
+ <curve x1="30.2" x2="27.52" x3="26.5" y1="46.6" y2="46.04" y3="47.9"/>
+ <curve x1="26.05" x2="25.02" x3="26.12" y1="49.3" y2="52.31" y3="53.02"/>
+ <curve x1="28.42" x2="30.99" x3="33.48" y1="54.32" y2="53.79" y3="54.2"/>
+ <curve x1="36.32" x2="39.24" x3="42.05" y1="54.62" y2="54.43" y3="53.97"/>
+ <curve x1="43.94" x2="45.88" x3="47.46" y1="54.52" y2="53.33" y3="53.33"/>
+ <curve x1="47.75" x2="51.64" x3="53.24" y1="55.58" y2="54.06" y3="54"/>
+ <curve x1="55.26" x2="54.35" x3="53.41" y1="53.61" y2="50.42" y3="49.46"/>
+ <curve x1="52.17" x2="51.1" x3="49.94" y1="49.14" y2="48.37" y3="47.83"/>
+ <curve x1="51.04" x2="55.36" x3="52.55" y1="46.74" y2="45.12" y3="43.71"/>
+ <curve x1="50.93" x2="52.08" x3="51.23" y1="42.09" y2="39.22" y3="37.3"/>
+ <curve x1="50.3" x2="48.5" x3="46.48" y1="35.27" y2="34.96" y3="35.18"/>
+ <curve x1="45.05" x2="43.48" x3="43.55" y1="35.35" y2="37.11" y3="38.59"/>
+ <curve x1="43.55" x2="43.55" x3="43.55" y1="39.59" y2="40.6" y3="41.6"/>
+ <curve x1="43.05" x2="42.86" x3="41.65" y1="42.74" y2="43.94" y3="44.69"/>
+ <curve x1="42.88" x2="39.23" x3="40.37" y1="46.03" y2="44.62" y3="43.24"/>
+ <curve x1="39.85" x2="43.55" x3="42.76" y1="40.75" y2="39.9" y3="37.52"/>
+ <curve x1="41.38" x2="43" x3="40.89" y1="36.36" y2="33.83" y3="33.2"/>
+ <curve x1="39.77" x2="38.14" x3="36.57" y1="32.33" y2="31.9" y3="32.01"/>
+ <curve x1="36.11" x2="35.64" x3="35.17" y1="32.01" y2="32.01" y3="32.01"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="virtualized capability" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="37.42" y="71.39"/>
+ <line x="37.2" y="73.6"/>
+ <line x="39.59" y="73.6"/>
+ <line x="39.59" y="71.39"/>
+ <close/>
+ <move x="44" y="71.22"/>
+ <line x="41.79" y="71.39"/>
+ <line x="42.02" y="73.6"/>
+ <line x="44.19" y="73.42"/>
+ <close/>
+ <move x="33.18" y="70.62"/>
+ <line x="32.6" y="73.02"/>
+ <line x="34.98" y="73.42"/>
+ <line x="35.21" y="71.22"/>
+ <close/>
+ <move x="48.42" y="70.4"/>
+ <line x="46.22" y="70.81"/>
+ <line x="46.62" y="73.2"/>
+ <line x="48.78" y="72.61"/>
+ <close/>
+ <move x="28.99" y="69.41"/>
+ <line x="28.22" y="71.62"/>
+ <line x="30.21" y="72.39"/>
+ <line x="31.02" y="70"/>
+ <close/>
+ <move x="52.39" y="69"/>
+ <line x="50.41" y="69.81"/>
+ <line x="51.22" y="71.8"/>
+ <line x="53.21" y="71.22"/>
+ <close/>
+ <move x="25.02" y="67.61"/>
+ <line x="23.8" y="69.59"/>
+ <line x="26.01" y="70.62"/>
+ <line x="26.78" y="68.59"/>
+ <close/>
+ <move x="56.22" y="67.02"/>
+ <line x="54.42" y="68.01"/>
+ <line x="55.41" y="70"/>
+ <line x="57.4" y="69"/>
+ <close/>
+ <move x="21.41" y="65.21"/>
+ <line x="20.01" y="67.02"/>
+ <line x="22" y="68.42"/>
+ <line x="22.99" y="66.39"/>
+ <close/>
+ <move x="59.79" y="64.4"/>
+ <line x="58.03" y="65.8"/>
+ <line x="59.43" y="67.61"/>
+ <line x="61.18" y="66.21"/>
+ <close/>
+ <move x="17.98" y="62.42"/>
+ <line x="16.4" y="64"/>
+ <line x="18.21" y="65.62"/>
+ <line x="19.61" y="63.82"/>
+ <close/>
+ <move x="62.99" y="61.61"/>
+ <line x="61.41" y="63.01"/>
+ <line x="62.99" y="64.59"/>
+ <line x="64.79" y="63.01"/>
+ <close/>
+ <move x="15.18" y="58.99"/>
+ <line x="13.2" y="60.39"/>
+ <line x="14.78" y="62.2"/>
+ <line x="16.4" y="60.79"/>
+ <close/>
+ <move x="65.83" y="58.22"/>
+ <line x="64.61" y="59.8"/>
+ <line x="66.19" y="61.2"/>
+ <line x="67.59" y="59.4"/>
+ <close/>
+ <move x="12.8" y="55.38"/>
+ <line x="10.82" y="56.6"/>
+ <line x="11.99" y="58.41"/>
+ <line x="13.79" y="57.41"/>
+ <close/>
+ <move x="68" y="54.39"/>
+ <line x="67" y="56.42"/>
+ <line x="68.99" y="57.41"/>
+ <line x="70.03" y="55.38"/>
+ <close/>
+ <move x="10.99" y="51.42"/>
+ <line x="8.79" y="52.18"/>
+ <line x="9.6" y="54.39"/>
+ <line x="11.8" y="53.63"/>
+ <close/>
+ <move x="69.8" y="50.42"/>
+ <line x="68.99" y="52.41"/>
+ <line x="71.02" y="53.22"/>
+ <line x="71.83" y="51.19"/>
+ <close/>
+ <move x="9.6" y="47.4"/>
+ <line x="7.38" y="47.81"/>
+ <line x="7.97" y="50.2"/>
+ <line x="10.18" y="49.39"/>
+ <close/>
+ <move x="70.79" y="46.19"/>
+ <line x="70.43" y="48.39"/>
+ <line x="72.6" y="48.8"/>
+ <line x="73.22" y="46.59"/>
+ <close/>
+ <move x="8.79" y="42.98"/>
+ <line x="6.57" y="43.21"/>
+ <line x="6.98" y="45.6"/>
+ <line x="9.19" y="45.19"/>
+ <close/>
+ <move x="71.42" y="41.81"/>
+ <line x="71.2" y="44.02"/>
+ <line x="73.41" y="44.38"/>
+ <line x="73.63" y="41.99"/>
+ <close/>
+ <move x="6.57" y="37.8"/>
+ <line x="6.39" y="40.01"/>
+ <line x="6.39" y="40.82"/>
+ <line x="8.79" y="40.82"/>
+ <line x="8.79" y="40.01"/>
+ <line x="8.79" y="38.02"/>
+ <close/>
+ <move x="73.63" y="37.39"/>
+ <line x="71.42" y="37.62"/>
+ <line x="71.42" y="39.78"/>
+ <line x="73.63" y="39.6"/>
+ <close/>
+ <move x="7.21" y="33.19"/>
+ <line x="6.8" y="35.41"/>
+ <line x="9.19" y="35.82"/>
+ <line x="9.41" y="33.6"/>
+ <close/>
+ <move x="73" y="32.79"/>
+ <line x="70.79" y="33.19"/>
+ <line x="71.02" y="35.41"/>
+ <line x="73.41" y="35"/>
+ <close/>
+ <move x="8.6" y="28.78"/>
+ <line x="7.79" y="30.81"/>
+ <line x="9.77" y="31.62"/>
+ <line x="10.59" y="29.41"/>
+ <close/>
+ <move x="71.6" y="28.19"/>
+ <line x="69.62" y="29"/>
+ <line x="70.2" y="30.99"/>
+ <line x="72.41" y="30.58"/>
+ <close/>
+ <move x="40.02" y="25.6"/>
+ <curve x1="32.12" x2="25.58" x3="25.58" y1="25.6" y2="32.19" y3="39.99"/>
+ <curve x1="25.58" x2="32.12" x3="40.02" y1="48.01" y2="54.42" y3="54.42"/>
+ <curve x1="48.09" x2="54.4" x3="54.4" y1="54.42" y2="48.01" y3="39.99"/>
+ <curve x1="54.4" x2="48.09" x3="40.02" y1="32.19" y2="25.6" y3="25.6"/>
+ <close/>
+ <move x="10.41" y="24.4"/>
+ <line x="9.41" y="26.39"/>
+ <line x="11.4" y="27.38"/>
+ <line x="12.39" y="25.39"/>
+ <close/>
+ <move x="69.62" y="24"/>
+ <line x="67.59" y="24.99"/>
+ <line x="68.62" y="27.02"/>
+ <line x="70.79" y="26.2"/>
+ <close/>
+ <move x="12.8" y="20.39"/>
+ <line x="11.58" y="22.42"/>
+ <line x="13.61" y="23.59"/>
+ <line x="14.6" y="21.79"/>
+ <close/>
+ <move x="67.23" y="20.21"/>
+ <line x="65.42" y="21.39"/>
+ <line x="66.59" y="23.19"/>
+ <line x="68.4" y="22.01"/>
+ <close/>
+ <move x="15.78" y="16.78"/>
+ <line x="14.37" y="18.59"/>
+ <line x="16" y="19.98"/>
+ <line x="17.4" y="18.4"/>
+ <close/>
+ <move x="64.21" y="16.6"/>
+ <line x="62.4" y="18.18"/>
+ <line x="64.03" y="19.58"/>
+ <line x="65.61" y="18.18"/>
+ <close/>
+ <move x="19.2" y="13.8"/>
+ <line x="17.4" y="15.21"/>
+ <line x="18.98" y="16.78"/>
+ <line x="20.6" y="15.38"/>
+ <close/>
+ <move x="60.6" y="13.4"/>
+ <line x="59.2" y="15.21"/>
+ <line x="60.82" y="16.6"/>
+ <line x="62.4" y="14.98"/>
+ <close/>
+ <move x="23.22" y="11.01"/>
+ <line x="21.19" y="12.18"/>
+ <line x="22.4" y="14.21"/>
+ <line x="24.2" y="12.99"/>
+ <close/>
+ <move x="56.59" y="10.79"/>
+ <line x="55.59" y="12.82"/>
+ <line x="57.4" y="13.99"/>
+ <line x="58.79" y="12"/>
+ <close/>
+ <move x="27.41" y="8.98"/>
+ <line x="25.2" y="10.02"/>
+ <line x="26.19" y="12"/>
+ <line x="28.22" y="11.01"/>
+ <close/>
+ <move x="52.61" y="8.8"/>
+ <line x="51.8" y="10.79"/>
+ <line x="53.61" y="11.77"/>
+ <line x="54.6" y="9.79"/>
+ <close/>
+ <move x="31.79" y="7.58"/>
+ <line x="29.39" y="8.22"/>
+ <line x="30.21" y="10.38"/>
+ <line x="32.41" y="9.61"/>
+ <close/>
+ <move x="48.02" y="7.41"/>
+ <line x="47.61" y="9.61"/>
+ <line x="49.6" y="10.2"/>
+ <line x="50.41" y="7.99"/>
+ <close/>
+ <move x="43.42" y="6.59"/>
+ <line x="43.19" y="8.8"/>
+ <line x="45.4" y="9.21"/>
+ <line x="45.81" y="7"/>
+ <close/>
+ <move x="36.38" y="6.59"/>
+ <line x="33.99" y="7"/>
+ <line x="34.4" y="9.21"/>
+ <line x="36.61" y="8.8"/>
+ <close/>
+ <move x="38.59" y="6.41"/>
+ <line x="38.82" y="8.8"/>
+ <line x="40.98" y="8.8"/>
+ <line x="40.98" y="6.41"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.9" x3="40" y1="17.99" y2="0" y3="0"/>
+ <curve x1="62.28" x2="80" x3="80" y1="0" y2="17.99" y3="40"/>
+ <curve x1="80" x2="62.28" x3="40" y1="62.19" y2="80" y3="80"/>
+ <curve x1="17.9" x2="0" x3="0" y1="80" y2="62.19" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="virtual firewall" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.64" y="8.79"/>
+ <curve x1="39.41" x2="40.13" x3="40.85" y1="8.79" y2="8.7" y3="8.79"/>
+ <curve x1="40.85" x2="40.85" x3="40.99" y1="8.79" y2="8.79" y3="6.54"/>
+ <curve x1="40.18" x2="39.41" x3="38.6" y1="6.45" y2="6.54" y3="6.54"/>
+ <curve x1="38.6" x2="38.6" x3="38.64" y1="6.54" y2="6.54" y3="8.79"/>
+ <close/>
+ <move x="45.18" y="9.2"/>
+ <line x="45.59" y="7.03"/>
+ <curve x1="44.87" x2="44.05" x3="43.24" y1="6.85" y2="6.76" y3="6.72"/>
+ <curve x1="43.24" x2="43.24" x3="43.11" y1="6.72" y2="6.72" y3="8.97"/>
+ <curve x1="43.83" x2="44.55" x3="45.18" y1="8.97" y2="9.11" y3="9.2"/>
+ <close/>
+ <move x="34.4" y="9.29"/>
+ <curve x1="35.12" x2="35.85" x3="36.57" y1="9.11" y2="9.06" y3="8.97"/>
+ <curve x1="36.57" x2="36.57" x3="36.34" y1="8.97" y2="8.97" y3="6.72"/>
+ <curve x1="35.53" x2="34.72" x3="34" y1="6.76" y2="6.94" y3="7.12"/>
+ <curve x1="34" x2="34" x3="34.4" y1="7.12" y2="7.12" y3="9.29"/>
+ <close/>
+ <move x="49.47" y="10.24"/>
+ <line x="50.1" y="8.07"/>
+ <curve x1="49.37" x2="48.65" x3="47.84" y1="7.85" y2="7.58" y3="7.44"/>
+ <curve x1="47.84" x2="47.84" x3="47.35" y1="7.44" y2="7.44" y3="9.69"/>
+ <curve x1="48.07" x2="48.79" x3="49.47" y1="9.83" y2="10.01" y3="10.24"/>
+ <close/>
+ <move x="30.12" y="10.33"/>
+ <curve x1="30.84" x2="31.56" x3="32.24" y1="10.19" y2="9.92" y3="9.78"/>
+ <curve x1="32.24" x2="32.24" x3="31.74" y1="9.78" y2="9.78" y3="7.58"/>
+ <curve x1="30.93" x2="30.12" x3="29.4" y1="7.76" y2="7.98" y3="8.25"/>
+ <curve x1="29.4" x2="29.4" x3="30.12" y1="8.25" y2="8.25" y3="10.33"/>
+ <close/>
+ <move x="53.48" y="11.86"/>
+ <line x="54.47" y="9.83"/>
+ <curve x1="53.79" x2="53.07" x3="52.35" y1="9.42" y2="9.11" y3="8.88"/>
+ <curve x1="52.35" x2="52.35" x3="51.54" y1="8.88" y2="8.88" y3="10.96"/>
+ <curve x1="52.22" x2="52.85" x3="53.48" y1="11.23" y2="11.54" y3="11.86"/>
+ <close/>
+ <move x="26.2" y="12.04"/>
+ <curve x1="26.74" x2="27.46" x3="28.09" y1="11.72" y2="11.36" y3="11.14"/>
+ <curve x1="28.09" x2="28.09" x3="27.32" y1="11.14" y2="11.14" y3="9.06"/>
+ <curve x1="26.6" x2="25.83" x3="25.11" y1="9.38" y2="9.69" y3="10.01"/>
+ <curve x1="25.11" x2="25.11" x3="26.2" y1="10.01" y2="10.01" y3="12.04"/>
+ <close/>
+ <move x="57.27" y="14.02"/>
+ <line x="58.57" y="12.08"/>
+ <curve x1="57.9" x2="57.18" x3="56.55" y1="11.72" y2="11.32" y3="10.91"/>
+ <curve x1="56.55" x2="56.55" x3="55.42" y1="10.91" y2="10.91" y3="12.85"/>
+ <curve x1="56.05" x2="56.73" x3="57.27" y1="13.21" y2="13.62" y3="14.02"/>
+ <close/>
+ <move x="22.41" y="14.2"/>
+ <curve x1="22.95" x2="23.58" x3="24.26" y1="13.8" y2="13.39" y3="12.99"/>
+ <curve x1="24.26" x2="24.26" x3="23.04" y1="12.99" y2="12.99" y3="11.05"/>
+ <curve x1="22.45" x2="21.73" x3="21.1" y1="11.45" y2="11.86" y3="12.36"/>
+ <curve x1="21.1" x2="21.1" x3="22.41" y1="12.36" y2="12.36" y3="14.2"/>
+ <close/>
+ <move x="60.74" y="16.64"/>
+ <line x="62.27" y="15.02"/>
+ <curve x1="61.6" x2="61.05" x3="60.42" y1="14.43" y2="13.98" y3="13.48"/>
+ <curve x1="60.42" x2="60.42" x3="59.12" y1="13.48" y2="13.48" y3="15.24"/>
+ <curve x1="59.61" x2="60.24" x3="60.74" y1="15.74" y2="16.14" y3="16.64"/>
+ <close/>
+ <move x="19.03" y="16.86"/>
+ <curve x1="19.48" x2="20.06" x3="20.6" y1="16.46" y2="15.96" y3="15.51"/>
+ <curve x1="20.6" x2="20.6" x3="19.25" y1="15.51" y2="15.51" y3="13.71"/>
+ <curve x1="18.62" x2="18.03" x3="17.49" y1="14.2" y2="14.75" y3="15.24"/>
+ <curve x1="17.49" x2="17.49" x3="19.03" y1="15.24" y2="15.24" y3="16.86"/>
+ <close/>
+ <move x="63.81" y="19.75"/>
+ <line x="65.47" y="18.31"/>
+ <curve x1="64.98" x2="64.44" x3="63.94" y1="17.68" y2="17.18" y3="16.55"/>
+ <curve x1="63.94" x2="63.94" x3="62.36" y1="16.55" y2="16.55" y3="18.17"/>
+ <curve x1="62.81" x2="63.31" x3="63.81" y1="18.71" y2="19.21" y3="19.75"/>
+ <close/>
+ <move x="15.96" y="20.02"/>
+ <curve x1="16.41" x2="16.91" x3="17.4" y1="19.53" y2="18.94" y3="18.4"/>
+ <curve x1="17.4" x2="17.4" x3="15.78" y1="18.4" y2="18.4" y3="16.86"/>
+ <curve x1="15.24" x2="14.74" x3="14.16" y1="17.41" y2="17.99" y3="18.53"/>
+ <curve x1="14.16" x2="14.16" x3="15.96" y1="18.53" y2="18.53" y3="20.02"/>
+ <close/>
+ <move x="66.38" y="23.22"/>
+ <line x="68.23" y="22.01"/>
+ <curve x1="67.82" x2="67.41" x3="66.92" y1="21.37" y2="20.74" y3="20.07"/>
+ <curve x1="66.92" x2="66.92" x3="65.16" y1="20.07" y2="20.07" y3="21.46"/>
+ <curve x1="65.56" x2="65.97" x3="66.38" y1="22.01" y2="22.68" y3="23.22"/>
+ <close/>
+ <move x="13.43" y="23.54"/>
+ <curve x1="13.79" x2="14.16" x3="14.65" y1="23" y2="22.32" y3="21.78"/>
+ <curve x1="14.65" x2="14.65" x3="12.8" y1="21.78" y2="21.78" y3="20.43"/>
+ <curve x1="12.31" x2="11.9" x3="11.54" y1="21.06" y2="21.78" y3="22.32"/>
+ <curve x1="11.54" x2="11.54" x3="13.43" y1="22.32" y2="22.32" y3="23.54"/>
+ <close/>
+ <move x="68.45" y="27.01"/>
+ <line x="70.48" y="26.15"/>
+ <curve x1="70.16" x2="69.85" x3="69.53" y1="25.39" y2="24.67" y3="24.04"/>
+ <curve x1="69.53" x2="69.53" x3="67.5" y1="24.04" y2="24.04" y3="25.07"/>
+ <curve x1="67.82" x2="68.13" x3="68.45" y1="25.75" y2="26.47" y3="27.01"/>
+ <close/>
+ <move x="11.45" y="27.42"/>
+ <curve x1="11.67" x2="11.99" x3="12.31" y1="26.7" y2="26.15" y3="25.48"/>
+ <curve x1="12.31" x2="12.31" x3="10.41" y1="25.48" y2="25.48" y3="24.35"/>
+ <curve x1="10.01" x2="9.65" x3="9.33" y1="25.07" y2="25.79" y3="26.52"/>
+ <curve x1="9.33" x2="9.33" x3="11.45" y1="26.52" y2="26.52" y3="27.42"/>
+ <close/>
+ <move x="69.98" y="31.12"/>
+ <line x="72.15" y="30.48"/>
+ <curve x1="71.92" x2="71.61" x3="71.38" y1="29.76" y2="28.95" y3="28.23"/>
+ <curve x1="71.38" x2="71.38" x3="69.26" y1="28.23" y2="28.23" y3="29.04"/>
+ <curve x1="69.53" x2="69.76" x3="69.98" y1="29.76" y2="30.39" y3="31.12"/>
+ <close/>
+ <move x="9.92" y="31.52"/>
+ <curve x1="10.14" x2="10.32" x3="10.64" y1="30.8" y2="30.08" y3="29.45"/>
+ <curve x1="10.64" x2="10.64" x3="8.47" y1="29.45" y2="29.45" y3="28.63"/>
+ <curve x1="8.2" x2="7.98" x3="7.75" y1="29.36" y2="30.17" y3="30.89"/>
+ <curve x1="7.75" x2="7.75" x3="9.92" y1="30.89" y2="30.89" y3="31.52"/>
+ <close/>
+ <move x="70.89" y="35.31"/>
+ <line x="73.14" y="34.99"/>
+ <curve x1="73.05" x2="72.91" x3="72.73" y1="34.27" y2="33.46" y3="32.74"/>
+ <curve x1="72.73" x2="72.73" x3="70.48" y1="32.74" y2="32.74" y3="33.23"/>
+ <curve x1="70.66" x2="70.8" x3="70.89" y1="33.96" y2="34.68" y3="35.31"/>
+ <close/>
+ <move x="9.01" y="35.71"/>
+ <curve x1="9.19" x2="9.28" x3="9.42" y1="34.99" y2="34.27" y3="33.64"/>
+ <curve x1="9.42" x2="9.42" x3="7.17" y1="33.64" y2="33.64" y3="33.14"/>
+ <curve x1="7.03" x2="6.94" x3="6.76" y1="33.87" y2="34.68" y3="35.4"/>
+ <curve x1="6.76" x2="6.76" x3="9.01" y1="35.4" y2="35.4" y3="35.71"/>
+ <close/>
+ <move x="71.2" y="39.68"/>
+ <line x="73.46" y="39.59"/>
+ <curve x1="73.46" x2="73.46" x3="73.37" y1="38.87" y2="38.06" y3="37.34"/>
+ <curve x1="73.37" x2="73.37" x3="71.11" y1="37.34" y2="37.34" y3="37.52"/>
+ <curve x1="71.2" x2="71.2" x3="71.2" y1="38.24" y2="38.96" y3="39.68"/>
+ <close/>
+ <move x="6.44" y="40.9"/>
+ <line x="8.79" y="40.9"/>
+ <curve x1="8.79" x2="8.79" x3="8.79" y1="40.59" y2="40.31" y3="40.09"/>
+ <curve x1="8.79" x2="8.79" x3="8.88" y1="39.37" y2="38.65" y3="37.92"/>
+ <curve x1="8.88" x2="8.88" x3="6.62" y1="37.92" y2="37.92" y3="37.74"/>
+ <curve x1="6.44" x2="6.44" x3="6.44" y1="38.56" y2="39.28" y3="40.09"/>
+ <curve x1="6.44" x2="6.44" x3="6.44" y1="40.31" y2="40.63" y3="40.9"/>
+ <close/>
+ <move x="73.28" y="44.28"/>
+ <curve x1="73.37" x2="73.37" x3="73.46" y1="43.47" y2="42.75" y3="41.94"/>
+ <curve x1="73.46" x2="73.46" x3="71.2" y1="41.94" y2="41.94" y3="41.85"/>
+ <curve x1="71.11" x2="71.11" x3="71.02" y1="42.57" y2="43.29" y3="44.01"/>
+ <curve x1="71.02" x2="71.02" x3="73.28" y1="44.01" y2="44.01" y3="44.28"/>
+ <close/>
+ <move x="6.94" y="45.55"/>
+ <line x="9.19" y="45.14"/>
+ <curve x1="9.01" x2="8.92" x3="8.88" y1="44.42" y2="43.7" y3="42.98"/>
+ <curve x1="8.88" x2="8.88" x3="6.62" y1="42.98" y2="42.98" y3="43.25"/>
+ <curve x1="6.67" x2="6.76" x3="6.94" y1="44.01" y2="44.73" y3="45.55"/>
+ <close/>
+ <move x="72.33" y="48.88"/>
+ <curve x1="72.55" x2="72.73" x3="72.91" y1="48.07" y2="47.35" y3="46.54"/>
+ <curve x1="72.91" x2="72.91" x3="70.66" y1="46.54" y2="46.54" y3="46.13"/>
+ <curve x1="70.48" x2="70.39" x3="70.16" y1="46.85" y2="47.58" y3="48.3"/>
+ <curve x1="70.16" x2="70.16" x3="72.33" y1="48.3" y2="48.3" y3="48.88"/>
+ <close/>
+ <move x="7.98" y="50.06"/>
+ <line x="10.14" y="49.33"/>
+ <curve x1="9.92" x2="9.74" x3="9.6" y1="48.7" y2="47.98" y3="47.26"/>
+ <curve x1="9.6" x2="9.6" x3="7.39" y1="47.26" y2="47.26" y3="47.8"/>
+ <curve x1="7.57" x2="7.75" x3="7.98" y1="48.57" y2="49.29" y3="50.06"/>
+ <close/>
+ <move x="70.8" y="53.21"/>
+ <curve x1="71.11" x2="71.43" x3="71.7" y1="52.49" y2="51.77" y3="51.05"/>
+ <curve x1="71.7" x2="71.7" x3="69.53" y1="51.05" y2="51.05" y3="50.33"/>
+ <curve x1="69.26" x2="69.04" x3="68.77" y1="51.05" y2="51.68" y3="52.36"/>
+ <curve x1="68.77" x2="68.77" x3="70.8" y1="52.36" y2="52.36" y3="53.21"/>
+ <close/>
+ <move x="9.65" y="54.34"/>
+ <line x="11.76" y="53.48"/>
+ <curve x1="11.45" x2="11.13" x3="10.86" y1="52.72" y2="52.08" y3="51.45"/>
+ <curve x1="10.86" x2="10.86" x3="8.79" y1="51.45" y2="51.45" y3="52.27"/>
+ <curve x1="9.01" x2="9.33" x3="9.65" y1="52.99" y2="53.62" y3="54.34"/>
+ <close/>
+ <move x="68.72" y="57.41"/>
+ <curve x1="69.13" x2="69.53" x3="69.85" y1="56.68" y2="56.05" y3="55.38"/>
+ <curve x1="69.85" x2="69.85" x3="67.82" y1="55.38" y2="55.38" y3="54.34"/>
+ <curve x1="67.5" x2="67.1" x3="66.78" y1="55.02" y2="55.56" y3="56.19"/>
+ <curve x1="66.78" x2="66.78" x3="68.72" y1="56.19" y2="56.19" y3="57.41"/>
+ <close/>
+ <move x="11.9" y="58.44"/>
+ <line x="13.84" y="57.18"/>
+ <curve x1="13.43" x2="13.03" x3="12.71" y1="56.59" y2="55.96" y3="55.38"/>
+ <curve x1="12.71" x2="12.71" x3="10.73" y1="55.38" y2="55.38" y3="56.46"/>
+ <curve x1="11.13" x2="11.54" x3="11.9" y1="57.09" y2="57.81" y3="58.44"/>
+ <close/>
+ <move x="66.06" y="61.19"/>
+ <curve x1="66.51" x2="67.01" x3="67.41" y1="60.56" y2="59.98" y3="59.35"/>
+ <curve x1="67.41" x2="67.41" x3="65.56" y1="59.35" y2="59.35" y3="58.04"/>
+ <curve x1="65.16" x2="64.75" x3="64.26" y1="58.62" y2="59.26" y3="59.75"/>
+ <curve x1="64.26" x2="64.26" x3="66.06" y1="59.75" y2="59.75" y3="61.19"/>
+ <close/>
+ <move x="14.74" y="62.19"/>
+ <line x="16.41" y="60.65"/>
+ <curve x1="15.96" x2="15.55" x3="15.15" y1="60.16" y2="59.53" y3="58.94"/>
+ <curve x1="15.15" x2="15.15" x3="13.3" y1="58.94" y2="58.94" y3="60.34"/>
+ <curve x1="13.79" x2="14.25" x3="14.74" y1="60.97" y2="61.6" y3="62.19"/>
+ <close/>
+ <move x="62.81" y="64.58"/>
+ <curve x1="63.4" x2="63.94" x3="64.53" y1="64.13" y2="63.54" y3="63"/>
+ <curve x1="64.53" x2="64.53" x3="62.81" y1="63" y2="63" y3="61.46"/>
+ <curve x1="62.36" x2="61.87" x3="61.28" y1="61.92" y2="62.5" y3="63"/>
+ <curve x1="61.28" x2="61.28" x3="62.81" y1="63" y2="63" y3="64.58"/>
+ <close/>
+ <move x="18.03" y="65.48"/>
+ <line x="19.57" y="63.72"/>
+ <curve x1="19.03" x2="18.44" x3="17.94" y1="63.22" y2="62.73" y3="62.23"/>
+ <curve x1="17.94" x2="17.94" x3="16.36" y1="62.23" y2="62.23" y3="63.76"/>
+ <curve x1="16.91" x2="17.49" x3="18.03" y1="64.35" y2="64.89" y3="65.48"/>
+ <close/>
+ <move x="59.21" y="67.55"/>
+ <curve x1="59.84" x2="60.47" x3="61.05" y1="67.1" y2="66.61" y3="66.11"/>
+ <curve x1="61.05" x2="61.05" x3="59.7" y1="66.11" y2="66.11" y3="64.44"/>
+ <curve x1="59.12" x2="58.48" x3="57.9" y1="64.85" y2="65.3" y3="65.7"/>
+ <curve x1="57.9" x2="57.9" x3="59.21" y1="65.7" y2="65.7" y3="67.55"/>
+ <close/>
+ <move x="21.82" y="68.23"/>
+ <line x="23.04" y="66.38"/>
+ <curve x1="22.45" x2="21.82" x3="21.28" y1="65.97" y2="65.57" y3="65.07"/>
+ <curve x1="21.28" x2="21.28" x3="19.88" y1="65.07" y2="65.07" y3="66.83"/>
+ <curve x1="20.47" x2="21.1" x3="21.82" y1="67.42" y2="67.82" y3="68.23"/>
+ <close/>
+ <move x="55.24" y="69.9"/>
+ <curve x1="55.91" x2="56.64" x3="57.27" y1="69.58" y2="69.18" y3="68.77"/>
+ <curve x1="57.27" x2="57.27" x3="56.05" y1="68.77" y2="68.77" y3="66.83"/>
+ <curve x1="55.51" x2="54.83" x3="54.2" y1="67.24" y2="67.55" y3="67.96"/>
+ <curve x1="54.2" x2="54.2" x3="55.24" y1="67.96" y2="67.96" y3="69.9"/>
+ <close/>
+ <move x="25.83" y="70.48"/>
+ <line x="26.83" y="68.45"/>
+ <curve x1="26.2" x2="25.52" x3="24.89" y1="68.14" y2="67.82" y3="67.51"/>
+ <curve x1="24.89" x2="24.89" x3="23.76" y1="67.51" y2="67.51" y3="69.45"/>
+ <curve x1="24.48" x2="25.2" x3="25.83" y1="69.81" y2="70.17" y3="70.48"/>
+ <close/>
+ <move x="51" y="71.75"/>
+ <curve x1="51.63" x2="52.35" x3="53.07" y1="71.52" y2="71.21" y3="70.98"/>
+ <curve x1="53.07" x2="53.07" x3="52.22" y1="70.98" y2="70.98" y3="68.86"/>
+ <curve x1="51.54" x2="50.91" x3="50.19" y1="69.09" y2="69.45" y3="69.67"/>
+ <curve x1="50.19" x2="50.19" x3="51" y1="69.67" y2="69.67" y3="71.75"/>
+ <close/>
+ <move x="30.3" y="72.15"/>
+ <line x="30.93" y="69.99"/>
+ <curve x1="30.21" x2="29.58" x3="28.86" y1="69.81" y2="69.58" y3="69.27"/>
+ <curve x1="28.86" x2="28.86" x3="28.04" y1="69.27" y2="69.27" y3="71.43"/>
+ <curve x1="28.77" x2="29.49" x3="30.3" y1="71.7" y2="71.93" y3="72.15"/>
+ <close/>
+ <move x="46.4" y="72.96"/>
+ <curve x1="47.21" x2="47.93" x3="48.65" y1="72.83" y2="72.65" y3="72.47"/>
+ <curve x1="48.65" x2="48.65" x3="48.07" y1="72.47" y2="72.47" y3="70.3"/>
+ <curve x1="47.44" x2="46.71" x3="45.99" y1="70.48" y2="70.62" y3="70.8"/>
+ <curve x1="45.99" x2="45.99" x3="46.4" y1="70.8" y2="70.8" y3="72.96"/>
+ <close/>
+ <move x="34.81" y="73.23"/>
+ <line x="35.12" y="70.98"/>
+ <curve x1="34.49" x2="33.73" x3="33.01" y1="70.89" y2="70.71" y3="70.57"/>
+ <curve x1="33.01" x2="33.01" x3="32.55" y1="70.57" y2="70.57" y3="72.74"/>
+ <curve x1="33.28" x2="34.09" x3="34.81" y1="72.96" y2="73.05" y3="73.23"/>
+ <close/>
+ <move x="41.8" y="73.55"/>
+ <curve x1="42.61" x2="43.33" x3="44.14" y1="73.55" y2="73.46" y3="73.37"/>
+ <curve x1="44.14" x2="44.14" x3="43.83" y1="73.37" y2="73.37" y3="71.12"/>
+ <curve x1="43.11" x2="42.39" x3="41.71" y1="71.21" y2="71.3" y3="71.3"/>
+ <curve x1="41.71" x2="41.71" x3="41.8" y1="71.3" y2="71.3" y3="73.55"/>
+ <close/>
+ <move x="39.45" y="73.55"/>
+ <line x="39.54" y="71.34"/>
+ <curve x1="38.73" x2="38.01" x3="37.29" y1="71.34" y2="71.3" y3="71.21"/>
+ <curve x1="37.29" x2="37.29" x3="37.15" y1="71.21" y2="71.21" y3="73.46"/>
+ <curve x1="37.88" x2="38.64" x3="39.45" y1="73.55" y2="73.55" y3="73.55"/>
+ <close/>
+ <move x="15.46" y="24.52"/>
+ <line x="15.46" y="28.4"/>
+ <line x="30.93" y="28.4"/>
+ <line x="30.93" y="24.52"/>
+ <line x="15.46" y="24.52"/>
+ <line x="15.46" y="24.52"/>
+ <close/>
+ <move x="32.22" y="24.52"/>
+ <line x="32.22" y="28.4"/>
+ <line x="47.69" y="28.4"/>
+ <line x="47.69" y="24.52"/>
+ <line x="32.22" y="24.52"/>
+ <line x="32.22" y="24.52"/>
+ <close/>
+ <move x="48.97" y="24.52"/>
+ <line x="48.97" y="28.4"/>
+ <line x="64.44" y="28.4"/>
+ <line x="64.44" y="24.52"/>
+ <line x="48.97" y="24.52"/>
+ <line x="48.97" y="24.52"/>
+ <close/>
+ <move x="24.49" y="29.68"/>
+ <line x="24.49" y="33.56"/>
+ <line x="38.65" y="33.56"/>
+ <line x="38.65" y="29.68"/>
+ <line x="24.49" y="29.68"/>
+ <line x="24.49" y="29.68"/>
+ <close/>
+ <move x="41.24" y="29.68"/>
+ <line x="41.24" y="33.56"/>
+ <line x="55.4" y="33.56"/>
+ <line x="55.4" y="29.68"/>
+ <line x="41.24" y="29.68"/>
+ <line x="41.24" y="29.68"/>
+ <close/>
+ <move x="15.46" y="29.68"/>
+ <line x="15.46" y="33.56"/>
+ <line x="21.91" y="33.56"/>
+ <line x="21.91" y="29.68"/>
+ <line x="15.46" y="29.68"/>
+ <line x="15.46" y="29.68"/>
+ <close/>
+ <move x="57.99" y="29.68"/>
+ <line x="57.99" y="33.56"/>
+ <line x="64.44" y="33.56"/>
+ <line x="64.44" y="29.68"/>
+ <line x="57.99" y="29.68"/>
+ <line x="57.99" y="29.68"/>
+ <close/>
+ <move x="15.46" y="34.84"/>
+ <line x="15.46" y="38.72"/>
+ <line x="30.93" y="38.72"/>
+ <line x="30.93" y="34.84"/>
+ <line x="15.46" y="34.84"/>
+ <line x="15.46" y="34.84"/>
+ <close/>
+ <move x="32.22" y="34.84"/>
+ <line x="32.22" y="38.72"/>
+ <line x="47.69" y="38.72"/>
+ <line x="47.69" y="34.84"/>
+ <line x="32.22" y="34.84"/>
+ <line x="32.22" y="34.84"/>
+ <close/>
+ <move x="48.97" y="34.84"/>
+ <line x="48.97" y="38.72"/>
+ <line x="64.44" y="38.72"/>
+ <line x="64.44" y="34.84"/>
+ <line x="48.97" y="34.84"/>
+ <line x="48.97" y="34.84"/>
+ <close/>
+ <move x="24.49" y="41.31"/>
+ <line x="24.49" y="43.88"/>
+ <line x="38.65" y="43.88"/>
+ <line x="38.65" y="41.31"/>
+ <line x="24.49" y="41.31"/>
+ <line x="24.49" y="41.31"/>
+ <close/>
+ <move x="41.24" y="41.31"/>
+ <line x="41.24" y="43.88"/>
+ <line x="55.4" y="43.88"/>
+ <line x="55.4" y="41.31"/>
+ <line x="41.24" y="41.31"/>
+ <line x="41.24" y="41.31"/>
+ <close/>
+ <move x="15.46" y="41.31"/>
+ <line x="15.46" y="43.88"/>
+ <line x="21.91" y="43.88"/>
+ <line x="21.91" y="41.31"/>
+ <line x="15.46" y="41.31"/>
+ <line x="15.46" y="41.31"/>
+ <close/>
+ <move x="57.99" y="41.31"/>
+ <line x="57.99" y="43.88"/>
+ <line x="64.44" y="43.88"/>
+ <line x="64.44" y="41.31"/>
+ <line x="57.99" y="41.31"/>
+ <line x="57.99" y="41.31"/>
+ <close/>
+ <move x="15.46" y="46.47"/>
+ <line x="15.46" y="49.04"/>
+ <line x="30.93" y="49.04"/>
+ <line x="30.93" y="46.47"/>
+ <line x="15.46" y="46.47"/>
+ <line x="15.46" y="46.47"/>
+ <close/>
+ <move x="32.22" y="46.47"/>
+ <line x="32.22" y="49.04"/>
+ <line x="47.69" y="49.04"/>
+ <line x="47.69" y="46.47"/>
+ <line x="32.22" y="46.47"/>
+ <line x="32.22" y="46.47"/>
+ <close/>
+ <move x="48.97" y="46.47"/>
+ <line x="48.97" y="49.04"/>
+ <line x="64.44" y="49.04"/>
+ <line x="64.44" y="46.47"/>
+ <line x="48.97" y="46.47"/>
+ <line x="48.97" y="46.47"/>
+ <close/>
+ <move x="24.49" y="51.63"/>
+ <line x="24.49" y="54.2"/>
+ <line x="38.65" y="54.2"/>
+ <line x="38.65" y="51.63"/>
+ <line x="24.49" y="51.63"/>
+ <line x="24.49" y="51.63"/>
+ <close/>
+ <move x="41.24" y="51.63"/>
+ <line x="41.24" y="54.2"/>
+ <line x="55.4" y="54.2"/>
+ <line x="55.4" y="51.63"/>
+ <line x="41.24" y="51.63"/>
+ <line x="41.24" y="51.63"/>
+ <close/>
+ <move x="15.46" y="51.63"/>
+ <line x="15.46" y="54.2"/>
+ <line x="21.91" y="54.2"/>
+ <line x="21.91" y="51.63"/>
+ <line x="15.46" y="51.63"/>
+ <line x="15.46" y="51.63"/>
+ <close/>
+ <move x="57.99" y="51.63"/>
+ <line x="57.99" y="54.2"/>
+ <line x="64.44" y="54.2"/>
+ <line x="64.44" y="51.63"/>
+ <line x="57.99" y="51.63"/>
+ <line x="57.99" y="51.63"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.95" x3="39.95" y1="17.99" y2="0" y3="0"/>
+ <curve x1="62.01" x2="79.91" x3="79.91" y1="0" y2="17.99" y3="40"/>
+ <curve x1="79.91" x2="62.01" x3="39.95" y1="62.1" y2="80" y3="80"/>
+ <curve x1="17.95" x2="0" x3="0" y1="80" y2="62.1" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="virtual l2 switching" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.78" y="8.78"/>
+ <curve x1="39.37" x2="40.18" x3="40.94" y1="8.78" y2="8.78" y3="8.78"/>
+ <curve x1="40.94" x2="40.94" x3="40.94" y1="8.78" y2="8.78" y3="6.62"/>
+ <curve x1="40.18" x2="39.37" x3="38.56" y1="6.39" y2="6.39" y3="6.62"/>
+ <curve x1="38.56" x2="38.56" x3="38.78" y1="6.62" y2="6.62" y3="8.78"/>
+ <close/>
+ <move x="45.36" y="9.19"/>
+ <line x="45.76" y="6.98"/>
+ <curve x1="44.95" x2="44.14" x3="43.38" y1="6.98" y2="6.8" y3="6.8"/>
+ <curve x1="43.38" x2="43.38" x3="43.15" y1="6.8" y2="6.8" y3="9.01"/>
+ <curve x1="43.78" x2="44.55" x3="45.36" y1="9.01" y2="9.01" y3="9.19"/>
+ <close/>
+ <move x="34.37" y="9.41"/>
+ <curve x1="35.18" x2="35.76" x3="36.57" y1="9.19" y2="9.01" y3="9.01"/>
+ <curve x1="36.57" x2="36.57" x3="36.35" y1="9.01" y2="9.01" y3="6.8"/>
+ <curve x1="35.58" x2="34.77" x3="33.96" y1="6.8" y2="6.98" y3="6.98"/>
+ <curve x1="33.96" x2="33.96" x3="34.37" y1="6.98" y2="6.98" y3="9.41"/>
+ <close/>
+ <move x="49.55" y="10.4"/>
+ <line x="50.13" y="8.01"/>
+ <curve x1="49.55" x2="48.74" x3="47.97" y1="7.79" y2="7.61" y3="7.61"/>
+ <curve x1="47.97" x2="47.97" x3="47.57" y1="7.61" y2="7.61" y3="9.59"/>
+ <curve x1="48.15" x2="48.74" x3="49.55" y1="9.82" y2="10" y3="10.4"/>
+ <close/>
+ <move x="30.18" y="10.4"/>
+ <curve x1="30.76" x2="31.57" x3="32.39" y1="10.22" y2="10" y3="9.82"/>
+ <curve x1="32.39" x2="32.39" x3="31.75" y1="9.82" y2="9.82" y3="7.61"/>
+ <curve x1="30.99" x2="30.18" x3="29.37" y1="7.79" y2="8.01" y3="8.19"/>
+ <curve x1="29.37" x2="29.37" x3="30.18" y1="8.19" y2="8.19" y3="10.4"/>
+ <close/>
+ <move x="53.56" y="11.8"/>
+ <line x="54.55" y="9.82"/>
+ <curve x1="53.96" x2="53.15" x3="52.57" y1="9.59" y2="9.19" y3="8.78"/>
+ <curve x1="52.57" x2="52.57" x3="51.57" y1="8.78" y2="8.78" y3="10.99"/>
+ <curve x1="52.16" x2="52.97" x3="53.56" y1="11.21" y2="11.62" y3="11.8"/>
+ <close/>
+ <move x="26.17" y="11.98"/>
+ <curve x1="26.75" x2="27.39" x3="28.2" y1="11.62" y2="11.39" y3="11.21"/>
+ <curve x1="28.2" x2="28.2" x3="27.39" y1="11.21" y2="11.21" y3="9.01"/>
+ <curve x1="26.57" x2="25.76" x3="25.18" y1="9.41" y2="9.59" y3="10"/>
+ <curve x1="25.18" x2="25.18" x3="26.17" y1="10" y2="10" y3="11.98"/>
+ <close/>
+ <move x="57.34" y="14.01"/>
+ <line x="58.74" y="12.2"/>
+ <curve x1="57.97" x2="57.34" x3="56.53" y1="11.8" y2="11.39" y3="10.81"/>
+ <curve x1="56.53" x2="56.53" x3="55.54" y1="10.81" y2="10.81" y3="13.01"/>
+ <curve x1="56.17" x2="56.75" x3="57.34" y1="13.19" y2="13.6" y3="14.01"/>
+ <close/>
+ <move x="22.39" y="14.19"/>
+ <curve x1="22.97" x2="23.6" x3="24.19" y1="13.78" y2="13.42" y3="13.01"/>
+ <curve x1="24.19" x2="24.19" x3="23.2" y1="13.01" y2="13.01" y3="11.21"/>
+ <curve x1="22.39" x2="21.8" x3="21.17" y1="11.62" y2="11.8" y3="12.38"/>
+ <curve x1="21.17" x2="21.17" x3="22.39" y1="12.38" y2="12.38" y3="14.19"/>
+ <close/>
+ <move x="60.76" y="16.8"/>
+ <line x="62.34" y="15"/>
+ <curve x1="61.75" x2="61.12" x3="60.54" y1="14.41" y2="14.01" y3="13.42"/>
+ <curve x1="60.54" x2="60.54" x3="59.14" y1="13.42" y2="13.42" y3="15.22"/>
+ <curve x1="59.73" x2="60.36" x3="60.76" y1="15.81" y2="16.21" y3="16.8"/>
+ <close/>
+ <move x="18.96" y="17.02"/>
+ <curve x1="19.59" x2="20" x3="20.58" y1="16.62" y2="15.99" y3="15.4"/>
+ <curve x1="20.58" x2="20.58" x3="19.19" y1="15.4" y2="15.4" y3="13.78"/>
+ <curve x1="18.6" x2="17.97" x3="17.39" y1="14.19" y2="14.82" y3="15.22"/>
+ <curve x1="17.39" x2="17.39" x3="18.96" y1="15.22" y2="15.22" y3="17.02"/>
+ <close/>
+ <move x="63.96" y="19.82"/>
+ <line x="65.54" y="18.42"/>
+ <curve x1="65.13" x2="64.55" x3="63.96" y1="17.79" y2="17.2" y3="16.62"/>
+ <curve x1="63.96" x2="63.96" x3="62.34" y1="16.62" y2="16.62" y3="18.19"/>
+ <curve x1="62.93" x2="63.33" x3="63.96" y1="18.78" y2="19.19" y3="19.82"/>
+ <close/>
+ <move x="15.99" y="20.22"/>
+ <curve x1="16.39" x2="16.98" x3="17.39" y1="19.59" y2="19.01" y3="18.42"/>
+ <curve x1="17.39" x2="17.39" x3="15.76" y1="18.42" y2="18.42" y3="17.02"/>
+ <curve x1="15.18" x2="14.77" x3="14.19" y1="17.61" y2="18.01" y3="18.6"/>
+ <curve x1="14.19" x2="14.19" x3="15.99" y1="18.6" y2="18.6" y3="20.22"/>
+ <close/>
+ <move x="66.53" y="23.19"/>
+ <line x="68.33" y="22.2"/>
+ <curve x1="67.93" x2="67.52" x3="67.16" y1="21.39" y2="20.81" y3="20.22"/>
+ <curve x1="67.16" x2="67.16" x3="65.36" y1="20.22" y2="20.22" y3="21.39"/>
+ <curve x1="65.76" x2="66.12" x3="66.53" y1="22.2" y2="22.79" y3="23.19"/>
+ <close/>
+ <move x="13.38" y="23.6"/>
+ <curve x1="13.78" x2="14.19" x3="14.59" y1="23.01" y2="22.38" y3="21.8"/>
+ <curve x1="14.59" x2="14.59" x3="12.79" y1="21.8" y2="21.8" y3="20.4"/>
+ <curve x1="12.39" x2="11.98" x3="11.39" y1="21.21" y2="21.8" y3="22.38"/>
+ <curve x1="11.39" x2="11.39" x3="13.38" y1="22.38" y2="22.38" y3="23.6"/>
+ <close/>
+ <move x="68.56" y="27.02"/>
+ <line x="70.54" y="26.21"/>
+ <curve x1="70.36" x2="69.95" x3="69.55" y1="25.58" y2="24.82" y3="24.01"/>
+ <curve x1="69.55" x2="69.55" x3="67.52" y1="24.01" y2="24.01" y3="25.22"/>
+ <curve x1="67.93" x2="68.33" x3="68.56" y1="25.81" y2="26.39" y3="27.02"/>
+ <close/>
+ <move x="11.39" y="27.38"/>
+ <curve x1="11.8" x2="11.98" x3="12.39" y1="26.8" y2="26.21" y3="25.58"/>
+ <curve x1="12.39" x2="12.39" x3="10.4" y1="25.58" y2="25.58" y3="24.59"/>
+ <curve x1="10" x2="9.59" x3="9.41" y1="25.22" y2="25.81" y3="26.62"/>
+ <curve x1="9.41" x2="9.41" x3="11.39" y1="26.62" y2="26.62" y3="27.38"/>
+ <close/>
+ <move x="70.13" y="31.21"/>
+ <line x="72.34" y="30.58"/>
+ <curve x1="72.12" x2="71.75" x3="71.53" y1="29.82" y2="29.01" y3="28.42"/>
+ <curve x1="71.53" x2="71.53" x3="69.55" y1="28.42" y2="28.42" y3="29.19"/>
+ <curve x1="69.73" x2="69.95" x3="70.13" y1="29.82" y2="30.4" y3="31.21"/>
+ <close/>
+ <move x="9.77" y="31.62"/>
+ <curve x1="10.18" x2="10.4" x3="10.58" y1="30.81" y2="30.22" y3="29.41"/>
+ <curve x1="10.58" x2="10.58" x3="8.38" y1="29.41" y2="29.41" y3="28.78"/>
+ <curve x1="8.2" x2="7.97" x3="7.79" y1="29.41" y2="30.22" y3="30.99"/>
+ <curve x1="7.79" x2="7.79" x3="9.77" y1="30.99" y2="30.99" y3="31.62"/>
+ <close/>
+ <move x="70.94" y="35.4"/>
+ <line x="73.33" y="35"/>
+ <curve x1="73.15" x2="73.15" x3="72.93" y1="34.19" y2="33.6" y3="32.79"/>
+ <curve x1="72.93" x2="72.93" x3="70.54" y1="32.79" y2="32.79" y3="33.19"/>
+ <curve x1="70.72" x2="70.94" x3="70.94" y1="34.01" y2="34.82" y3="35.4"/>
+ <close/>
+ <move x="9.01" y="35.81"/>
+ <curve x1="9.19" x2="9.19" x3="9.41" y1="35" y2="34.41" y3="33.6"/>
+ <curve x1="9.41" x2="9.41" x3="7.21" y1="33.6" y2="33.6" y3="33.19"/>
+ <curve x1="6.98" x2="6.8" x3="6.8" y1="34.01" y2="34.82" y3="35.58"/>
+ <curve x1="6.8" x2="6.8" x3="9.01" y1="35.58" y2="35.58" y3="35.81"/>
+ <close/>
+ <move x="71.35" y="39.59"/>
+ <line x="73.56" y="39.59"/>
+ <curve x1="73.56" x2="73.56" x3="73.56" y1="39.01" y2="38.19" y3="37.38"/>
+ <curve x1="73.56" x2="73.56" x3="71.35" y1="37.38" y2="37.38" y3="37.61"/>
+ <curve x1="71.35" x2="71.35" x3="71.35" y1="38.42" y2="39.01" y3="39.59"/>
+ <close/>
+ <move x="6.39" y="40.99"/>
+ <line x="8.78" y="40.99"/>
+ <curve x1="8.78" x2="8.78" x3="8.78" y1="40.81" y2="40.4" y3="40.22"/>
+ <curve x1="8.78" x2="8.78" x3="8.78" y1="39.41" y2="38.6" y3="38.01"/>
+ <curve x1="8.78" x2="8.78" x3="6.39" y1="38.01" y2="38.01" y3="37.79"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="38.6" y2="39.41" y3="40.22"/>
+ <curve x1="6.39" x2="6.39" x3="6.39" y1="40.4" y2="40.81" y3="40.99"/>
+ <close/>
+ <move x="73.33" y="44.41"/>
+ <curve x1="73.56" x2="73.56" x3="73.56" y1="43.6" y2="42.79" y3="42.02"/>
+ <curve x1="73.56" x2="73.56" x3="71.35" y1="42.02" y2="42.02" y3="42.02"/>
+ <curve x1="71.35" x2="71.35" x3="71.12" y1="42.61" y2="43.42" y3="44.01"/>
+ <curve x1="71.12" x2="71.12" x3="73.33" y1="44.01" y2="44.01" y3="44.41"/>
+ <close/>
+ <move x="6.98" y="45.58"/>
+ <line x="9.19" y="45.22"/>
+ <curve x1="9.01" x2="9.01" x3="8.78" y1="44.59" y2="43.78" y3="43.01"/>
+ <curve x1="8.78" x2="8.78" x3="6.57" y1="43.01" y2="43.01" y3="43.42"/>
+ <curve x1="6.8" x2="6.8" x3="6.98" y1="44.01" y2="44.82" y3="45.58"/>
+ <close/>
+ <move x="72.52" y="49.01"/>
+ <curve x1="72.75" x2="72.93" x3="73.15" y1="48.19" y2="47.38" y3="46.62"/>
+ <curve x1="73.15" x2="73.15" x3="70.72" y1="46.62" y2="46.62" y3="46.21"/>
+ <curve x1="70.72" x2="70.54" x3="70.36" y1="47.02" y2="47.61" y3="48.42"/>
+ <curve x1="70.36" x2="70.36" x3="72.52" y1="48.42" y2="48.42" y3="49.01"/>
+ <close/>
+ <move x="7.97" y="50.22"/>
+ <line x="10.18" y="49.41"/>
+ <curve x1="9.77" x2="9.77" x3="9.59" y1="48.78" y2="48.01" y3="47.38"/>
+ <curve x1="9.59" x2="9.59" x3="7.39" y1="47.38" y2="47.38" y3="48.01"/>
+ <curve x1="7.61" x2="7.79" x3="7.97" y1="48.6" y2="49.41" y3="50.22"/>
+ <close/>
+ <move x="70.94" y="53.42"/>
+ <curve x1="71.35" x2="71.53" x3="71.75" y1="52.61" y2="51.8" y3="51.21"/>
+ <curve x1="71.75" x2="71.75" x3="69.73" y1="51.21" y2="51.21" y3="50.4"/>
+ <curve x1="69.55" x2="69.14" x3="68.92" y1="50.99" y2="51.8" y3="52.38"/>
+ <curve x1="68.92" x2="68.92" x3="70.94" y1="52.38" y2="52.38" y3="53.42"/>
+ <close/>
+ <move x="9.59" y="54.41"/>
+ <line x="11.8" y="53.6"/>
+ <curve x1="11.39" x2="11.17" x3="10.99" y1="52.79" y2="52.2" y3="51.62"/>
+ <curve x1="10.99" x2="10.99" x3="8.78" y1="51.62" y2="51.62" y3="52.38"/>
+ <curve x1="9.01" x2="9.41" x3="9.59" y1="53.01" y2="53.82" y3="54.41"/>
+ <close/>
+ <move x="68.92" y="57.38"/>
+ <curve x1="69.14" x2="69.55" x3="69.95" y1="56.8" y2="56.21" y3="55.4"/>
+ <curve x1="69.95" x2="69.95" x3="67.93" y1="55.4" y2="55.4" y3="54.41"/>
+ <curve x1="67.52" x2="67.34" x3="66.75" y1="55.22" y2="55.58" y3="56.39"/>
+ <curve x1="66.75" x2="66.75" x3="68.92" y1="56.39" y2="56.39" y3="57.38"/>
+ <close/>
+ <move x="11.98" y="58.42"/>
+ <line x="13.78" y="57.2"/>
+ <curve x1="13.38" x2="12.97" x3="12.79" y1="56.62" y2="55.99" y3="55.4"/>
+ <curve x1="12.79" x2="12.79" x3="10.58" y1="55.4" y2="55.4" y3="56.62"/>
+ <curve x1="11.17" x2="11.39" x3="11.98" y1="57.2" y2="58.01" y3="58.42"/>
+ <close/>
+ <move x="66.12" y="61.39"/>
+ <curve x1="66.53" x2="67.16" x3="67.52" y1="60.81" y2="60" y3="59.41"/>
+ <curve x1="67.52" x2="67.52" x3="65.76" y1="59.41" y2="59.41" y3="58.19"/>
+ <curve x1="65.36" x2="64.73" x3="64.32" y1="58.82" y2="59.19" y3="59.82"/>
+ <curve x1="64.32" x2="64.32" x3="66.12" y1="59.82" y2="59.82" y3="61.39"/>
+ <close/>
+ <move x="14.77" y="62.2"/>
+ <line x="16.39" y="60.81"/>
+ <curve x1="15.99" x2="15.58" x3="15.18" y1="60.22" y2="59.59" y3="59.01"/>
+ <curve x1="15.18" x2="15.18" x3="13.2" y1="59.01" y2="59.01" y3="60.4"/>
+ <curve x1="13.78" x2="14.37" x3="14.77" y1="60.99" y2="61.62" y3="62.2"/>
+ <close/>
+ <move x="62.93" y="64.59"/>
+ <curve x1="63.56" x2="64.14" x3="64.55" y1="64.19" y2="63.6" y3="63.19"/>
+ <curve x1="64.55" x2="64.55" x3="62.93" y1="63.19" y2="63.19" y3="61.62"/>
+ <curve x1="62.34" x2="61.93" x3="61.35" y1="62.02" y2="62.61" y3="63.19"/>
+ <curve x1="61.35" x2="61.35" x3="62.93" y1="63.19" y2="63.19" y3="64.59"/>
+ <close/>
+ <move x="17.97" y="65.58"/>
+ <line x="19.59" y="63.82"/>
+ <curve x1="18.96" x2="18.6" x3="17.97" y1="63.42" y2="62.79" y3="62.38"/>
+ <curve x1="17.97" x2="17.97" x3="16.39" y1="62.38" y2="62.38" y3="64.01"/>
+ <curve x1="16.98" x2="17.39" x3="17.97" y1="64.41" y2="65" y3="65.58"/>
+ <close/>
+ <move x="59.37" y="67.61"/>
+ <curve x1="59.95" x2="60.54" x3="61.12" y1="67.2" y2="66.8" y3="66.21"/>
+ <curve x1="61.12" x2="61.12" x3="59.73" y1="66.21" y2="66.21" y3="64.41"/>
+ <curve x1="59.37" x2="58.56" x3="57.97" y1="65" y2="65.4" y3="65.81"/>
+ <curve x1="57.97" x2="57.97" x3="59.37" y1="65.81" y2="65.81" y3="67.61"/>
+ <close/>
+ <move x="21.8" y="68.19"/>
+ <line x="22.97" y="66.39"/>
+ <curve x1="22.39" x2="21.98" x3="21.17" y1="65.99" y2="65.58" y3="65.22"/>
+ <curve x1="21.17" x2="21.17" x3="19.77" y1="65.22" y2="65.22" y3="67.02"/>
+ <curve x1="20.58" x2="21.17" x3="21.8" y1="67.61" y2="68.01" y3="68.19"/>
+ <close/>
+ <move x="55.36" y="70"/>
+ <curve x1="55.94" x2="56.53" x3="57.34" y1="69.82" y2="69.41" y3="69.01"/>
+ <curve x1="57.34" x2="57.34" x3="56.17" y1="69.01" y2="69.01" y3="67.02"/>
+ <curve x1="55.54" x2="54.95" x3="54.37" y1="67.38" y2="67.79" y3="68.01"/>
+ <curve x1="54.37" x2="54.37" x3="55.36" y1="68.01" y2="68.01" y3="70"/>
+ <close/>
+ <move x="25.76" y="70.58"/>
+ <line x="26.75" y="68.6"/>
+ <curve x1="26.17" x2="25.58" x3="25" y1="68.19" y2="68.01" y3="67.61"/>
+ <curve x1="25" x2="25" x3="23.78" y1="67.61" y2="67.61" y3="69.59"/>
+ <curve x1="24.59" x2="25.18" x3="25.76" y1="70" y2="70.4" y3="70.58"/>
+ <close/>
+ <move x="50.94" y="71.8"/>
+ <curve x1="51.75" x2="52.57" x3="53.15" y1="71.62" y2="71.39" y3="71.21"/>
+ <curve x1="53.15" x2="53.15" x3="52.34" y1="71.21" y2="71.21" y3="69.01"/>
+ <curve x1="51.75" x2="50.94" x3="50.36" y1="69.41" y2="69.59" y3="69.82"/>
+ <curve x1="50.36" x2="50.36" x3="50.94" y1="69.82" y2="69.82" y3="71.8"/>
+ <close/>
+ <move x="30.18" y="72.2"/>
+ <line x="30.99" y="70"/>
+ <curve x1="30.18" x2="29.59" x3="28.96" y1="69.82" y2="69.59" y3="69.41"/>
+ <curve x1="28.96" x2="28.96" x3="28.2" y1="69.41" y2="69.41" y3="71.62"/>
+ <curve x1="28.78" x2="29.59" x3="30.18" y1="71.8" y2="72.02" y3="72.2"/>
+ <close/>
+ <move x="46.35" y="73.19"/>
+ <curve x1="47.16" x2="47.97" x3="48.74" y1="73.01" y2="72.79" y3="72.61"/>
+ <curve x1="48.74" x2="48.74" x3="48.15" y1="72.61" y2="72.61" y3="70.4"/>
+ <curve x1="47.57" x2="46.75" x3="46.17" y1="70.58" y2="70.81" y3="70.81"/>
+ <curve x1="46.17" x2="46.17" x3="46.35" y1="70.81" y2="70.81" y3="73.19"/>
+ <close/>
+ <move x="34.77" y="73.42"/>
+ <line x="35.18" y="71.21"/>
+ <curve x1="34.37" x2="33.78" x3="33.15" y1="70.99" y2="70.81" y3="70.58"/>
+ <curve x1="33.15" x2="33.15" x3="32.57" y1="70.58" y2="70.58" y3="73.01"/>
+ <curve x1="33.38" x2="34.19" x3="34.77" y1="73.01" y2="73.19" y3="73.42"/>
+ <close/>
+ <move x="41.75" y="73.6"/>
+ <curve x1="42.57" x2="43.38" x3="44.14" y1="73.6" y2="73.6" y3="73.42"/>
+ <curve x1="44.14" x2="44.14" x3="43.78" y1="73.42" y2="73.42" y3="71.21"/>
+ <curve x1="43.15" x2="42.57" x3="41.75" y1="71.39" y2="71.39" y3="71.39"/>
+ <curve x1="41.75" x2="41.75" x3="41.75" y1="71.39" y2="71.39" y3="73.6"/>
+ <close/>
+ <move x="39.55" y="73.6"/>
+ <line x="39.55" y="71.39"/>
+ <curve x1="38.96" x2="38.15" x3="37.39" y1="71.39" y2="71.39" y3="71.39"/>
+ <curve x1="37.39" x2="37.39" x3="37.16" y1="71.39" y2="71.39" y3="73.6"/>
+ <curve x1="37.97" x2="38.78" x3="39.55" y1="73.6" y2="73.6" y3="73.6"/>
+ <close/>
+ <move x="55.93" y="49.01"/>
+ <line x="41.56" y="49.01"/>
+ <line x="41.56" y="56.9"/>
+ <line x="55.93" y="56.9"/>
+ <line x="55.93" y="60.95"/>
+ <line x="63.95" y="53.2"/>
+ <line x="63.95" y="52.71"/>
+ <line x="55.93" y="44.82"/>
+ <line x="55.93" y="49.01"/>
+ <line x="55.93" y="49.01"/>
+ <close/>
+ <move x="55.93" y="43.11"/>
+ <line x="63.95" y="35.09"/>
+ <line x="63.95" y="35.09"/>
+ <line x="55.93" y="27.12"/>
+ <line x="55.93" y="30.9"/>
+ <line x="41.56" y="30.9"/>
+ <line x="41.56" y="38.92"/>
+ <line x="55.93" y="38.92"/>
+ <line x="55.93" y="43.11"/>
+ <line x="55.93" y="43.11"/>
+ <close/>
+ <move x="24.18" y="38.41"/>
+ <line x="15.99" y="46.38"/>
+ <line x="15.99" y="46.38"/>
+ <line x="24.18" y="54.4"/>
+ <line x="24.18" y="50.21"/>
+ <line x="38.37" y="50.21"/>
+ <line x="38.37" y="42.82"/>
+ <line x="24.18" y="42.82"/>
+ <line x="24.18" y="38.41"/>
+ <line x="24.18" y="38.41"/>
+ <close/>
+ <move x="24.18" y="19.21"/>
+ <line x="15.99" y="27.18"/>
+ <line x="15.99" y="27.18"/>
+ <line x="24.18" y="35.2"/>
+ <line x="24.18" y="31.01"/>
+ <line x="38.37" y="31.01"/>
+ <line x="38.37" y="22.99"/>
+ <line x="24.18" y="22.99"/>
+ <line x="24.18" y="19.21"/>
+ <line x="24.18" y="19.21"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="virtual private network" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.41" y="25.8"/>
+ <curve x1="36.58" x2="33.92" x3="31.72" y1="25.8" y2="26.8" y3="28.55"/>
+ <line x="9.17" y="28.55"/>
+ <curve x1="6.55" x2="5.25" x3="5.25" y1="28.55" y2="34.13" y3="39.27"/>
+ <curve x1="5.25" x2="6.55" x3="9.17" y1="44.44" y2="50.02" y3="50.02"/>
+ <line x="31.53" y="50.02"/>
+ <curve x1="33.79" x2="36.49" x3="39.41" y1="51.78" y2="52.91" y3="52.91"/>
+ <curve x1="42.38" x2="45.09" x3="47.29" y1="52.91" y2="51.78" y3="50.02"/>
+ <line x="69.58" y="50.02"/>
+ <curve x1="72.23" x2="73.45" x3="73.45" y1="50.02" y2="44.44" y3="39.27"/>
+ <curve x1="73.45" x2="72.23" x3="69.58" y1="34.13" y2="28.55" y3="28.55"/>
+ <line x="47.12" y="28.55"/>
+ <curve x1="44.91" x2="42.29" x3="39.41" y1="26.84" y2="25.8" y3="25.8"/>
+ <close/>
+ <move x="39.41" y="27.6"/>
+ <curve x1="42.02" x2="44.32" x3="46.22" y1="27.6" y2="28.55" y3="30.08"/>
+ <curve x1="45.99" x2="45.68" x3="45.31" y1="30.26" y2="30.26" y3="30.26"/>
+ <line x="45.31" y="31.07"/>
+ <line x="46.57" y="31.07"/>
+ <line x="46.57" y="34.26"/>
+ <line x="47.47" y="34.26"/>
+ <line x="47.47" y="31.48"/>
+ <curve x1="47.88" x2="48.19" x3="48.51" y1="31.88" y2="32.24" y3="32.83"/>
+ <curve x1="48.78" x2="48.91" x3="49.09" y1="33.05" y2="33.45" y3="33.81"/>
+ <curve x1="49.41" x2="49.68" x3="49.99" y1="34.44" y2="35.17" y3="35.89"/>
+ <curve x1="49.99" x2="50.09" x3="50.18" y1="36.2" y2="36.61" y3="36.92"/>
+ <line x="50.18" y="37.11"/>
+ <curve x1="50" x2="49.68" x3="49.37" y1="36.93" y2="36.88" y3="36.88"/>
+ <curve x1="48.78" x2="48.38" x3="48.02" y1="36.88" y2="37.1" y3="37.51"/>
+ <curve x1="47.7" x2="47.61" x3="47.61" y1="38" y2="38.55" y3="39.36"/>
+ <curve x1="47.61" x2="47.7" x3="48.02" y1="40.26" y2="40.8" y3="41.29"/>
+ <curve x1="48.29" x2="48.78" x3="49.37" y1="41.7" y2="41.92" y3="41.92"/>
+ <curve x1="49.68" x2="50" x3="50.18" y1="41.92" y2="41.87" y3="41.69"/>
+ <line x="50.18" y="41.78"/>
+ <curve x1="50.09" x2="50.08" x3="50.08" y1="41.92" y2="42.19" y3="42.33"/>
+ <curve x1="49.77" x2="49.27" x3="48.51" y1="43.63" y2="44.75" y3="45.97"/>
+ <curve x1="48.46" x2="48.37" x3="48.19" y1="45.56" y2="45.34" y3="45.16"/>
+ <curve x1="47.97" x2="47.48" x3="46.98" y1="44.67" y2="44.44" y3="44.44"/>
+ <curve x1="46.4" x2="45.99" x3="45.58" y1="44.44" y2="44.66" y3="45.07"/>
+ <curve x1="45.22" x2="45.22" x3="45.22" y1="45.56" y2="46.2" y3="46.92"/>
+ <curve x1="45.22" x2="45.22" x3="45.58" y1="47.73" y2="48.41" y3="48.81"/>
+ <curve x1="45.58" x2="45.67" x3="45.72" y1="48.86" y2="48.94" y3="48.94"/>
+ <curve x1="45.22" x2="44.77" x3="44.19" y1="49.44" y2="49.67" y3="49.94"/>
+ <curve x1="43.87" x2="43.51" x3="43.2" y1="50.16" y2="50.25" y3="50.43"/>
+ <curve x1="42.7" x2="42.21" x3="41.62" y1="50.65" y2="50.74" y3="50.88"/>
+ <curve x1="41.22" x2="40.9" x3="40.5" y1="50.97" y2="50.97" y3="51.06"/>
+ <curve x1="40.18" x2="39.82" x3="39.41" y1="51.06" y2="51.2" y3="51.2"/>
+ <curve x1="39.1" x2="38.69" x3="38.38" y1="51.2" y2="51.06" y3="51.06"/>
+ <curve x1="37.93" x2="37.62" x3="37.21" y1="50.97" y2="50.97" y3="50.88"/>
+ <curve x1="36.63" x2="36.13" x3="35.73" y1="50.74" y2="50.65" y3="50.43"/>
+ <curve x1="35.32" x2="35" x3="34.69" y1="50.25" y2="50.16" y3="49.94"/>
+ <curve x1="34.33" x2="34.1" x3="33.79" y1="49.85" y2="49.66" y3="49.53"/>
+ <curve x1="34.28" x2="34.6" x3="34.83" y1="49.44" y2="49.13" y3="48.81"/>
+ <curve x1="35.1" x2="35.23" x3="35.23" y1="48.41" y2="47.73" y3="46.92"/>
+ <curve x1="35.23" x2="35.1" x3="34.74" y1="46.2" y2="45.57" y3="45.16"/>
+ <curve x1="34.51" x2="34.01" x3="33.52" y1="44.67" y2="44.44" y3="44.44"/>
+ <curve x1="32.89" x2="32.53" x3="32.13" y1="44.44" y2="44.66" y3="45.07"/>
+ <curve x1="31.81" x2="31.72" x3="31.72" y1="45.56" y2="46.2" y3="46.92"/>
+ <line x="31.72" y="47.73"/>
+ <line x="31.72" y="47.82"/>
+ <line x="31.53" y="47.69"/>
+ <curve x1="31.49" x2="31.4" x3="31.31" y1="47.6" y2="47.32" y3="47.28"/>
+ <curve x1="30.9" x2="30.59" x3="30.32" y1="46.87" y2="46.37" y3="45.97"/>
+ <curve x1="30.14" x2="30.1" x3="29.92" y1="45.79" y2="45.48" y3="45.34"/>
+ <curve x1="29.83" x2="29.6" x3="29.6" y1="45.16" y2="44.53" y3="44.53"/>
+ <curve x1="29.24" x2="29.01" x3="28.83" y1="43.81" y2="43.14" y3="42.33"/>
+ <curve x1="28.79" x2="28.8" x3="28.8" y1="42.2" y2="42.1" y3="41.92"/>
+ <curve x1="29.33" x2="29.74" x3="30.1" y1="41.92" y2="41.7" y3="41.16"/>
+ <curve x1="30.32" x2="30.5" x3="30.5" y1="40.75" y2="40.08" y3="39.36"/>
+ <curve x1="30.5" x2="30.32" x3="30.1" y1="38.55" y2="38" y3="37.51"/>
+ <curve x1="29.74" x2="29.33" x3="28.79" y1="37.1" y2="36.88" y3="36.88"/>
+ <line x="28.7" y="36.88"/>
+ <curve x1="28.79" x2="28.83" x3="28.93" y1="36.61" y2="36.2" y3="35.89"/>
+ <curve x1="29.11" x2="29.33" x3="29.6" y1="35.35" y2="34.76" y3="34.26"/>
+ <curve x1="29.6" x2="29.73" x3="29.73" y1="34.13" y2="33.81" y3="33.81"/>
+ <curve x1="29.91" x2="30.14" x3="30.32" y1="33.45" y2="33.05" y3="32.83"/>
+ <curve x1="30.82" x2="31.32" x3="31.9" y1="32.02" y2="31.48" y3="30.8"/>
+ <curve x1="31.9" x2="31.81" x3="31.81" y1="31.07" y2="31.47" y3="31.88"/>
+ <curve x1="31.81" x2="32.03" x3="32.21" y1="32.6" y2="33.23" y3="33.64"/>
+ <curve x1="32.53" x2="33.02" x3="33.61" y1="34.13" y2="34.36" y3="34.36"/>
+ <curve x1="34.2" x2="34.69" x3="34.91" y1="34.36" y2="34.13" y3="33.64"/>
+ <curve x1="35.18" x2="35.32" x3="35.32" y1="33.23" y2="32.6" y3="31.88"/>
+ <curve x1="35.32" x2="35.18" x3="34.91" y1="31.07" y2="30.39" y3="29.99"/>
+ <curve x1="34.69" x2="34.28" x3="33.79" y1="29.58" y2="29.36" y3="29.27"/>
+ <curve x1="35.41" x2="37.3" x3="39.41" y1="28.23" y2="27.6" y3="27.6"/>
+ <close/>
+ <move x="31.53" y="47.69"/>
+ <curve x1="31.71" x2="31.72" x3="31.72" y1="47.69" y2="47.68" y3="47.73"/>
+ <line x="31.49" y="47.59"/>
+ <line x="31.53" y="47.69"/>
+ <close/>
+ <move x="38.44" y="29.66"/>
+ <curve x1="38.35" x2="38.12" x3="37.94" y1="30.07" y2="30.25" y3="30.47"/>
+ <curve x1="37.71" x2="37.3" x3="36.72" y1="30.65" y2="30.66" y3="30.66"/>
+ <line x="36.72" y="31.46"/>
+ <line x="38.21" y="31.46"/>
+ <line x="38.21" y="34.84"/>
+ <line x="39.34" y="34.84"/>
+ <line x="39.34" y="29.66"/>
+ <line x="38.44" y="29.66"/>
+ <close/>
+ <move x="42.63" y="29.66"/>
+ <curve x1="42.14" x2="41.56" x3="41.24" y1="29.66" y2="29.93" y3="30.47"/>
+ <curve x1="40.88" x2="40.66" x3="40.66" y1="30.88" y2="31.55" y3="32.37"/>
+ <curve x1="40.66" x2="40.88" x3="41.24" y1="33.09" y2="33.72" y3="34.12"/>
+ <curve x1="41.56" x2="42.14" x3="42.63" y1="34.62" y2="34.84" y3="34.84"/>
+ <curve x1="43.36" x2="43.85" x3="44.17" y1="34.84" y2="34.62" y3="34.12"/>
+ <curve x1="44.53" x2="44.57" x3="44.57" y1="33.72" y2="33.09" y3="32.37"/>
+ <curve x1="44.57" x2="44.53" x3="44.17" y1="31.55" y2="30.88" y3="30.47"/>
+ <curve x1="43.76" x2="43.36" x3="42.63" y1="30.02" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="33.61" y="30.08"/>
+ <curve x1="34.11" x2="34.42" x3="34.42" y1="30.08" y2="30.71" y3="31.88"/>
+ <curve x1="34.42" x2="34.11" x3="33.61" y1="32.92" y2="33.55" y3="33.55"/>
+ <curve x1="33.11" x2="32.89" x3="32.89" y1="33.55" y2="32.92" y3="31.88"/>
+ <curve x1="32.89" x2="33.11" x3="33.61" y1="30.71" y2="30.08" y3="30.08"/>
+ <close/>
+ <move x="42.63" y="30.56"/>
+ <curve x1="43.36" x2="43.63" x3="43.63" y1="30.56" y2="31.19" y3="32.37"/>
+ <curve x1="43.63" x2="43.36" x3="42.63" y1="33.4" y2="34.03" y3="34.03"/>
+ <curve x1="42.14" x2="41.78" x3="41.78" y1="34.03" y2="33.4" y3="32.37"/>
+ <curve x1="41.78" x2="42.14" x3="42.63" y1="31.19" y2="30.56" y3="30.56"/>
+ <close/>
+ <move x="9.17" y="30.71"/>
+ <curve x1="9.84" x2="11.14" x3="11.14" y1="30.8" y2="33.86" y3="39.27"/>
+ <curve x1="11.14" x2="9.84" x3="9.17" y1="44.67" y2="47.82" y3="47.91"/>
+ <curve x1="8.63" x2="7.32" x3="7.32" y1="47.82" y2="44.67" y3="39.27"/>
+ <curve x1="7.32" x2="8.63" x3="9.17" y1="33.86" y2="30.8" y3="30.71"/>
+ <close/>
+ <move x="33.19" y="37.42"/>
+ <curve x1="33.1" x2="32.87" x3="32.69" y1="37.74" y2="37.91" y3="38.05"/>
+ <curve x1="32.46" x2="32.06" x3="31.48" y1="38.14" y2="38.23" y3="38.23"/>
+ <line x="31.48" y="38.82"/>
+ <line x="32.96" y="38.82"/>
+ <line x="32.96" y="41.29"/>
+ <line x="34.09" y="41.29"/>
+ <line x="34.09" y="37.42"/>
+ <line x="33.19" y="37.42"/>
+ <close/>
+ <move x="37.48" y="37.42"/>
+ <curve x1="36.89" x2="36.31" x3="36.09" y1="37.42" y2="37.65" y3="38.01"/>
+ <curve x1="35.64" x2="35.41" x3="35.41" y1="38.32" y2="38.82" y3="39.45"/>
+ <curve x1="35.41" x2="35.64" x3="36.09" y1="39.99" y2="40.39" y3="40.8"/>
+ <curve x1="36.31" x2="36.89" x3="37.48" y1="41.11" y2="41.29" y3="41.29"/>
+ <curve x1="38.02" x2="38.7" x3="38.92" y1="41.29" y2="41.11" y3="40.75"/>
+ <curve x1="39.28" x2="39.33" x3="39.33" y1="40.39" y2="39.94" y3="39.45"/>
+ <curve x1="39.33" x2="39.28" x3="38.92" y1="38.82" y2="38.32" y3="38.01"/>
+ <curve x1="38.52" x2="38.02" x3="37.48" y1="37.65" y2="37.42" y3="37.42"/>
+ <close/>
+ <move x="41.42" y="37.42"/>
+ <curve x1="40.65" x2="40.24" x3="40.02" y1="37.42" y2="37.65" y3="38.01"/>
+ <curve x1="39.57" x2="39.34" x3="39.34" y1="38.32" y2="38.82" y3="39.45"/>
+ <curve x1="39.34" x2="39.57" x3="39.84" y1="39.99" y2="40.39" y3="40.8"/>
+ <curve x1="40.25" x2="40.65" x3="41.42" y1="41.11" y2="41.29" y3="41.29"/>
+ <curve x1="41.96" x2="42.63" x3="42.85" y1="41.29" y2="41.11" y3="40.75"/>
+ <curve x1="43.21" x2="43.26" x3="43.26" y1="40.39" y2="39.94" y3="39.45"/>
+ <curve x1="43.26" x2="43.12" x3="42.85" y1="38.82" y2="38.32" y3="38.01"/>
+ <curve x1="42.45" x2="41.96" x3="41.42" y1="37.65" y2="37.42" y3="37.42"/>
+ <close/>
+ <move x="45.49" y="37.42"/>
+ <curve x1="45.4" x2="45.31" x3="45.17" y1="37.74" y2="37.91" y3="38.05"/>
+ <curve x1="45.08" x2="44.91" x3="44.59" y1="38.14" y2="38.23" y3="38.23"/>
+ <line x="44.59" y="38.82"/>
+ <line x="45.31" y="38.82"/>
+ <line x="45.31" y="41.29"/>
+ <line x="45.9" y="41.29"/>
+ <line x="45.9" y="37.42"/>
+ <line x="45.49" y="37.42"/>
+ <close/>
+ <move x="28.52" y="37.73"/>
+ <line x="28.79" y="37.73"/>
+ <curve x1="29.24" x2="29.51" x3="29.51" y1="37.73" y2="38.23" y3="39.36"/>
+ <curve x1="29.51" x2="29.24" x3="28.79" y1="40.57" y2="41.07" y3="41.07"/>
+ <line x="28.52" y="41.07"/>
+ <curve x1="28.52" x2="28.43" x3="28.43" y1="40.57" y2="39.94" y3="39.36"/>
+ <curve x1="28.43" x2="28.52" x3="28.52" y1="38.82" y2="38.23" y3="37.73"/>
+ <close/>
+ <move x="49.37" y="37.73"/>
+ <curve x1="49.91" x2="50.08" x3="50.08" y1="37.73" y2="38.23" y3="39.36"/>
+ <curve x1="50.08" x2="49.91" x3="49.37" y1="40.57" y2="41.07" y3="41.07"/>
+ <curve x1="48.78" x2="48.51" x3="48.51" y1="41.07" y2="40.57" y3="39.36"/>
+ <curve x1="48.51" x2="48.78" x3="49.37" y1="38.23" y2="37.73" y3="37.73"/>
+ <close/>
+ <move x="37.48" y="38.14"/>
+ <curve x1="38.02" x2="38.38" x3="38.38" y1="38.14" y2="38.55" y3="39.45"/>
+ <curve x1="38.38" x2="38.02" x3="37.48" y1="40.26" y2="40.67" y3="40.67"/>
+ <curve x1="36.89" x2="36.63" x3="36.63" y1="40.67" y2="40.26" y3="39.45"/>
+ <curve x1="36.63" x2="36.89" x3="37.48" y1="38.55" y2="38.14" y3="38.14"/>
+ <close/>
+ <move x="41.42" y="38.14"/>
+ <curve x1="41.96" x2="42.32" x3="42.32" y1="38.14" y2="38.55" y3="39.45"/>
+ <curve x1="42.32" x2="41.96" x3="41.42" y1="40.26" y2="40.67" y3="40.67"/>
+ <curve x1="40.83" x2="40.56" x3="40.56" y1="40.67" y2="40.26" y3="39.45"/>
+ <curve x1="40.56" x2="40.83" x3="41.42" y1="38.55" y2="38.14" y3="38.14"/>
+ <close/>
+ <move x="38.34" y="43.86"/>
+ <curve x1="38.3" x2="38.21" x3="37.94" y1="44.22" y2="44.44" y3="44.62"/>
+ <curve x1="37.62" x2="37.21" x3="36.72" y1="44.75" y2="44.84" y3="44.84"/>
+ <line x="36.72" y="45.74"/>
+ <line x="38.21" y="45.74"/>
+ <line x="38.21" y="49.04"/>
+ <line x="39.34" y="49.04"/>
+ <line x="39.34" y="43.86"/>
+ <line x="38.34" y="43.86"/>
+ <close/>
+ <move x="42.63" y="43.86"/>
+ <curve x1="41.96" x2="41.56" x3="41.15" y1="43.86" y2="44.13" y3="44.53"/>
+ <curve x1="40.88" x2="40.66" x3="40.66" y1="45.07" y2="45.75" y3="46.47"/>
+ <curve x1="40.66" x2="40.88" x3="41.15" y1="47.28" y2="47.91" y3="48.31"/>
+ <curve x1="41.56" x2="41.96" x3="42.63" y1="48.81" y2="49.04" y3="49.04"/>
+ <curve x1="43.27" x2="43.76" x3="44.17" y1="49.04" y2="48.81" y3="48.31"/>
+ <curve x1="44.44" x2="44.57" x3="44.57" y1="47.91" y2="47.28" y3="46.47"/>
+ <curve x1="44.57" x2="44.44" x3="44.17" y1="45.75" y2="45.07" y3="44.67"/>
+ <curve x1="43.76" x2="43.27" x3="42.63" y1="44.13" y2="43.86" y3="43.86"/>
+ <close/>
+ <move x="42.63" y="44.76"/>
+ <curve x1="43.18" x2="43.44" x3="43.44" y1="44.76" y2="45.25" y3="46.47"/>
+ <curve x1="43.44" x2="43.18" x3="42.63" y1="47.59" y2="48.22" y3="48.22"/>
+ <curve x1="42.14" x2="41.73" x3="41.73" y1="48.22" y2="47.59" y3="46.47"/>
+ <curve x1="41.73" x2="42.14" x3="42.63" y1="45.25" y2="44.76" y3="44.76"/>
+ <close/>
+ <move x="33.52" y="45.25"/>
+ <curve x1="34.01" x2="34.29" x3="34.29" y1="45.25" y2="45.79" y3="46.92"/>
+ <curve x1="34.29" x2="34.01" x3="33.52" y1="48.09" y2="48.72" y3="48.72"/>
+ <curve x1="32.89" x2="32.71" x3="32.71" y1="48.72" y2="48.09" y3="46.92"/>
+ <curve x1="32.71" x2="32.89" x3="33.52" y1="45.79" y2="45.25" y3="45.25"/>
+ <close/>
+ <move x="46.98" y="45.25"/>
+ <curve x1="47.48" x2="47.7" x3="47.7" y1="45.25" y2="45.79" y3="46.92"/>
+ <line x="47.7" y="47.09"/>
+ <curve x1="47.7" x2="47.61" x3="47.52" y1="47.18" y2="47.19" y3="47.28"/>
+ <curve x1="47.47" x2="47.39" x3="47.21" y1="47.41" y2="47.59" y3="47.73"/>
+ <curve x1="46.98" x2="46.71" x3="46.39" y1="48" y2="48.13" y3="48.4"/>
+ <curve x1="46.21" x2="46.08" x3="46.08" y1="48.13" y2="47.73" y3="46.92"/>
+ <curve x1="46.08" x2="46.4" x3="46.98" y1="45.79" y2="45.25" y3="45.25"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.96" x3="39.98" y1="18.01" y2="0" y3="0"/>
+ <curve x1="62.13" x2="80" x3="80" y1="0" y2="18.01" y3="40.02"/>
+ <curve x1="80" x2="62.13" x3="39.98" y1="62.08" y2="80" y3="80"/>
+ <curve x1="17.96" x2="0" x3="0" y1="80" y2="62.08" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.95" name="voice" strokewidth="inherit" w="79.96">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="53.72" y="25.65"/>
+ <curve x1="54.17" x2="54.41" x3="54.41" y1="25.65" y2="25.43" y3="24.96"/>
+ <line x="54.41" y="23.12"/>
+ <curve x1="54.41" x2="54.11" x3="53.71" y1="22.71" y2="22.44" y3="22.44"/>
+ <line x="39.11" y="22.44"/>
+ <curve x1="38.64" x2="38.43" x3="38.43" y1="22.44" y2="22.84" y3="23.15"/>
+ <line x="38.43" y="25.01"/>
+ <curve x1="38.43" x2="38.67" x3="39.1" y1="25.32" y2="25.65" y3="25.65"/>
+ <close/>
+ <move x="53.72" y="32"/>
+ <curve x1="54.17" x2="54.41" x3="54.41" y1="32" y2="31.79" y3="31.32"/>
+ <line x="54.41" y="29.47"/>
+ <curve x1="54.41" x2="54.11" x3="53.71" y1="29.07" y2="28.8" y3="28.8"/>
+ <line x="39.11" y="28.8"/>
+ <curve x1="38.64" x2="38.43" x3="38.43" y1="28.8" y2="29.19" y3="29.51"/>
+ <line x="38.43" y="31.36"/>
+ <curve x1="38.43" x2="38.67" x3="39.1" y1="31.68" y2="32" y3="32"/>
+ <close/>
+ <move x="36.69" y="38"/>
+ <curve x1="36.06" x2="35.64" x3="35.64" y1="38" y2="37.69" y3="37.05"/>
+ <line x="35.64" y="20.33"/>
+ <curve x1="35.64" x2="36.07" x3="36.69" y1="19.76" y2="19.27" y3="19.27"/>
+ <line x="55.24" y="19.23"/>
+ <curve x1="55.78" x2="56.24" x3="56.24" y1="19.23" y2="19.61" y3="20.33"/>
+ <line x="56.2" y="36.76"/>
+ <curve x1="56.2" x2="55.95" x3="55.16" y1="37.51" y2="38" y3="38"/>
+ <close/>
+ <move x="36.44" y="55.98"/>
+ <curve x1="35.98" x2="35.63" x3="35.63" y1="55.98" y2="55.58" y3="54.96"/>
+ <line x="35.63" y="53.78"/>
+ <curve x1="35.63" x2="36.17" x3="36.66" y1="53.09" y2="52.78" y3="52.78"/>
+ <line x="39.14" y="52.78"/>
+ <curve x1="39.81" x2="40.23" x3="40.23" y1="52.78" y2="53.33" y3="53.9"/>
+ <line x="40.23" y="55.05"/>
+ <curve x1="40.23" x2="39.76" x3="39.14" y1="55.63" y2="55.98" y3="55.98"/>
+ <close/>
+ <move x="12.66" y="57.6"/>
+ <line x="12.65" y="53.39"/>
+ <curve x1="12.65" x2="14.06" x3="16.12" y1="51.79" y2="49.73" y3="49.07"/>
+ <line x="16.03" y="36.82"/>
+ <curve x1="14.52" x2="12.69" x3="12.69" y1="36.23" y2="34.94" y3="33.12"/>
+ <line x="12.69" y="28.89"/>
+ <curve x1="11.04" x2="9.65" x3="9.65" y1="29.88" y2="31.4" y3="34.91"/>
+ <line x="9.62" y="51.97"/>
+ <curve x1="9.62" x2="10.96" x3="12.66" y1="54.47" y2="56.44" y3="57.6"/>
+ <close/>
+ <move x="25.37" y="64"/>
+ <curve x1="27.6" x2="28.85" x3="28.85" y1="64" y2="62.46" y3="59.73"/>
+ <line x="28.87" y="53.45"/>
+ <curve x1="28.87" x2="27.91" x3="26.22" y1="52.27" y2="50.96" y3="50.96"/>
+ <line x="26.23" y="36.05"/>
+ <curve x1="27.81" x2="28.87" x3="28.87" y1="36.05" y2="35.02" y3="33.34"/>
+ <line x="28.85" y="25.61"/>
+ <curve x1="28.85" x2="27.61" x3="25.48" y1="23.43" y2="22.34" y3="22.4"/>
+ <line x="20.16" y="22.43"/>
+ <curve x1="17.93" x2="16.05" x3="16.05" y1="22.43" y2="23.86" y3="25.94"/>
+ <line x="16.04" y="33.36"/>
+ <curve x1="16.04" x2="17.88" x3="19.43" y1="34.78" y2="36.4" y3="36.4"/>
+ <line x="19.39" y="50.96"/>
+ <curve x1="17.41" x2="16.03" x3="16.03" y1="50.96" y2="52.02" y3="53.45"/>
+ <line x="16.03" y="60.63"/>
+ <curve x1="16.03" x2="18.13" x3="20.28" y1="62.76" y2="64.02" y3="64.02"/>
+ <close/>
+ <move x="58.41" y="60.82"/>
+ <curve x1="59.92" x2="60.8" x3="60.8" y1="60.82" y2="60.06" y3="58.61"/>
+ <line x="60.83" y="28.53"/>
+ <curve x1="60.83" x2="60.02" x3="58.79" y1="27.14" y2="26.79" y3="26.79"/>
+ <line x="58.79" y="16.96"/>
+ <curve x1="58.79" x2="58.61" x3="57.98" y1="16.48" y2="15.99" y3="15.99"/>
+ <line x="33.8" y="15.97"/>
+ <curve x1="33.07" x2="32.61" x3="32.61" y1="15.97" y2="16.66" y3="17.6"/>
+ <line x="32.6" y="26.19"/>
+ <line x="31.57" y="26.19"/>
+ <line x="31.57" y="33.3"/>
+ <curve x1="31.57" x2="30.37" x3="28.82" y1="35.34" y2="36.66" y3="37.15"/>
+ <line x="28.84" y="49.51"/>
+ <curve x1="30.53" x2="31.42" x3="31.42" y1="50.21" y2="51.85" y3="53.46"/>
+ <line x="31.48" y="60.8"/>
+ <close/>
+ <move x="40.87" y="79.95"/>
+ <curve x1="16.66" x2="0" x3="0" y1="79.95" y2="61.43" y3="39.33"/>
+ <curve x1="0" x2="18.86" x3="39.64" y1="17.88" y2="0" y3="0"/>
+ <curve x1="62.73" x2="79.96" x3="79.96" y1="0" y2="18.37" y3="40.22"/>
+ <curve x1="79.96" x2="60.74" x3="40.87" y1="63.26" y2="79.95" y3="79.95"/>
+ <close/>
+ <move x="44.38" y="55.98"/>
+ <curve x1="43.91" x2="43.56" x3="43.56" y1="55.98" y2="55.58" y3="54.96"/>
+ <line x="43.56" y="53.78"/>
+ <curve x1="43.56" x2="44.11" x3="44.6" y1="53.09" y2="52.78" y3="52.78"/>
+ <line x="47.08" y="52.78"/>
+ <curve x1="47.75" x2="48.17" x3="48.17" y1="52.78" y2="53.33" y3="53.9"/>
+ <line x="48.17" y="55.05"/>
+ <curve x1="48.17" x2="47.7" x3="47.08" y1="55.63" y2="55.98" y3="55.98"/>
+ <close/>
+ <move x="52.04" y="55.98"/>
+ <curve x1="51.58" x2="51.23" x3="51.23" y1="55.98" y2="55.58" y3="54.96"/>
+ <line x="51.23" y="53.78"/>
+ <curve x1="51.23" x2="51.78" x3="52.26" y1="53.09" y2="52.78" y3="52.78"/>
+ <line x="54.74" y="52.78"/>
+ <curve x1="55.41" x2="55.83" x3="55.83" y1="52.78" y2="53.33" y3="53.9"/>
+ <line x="55.83" y="55.05"/>
+ <curve x1="55.83" x2="55.36" x3="54.74" y1="55.63" y2="55.98" y3="55.98"/>
+ <close/>
+ <move x="36.44" y="50.72"/>
+ <curve x1="35.98" x2="35.63" x3="35.63" y1="50.72" y2="50.32" y3="49.7"/>
+ <line x="35.63" y="48.52"/>
+ <curve x1="35.63" x2="36.17" x3="36.66" y1="47.83" y2="47.53" y3="47.53"/>
+ <line x="39.14" y="47.53"/>
+ <curve x1="39.81" x2="40.23" x3="40.23" y1="47.53" y2="48.07" y3="48.64"/>
+ <line x="40.23" y="49.79"/>
+ <curve x1="40.23" x2="39.76" x3="39.14" y1="50.37" y2="50.72" y3="50.72"/>
+ <close/>
+ <move x="44.38" y="50.72"/>
+ <curve x1="43.91" x2="43.56" x3="43.56" y1="50.72" y2="50.32" y3="49.7"/>
+ <line x="43.56" y="48.52"/>
+ <curve x1="43.56" x2="44.11" x3="44.6" y1="47.83" y2="47.53" y3="47.53"/>
+ <line x="47.08" y="47.53"/>
+ <curve x1="47.75" x2="48.17" x3="48.17" y1="47.53" y2="48.07" y3="48.64"/>
+ <line x="48.17" y="49.79"/>
+ <curve x1="48.17" x2="47.7" x3="47.08" y1="50.37" y2="50.72" y3="50.72"/>
+ <close/>
+ <move x="52.04" y="50.72"/>
+ <curve x1="51.58" x2="51.23" x3="51.23" y1="50.72" y2="50.32" y3="49.7"/>
+ <line x="51.23" y="48.52"/>
+ <curve x1="51.23" x2="51.78" x3="52.26" y1="47.83" y2="47.53" y3="47.53"/>
+ <line x="54.74" y="47.53"/>
+ <curve x1="55.41" x2="55.83" x3="55.83" y1="47.53" y2="48.07" y3="48.64"/>
+ <line x="55.83" y="49.79"/>
+ <curve x1="55.83" x2="55.36" x3="54.74" y1="50.37" y2="50.72" y3="50.72"/>
+ <close/>
+ <move x="36.44" y="45.29"/>
+ <curve x1="35.98" x2="35.63" x3="35.63" y1="45.29" y2="44.89" y3="44.27"/>
+ <line x="35.63" y="43.09"/>
+ <curve x1="35.63" x2="36.17" x3="36.66" y1="42.4" y2="42.1" y3="42.1"/>
+ <line x="39.14" y="42.1"/>
+ <curve x1="39.81" x2="40.23" x3="40.23" y1="42.1" y2="42.64" y3="43.21"/>
+ <line x="40.23" y="44.36"/>
+ <curve x1="40.23" x2="39.76" x3="39.14" y1="44.94" y2="45.29" y3="45.29"/>
+ <close/>
+ <move x="44.38" y="45.29"/>
+ <curve x1="43.91" x2="43.56" x3="43.56" y1="45.29" y2="44.89" y3="44.27"/>
+ <line x="43.56" y="43.09"/>
+ <curve x1="43.56" x2="44.11" x3="44.6" y1="42.4" y2="42.1" y3="42.1"/>
+ <line x="47.08" y="42.1"/>
+ <curve x1="47.75" x2="48.17" x3="48.17" y1="42.1" y2="42.64" y3="43.21"/>
+ <line x="48.17" y="44.36"/>
+ <curve x1="48.17" x2="47.7" x3="47.08" y1="44.94" y2="45.29" y3="45.29"/>
+ <close/>
+ <move x="52.04" y="45.29"/>
+ <curve x1="51.58" x2="51.23" x3="51.23" y1="45.29" y2="44.89" y3="44.27"/>
+ <line x="51.23" y="43.09"/>
+ <curve x1="51.23" x2="51.78" x3="52.26" y1="42.4" y2="42.1" y3="42.1"/>
+ <line x="54.74" y="42.1"/>
+ <curve x1="55.41" x2="55.83" x3="55.83" y1="42.1" y2="42.64" y3="43.21"/>
+ <line x="55.83" y="44.36"/>
+ <curve x1="55.83" x2="55.36" x3="54.74" y1="44.94" y2="45.29" y3="45.29"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.68" name="vpn concentrator" strokewidth="inherit" w="79.59">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="14.68" y="20.57"/>
+ <curve x1="13.42" x2="12.84" x3="12.84" y1="20.57" y2="23.02" y3="25.22"/>
+ <curve x1="12.84" x2="13.42" x3="14.68" y1="27.45" y2="29.96" y3="29.96"/>
+ <line x="24.78" y="29.96"/>
+ <line x="26.4" y="31.7"/>
+ <curve x1="25.5" x2="24.88" x3="24.38" y1="32.51" y2="33.58" y3="34.61"/>
+ <line x="14.68" y="34.61"/>
+ <curve x1="13.42" x2="12.84" x3="12.84" y1="34.61" y2="37.03" y3="39.27"/>
+ <curve x1="12.84" x2="13.42" x3="14.68" y1="41.5" y2="43.83" y3="43.83"/>
+ <line x="24.38" y="43.83"/>
+ <curve x1="24.88" x2="25.5" x3="26.4" y1="44.95" y2="46.02" y3="46.74"/>
+ <line x="24.78" y="48.48"/>
+ <line x="14.68" y="48.48"/>
+ <curve x1="13.42" x2="12.84" x3="12.84" y1="48.48" y2="50.9" y3="53.18"/>
+ <curve x1="12.84" x2="13.42" x3="14.68" y1="55.41" y2="57.83" y3="57.83"/>
+ <line x="27.78" y="57.83"/>
+ <line x="34.9" y="50.27"/>
+ <curve x1="37.14" x2="39.23" x3="41.02" y1="50.09" y2="49.28" y3="47.94"/>
+ <line x="64.69" y="47.94"/>
+ <curve x1="67.02" x2="68.05" x3="68.05" y1="47.94" y2="43.43" y3="39.27"/>
+ <curve x1="68.05" x2="67.02" x3="64.69" y1="35.02" y2="30.49" y3="30.49"/>
+ <line x="40.94" y="30.49"/>
+ <curve x1="39.24" x2="37.22" x3="35.07" y1="29.24" y2="28.44" y3="28.17"/>
+ <line x="27.78" y="20.57"/>
+ <line x="14.68" y="20.57"/>
+ <close/>
+ <move x="14.68" y="21.5"/>
+ <curve x1="14.94" x2="15.57" x3="15.57" y1="21.59" y2="22.98" y3="25.22"/>
+ <curve x1="15.57" x2="14.94" x3="14.68" y1="27.63" y2="28.89" y3="28.98"/>
+ <curve x1="14.45" x2="13.82" x3="13.82" y1="28.89" y2="27.63" y3="25.22"/>
+ <curve x1="13.82" x2="14.45" x3="14.68" y1="22.98" y2="21.59" y3="21.5"/>
+ <close/>
+ <move x="34.36" y="29.65"/>
+ <curve x1="36.42" x2="38.43" x3="40.13" y1="29.65" y2="30.45" y3="31.7"/>
+ <curve x1="39.86" x2="39.64" x3="39.41" y1="31.79" y2="31.79" y3="31.79"/>
+ <line x="39.41" y="32.42"/>
+ <line x="40.35" y="32.42"/>
+ <line x="40.35" y="35.11"/>
+ <line x="41.16" y="35.11"/>
+ <line x="41.16" y="32.78"/>
+ <curve x1="41.48" x2="41.83" x3="42.14" y1="33.09" y2="33.49" y3="33.9"/>
+ <curve x1="42.27" x2="42.37" x3="42.55" y1="34.12" y2="34.34" y3="34.7"/>
+ <curve x1="42.86" x2="43.08" x3="43.26" y1="35.24" y2="35.73" y3="36.36"/>
+ <curve x1="43.39" x2="43.48" x3="43.48" y1="36.63" y2="36.94" y3="37.25"/>
+ <line x="43.57" y="37.34"/>
+ <curve x1="43.35" x2="43.08" x3="42.77" y1="37.25" y2="37.16" y3="37.16"/>
+ <curve x1="42.28" x2="41.88" x3="41.74" y1="37.16" y2="37.34" y3="37.74"/>
+ <curve x1="41.43" x2="41.25" x3="41.25" y1="38.06" y2="38.64" y3="39.27"/>
+ <curve x1="41.25" x2="41.43" x3="41.65" y1="39.89" y2="40.38" y3="40.78"/>
+ <curve x1="41.87" x2="42.28" x3="42.77" y1="41.1" y2="41.37" y3="41.37"/>
+ <curve x1="43.08" x2="43.35" x3="43.57" y1="41.37" y2="41.28" y3="41.1"/>
+ <curve x1="43.57" x2="43.57" x3="43.48" y1="41.1" y2="41.19" y3="41.19"/>
+ <curve x1="43.48" x2="43.49" x3="43.4" y1="41.37" y2="41.5" y3="41.59"/>
+ <curve x1="43.09" x2="42.68" x3="42.14" y1="42.71" y2="43.7" y3="44.63"/>
+ <curve x1="42.05" x2="41.97" x3="41.83" y1="44.32" y2="44.1" y3="44.01"/>
+ <curve x1="41.48" x2="41.16" x3="40.67" y1="43.51" y2="43.38" y3="43.38"/>
+ <curve x1="40.22" x2="39.82" x3="39.64" y1="43.38" y2="43.52" y3="43.83"/>
+ <curve x1="39.32" x2="39.15" x3="39.15" y1="44.32" y2="44.81" y3="45.35"/>
+ <curve x1="39.15" x2="39.32" x3="39.55" y1="46.02" y2="46.51" y3="46.91"/>
+ <curve x1="39.64" x2="39.64" x3="39.64" y1="46.96" y2="47.05" y3="47.05"/>
+ <curve x1="39.32" x2="38.83" x3="38.34" y1="47.36" y2="47.63" y3="47.86"/>
+ <curve x1="38.11" x2="37.8" x3="37.53" y1="48.04" y2="48.12" y3="48.26"/>
+ <curve x1="37.09" x2="36.68" x3="36.19" y1="48.43" y2="48.48" y3="48.66"/>
+ <curve x1="35.88" x2="35.56" x3="35.21" y1="48.75" y2="48.75" y3="48.75"/>
+ <curve x1="34.89" x2="34.58" x3="34.36" y1="48.75" y2="48.88" y3="48.88"/>
+ <curve x1="33.96" x2="33.69" x3="33.28" y1="48.88" y2="48.75" y3="48.75"/>
+ <curve x1="32.97" x2="32.66" x3="32.35" y1="48.75" y2="48.75" y3="48.66"/>
+ <curve x1="31.94" x2="31.45" x3="30.96" y1="48.48" y2="48.43" y3="48.26"/>
+ <curve x1="30.73" x2="30.42" x3="30.24" y1="48.12" y2="48.04" y3="47.86"/>
+ <curve x1="29.93" x2="29.62" x3="29.44" y1="47.77" y2="47.63" y3="47.45"/>
+ <curve x1="29.75" x2="30.11" x3="30.24" y1="47.36" y2="47.23" y3="46.91"/>
+ <curve x1="30.56" x2="30.65" x3="30.65" y1="46.51" y2="46.02" y3="45.35"/>
+ <curve x1="30.65" x2="30.56" x3="30.24" y1="44.81" y2="44.32" y3="44.01"/>
+ <curve x1="30.02" x2="29.62" x3="29.12" y1="43.51" y2="43.38" y3="43.38"/>
+ <curve x1="28.63" x2="28.23" x3="28.1" y1="43.38" y2="43.52" y3="43.83"/>
+ <curve x1="27.78" x2="27.6" x3="27.6" y1="44.32" y2="44.81" y3="45.35"/>
+ <curve x1="27.6" x2="27.69" x3="27.69" y1="45.71" y2="45.93" y3="46.11"/>
+ <line x="27.52" y="46.02"/>
+ <curve x1="27.52" x2="27.43" x3="27.29" y1="45.93" y2="45.75" y3="45.7"/>
+ <curve x1="26.98" x2="26.71" x3="26.48" y1="45.35" y2="44.95" y3="44.63"/>
+ <curve x1="26.39" x2="26.17" x3="26.17" y1="44.5" y2="44.23" y3="44.1"/>
+ <curve x1="26.08" x2="25.77" x3="25.77" y1="44.01" y2="43.43" y3="43.43"/>
+ <curve x1="25.5" x2="25.28" x3="25.1" y1="42.89" y2="42.22" y3="41.59"/>
+ <curve x1="25.1" x2="25.1" x3="25.06" y1="41.59" y2="41.41" y3="41.28"/>
+ <curve x1="25.06" x2="25.05" x3="25.1" y1="41.37" y2="41.37" y3="41.37"/>
+ <curve x1="25.59" x2="25.99" x3="26.26" y1="41.37" y2="41.1" y3="40.7"/>
+ <curve x1="26.48" x2="26.66" x3="26.66" y1="40.3" y2="39.85" y3="39.27"/>
+ <curve x1="26.66" x2="26.49" x3="26.17" y1="38.64" y2="38.06" y3="37.74"/>
+ <curve x1="26" x2="25.5" x3="25.1" y1="37.34" y2="37.16" y3="37.16"/>
+ <line x="25.06" y="37.16"/>
+ <curve x1="25.1" x2="25.19" x3="25.28" y1="36.94" y2="36.63" y3="36.36"/>
+ <curve x1="25.46" x2="25.5" x3="25.77" y1="35.96" y2="35.51" y3="35.11"/>
+ <curve x1="25.86" x2="25.99" x3="25.99" y1="35.02" y2="34.7" y3="34.7"/>
+ <curve x1="26.17" x2="26.26" x3="26.48" y1="34.34" y2="34.12" y3="33.9"/>
+ <curve x1="26.88" x2="27.38" x3="27.82" y1="33.23" y2="32.78" y3="32.2"/>
+ <curve x1="27.78" x2="27.78" x3="27.78" y1="32.42" y2="32.78" y3="33.09"/>
+ <curve x1="27.78" x2="27.92" x3="28.19" y1="33.72" y2="34.21" y3="34.61"/>
+ <curve x1="28.41" x2="28.72" x3="29.31" y1="34.92" y2="35.11" y3="35.11"/>
+ <curve x1="29.75" x2="30.11" x3="30.42" y1="35.11" y2="34.92" y3="34.61"/>
+ <curve x1="30.65" x2="30.82" x3="30.82" y1="34.21" y2="33.72" y3="33.09"/>
+ <curve x1="30.82" x2="30.65" x3="30.42" y1="32.42" y2="31.97" y3="31.57"/>
+ <curve x1="30.11" x2="29.84" x3="29.44" y1="31.21" y2="31.08" y3="30.99"/>
+ <curve x1="30.92" x2="32.48" x3="34.36" y1="30.09" y2="29.65" y3="29.65"/>
+ <close/>
+ <move x="27.52" y="46.02"/>
+ <line x="27.6" y="46.02"/>
+ <line x="27.52" y="45.93"/>
+ <line x="27.52" y="46.02"/>
+ <close/>
+ <move x="32.91" y="30.84"/>
+ <curve x1="32.82" x2="32.82" x3="32.68" y1="31.33" y2="31.47" y3="31.65"/>
+ <curve x1="32.5" x2="32.33" x3="32.1" y1="31.78" y2="31.78" y3="31.78"/>
+ <line x="32.1" y="32.67"/>
+ <line x="32.82" y="32.67"/>
+ <line x="32.82" y="35.98"/>
+ <line x="33.4" y="35.98"/>
+ <line x="33.4" y="30.84"/>
+ <line x="32.91" y="30.84"/>
+ <close/>
+ <move x="37.3" y="30.84"/>
+ <curve x1="36.85" x2="36.57" x3="36.26" y1="30.84" y2="31.06" y3="31.65"/>
+ <curve x1="36.13" x2="35.95" x3="35.95" y1="32.05" y2="32.67" y3="33.48"/>
+ <curve x1="35.95" x2="36.13" x3="36.26" y1="34.19" y2="34.86" y3="35.31"/>
+ <curve x1="36.57" x2="36.85" x3="37.3" y1="35.71" y2="35.98" y3="35.98"/>
+ <curve x1="37.7" x2="38.05" x3="38.27" y1="35.98" y2="35.71" y3="35.31"/>
+ <curve x1="38.45" x2="38.5" x3="38.5" y1="34.86" y2="34.19" y3="33.48"/>
+ <curve x1="38.5" x2="38.45" x3="38.27" y1="32.67" y2="32.05" y3="31.65"/>
+ <curve x1="38.05" x2="37.7" x3="37.3" y1="31.15" y2="30.84" y3="30.84"/>
+ <close/>
+ <move x="37.3" y="31.65"/>
+ <curve x1="37.65" x2="37.88" x3="37.88" y1="31.65" y2="32.27" y3="33.48"/>
+ <curve x1="37.88" x2="37.65" x3="37.3" y1="34.6" y2="35.27" y3="35.27"/>
+ <curve x1="36.94" x2="36.76" x3="36.76" y1="35.27" y2="34.6" y3="33.48"/>
+ <curve x1="36.76" x2="36.94" x3="37.3" y1="32.27" y2="31.65" y3="31.65"/>
+ <close/>
+ <move x="29.31" y="31.7"/>
+ <curve x1="29.71" x2="29.93" x3="29.93" y1="31.7" y2="32.2" y3="33.09"/>
+ <curve x1="29.93" x2="29.71" x3="29.31" y1="33.99" y2="34.44" y3="34.44"/>
+ <curve x1="28.72" x2="28.59" x3="28.59" y1="34.44" y2="33.99" y3="33.09"/>
+ <curve x1="28.59" x2="28.72" x3="29.31" y1="32.2" y2="31.7" y3="31.7"/>
+ <close/>
+ <move x="14.68" y="35.51"/>
+ <curve x1="14.94" x2="15.57" x3="15.57" y1="35.55" y2="36.85" y3="39.27"/>
+ <curve x1="15.57" x2="14.94" x3="14.68" y1="41.59" y2="42.89" y3="42.98"/>
+ <curve x1="14.45" x2="13.82" x3="13.82" y1="42.89" y2="41.59" y3="39.27"/>
+ <curve x1="13.82" x2="14.45" x3="14.68" y1="36.85" y2="35.55" y3="35.51"/>
+ <close/>
+ <move x="29.05" y="37.27"/>
+ <curve x1="28.96" x2="28.96" x3="28.83" y1="37.59" y2="37.68" y3="37.9"/>
+ <curve x1="28.65" x2="28.56" x3="28.25" y1="37.99" y2="38.08" y3="38.08"/>
+ <line x="28.25" y="38.62"/>
+ <line x="28.96" y="38.62"/>
+ <line x="28.96" y="41.13"/>
+ <line x="29.54" y="41.13"/>
+ <line x="29.54" y="37.27"/>
+ <line x="29.05" y="37.27"/>
+ <close/>
+ <move x="32.12" y="37.27"/>
+ <curve x1="31.71" x2="31.4" x3="31.13" y1="37.27" y2="37.5" y3="37.81"/>
+ <curve x1="31" x2="30.82" x3="30.82" y1="38.13" y2="38.62" y3="39.2"/>
+ <curve x1="30.82" x2="31" x3="31.13" y1="39.83" y2="40.23" y3="40.63"/>
+ <curve x1="31.4" x2="31.71" x3="32.12" y1="40.94" y2="41.13" y3="41.13"/>
+ <curve x1="32.52" x2="32.83" x3="33.14" y1="41.13" y2="40.95" y3="40.55"/>
+ <curve x1="33.32" x2="33.37" x3="33.37" y1="40.23" y2="39.74" y3="39.2"/>
+ <curve x1="33.37" x2="33.32" x3="33.14" y1="38.62" y2="38.13" y3="37.81"/>
+ <curve x1="32.83" x2="32.52" x3="32.12" y1="37.5" y2="37.27" y3="37.27"/>
+ <close/>
+ <move x="35.97" y="37.27"/>
+ <curve x1="35.57" x2="35.25" x3="34.98" y1="37.27" y2="37.5" y3="37.81"/>
+ <curve x1="34.85" x2="34.67" x3="34.67" y1="38.13" y2="38.62" y3="39.2"/>
+ <curve x1="34.67" x2="34.85" x3="34.98" y1="39.83" y2="40.23" y3="40.63"/>
+ <curve x1="35.25" x2="35.57" x3="35.97" y1="40.94" y2="41.13" y3="41.13"/>
+ <curve x1="36.42" x2="36.77" x3="37" y1="41.13" y2="40.95" y3="40.55"/>
+ <curve x1="37.17" x2="37.22" x3="37.22" y1="40.23" y2="39.74" y3="39.2"/>
+ <curve x1="37.22" x2="37.17" x3="37" y1="38.62" y2="38.13" y3="37.81"/>
+ <curve x1="36.77" x2="36.42" x3="35.97" y1="37.5" y2="37.27" y3="37.27"/>
+ <close/>
+ <move x="39.41" y="37.27"/>
+ <curve x1="39.32" x2="39.23" x3="39.1" y1="37.59" y2="37.68" y3="37.9"/>
+ <curve x1="39.01" x2="38.83" x3="38.52" y1="37.99" y2="38.08" y3="38.08"/>
+ <line x="38.52" y="38.62"/>
+ <line x="39.23" y="38.62"/>
+ <line x="39.23" y="41.13"/>
+ <line x="39.82" y="41.13"/>
+ <line x="39.82" y="37.27"/>
+ <line x="39.41" y="37.27"/>
+ <close/>
+ <move x="24.87" y="37.88"/>
+ <line x="25.1" y="37.88"/>
+ <curve x1="25.5" x2="25.77" x3="25.77" y1="37.88" y2="38.28" y3="39.27"/>
+ <curve x1="25.77" x2="25.5" x3="25.1" y1="40.25" y2="40.65" y3="40.65"/>
+ <line x="24.87" y="40.65"/>
+ <curve x1="24.87" x2="24.78" x3="24.78" y1="40.25" y2="39.67" y3="39.27"/>
+ <curve x1="24.78" x2="24.87" x3="24.87" y1="38.68" y2="38.28" y3="37.88"/>
+ <close/>
+ <move x="42.77" y="37.88"/>
+ <curve x1="43.26" x2="43.48" x3="43.48" y1="37.88" y2="38.28" y3="39.27"/>
+ <curve x1="43.48" x2="43.26" x3="42.77" y1="40.25" y2="40.65" y3="40.65"/>
+ <curve x1="42.37" x2="42.14" x3="42.14" y1="40.65" y2="40.25" y3="39.27"/>
+ <curve x1="42.14" x2="42.37" x3="42.77" y1="38.28" y2="37.88" y3="37.88"/>
+ <close/>
+ <move x="32.12" y="37.9"/>
+ <curve x1="32.52" x2="32.74" x3="32.74" y1="37.9" y2="38.4" y3="39.2"/>
+ <curve x1="32.74" x2="32.52" x3="32.12" y1="40.05" y2="40.45" y3="40.45"/>
+ <curve x1="31.8" x2="31.62" x3="31.62" y1="40.45" y2="40.05" y3="39.2"/>
+ <curve x1="31.62" x2="31.8" x3="32.12" y1="38.4" y2="37.9" y3="37.9"/>
+ <close/>
+ <move x="35.97" y="37.9"/>
+ <curve x1="36.37" x2="36.5" x3="36.5" y1="37.9" y2="38.4" y3="39.2"/>
+ <curve x1="36.5" x2="36.37" x3="35.97" y1="40.05" y2="40.45" y3="40.45"/>
+ <curve x1="35.65" x2="35.38" x3="35.38" y1="40.45" y2="40.05" y3="39.2"/>
+ <curve x1="35.38" x2="35.65" x3="35.97" y1="38.4" y2="37.9" y3="37.9"/>
+ <close/>
+ <move x="33" y="43.71"/>
+ <curve x1="32.91" x2="32.82" x3="32.68" y1="43.93" y2="44.15" y3="44.15"/>
+ <curve x1="32.59" x2="32.42" x3="32.1" y1="44.33" y2="44.42" y3="44.42"/>
+ <line x="32.1" y="45.05"/>
+ <line x="32.82" y="45.05"/>
+ <line x="32.82" y="47.55"/>
+ <line x="33.4" y="47.55"/>
+ <line x="33.4" y="43.71"/>
+ <line x="33" y="43.71"/>
+ <close/>
+ <move x="37.25" y="43.71"/>
+ <curve x1="36.84" x2="36.53" x3="36.26" y1="43.71" y2="43.84" y3="44.15"/>
+ <curve x1="36.04" x2="35.95" x3="35.95" y1="44.64" y2="45.14" y3="45.63"/>
+ <curve x1="35.95" x2="36.04" x3="36.26" y1="46.25" y2="46.75" y3="47.06"/>
+ <curve x1="36.53" x2="36.84" x3="37.25" y1="47.37" y2="47.55" y3="47.55"/>
+ <curve x1="37.69" x2="38.05" x3="38.27" y1="47.55" y2="47.37" y3="47.06"/>
+ <curve x1="38.45" x2="38.5" x3="38.5" y1="46.75" y2="46.25" y3="45.63"/>
+ <curve x1="38.5" x2="38.46" x3="38.19" y1="45.14" y2="44.64" y3="44.24"/>
+ <curve x1="38.06" x2="37.65" x3="37.25" y1="43.83" y2="43.71" y3="43.71"/>
+ <close/>
+ <move x="29.12" y="44.01"/>
+ <curve x1="29.62" x2="29.84" x3="29.84" y1="44.01" y2="44.5" y3="45.35"/>
+ <curve x1="29.84" x2="29.62" x3="29.12" y1="46.33" y2="46.82" y3="46.82"/>
+ <curve x1="28.72" x2="28.5" x3="28.5" y1="46.82" y2="46.33" y3="45.35"/>
+ <curve x1="28.5" x2="28.72" x3="29.12" y1="44.5" y2="44.01" y3="44.01"/>
+ <close/>
+ <move x="40.67" y="44.01"/>
+ <curve x1="41.16" x2="41.43" x3="41.43" y1="44.01" y2="44.5" y3="45.35"/>
+ <line x="41.43" y="45.53"/>
+ <line x="41.25" y="45.7"/>
+ <curve x1="41.16" x2="41.02" x3="41.02" y1="45.84" y2="45.93" y3="46.02"/>
+ <curve x1="40.75" x2="40.53" x3="40.35" y1="46.24" y2="46.42" y3="46.65"/>
+ <curve x1="40.13" x2="40.04" x3="40.04" y1="46.42" y2="46.02" y3="45.35"/>
+ <curve x1="40.04" x2="40.26" x3="40.67" y1="44.5" y2="44.01" y3="44.01"/>
+ <close/>
+ <move x="37.25" y="44.33"/>
+ <curve x1="37.65" x2="37.79" x3="37.79" y1="44.33" y2="44.73" y3="45.63"/>
+ <curve x1="37.79" x2="37.65" x3="37.25" y1="46.48" y2="46.97" y3="46.97"/>
+ <curve x1="36.84" x2="36.67" x3="36.67" y1="46.97" y2="46.48" y3="45.63"/>
+ <curve x1="36.67" x2="36.84" x3="37.25" y1="44.73" y2="44.33" y3="44.33"/>
+ <close/>
+ <move x="14.68" y="49.47"/>
+ <curve x1="14.94" x2="15.57" x3="15.57" y1="49.55" y2="50.85" y3="53.18"/>
+ <curve x1="15.57" x2="14.94" x3="14.68" y1="55.5" y2="56.76" y3="56.85"/>
+ <curve x1="14.45" x2="13.82" x3="13.82" y1="56.76" y2="55.5" y3="53.18"/>
+ <curve x1="13.82" x2="14.45" x3="14.68" y1="50.85" y2="49.55" y3="49.47"/>
+ <close/>
+ <move x="0" y="39.82"/>
+ <curve x1="0" x2="17.9" x3="39.82" y1="17.9" y2="0" y3="0"/>
+ <curve x1="61.78" x2="79.59" x3="79.59" y1="0" y2="17.9" y3="39.82"/>
+ <curve x1="79.59" x2="61.78" x3="39.82" y1="61.83" y2="79.68" y3="79.68"/>
+ <curve x1="17.9" x2="0" x3="0" y1="79.68" y2="61.83" y3="39.82"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="vulnerability management" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="48.72" y="55.9"/>
+ <curve x1="50.83" x2="53.08" x3="55.28" y1="53.39" y2="51.14" y3="49.17"/>
+ <curve x1="64.52" x2="64.52" x3="64.52" y1="49.17" y2="49.17" y3="49.17"/>
+ <curve x1="64.93" x2="65.33" x3="65.33" y1="49.17" y2="48.76" y3="48.36"/>
+ <curve x1="65.33" x2="65.24" x3="65.24" y1="48.31" y2="48.22" y3="48.04"/>
+ <curve x1="65.15" x2="65.15" x3="65.15" y1="48.04" y2="48.04" y3="48.04"/>
+ <curve x1="64.03" x2="63.18" x3="62.5" y1="46.02" y2="44.68" y3="43.47"/>
+ <curve x1="65.02" x2="67.26" x3="68.7" y1="41.85" y2="40.55" y3="39.74"/>
+ <curve x1="68.97" x2="69.1" x3="69.46" y1="40.05" y2="40.41" y3="40.82"/>
+ <curve x1="69.19" x2="68.07" x3="66.32" y1="45.08" y2="49.17" y3="52.89"/>
+ <curve x1="59.86" x2="53.66" x3="48.72" y1="55.32" y2="55.95" y3="55.9"/>
+ <close/>
+ <move x="40.51" y="68.88"/>
+ <curve x1="42.53" x2="45.26" x3="48" y1="64.25" y2="60.17" y3="56.62"/>
+ <curve x1="48.5" x2="49.08" x3="49.53" y1="56.62" y2="56.66" y3="56.66"/>
+ <curve x1="54.29" x2="59.86" x3="65.74" y1="56.66" y2="56.04" y3="54.02"/>
+ <curve x1="60.84" x2="51.33" x3="40.51" y1="62.73" y2="68.7" y3="68.88"/>
+ <close/>
+ <move x="39.65" y="68.88"/>
+ <curve x1="36.33" x2="33.1" x3="30.05" y1="68.79" y2="68.2" y3="67.17"/>
+ <curve x1="31.35" x2="34.18" x3="37.32" y1="65.87" y2="62.73" y3="58.28"/>
+ <curve x1="44.55" x2="44.55" x3="44.55" y1="58.28" y2="58.28" y3="58.28"/>
+ <curve x1="44.95" x2="45.35" x3="45.35" y1="58.28" y2="58.06" y3="57.47"/>
+ <curve x1="45.35" x2="45.26" x3="45.26" y1="57.43" y2="57.34" y3="57.16"/>
+ <curve x1="45.26" x2="45.26" x3="45.26" y1="57.07" y2="57.07" y3="57.07"/>
+ <curve x1="45.17" x2="45.17" x3="45.17" y1="57.07" y2="57.07" y3="57.07"/>
+ <curve x1="45.13" x2="44.95" x3="44.86" y1="56.93" y2="56.62" y3="56.44"/>
+ <curve x1="45.53" x2="46.25" x3="47.06" y1="56.53" y2="56.62" y3="56.62"/>
+ <curve x1="44.23" x2="41.63" x3="39.65" y1="60.17" y2="64.25" y3="68.88"/>
+ <close/>
+ <move x="18.91" y="60.08"/>
+ <curve x1="24.97" x2="30.14" x3="34.62" y1="59.58" y2="58.28" y3="56.53"/>
+ <curve x1="34.4" x2="34.4" x3="34.4" y1="57.07" y2="57.07" y3="57.07"/>
+ <curve x1="34.22" x2="34.18" x3="34.18" y1="57.16" y2="57.43" y3="57.47"/>
+ <curve x1="34.18" x2="34.58" x3="34.98" y1="58.06" y2="58.28" y3="58.28"/>
+ <curve x1="36.24" x2="36.24" x3="36.24" y1="58.28" y2="58.28" y3="58.28"/>
+ <curve x1="33.1" x2="30.36" x3="29.33" y1="62.73" y2="65.78" y3="66.95"/>
+ <curve x1="25.29" x2="21.74" x3="18.91" y1="65.33" y2="62.99" y3="60.08"/>
+ <close/>
+ <move x="17.16" y="58.28"/>
+ <curve x1="17.07" x2="17.39" x3="17.88" y1="54.51" y2="50.96" y3="47.55"/>
+ <curve x1="22.14" x2="22.14" x3="22.14" y1="47.55" y2="47.55" y3="47.55"/>
+ <curve x1="25.87" x2="30.36" x3="35.75" y1="50.47" y2="52.98" y3="54.69"/>
+ <curve x1="35.7" x2="35.43" x3="35.39" y1="54.91" y2="55.14" y3="55.5"/>
+ <curve x1="30.63" x2="24.88" x3="18.1" y1="57.43" y2="58.77" y3="59.27"/>
+ <curve x1="17.88" x2="17.48" x3="17.16" y1="58.95" y2="58.64" y3="58.28"/>
+ <close/>
+ <move x="16.35" y="57.16"/>
+ <curve x1="12.81" x2="10.56" x3="10.56" y1="52.4" y2="46.43" y3="40.01"/>
+ <curve x1="10.56" x2="10.7" x3="10.88" y1="38.53" y2="37" y3="35.56"/>
+ <curve x1="12" x2="13.84" x3="16.53" y1="37.27" y2="39.65" y3="42.43"/>
+ <curve x1="14.11" x2="14.11" x3="14.11" y1="46.38" y2="46.38" y3="46.38"/>
+ <curve x1="14.02" x2="13.84" x3="13.84" y1="46.52" y2="46.61" y3="46.83"/>
+ <curve x1="13.84" x2="14.24" x3="14.65" y1="47.19" y2="47.55" y3="47.55"/>
+ <curve x1="17.07" x2="17.07" x3="17.07" y1="47.55" y2="47.55" y3="47.55"/>
+ <curve x1="16.58" x2="16.35" x3="16.35" y1="50.65" y2="53.79" y3="57.16"/>
+ <close/>
+ <move x="15.77" y="23.62"/>
+ <curve x1="17.88" x2="21.52" x3="26.19" y1="22.99" y2="21.92" y3="21.47"/>
+ <curve x1="26.27" x2="26.36" x3="26.5" y1="21.51" y2="21.6" y3="21.78"/>
+ <curve x1="26.01" x2="26.01" x3="26.01" y1="22.32" y2="22.32" y3="22.32"/>
+ <curve x1="25.96" x2="25.87" x3="25.87" y1="22.41" y2="22.64" y3="22.81"/>
+ <curve x1="25.87" x2="26.27" x3="26.68" y1="23.22" y2="23.62" y3="23.62"/>
+ <curve x1="26.9" x2="26.9" x3="26.9" y1="23.62" y2="23.62" y3="23.62"/>
+ <curve x1="24.16" x2="21.43" x3="19.32" y1="27.35" y2="32.24" y3="38.12"/>
+ <curve x1="19.09" x2="18.91" x3="18.78" y1="38.21" y2="38.3" y3="38.62"/>
+ <curve x1="17.97" x2="17.39" x3="16.85" y1="39.74" y2="40.86" y3="41.76"/>
+ <curve x1="14.02" x2="12.09" x3="11.19" y1="38.71" y2="35.97" y3="34.44"/>
+ <curve x1="12" x2="13.61" x3="15.77" y1="30.49" y2="26.86" y3="23.62"/>
+ <close/>
+ <move x="21.74" y="17.34"/>
+ <curve x1="22.46" x2="23.85" x3="25.47" y1="17.92" y2="19.04" y3="20.7"/>
+ <curve x1="21.74" x2="18.69" x3="16.58" y1="21.2" y2="21.92" y3="22.59"/>
+ <curve x1="18.06" x2="19.9" x3="21.74" y1="20.57" y2="18.95" y3="17.34"/>
+ <close/>
+ <move x="39.16" y="11.19"/>
+ <curve x1="37.63" x2="35.52" x3="33.28" y1="12.26" y2="13.88" y3="16.13"/>
+ <curve x1="32.16" x2="32.16" x3="32.16" y1="14.42" y2="14.42" y3="14.42"/>
+ <curve x1="32.07" x2="31.75" x3="31.44" y1="14.2" y2="13.93" y3="13.93"/>
+ <curve x1="31.17" x2="30.85" x3="30.76" y1="13.93" y2="14.29" y3="14.51"/>
+ <curve x1="29.01" x2="27.89" x3="27.13" y1="17.52" y2="19.45" y3="20.57"/>
+ <curve x1="26.5" x2="26.5" x3="26.5" y1="20.57" y2="20.57" y3="20.57"/>
+ <curve x1="24.75" x2="23.27" x3="22.46" y1="18.68" y2="17.52" y3="16.84"/>
+ <curve x1="27.13" x2="32.87" x3="39.16" y1="13.48" y2="11.37" y3="11.19"/>
+ <close/>
+ <move x="40.51" y="11.19"/>
+ <curve x1="44.46" x2="48.18" x3="51.55" y1="11.28" y2="12" y3="13.57"/>
+ <curve x1="51.64" x2="51.82" x3="51.55" y1="15.54" y2="17.65" y3="19.58"/>
+ <curve x1="51.46" x2="51.33" x3="51.24" y1="19.58" y2="19.49" y3="19.49"/>
+ <curve x1="50.83" x2="50.61" x3="50.43" y1="19.49" y2="19.76" y3="19.99"/>
+ <curve x1="49.71" x2="49.08" x3="48.5" y1="21.29" y2="22.32" y3="23.22"/>
+ <curve x1="44.05" x2="39.65" x3="35.75" y1="21.51" y2="20.79" y3="20.48"/>
+ <curve x1="34.89" x2="34.18" x3="33.68" y1="18.95" y2="17.74" y3="16.84"/>
+ <curve x1="36.56" x2="39.07" x3="40.51" y1="14.11" y2="12.26" y3="11.19"/>
+ <close/>
+ <move x="51.82" y="25.15"/>
+ <curve x1="51.82" x2="51.55" x3="51.24" y1="25.46" y2="25.64" y3="25.64"/>
+ <curve x1="50.92" x2="50.65" x3="50.65" y1="25.64" y2="25.46" y3="25.15"/>
+ <curve x1="50.65" x2="50.65" x3="50.65" y1="23.13" y2="23.13" y3="23.13"/>
+ <curve x1="50.65" x2="50.92" x3="51.24" y1="22.81" y2="22.64" y3="22.64"/>
+ <curve x1="51.55" x2="51.82" x3="51.82" y1="22.64" y2="22.81" y3="23.13"/>
+ <line x="51.82" y="25.15"/>
+ <close/>
+ <move x="51.24" y="27.89"/>
+ <curve x1="50.83" x2="50.61" x3="50.61" y1="27.89" y2="27.48" y3="27.26"/>
+ <curve x1="50.61" x2="50.83" x3="51.24" y1="26.86" y2="26.59" y3="26.59"/>
+ <curve x1="51.55" x2="51.95" x3="51.95" y1="26.59" y2="26.86" y3="27.26"/>
+ <curve x1="51.95" x2="51.55" x3="51.24" y1="27.48" y2="27.89" y3="27.89"/>
+ <close/>
+ <move x="52.36" y="13.79"/>
+ <curve x1="55.9" x2="59.14" x3="61.7" y1="15.5" y2="17.83" y3="20.57"/>
+ <curve x1="61.56" x2="61.07" x3="59.63" y1="22.19" y2="25.42" y3="29.37"/>
+ <curve x1="58.51" x2="57.34" x3="56.13" y1="28.56" y2="27.75" y3="26.99"/>
+ <curve x1="53.79" x2="52.85" x3="52.36" y1="23.22" y2="21.47" y3="20.7"/>
+ <curve x1="52.45" x2="52.54" x3="52.36" y1="18.37" y2="16.13" y3="13.79"/>
+ <close/>
+ <move x="42.03" y="51.14"/>
+ <curve x1="45.44" x2="49.13" x3="51.01" y1="45.31" y2="37.72" y3="29.1"/>
+ <curve x1="56.08" x2="56.08" x3="56.08" y1="29.1" y2="29.1" y3="29.1"/>
+ <curve x1="56.4" x2="56.71" x3="56.71" y1="29.1" y2="28.79" y3="28.47"/>
+ <curve x1="57.61" x2="58.51" x3="59.36" y1="28.97" y2="29.59" y3="30.18"/>
+ <curve x1="58.33" x2="57.03" x3="55.1" y1="32.83" y2="35.7" y3="38.8"/>
+ <curve x1="52.45" x2="48.27" x3="42.03" y1="43.15" y2="48.04" y3="51.91"/>
+ <curve x1="41.99" x2="41.81" x3="41.72" y1="51.77" y2="51.59" y3="51.46"/>
+ <curve x1="41.81" x2="41.99" x3="42.03" y1="51.28" y2="51.19" y3="51.14"/>
+ <close/>
+ <move x="30.94" y="19.67"/>
+ <curve x1="30.94" x2="30.94" x3="30.94" y1="17.65" y2="17.65" y3="17.65"/>
+ <curve x1="30.94" x2="31.17" x3="31.44" y1="17.34" y2="17.16" y3="17.16"/>
+ <curve x1="31.75" x2="31.98" x3="31.98" y1="17.16" y2="17.34" y3="17.65"/>
+ <curve x1="31.98" x2="31.98" x3="31.98" y1="19.67" y2="19.67" y3="19.67"/>
+ <curve x1="31.98" x2="31.75" x3="31.44" y1="19.99" y2="20.17" y3="20.17"/>
+ <curve x1="31.17" x2="30.94" x3="30.94" y1="20.17" y2="19.99" y3="19.67"/>
+ <close/>
+ <move x="31.44" y="21.06"/>
+ <curve x1="31.89" x2="32.16" x3="32.16" y1="21.06" y2="21.38" y3="21.78"/>
+ <curve x1="32.16" x2="31.89" x3="31.44" y1="22.01" y2="22.41" y3="22.41"/>
+ <curve x1="31.08" x2="30.76" x3="30.76" y1="22.41" y2="22.01" y3="21.78"/>
+ <curve x1="30.76" x2="31.08" x3="31.44" y1="21.38" y2="21.06" y3="21.06"/>
+ <close/>
+ <move x="19" y="43.69"/>
+ <curve x1="19" x2="19" x3="19" y1="41.63" y2="41.63" y3="41.63"/>
+ <curve x1="19" x2="19.18" x3="19.5" y1="41.36" y2="41.13" y3="41.13"/>
+ <curve x1="19.72" x2="19.99" x3="19.99" y1="41.13" y2="41.36" y3="41.63"/>
+ <curve x1="19.99" x2="19.99" x3="19.99" y1="43.69" y2="43.69" y3="43.69"/>
+ <curve x1="19.99" x2="19.72" x3="19.5" y1="44" y2="44.18" y3="44.18"/>
+ <curve x1="19.18" x2="19" x3="19" y1="44.18" y2="44" y3="43.69"/>
+ <close/>
+ <move x="19.5" y="45.08"/>
+ <curve x1="19.9" x2="20.21" x3="20.21" y1="45.08" y2="45.31" y3="45.71"/>
+ <curve x1="20.21" x2="19.9" x3="19.5" y1="46.2" y2="46.43" y3="46.43"/>
+ <curve x1="19.09" x2="18.78" x3="18.78" y1="46.43" y2="46.2" y3="45.71"/>
+ <curve x1="18.78" x2="19.09" x3="19.5" y1="45.31" y2="45.08" y3="45.08"/>
+ <close/>
+ <move x="24.97" y="46.43"/>
+ <curve x1="24.97" x2="24.97" x3="24.97" y1="46.43" y2="46.43" y3="46.43"/>
+ <curve x1="20.21" x2="20.21" x3="20.21" y1="38.53" y2="38.53" y3="38.53"/>
+ <curve x1="20.21" x2="20.21" x3="20.08" y1="38.48" y2="38.48" y3="38.48"/>
+ <curve x1="22.14" x2="25.06" x3="27.89" y1="32.33" y2="27.35" y3="23.62"/>
+ <curve x1="27.94" x2="27.94" x3="27.94" y1="23.62" y2="23.62" y3="23.62"/>
+ <curve x1="32.16" x2="37.05" x3="38.35" y1="28.97" y2="37.58" y3="50.47"/>
+ <curve x1="37.45" x2="36.73" x3="36.15" y1="51.91" y2="53.07" y3="54.02"/>
+ <curve x1="31.26" x2="26.99" x3="23.45" y1="52.49" y2="50.15" y3="47.55"/>
+ <curve x1="24.25" x2="24.25" x3="24.25" y1="47.55" y2="47.55" y3="47.55"/>
+ <curve x1="24.75" x2="25.06" x3="25.06" y1="47.55" y2="47.19" y3="46.83"/>
+ <curve x1="25.06" x2="25.06" x3="24.97" y1="46.79" y2="46.61" y3="46.43"/>
+ <close/>
+ <move x="39.79" y="48.76"/>
+ <curve x1="39.47" x2="39.16" x3="39.07" y1="48.76" y2="48.94" y3="49.26"/>
+ <curve x1="38.98" x2="38.98" x3="38.98" y1="49.26" y2="49.26" y3="49.26"/>
+ <curve x1="37.63" x2="33.59" x3="30.14" y1="37.9" y2="30" y3="25.15"/>
+ <curve x1="29.73" x2="29.42" x3="29.1" y1="24.61" y2="24.12" y3="23.62"/>
+ <curve x1="36.24" x2="36.24" x3="36.24" y1="23.62" y2="23.62" y3="23.62"/>
+ <curve x1="36.73" x2="37.05" x3="37.05" y1="23.62" y2="23.22" y3="22.81"/>
+ <curve x1="37.05" x2="37.05" x3="36.96" y1="22.64" y2="22.59" y3="22.41"/>
+ <curve x1="36.96" x2="36.96" x3="36.96" y1="22.32" y2="22.32" y3="22.32"/>
+ <curve x1="36.65" x2="36.42" x3="36.24" y1="21.92" y2="21.6" y3="21.29"/>
+ <curve x1="39.88" x2="44.01" x3="48.18" y1="21.51" y2="22.32" y3="23.85"/>
+ <curve x1="45.85" x2="45.85" x3="45.85" y1="27.8" y2="27.8" y3="27.8"/>
+ <curve x1="45.67" x2="45.67" x3="45.67" y1="27.89" y2="28.16" y3="28.29"/>
+ <curve x1="45.67" x2="45.94" x3="46.48" y1="28.7" y2="29.1" y3="29.1"/>
+ <curve x1="50.25" x2="50.25" x3="50.25" y1="29.1" y2="29.1" y3="29.1"/>
+ <curve x1="48.32" x2="44.64" x3="41.31" y1="37.49" y2="45.08" y3="50.65"/>
+ <curve x1="40.46" x2="40.46" x3="40.46" y1="49.17" y2="49.17" y3="49.17"/>
+ <curve x1="40.37" x2="40.06" x3="39.79" y1="48.94" y2="48.76" y3="48.76"/>
+ <close/>
+ <move x="39.25" y="54.42"/>
+ <curve x1="39.25" x2="39.25" x3="39.25" y1="52.4" y2="52.4" y3="52.4"/>
+ <curve x1="39.25" x2="39.47" x3="39.79" y1="52.18" y2="51.86" y3="51.86"/>
+ <curve x1="40.06" x2="40.28" x3="40.28" y1="51.86" y2="52.18" y3="52.4"/>
+ <curve x1="40.28" x2="40.28" x3="40.28" y1="54.42" y2="54.42" y3="54.42"/>
+ <curve x1="40.28" x2="40.06" x3="39.79" y1="54.69" y2="54.91" y3="54.91"/>
+ <curve x1="39.47" x2="39.25" x3="39.25" y1="54.91" y2="54.69" y3="54.42"/>
+ <close/>
+ <move x="39.79" y="55.72"/>
+ <curve x1="40.19" x2="40.46" x3="40.46" y1="55.72" y2="56.04" y3="56.44"/>
+ <curve x1="40.46" x2="40.19" x3="39.79" y1="56.84" y2="57.07" y3="57.07"/>
+ <curve x1="39.29" x2="39.07" x3="39.07" y1="57.07" y2="56.84" y3="56.44"/>
+ <curve x1="39.07" x2="39.29" x3="39.79" y1="56.04" y2="55.72" y3="55.72"/>
+ <close/>
+ <move x="59.77" y="39.65"/>
+ <curve x1="59.45" x2="59.14" x3="59.05" y1="39.65" y2="39.92" y3="40.14"/>
+ <curve x1="54.38" x2="54.38" x3="54.38" y1="47.91" y2="47.91" y3="47.91"/>
+ <curve x1="54.29" x2="54.15" x3="54.15" y1="48.13" y2="48.22" y3="48.36"/>
+ <curve x1="54.15" x2="54.29" x3="54.38" y1="48.63" y2="48.76" y3="48.85"/>
+ <curve x1="52.13" x2="49.89" x3="47.69" y1="50.96" y2="53.3" y3="55.9"/>
+ <curve x1="46.48" x2="45.35" x3="44.32" y1="55.9" y2="55.72" y3="55.63"/>
+ <curve x1="43.6" x2="42.93" x3="42.44" y1="54.42" y2="53.39" y3="52.67"/>
+ <curve x1="48.81" x2="53.08" x3="55.81" y1="48.63" y2="43.69" y3="39.2"/>
+ <curve x1="57.61" x2="59.05" x3="59.94" y1="36.28" y2="33.32" y3="30.72"/>
+ <curve x1="62.82" x2="65.65" x3="68.25" y1="33.05" y2="35.7" y3="39.2"/>
+ <curve x1="66.72" x2="64.61" x3="62.19" y1="40.01" y2="41.13" y3="42.88"/>
+ <curve x1="60.44" x2="60.44" x3="60.44" y1="40.05" y2="40.05" y3="40.05"/>
+ <curve x1="60.35" x2="60.03" x3="59.77" y1="39.74" y2="39.65" y3="39.65"/>
+ <close/>
+ <move x="59.23" y="45.22"/>
+ <curve x1="59.23" x2="59.23" x3="59.23" y1="43.24" y2="43.24" y3="43.24"/>
+ <curve x1="59.23" x2="59.45" x3="59.77" y1="42.88" y2="42.75" y3="42.75"/>
+ <curve x1="60.03" x2="60.17" x3="60.17" y1="42.75" y2="42.88" y3="43.24"/>
+ <curve x1="60.17" x2="60.17" x3="60.17" y1="45.22" y2="45.22" y3="45.22"/>
+ <curve x1="60.17" x2="60.03" x3="59.77" y1="45.58" y2="45.71" y3="45.71"/>
+ <curve x1="59.45" x2="59.23" x3="59.23" y1="45.71" y2="45.58" y3="45.22"/>
+ <close/>
+ <move x="59.77" y="46.61"/>
+ <curve x1="60.08" x2="60.44" x3="60.44" y1="46.61" y2="46.92" y3="47.33"/>
+ <curve x1="60.44" x2="60.08" x3="59.77" y1="47.73" y2="48.04" y3="48.04"/>
+ <curve x1="59.36" x2="59.05" x3="59.05" y1="48.04" y2="47.73" y3="47.33"/>
+ <curve x1="59.05" x2="59.36" x3="59.77" y1="46.92" y2="46.61" y3="46.61"/>
+ <close/>
+ <move x="69.28" y="38.53"/>
+ <curve x1="69.19" x2="69.1" x3="68.97" y1="38.62" y2="38.71" y3="38.8"/>
+ <curve x1="66.14" x2="63.22" x3="60.17" y1="35.16" y2="32.33" y3="29.82"/>
+ <curve x1="61.56" x2="62.19" x3="62.41" y1="26.27" y2="23.22" y3="21.38"/>
+ <curve x1="66.45" x2="69.06" x3="69.28" y1="26.05" y2="32.02" y3="38.53"/>
+ <close/>
+ <move x="39.97" y="8.4"/>
+ <curve x1="22.23" x2="7.73" x3="7.73" y1="8.4" y2="22.64" y3="40.01"/>
+ <curve x1="7.73" x2="22.23" x3="39.97" y1="57.43" y2="71.61" y3="71.61"/>
+ <curve x1="57.75" x2="72.2" x3="72.2" y1="71.61" y2="57.43" y3="40.01"/>
+ <curve x1="72.2" x2="57.75" x3="39.97" y1="22.64" y2="8.4" y3="8.4"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.96" x3="39.96" y1="18" y2="0" y3="0"/>
+ <curve x1="62.04" x2="79.91" x3="79.91" y1="0" y2="18" y3="40"/>
+ <curve x1="79.91" x2="62.04" x3="39.96" y1="62.09" y2="80" y3="80"/>
+ <curve x1="17.96" x2="0" x3="0" y1="80" y2="62.09" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="web application firewall" strokewidth="inherit" w="78.65">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="46.17" y="12.9"/>
+ <curve x1="39.16" x2="32.65" x3="27.62" y1="12.9" y2="15.64" y3="20.54"/>
+ <curve x1="25.15" x2="23.26" x3="21.92" y1="23.05" y2="25.89" y3="29.03"/>
+ <line x="23.67" y="29.03"/>
+ <curve x1="24.97" x2="26.59" x3="28.84" y1="26.29" y2="23.78" y3="21.62"/>
+ <curve x1="29.51" x2="30.32" x3="30.95" y1="20.86" y2="20.31" y3="19.64"/>
+ <curve x1="31.08" x2="31.17" x3="31.26" y1="19.91" y2="20.04" y3="20.13"/>
+ <curve x1="31.35" x2="31.08" x3="31.08" y1="20.31" y2="20.45" y3="20.63"/>
+ <curve x1="31.04" x2="31.08" x3="31.08" y1="20.72" y2="20.85" y3="20.85"/>
+ <curve x1="31.08" x2="30.95" x3="31.08" y1="21.21" y2="21.35" y3="21.53"/>
+ <curve x1="31.26" x2="31.67" x3="31.85" y1="21.75" y2="21.26" y3="21.62"/>
+ <curve x1="31.98" x2="31.66" x3="31.57" y1="21.84" y2="21.93" y3="22.24"/>
+ <curve x1="31.48" x2="31.66" x3="31.66" y1="22.47" y2="22.78" y3="23.05"/>
+ <curve x1="31.66" x2="31.66" x3="31.57" y1="23.14" y2="23.46" y3="23.55"/>
+ <curve x1="31.48" x2="31.17" x3="31.17" y1="23.68" y2="23.68" y3="23.95"/>
+ <curve x1="31.17" x2="31.67" x3="31.76" y1="24.26" y2="24.49" y3="24.76"/>
+ <curve x1="31.76" x2="31.57" x3="31.48" y1="24.99" y2="25.21" y3="25.39"/>
+ <curve x1="31.26" x2="30.95" x3="30.63" y1="25.88" y2="26.29" y3="26.69"/>
+ <curve x1="30.36" x2="29.96" x3="29.73" y1="27.01" y2="27.32" y3="27.63"/>
+ <curve x1="29.64" x2="29.55" x3="29.51" y1="27.9" y2="28.13" y3="28.31"/>
+ <curve x1="29.33" x2="29.11" x3="28.93" y1="28.62" y2="28.72" y3="28.94"/>
+ <line x="28.93" y="29.03"/>
+ <line x="33.59" y="29.03"/>
+ <line x="35.8" y="29.03"/>
+ <line x="49.95" y="29.03"/>
+ <line x="49.95" y="31.99"/>
+ <curve x1="50.35" x2="50.76" x3="51.07" y1="31.77" y2="31.59" y3="31.36"/>
+ <curve x1="51.25" x2="51.07" x3="51.07" y1="30.96" y2="30.56" y3="30.15"/>
+ <curve x1="51.25" x2="51.43" x3="51.56" y1="30.06" y2="30.24" y3="30.15"/>
+ <curve x1="51.83" x2="51.83" x3="51.97" y1="30.15" y2="29.74" y3="29.56"/>
+ <curve x1="52.06" x2="52.19" x3="52.37" y1="29.56" y2="29.56" y3="29.34"/>
+ <curve x1="52.68" x2="52.69" x3="52.96" y1="29.25" y2="28.94" y3="28.85"/>
+ <curve x1="53" x2="53.18" x3="53.36" y1="28.85" y2="28.85" y3="28.72"/>
+ <curve x1="53.49" x2="53.77" x3="53.99" y1="28.72" y2="28.53" y3="28.44"/>
+ <curve x1="54.21" x2="54.62" x3="54.71" y1="28.35" y2="28.35" y3="28.31"/>
+ <line x="54.71" y="27.82"/>
+ <curve x1="54.89" x2="55.74" x3="56.33" y1="27.23" y2="27.1" y3="26.92"/>
+ <curve x1="56.73" x2="57.13" x3="57.53" y1="26.74" y2="26.42" y3="26.6"/>
+ <curve x1="57.53" x2="57.14" x3="57.23" y1="26.74" y2="26.73" y3="27.09"/>
+ <curve x1="57.23" x2="57.85" x3="58.07" y1="27.54" y2="27.01" y3="26.92"/>
+ <curve x1="58.43" x2="59.07" x3="59.47" y1="26.74" y2="26.69" y3="26.51"/>
+ <curve x1="59.88" x2="60.59" x3="60.28" y1="26.33" y2="26.11" y3="25.61"/>
+ <curve x1="59.96" x2="59.79" x3="59.47" y1="25.61" y2="26.02" y3="26.2"/>
+ <curve x1="59.29" x2="59.29" x3="59.16" y1="26.2" y2="26.02" y3="25.93"/>
+ <curve x1="58.98" x2="58.88" x3="58.75" y1="25.93" y2="26.11" y3="26.11"/>
+ <curve x1="58.57" x2="58.43" x3="58.43" y1="26.02" y2="25.79" y3="25.61"/>
+ <curve x1="58.43" x2="58.75" x3="58.97" y1="25.16" y2="25.08" y3="24.67"/>
+ <curve x1="58.84" x2="58.25" x3="57.85" y1="24.27" y2="24.58" y3="24.4"/>
+ <curve x1="57.94" x2="58.17" x3="58.48" y1="24.17" y2="23.95" y3="23.95"/>
+ <curve x1="58.75" x2="59.29" x3="59.47" y1="23.86" y2="23.95" y3="24"/>
+ <curve x1="59.56" x2="59.47" x3="59.56" y1="24.09" y2="24.26" y3="24.4"/>
+ <curve x1="59.69" x2="59.87" x3="60" y1="24.58" y2="24.49" y3="24.49"/>
+ <curve x1="60.18" x2="59.7" x3="59.7" y1="24.18" y2="24.27" y3="24"/>
+ <curve x1="60.01" x2="60.68" x3="61.18" y1="23.77" y2="23.99" y3="23.95"/>
+ <curve x1="61.4" x2="61.71" x3="61.98" y1="23.86" y2="23.68" y3="23.55"/>
+ <curve x1="62.21" x2="62.52" x3="62.75" y1="23.46" y2="23.19" y3="23.46"/>
+ <curve x1="62.75" x2="62.53" x3="62.39" y1="23.59" y2="23.69" y3="23.87"/>
+ <curve x1="61.99" x2="61.49" x3="61.18" y1="24.27" y2="24.67" y3="25.07"/>
+ <curve x1="61.4" x2="61.71" x3="62.12" y1="25.21" y2="25.17" y3="25.21"/>
+ <curve x1="62.21" x2="62.43" x3="62.52" y1="25.21" y2="25.21" y3="25.39"/>
+ <line x="63.11" y="25.39"/>
+ <curve x1="63.24" x2="63.24" x3="63.51" y1="25.39" y2="25.61" y3="25.61"/>
+ <curve x1="63.92" x2="63.92" x3="63.74" y1="25.61" y2="25.21" y3="25.07"/>
+ <curve x1="63.74" x2="63.91" x3="63.82" y1="24.76" y2="24.67" y3="24.4"/>
+ <curve x1="63.55" x2="62.92" x3="62.92" y1="24.08" y2="24.4" y3="24"/>
+ <curve x1="62.92" x2="63.15" x3="63.24" y1="23.68" y2="23.68" y3="23.46"/>
+ <curve x1="63.24" x2="63.74" x3="63.65" y1="23.05" y2="22.87" y3="22.47"/>
+ <curve x1="63.65" x2="63.51" x3="63.42" y1="22.24" y2="22.25" y3="22.07"/>
+ <curve x1="63.24" x2="63.24" x3="63.15" y1="22.02" y2="21.75" y3="21.66"/>
+ <curve x1="62.92" x2="62.3" x3="62.3" y1="21.53" y2="21.53" y3="21.12"/>
+ <curve x1="62.21" x2="62.3" x3="62.3" y1="20.85" y2="20.72" y3="20.54"/>
+ <curve x1="62.7" x2="63.11" x3="63.51" y1="20.85" y2="21.22" y3="21.62"/>
+ <curve x1="68.1" x2="70.65" x3="70.65" y1="26.2" y2="32.31" y3="38.69"/>
+ <curve x1="70.65" x2="69.44" x3="67.06" y1="43.32" y2="47.58" y3="51.35"/>
+ <curve x1="66.88" x2="66.7" x3="66.48" y1="51.17" y2="51.17" y3="51.17"/>
+ <line x="66.07" y="51.17"/>
+ <curve x1="65.75" x2="65.45" x3="65.09" y1="51.17" y2="50.95" y3="50.95"/>
+ <curve x1="64.95" x2="64.64" x3="64.55" y1="50.95" y2="51.04" y3="50.95"/>
+ <curve x1="64.37" x2="64.36" x3="64.23" y1="50.95" y2="50.63" y3="50.54"/>
+ <curve x1="64.05" x2="63.83" x3="63.65" y1="50.45" y2="50.41" y3="50.32"/>
+ <curve x1="63.51" x2="63.15" x3="62.92" y1="50.23" y2="50.05" y3="50.05"/>
+ <curve x1="62.83" x2="62.7" x3="62.52" y1="50.05" y2="50.14" y3="50.14"/>
+ <curve x1="62.39" x2="62.21" x3="62.03" y1="50.05" y2="49.83" y3="49.74"/>
+ <curve x1="61.89" x2="61.62" x3="61.58" y1="49.65" y2="49.6" y3="49.42"/>
+ <curve x1="61.8" x2="61.22" x3="61.18" y1="48.84" y2="48.7" y3="48.3"/>
+ <curve x1="61.09" x2="61.08" x3="60.99" y1="48.12" y2="47.99" y3="47.81"/>
+ <curve x1="60.99" x2="60.77" x3="60.59" y1="47.58" y2="47.49" y3="47.31"/>
+ <curve x1="60.19" x2="59.79" x3="59.25" y1="46.99" y2="46.77" y3="46.68"/>
+ <curve x1="58.89" x2="58.66" x3="58.43" y1="46.59" y2="46.77" y3="46.68"/>
+ <curve x1="58.07" x2="57.67" x3="57.45" y1="46.68" y2="46.37" y3="46.1"/>
+ <curve x1="57.23" x2="57.04" x3="56.91" y1="45.79" y2="45.56" y3="45.47"/>
+ <curve x1="56.64" x2="56.42" x3="56.24" y1="45.38" y2="45.38" y3="45.15"/>
+ <curve x1="56.15" x2="56.14" x3="56.14" y1="45.15" y2="45.07" y3="44.98"/>
+ <curve x1="56.01" x2="55.83" x3="56.01" y1="44.75" y2="44.66" y3="44.44"/>
+ <curve x1="55.74" x2="55.74" x3="55.51" y1="44.26" y2="44.57" y3="44.57"/>
+ <curve x1="55.29" x2="55.2" x3="54.61" y1="44.26" y2="44.07" y3="44.16"/>
+ <curve x1="54.39" x2="54.3" x3="53.99" y1="44.25" y2="44.48" y3="44.48"/>
+ <curve x1="53.81" x2="53.58" x3="53.36" y1="44.57" y2="44.25" y3="44.25"/>
+ <curve x1="53.09" x2="52.86" x3="52.68" y1="44.16" y2="44.34" y3="44.25"/>
+ <curve x1="52.46" x2="52.46" x3="52.14" y1="44.25" y2="44.03" y3="43.85"/>
+ <curve x1="52.05" x2="51.74" x3="51.65" y1="43.76" y2="43.63" y3="43.63"/>
+ <curve x1="51.34" x2="51.16" x3="50.75" y1="43.63" y2="44.16" y3="44.03"/>
+ <curve x1="50.53" x2="51.07" x3="50.85" y1="43.76" y2="43.63" y3="43.45"/>
+ <curve x1="50.67" x2="50.53" x3="50.35" y1="43.22" y2="43.45" y3="43.54"/>
+ <curve x1="50.21" x2="50.22" x3="49.95" y1="43.63" y2="43.67" y3="43.76"/>
+ <line x="49.95" y="44.48"/>
+ <line x="49.95" y="47"/>
+ <line x="49.95" y="48.93"/>
+ <line x="49.95" y="51.53"/>
+ <line x="49.95" y="53.46"/>
+ <line x="49.95" y="58.05"/>
+ <line x="49.72" y="58.05"/>
+ <curve x1="49.86" x2="49.95" x3="50.04" y1="58.14" y2="58.14" y3="58.23"/>
+ <curve x1="50.26" x2="50.53" x3="50.66" y1="58.27" y2="58.36" y3="58.45"/>
+ <curve x1="51.02" x2="51.66" x3="51.84" y1="58.63" y2="59.04" y3="59.26"/>
+ <curve x1="51.84" x2="51.97" x3="52.06" y1="59.48" y2="60.07" y3="60.47"/>
+ <curve x1="52.15" x2="52.05" x3="52.14" y1="60.97" y2="61.28" y3="61.82"/>
+ <line x="52.14" y="62.31"/>
+ <curve x1="50.21" x2="48.19" x3="46.17" y1="62.81" y2="62.99" y3="62.99"/>
+ <curve x1="40.69" x2="35.43" x3="31.26" y1="62.99" y2="61.28" y3="58.05"/>
+ <line x="28.84" y="58.05"/>
+ <curve x1="33.6" x2="39.66" x3="46.17" y1="62.22" y2="64.52" y3="64.52"/>
+ <curve x1="53.09" x2="59.65" x3="64.55" y1="64.52" y2="61.91" y3="57.01"/>
+ <curve x1="69.44" x2="72.18" x3="72.18" y1="52.16" y2="45.65" y3="38.69"/>
+ <curve x1="72.18" x2="69.44" x3="64.55" y1="31.86" y2="25.39" y3="20.54"/>
+ <curve x1="59.65" x2="53.09" x3="46.17" y1="15.64" y2="12.9" y3="12.9"/>
+ <close/>
+ <move x="45.59" y="14.52"/>
+ <curve x1="45.54" x2="45.55" x3="45.46" y1="14.56" y2="14.65" y3="14.74"/>
+ <curve x1="45.37" x2="45.45" x3="45.27" y1="14.83" y2="15.06" y3="15.06"/>
+ <curve x1="44.87" x2="44.24" x3="43.66" y1="15.37" y2="14.83" y3="14.83"/>
+ <curve x1="43.43" x2="43.21" x3="42.85" y1="14.74" y2="14.83" y3="14.83"/>
+ <line x="42.31" y="14.83"/>
+ <curve x1="43.43" x2="44.47" x3="45.59" y1="14.65" y2="14.56" y3="14.52"/>
+ <close/>
+ <move x="50.75" y="14.97"/>
+ <curve x1="51.07" x2="51.43" x3="51.74" y1="15.06" y2="15.06" y3="15.06"/>
+ <curve x1="51.74" x2="51.65" x3="51.56" y1="15.28" y2="15.37" y3="15.46"/>
+ <curve x1="51.34" x2="50.93" x3="50.66" y1="15.64" y2="15.56" y3="15.56"/>
+ <curve x1="50.03" x2="49.72" x3="49.32" y1="15.56" y2="15.64" y3="15.37"/>
+ <curve x1="49.32" x2="49" x3="49" y1="15.37" y2="15.28" y3="15.06"/>
+ <curve x1="49.4" x2="49.85" x3="50.35" y1="15.06" y2="15.28" y3="15.15"/>
+ <curve x1="50.53" x2="50.62" x3="50.75" y1="15.15" y2="15.06" y3="14.97"/>
+ <close/>
+ <move x="52.55" y="15.37"/>
+ <curve x1="52.69" x2="52.78" x3="52.96" y1="15.37" y2="15.37" y3="15.46"/>
+ <curve x1="52.78" x2="52.68" x3="52.46" y1="15.46" y2="15.55" y3="15.46"/>
+ <curve x1="52.46" x2="52.55" x3="52.55" y1="15.37" y2="15.37" y3="15.37"/>
+ <close/>
+ <move x="55.43" y="16.36"/>
+ <curve x1="56.64" x2="57.76" x3="58.88" y1="16.77" y2="17.3" y3="18.07"/>
+ <line x="58.84" y="18.07"/>
+ <curve x1="58.66" x2="58.48" x3="58.43" y1="18.07" y2="18.11" y3="18.11"/>
+ <curve x1="58.07" x2="57.85" x3="57.67" y1="18.2" y2="18.07" y3="17.98"/>
+ <curve x1="57.54" x2="57.45" x3="57.23" y1="17.98" y2="17.89" y3="17.98"/>
+ <curve x1="57.05" x2="56.95" x3="56.91" y1="18.07" y2="18.29" y3="18.43"/>
+ <curve x1="56.82" x2="56.73" x3="56.55" y1="18.61" y2="18.69" y3="18.78"/>
+ <curve x1="56.64" x2="56.23" x3="56.14" y1="18.92" y2="19.23" y3="19.32"/>
+ <curve x1="56.14" x2="56.24" x3="56.24" y1="19.5" y2="19.64" y3="19.82"/>
+ <curve x1="56.33" x2="55.29" x3="53.9" y1="21.22" y2="21.75" y3="21.75"/>
+ <curve x1="53.67" x2="53.76" x3="53.58" y1="22.02" y2="22.47" y3="22.78"/>
+ <curve x1="53.4" x2="53" x3="52.68" y1="23.14" y2="23.46" y3="23.28"/>
+ <curve x1="52.55" x2="52.37" x3="52.37" y1="23.28" y2="23.06" y3="22.88"/>
+ <curve x1="52.37" x2="52.68" x3="52.46" y1="22.65" y2="22.47" y3="22.24"/>
+ <curve x1="52.46" x2="52.87" x3="52.87" y1="22.02" y2="21.93" y3="21.62"/>
+ <curve x1="52.78" x2="52.37" x3="51.97" y1="21.26" y2="21.53" y3="21.53"/>
+ <curve x1="51.74" x2="51.34" x3="51.07" y1="21.35" y2="21.21" y3="21.12"/>
+ <curve x1="50.76" x2="50.44" x3="50.04" y1="20.85" y2="20.54" y3="20.54"/>
+ <curve x1="49.86" x2="49.63" x3="49.41" y1="20.45" y2="20.63" y3="20.45"/>
+ <curve x1="49.32" x2="49.54" x3="49.54" y1="20.31" y2="20.04" y3="20"/>
+ <curve x1="49.54" x2="49.22" x3="49.22" y1="19.82" y2="19.73" y3="19.6"/>
+ <curve x1="49.13" x2="49.41" x3="49.63" y1="19.42" y2="19.19" y3="18.92"/>
+ <curve x1="49.86" x2="50.22" x3="50.53" y1="18.83" y2="18.61" y3="18.43"/>
+ <curve x1="50.93" x2="51.34" x3="51.65" y1="18.2" y2="18.07" y3="17.89"/>
+ <curve x1="51.83" x2="51.96" x3="52.14" y1="17.89" y2="17.89" y3="17.8"/>
+ <curve x1="52.46" x2="52.69" x3="53" y1="17.71" y2="17.39" y3="17.3"/>
+ <line x="53.58" y="17.3"/>
+ <curve x1="53.81" x2="53.99" x3="54.21" y1="17.3" y2="17.08" y3="16.99"/>
+ <curve x1="54.3" x2="54.48" x3="54.61" y1="16.99" y2="16.9" y3="16.9"/>
+ <curve x1="54.7" x2="54.71" x3="54.89" y1="16.77" y2="16.76" y3="16.76"/>
+ <curve x1="54.71" x2="54.4" x3="54.31" y1="17.08" y2="17.08" y3="17.49"/>
+ <curve x1="54.62" x2="55.29" x3="55.6" y1="18.11" y2="17.3" y3="17.3"/>
+ <curve x1="55.92" x2="56.33" x3="56.55" y1="17.3" y2="17.8" y3="17.3"/>
+ <curve x1="56.51" x2="56.24" x3="56.01" y1="17.08" y2="16.99" y3="16.76"/>
+ <curve x1="55.74" x2="55.43" x3="55.43" y1="16.67" y2="16.59" y3="16.36"/>
+ <close/>
+ <move x="59.06" y="18.11"/>
+ <curve x1="59.78" x2="60.41" x3="61.09" y1="18.6" y2="19.01" y3="19.51"/>
+ <curve x1="61" x2="60.9" x3="60.77" y1="19.6" y2="19.64" y3="19.73"/>
+ <curve x1="60.59" x2="60.27" x3="60" y1="19.82" y2="20" y3="19.91"/>
+ <curve x1="59.96" x2="59.69" x3="59.65" y1="19.91" y2="19.64" y3="19.42"/>
+ <curve x1="59.65" x2="59.87" x3="59.96" y1="19.19" y2="19.19" y3="18.83"/>
+ <curve x1="59.87" x2="59.7" x3="59.47" y1="18.7" y2="18.7" y3="18.61"/>
+ <curve x1="59.38" x2="59.24" x3="59.06" y1="18.43" y2="18.29" y3="18.11"/>
+ <close/>
+ <move x="6.45" y="30.94"/>
+ <line x="6.45" y="33.54"/>
+ <line x="19.34" y="33.54"/>
+ <line x="19.34" y="30.94"/>
+ <line x="6.45" y="30.94"/>
+ <close/>
+ <move x="21.92" y="30.94"/>
+ <line x="21.92" y="33.54"/>
+ <line x="33.5" y="33.54"/>
+ <line x="33.5" y="30.94"/>
+ <line x="21.92" y="30.94"/>
+ <close/>
+ <move x="36.1" y="30.94"/>
+ <line x="36.1" y="33.54"/>
+ <line x="48.99" y="33.54"/>
+ <line x="48.99" y="30.94"/>
+ <line x="36.1" y="30.94"/>
+ <close/>
+ <move x="6.45" y="34.84"/>
+ <line x="6.45" y="38.7"/>
+ <line x="12.92" y="38.7"/>
+ <line x="12.92" y="34.84"/>
+ <line x="6.45" y="34.84"/>
+ <close/>
+ <move x="14.18" y="34.84"/>
+ <line x="14.18" y="38.7"/>
+ <line x="27.07" y="38.7"/>
+ <line x="27.07" y="34.84"/>
+ <line x="14.18" y="34.84"/>
+ <close/>
+ <move x="28.37" y="34.84"/>
+ <line x="28.37" y="38.7"/>
+ <line x="41.25" y="38.7"/>
+ <line x="41.25" y="34.84"/>
+ <line x="28.37" y="34.84"/>
+ <close/>
+ <move x="42.54" y="34.84"/>
+ <line x="42.54" y="38.7"/>
+ <line x="49.01" y="38.7"/>
+ <line x="49.01" y="34.84"/>
+ <line x="42.54" y="34.84"/>
+ <close/>
+ <move x="6.45" y="39.97"/>
+ <line x="6.45" y="42.58"/>
+ <line x="19.34" y="42.58"/>
+ <line x="19.34" y="39.97"/>
+ <line x="6.45" y="39.97"/>
+ <close/>
+ <move x="21.92" y="39.97"/>
+ <line x="21.92" y="42.58"/>
+ <line x="33.5" y="42.58"/>
+ <line x="33.5" y="39.97"/>
+ <line x="21.92" y="39.97"/>
+ <close/>
+ <move x="36.1" y="39.97"/>
+ <line x="36.1" y="42.58"/>
+ <line x="48.99" y="42.58"/>
+ <line x="48.99" y="39.97"/>
+ <line x="36.1" y="39.97"/>
+ <close/>
+ <move x="6.45" y="43.88"/>
+ <line x="6.45" y="47.74"/>
+ <line x="12.92" y="47.74"/>
+ <line x="12.92" y="43.88"/>
+ <line x="6.45" y="43.88"/>
+ <close/>
+ <move x="14.18" y="43.88"/>
+ <line x="14.18" y="47.74"/>
+ <line x="27.07" y="47.74"/>
+ <line x="27.07" y="43.88"/>
+ <line x="14.18" y="43.88"/>
+ <close/>
+ <move x="28.37" y="43.88"/>
+ <line x="28.37" y="47.74"/>
+ <line x="41.25" y="47.74"/>
+ <line x="41.25" y="43.88"/>
+ <line x="28.37" y="43.88"/>
+ <close/>
+ <move x="42.54" y="43.88"/>
+ <line x="42.54" y="47.74"/>
+ <line x="49.01" y="47.74"/>
+ <line x="49.01" y="43.88"/>
+ <line x="42.54" y="43.88"/>
+ <close/>
+ <move x="6.45" y="49.01"/>
+ <line x="6.45" y="51.61"/>
+ <line x="19.34" y="51.61"/>
+ <line x="19.34" y="49.01"/>
+ <line x="6.45" y="49.01"/>
+ <close/>
+ <move x="21.92" y="49.01"/>
+ <line x="21.92" y="51.61"/>
+ <line x="33.5" y="51.61"/>
+ <line x="33.5" y="49.01"/>
+ <line x="21.92" y="49.01"/>
+ <close/>
+ <move x="36.1" y="49.01"/>
+ <line x="36.1" y="51.61"/>
+ <line x="48.99" y="51.61"/>
+ <line x="48.99" y="49.01"/>
+ <line x="36.1" y="49.01"/>
+ <close/>
+ <move x="6.45" y="54.16"/>
+ <line x="6.45" y="56.78"/>
+ <line x="12.92" y="56.78"/>
+ <line x="12.92" y="54.16"/>
+ <line x="6.45" y="54.16"/>
+ <close/>
+ <move x="14.18" y="54.16"/>
+ <line x="14.18" y="56.78"/>
+ <line x="27.07" y="56.78"/>
+ <line x="27.07" y="54.16"/>
+ <line x="14.18" y="54.16"/>
+ <close/>
+ <move x="28.37" y="54.16"/>
+ <line x="28.37" y="56.78"/>
+ <line x="41.25" y="56.78"/>
+ <line x="41.25" y="54.16"/>
+ <line x="28.37" y="54.16"/>
+ <close/>
+ <move x="42.54" y="54.16"/>
+ <line x="42.54" y="56.78"/>
+ <line x="49.01" y="56.78"/>
+ <line x="49.01" y="54.16"/>
+ <line x="42.54" y="54.16"/>
+ <close/>
+ <move x="0" y="39.98"/>
+ <curve x1="0" x2="17.65" x3="39.3" y1="17.97" y2="0" y3="0"/>
+ <curve x1="61.09" x2="78.65" x3="78.65" y1="0" y2="17.97" y3="39.98"/>
+ <curve x1="78.65" x2="61.09" x3="39.3" y1="62.08" y2="80" y3="80"/>
+ <curve x1="17.65" x2="0" x3="0" y1="80" y2="62.08" y3="39.98"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.52" name="web reputation filtering dcs" strokewidth="inherit" w="79.43">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="38.14" y="6.38"/>
+ <curve x1="32.19" x2="26.64" x3="22.43" y1="6.38" y2="8.76" y3="13.15"/>
+ <curve x1="18.27" x2="15.89" x3="15.89" y1="17.31" y2="23.09" y3="28.82"/>
+ <curve x1="15.89" x2="17.68" x3="20.64" y1="34.19" y2="39.16" y3="42.96"/>
+ <curve x1="21.44" x2="22.43" x3="23.23" y1="43.14" y2="43.14" y3="43.54"/>
+ <curve x1="19.65" x2="17.46" x3="17.46" y1="39.56" y2="34.41" y3="28.82"/>
+ <curve x1="17.46" x2="19.65" x3="23.63" y1="23.26" y2="18.11" y3="14.12"/>
+ <curve x1="24.21" x2="24.84" x3="25.42" y1="13.72" y2="13.14" y3="12.52"/>
+ <line x="25.61" y="12.74"/>
+ <curve x1="25.61" x2="25.42" x3="25.42" y1="12.92" y2="13.15" y3="13.15"/>
+ <curve x1="25.42" x2="25.61" x3="25.61" y1="13.32" y2="13.32" y3="13.5"/>
+ <curve x1="25.43" x2="25.2" x3="25.42" y1="13.73" y2="13.9" y3="14.12"/>
+ <curve x1="25.6" x2="25.83" x3="26.01" y1="14.12" y2="13.9" y3="14.12"/>
+ <curve x1="26.24" x2="25.83" x3="25.83" y1="14.3" y2="14.31" y3="14.71"/>
+ <line x="25.83" y="15.29"/>
+ <line x="25.83" y="15.69"/>
+ <curve x1="25.83" x2="25.61" x3="25.61" y1="15.92" y2="15.92" y3="16.1"/>
+ <curve x1="25.61" x2="25.83" x3="26.01" y1="16.5" y2="16.5" y3="16.68"/>
+ <curve x1="26.01" x2="25.83" x3="25.83" y1="16.9" y2="17.3" y3="17.48"/>
+ <curve x1="25.61" x2="25.43" x3="25.02" y1="17.71" y2="18.12" y3="18.29"/>
+ <curve x1="24.85" x2="24.44" x3="24.22" y1="18.7" y2="19.1" y3="19.5"/>
+ <curve x1="24.22" x2="24.22" x3="24.04" y1="19.5" y2="19.68" y3="19.86"/>
+ <curve x1="24.04" x2="23.81" x3="23.63" y1="20.09" y2="20.26" y3="20.48"/>
+ <line x="23.63" y="21.47"/>
+ <line x="23.63" y="22.28"/>
+ <curve x1="23.63" x2="23.64" x3="23.81" y1="22.45" y2="22.86" y3="22.86"/>
+ <curve x1="24.04" x2="24.04" x3="24.44" y1="23.08" y2="23.08" y3="23.08"/>
+ <curve x1="24.44" x2="24.84" x3="24.84" y1="23.26" y2="23.44" y3="23.67"/>
+ <line x="24.84" y="24.47"/>
+ <line x="24.84" y="25.05"/>
+ <curve x1="25.02" x2="25.2" x3="25.2" y1="25.23" y2="25.45" y3="25.86"/>
+ <curve x1="25.2" x2="25.02" x3="25.02" y1="26.04" y2="26.04" y3="26.26"/>
+ <curve x1="25.02" x2="25.61" x3="25.83" y1="26.62" y2="26.62" y3="26.84"/>
+ <curve x1="25.83" x2="25.61" x3="25.61" y1="27.02" y2="27.25" y3="27.42"/>
+ <curve x1="25.83" x2="26.01" x3="26.01" y1="27.65" y2="27.65" y3="27.83"/>
+ <curve x1="26.24" x2="26.41" x3="26.63" y1="27.83" y2="28.23" y3="28.05"/>
+ <curve x1="26.63" x2="26.41" x3="26.41" y1="27.83" y2="27.65" y3="27.42"/>
+ <curve x1="26.23" x2="26.24" x3="26.24" y1="27.42" y2="26.84" y3="26.62"/>
+ <curve x1="26.01" x2="25.83" x3="25.83" y1="26.44" y2="26.26" y3="26.04"/>
+ <line x="25.83" y="25.46"/>
+ <curve x1="25.61" x2="25.42" x3="25.42" y1="25.23" y2="25.23" y3="25.05"/>
+ <curve x1="25.42" x2="25.83" x3="26.01" y1="24.47" y2="24.07" y3="24.65"/>
+ <curve x1="26.24" x2="26.01" x3="26.01" y1="25.05" y2="25.23" y3="25.46"/>
+ <curve x1="26.24" x2="26.41" x3="26.63" y1="25.64" y2="25.86" y3="26.04"/>
+ <curve x1="26.63" x2="26.99" x3="26.99" y1="26.44" y2="26.44" y3="26.62"/>
+ <line x="26.99" y="26.84"/>
+ <curve x1="27.21" x2="27.4" x3="27.62" y1="27.25" y2="27.42" y3="27.65"/>
+ <curve x1="28.02" x2="28.2" x3="28.2" y1="28.05" y2="28.41" y3="28.82"/>
+ <curve x1="28.2" x2="28.03" x3="28.03" y1="29.22" y2="29.44" y3="29.44"/>
+ <curve x1="28.03" x2="28.2" x3="28.38" y1="29.62" y2="29.84" y3="30.02"/>
+ <curve x1="28.61" x2="28.78" x3="29.01" y1="30.2" y2="30.2" y3="30.2"/>
+ <curve x1="29.01" x2="29.41" x3="29.41" y1="30.43" y2="30.43" y3="30.43"/>
+ <curve x1="29.59" x2="29.59" x3="29.82" y1="30.43" y2="30.83" y3="30.83"/>
+ <curve x1="30.18" x2="30.39" x3="30.57" y1="31.01" y2="31.01" y3="31.23"/>
+ <curve x1="30.98" x2="31.38" x3="31.56" y1="31.41" y2="31.59" y3="31.59"/>
+ <curve x1="31.78" x2="31.97" x3="32.19" y1="31.59" y2="31.41" y3="31.41"/>
+ <curve x1="32.99" x2="33.17" x3="33.57" y1="31.23" y2="31.99" y3="32.22"/>
+ <curve x1="33.75" x2="33.76" x3="33.98" y1="32.4" y2="32.4" y3="32.4"/>
+ <line x="34.38" y="32.4"/>
+ <curve x1="34.56" x2="34.96" x3="35.14" y1="32.62" y2="32.39" y3="32.8"/>
+ <curve x1="35.37" x2="35.54" x3="35.95" y1="32.8" y2="33.2" y3="33.38"/>
+ <line x="35.95" y="34.01"/>
+ <curve x1="36.12" x2="36.13" x3="36.35" y1="34.19" y2="34.19" y3="34.19"/>
+ <curve x1="36.75" x2="36.75" x3="36.93" y1="34.41" y2="34.59" y3="34.81"/>
+ <line x="37.34" y="34.81"/>
+ <curve x1="37.74" x2="37.74" x3="38.14" y1="34.99" y2="35.17" y3="35.17"/>
+ <curve x1="38.32" x2="38.15" x3="38.32" y1="35.17" y2="34.99" y3="34.81"/>
+ <curve x1="38.32" x2="38.54" x3="38.72" y1="34.81" y2="34.59" y3="34.59"/>
+ <curve x1="38.95" x2="38.95" x3="39.13" y1="34.59" y2="34.82" y3="34.99"/>
+ <curve x1="39.13" x2="39.3" x3="39.3" y1="35.17" y2="35.4" y3="35.57"/>
+ <curve x1="39.53" x2="39.3" x3="39.3" y1="35.8" y2="36.78" y3="36.96"/>
+ <curve x1="39.3" x2="38.95" x3="38.95" y1="37.18" y2="37.19" y3="37.37"/>
+ <curve x1="38.72" x2="38.73" x3="38.55" y1="37.77" y2="37.77" y3="38"/>
+ <curve x1="38.55" x2="38.32" x3="38.14" y1="38" y2="37.99" y3="38.17"/>
+ <line x="38.14" y="38.58"/>
+ <curve x1="37.92" x2="37.74" x3="37.92" y1="38.76" y2="39.16" y3="39.38"/>
+ <curve x1="37.92" x2="38.14" x3="38.14" y1="39.56" y2="39.56" y3="39.96"/>
+ <curve x1="38.14" x2="37.74" x3="37.74" y1="40.14" y2="40.14" y3="40.54"/>
+ <curve x1="37.74" x2="37.74" x3="37.92" y1="40.54" y2="40.95" y3="41.17"/>
+ <curve x1="37.92" x2="38.15" x3="38.32" y1="41.35" y2="41.35" y3="41.53"/>
+ <curve x1="38.55" x2="38.54" x3="38.72" y1="41.75" y2="42.16" y3="42.16"/>
+ <curve x1="39.13" x2="39.31" x3="39.71" y1="42.74" y2="43.14" y3="43.73"/>
+ <curve x1="39.71" x2="40.12" x3="40.12" y1="44.13" y2="44.35" y3="44.53"/>
+ <curve x1="45.89" x2="51.26" x3="55.6" y1="44.35" y2="43.72" y3="42.96"/>
+ <curve x1="58.78" x2="60.4" x3="60.4" y1="38.98" y2="34.19" y3="28.82"/>
+ <curve x1="60.4" x2="58.2" x3="53.81" y1="23.09" y2="17.31" y3="13.15"/>
+ <curve x1="49.65" x2="44.1" x3="38.14" y1="8.76" y2="6.38" y3="6.38"/>
+ <close/>
+ <move x="37.74" y="7.95"/>
+ <line x="37.74" y="8.17"/>
+ <line x="37.56" y="8.35"/>
+ <curve x1="37.16" x2="36.53" x3="36.13" y1="8.76" y2="8.35" y3="8.17"/>
+ <curve x1="36.75" x2="37.15" x3="37.74" y1="8.17" y2="8.17" y3="7.95"/>
+ <close/>
+ <move x="40.51" y="8.35"/>
+ <curve x1="41.1" x2="41.32" x3="41.91" y1="8.35" y2="8.53" y3="8.53"/>
+ <line x="41.91" y="8.35"/>
+ <curve x1="42.31" x2="42.71" x3="42.89" y1="8.35" y2="8.53" y3="8.53"/>
+ <curve x1="42.89" x2="42.89" x3="42.71" y1="8.75" y2="8.75" y3="8.75"/>
+ <curve x1="42.71" x2="42.31" x3="42.13" y1="8.93" y2="8.75" y3="8.75"/>
+ <curve x1="41.5" x2="41.32" x3="40.92" y1="8.93" y2="8.93" y3="8.75"/>
+ <curve x1="40.92" x2="40.51" x3="40.51" y1="8.75" y2="8.53" y3="8.35"/>
+ <close/>
+ <move x="46.07" y="9.56"/>
+ <curve x1="47.05" x2="47.86" x3="48.66" y1="10.15" y2="10.55" y3="10.95"/>
+ <curve x1="48.66" x2="48.66" x3="48.48" y1="10.95" y2="11.13" y3="11.13"/>
+ <curve x1="48.48" x2="48.08" x3="47.86" y1="11.13" y2="10.95" y3="10.95"/>
+ <line x="47.68" y="10.95"/>
+ <curve x1="47.45" x2="47.46" x3="47.28" y1="10.95" y2="11.13" y3="11.35"/>
+ <curve x1="47.06" x2="47.06" x3="47.06" y1="11.35" y2="11.53" y3="11.53"/>
+ <curve x1="47.06" x2="46.69" x3="46.69" y1="11.71" y2="11.93" y3="12.11"/>
+ <curve x1="46.69" x2="46.87" x3="46.87" y1="12.33" y2="12.52" y3="12.52"/>
+ <curve x1="46.87" x2="45.89" x3="44.68" y1="13.72" y2="14.12" y3="14.12"/>
+ <curve x1="44.5" x2="44.68" x3="44.5" y1="14.53" y2="14.71" y3="15.11"/>
+ <curve x1="44.5" x2="43.88" x3="43.7" y1="15.29" y2="15.52" y3="15.52"/>
+ <curve x1="43.7" x2="43.52" x3="43.52" y1="15.52" y2="15.29" y3="15.11"/>
+ <curve x1="43.52" x2="43.69" x3="43.52" y1="14.89" y2="14.89" y3="14.71"/>
+ <curve x1="43.52" x2="43.87" x3="43.87" y1="14.53" y2="14.3" y3="14.12"/>
+ <curve x1="43.87" x2="43.51" x3="43.11" y1="13.9" y2="13.9" y3="13.9"/>
+ <curve x1="42.89" x2="42.71" x3="42.31" y1="13.9" y2="13.73" y3="13.73"/>
+ <curve x1="42.13" x2="41.9" x3="41.5" y1="13.5" y2="13.15" y3="13.15"/>
+ <line x="41.09" y="13.15"/>
+ <curve x1="40.92" x2="41.09" x3="41.09" y1="12.92" y2="12.74" y3="12.74"/>
+ <curve x1="41.09" x2="40.74" x3="40.74" y1="12.52" y2="12.51" y3="12.33"/>
+ <curve x1="40.74" x2="41.09" x3="41.09" y1="12.33" y2="11.94" y3="11.71"/>
+ <curve x1="41.32" x2="41.73" x3="41.91" y1="11.71" y2="11.35" y3="11.35"/>
+ <curve x1="42.31" x2="42.71" x3="42.89" y1="11.13" y2="10.95" y3="10.95"/>
+ <line x="43.29" y="10.95"/>
+ <curve x1="43.52" x2="43.69" x3="43.87" y1="10.55" y2="10.54" y3="10.32"/>
+ <line x="44.5" y="10.32"/>
+ <curve x1="44.68" x2="44.9" x3="45.08" y1="10.32" y2="10.14" y3="10.14"/>
+ <curve x1="45.08" x2="45.31" x3="45.31" y1="10.14" y2="10.14" y3="9.92"/>
+ <line x="45.49" y="9.92"/>
+ <curve x1="45.49" x2="45.31" x3="45.08" y1="10.14" y2="10.14" y3="10.54"/>
+ <curve x1="45.31" x2="45.89" x3="46.29" y1="10.95" y2="10.32" y3="10.32"/>
+ <curve x1="46.7" x2="46.88" x3="47.06" y1="10.32" y2="10.95" y3="10.32"/>
+ <curve x1="46.88" x2="46.69" x3="46.69" y1="10.14" y2="10.14" y3="9.92"/>
+ <curve x1="46.29" x2="46.29" x3="46.07" y1="9.92" y2="9.74" y3="9.56"/>
+ <close/>
+ <move x="49.87" y="11.71"/>
+ <curve x1="50.05" x2="50.46" x3="50.86" y1="11.94" y2="12.11" y3="12.33"/>
+ <curve x1="50.64" x2="50.63" x3="50.46" y1="12.51" y2="12.52" y3="12.52"/>
+ <curve x1="50.46" x2="50.23" x3="50.05" y1="12.52" y2="12.74" y3="12.52"/>
+ <curve x1="49.87" x2="49.65" x3="49.65" y1="12.52" y2="12.51" y3="12.33"/>
+ <curve x1="49.65" x2="49.65" x3="49.87" y1="11.93" y2="11.94" y3="11.71"/>
+ <close/>
+ <move x="51.84" y="13.32"/>
+ <curve x1="52.24" x2="52.42" x3="52.83" y1="13.72" y2="13.9" y3="14.12"/>
+ <curve x1="56.81" x2="59" x3="59" y1="18.11" y2="23.26" y3="28.82"/>
+ <curve x1="59" x2="57.8" x3="55.83" y1="33.03" y2="36.56" y3="39.79"/>
+ <line x="55.42" y="39.79"/>
+ <line x="55.2" y="39.79"/>
+ <curve x1="54.8" x2="54.44" x3="54.22" y1="39.79" y2="39.56" y3="39.56"/>
+ <line x="53.81" y="39.56"/>
+ <curve x1="53.63" x2="53.63" x3="53.41" y1="39.56" y2="39.38" y3="39.16"/>
+ <line x="53.05" y="39.16"/>
+ <curve x1="52.83" x2="52.65" x3="52.43" y1="38.98" y2="38.75" y3="38.75"/>
+ <line x="52.02" y="38.75"/>
+ <curve x1="51.84" x2="51.84" x3="51.62" y1="38.75" y2="38.58" y3="38.58"/>
+ <curve x1="51.62" x2="51.44" x3="51.26" y1="38.58" y2="38.35" y3="38.17"/>
+ <curve x1="51.44" x2="51.04" x3="50.86" y1="37.77" y2="37.59" y3="37.18"/>
+ <line x="50.86" y="36.79"/>
+ <curve x1="50.86" x2="50.46" x3="50.46" y1="36.56" y2="36.56" y3="36.38"/>
+ <curve x1="50.05" x2="49.65" x3="49.25" y1="35.98" y2="35.8" y3="35.8"/>
+ <line x="48.48" y="35.8"/>
+ <curve x1="48.26" x2="47.86" x3="47.68" y1="35.8" y2="35.57" y3="35.17"/>
+ <curve x1="47.45" x2="47.46" x3="47.28" y1="35.17" y2="34.99" y3="34.81"/>
+ <curve x1="47.06" x2="46.87" x3="46.87" y1="34.59" y2="34.59" y3="34.59"/>
+ <curve x1="46.69" x2="46.69" x3="46.69" y1="34.59" y2="34.41" y3="34.41"/>
+ <curve x1="46.69" x2="46.47" x3="46.69" y1="34.19" y2="34.19" y3="33.78"/>
+ <curve x1="46.29" x2="46.29" x3="46.07" y1="33.78" y2="34.01" y3="34.01"/>
+ <curve x1="46.07" x2="45.89" x3="45.31" y1="33.78" y2="33.6" y3="33.78"/>
+ <curve x1="45.31" x2="45.08" x3="44.9" y1="33.78" y2="34.01" y3="34.01"/>
+ <curve x1="44.68" x2="44.5" x3="44.28" y1="34.01" y2="33.78" y3="33.78"/>
+ <line x="43.7" y="33.78"/>
+ <curve x1="43.52" x2="43.52" x3="43.29" y1="33.78" y2="33.6" y3="33.38"/>
+ <curve x1="43.11" x2="42.89" x3="42.89" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="42.71" x2="42.49" x3="42.13" y1="33.2" y2="33.78" y3="33.6"/>
+ <curve x1="41.91" x2="42.31" x3="42.13" y1="33.2" y2="33.2" y3="33.02"/>
+ <curve x1="42.13" x2="41.91" x3="41.91" y1="33.02" y2="33.02" y3="33.2"/>
+ <curve x1="41.73" x2="41.5" x3="41.32" y1="33.2" y2="33.38" y3="33.38"/>
+ <curve x1="41.09" x2="40.92" x3="40.51" y1="33.6" y2="33.38" y3="33.6"/>
+ <curve x1="40.34" x2="40.34" x3="40.12" y1="33.78" y2="34.01" y3="34.19"/>
+ <curve x1="40.12" x2="39.93" x3="39.71" y1="34.41" y2="34.59" y3="34.59"/>
+ <curve x1="39.53" x2="39.31" x3="39.13" y1="34.59" y2="34.41" y3="34.41"/>
+ <curve x1="38.55" x2="38.32" x3="37.74" y1="34.19" y2="34.59" y3="34.59"/>
+ <curve x1="37.33" x2="36.75" x3="36.93" y1="34.59" y2="33.78" y3="33.38"/>
+ <line x="36.93" y="32.4"/>
+ <curve x1="36.93" x2="37.16" x3="37.16" y1="32.22" y2="32.21" y3="31.81"/>
+ <curve x1="37.16" x2="36.76" x3="36.76" y1="31.59" y2="31.41" y3="31.41"/>
+ <curve x1="36.13" x2="35.54" x3="35.14" y1="31.41" y2="31.59" y3="31.41"/>
+ <curve x1="34.96" x2="35.14" x3="35.14" y1="31.23" y2="31.01" y3="30.83"/>
+ <curve x1="35.37" x2="35.14" x3="35.37" y1="30.83" y2="30.83" y3="30.43"/>
+ <line x="35.55" y="30.2"/>
+ <line x="35.55" y="29.62"/>
+ <curve x1="35.77" x2="35.95" x3="35.95" y1="29.44" y2="29.44" y3="29.22"/>
+ <curve x1="35.95" x2="35.95" x3="35.55" y1="29.22" y2="28.82" y3="28.82"/>
+ <line x="34.74" y="28.82"/>
+ <curve x1="34.38" x2="34.38" x3="33.98" y1="29.22" y2="30.02" y3="30.02"/>
+ <curve x1="33.76" x2="33.58" x3="33.18" y1="30.2" y2="30.2" y3="30.2"/>
+ <line x="32.77" y="30.2"/>
+ <curve x1="32.37" x2="32.19" x3="31.97" y1="30.2" y2="30.02" y3="30.02"/>
+ <curve x1="31.97" x2="31.56" x3="31.56" y1="29.84" y2="29.22" y3="29.22"/>
+ <curve x1="31.38" x2="31.56" x3="31.97" y1="28.41" y2="27.83" y3="27.25"/>
+ <curve x1="31.97" x2="31.97" x3="32.19" y1="27.25" y2="27.02" y3="26.84"/>
+ <line x="32.19" y="26.44"/>
+ <curve x1="32.19" x2="32.77" x3="32.99" y1="26.04" y2="25.86" y3="25.63"/>
+ <curve x1="33.35" x2="33.76" x3="33.98" y1="25.45" y2="25.23" y3="25.23"/>
+ <line x="34.74" y="25.23"/>
+ <curve x1="34.97" x2="35.14" x3="35.14" y1="25.23" y2="25.46" y3="25.46"/>
+ <curve x1="35.54" x2="35.77" x3="36.13" y1="25.46" y2="25.05" y3="25.05"/>
+ <curve x1="36.35" x2="36.75" x3="37.16" y1="25.05" y2="24.87" y3="25.05"/>
+ <curve x1="37.34" x2="37.56" x3="37.74" y1="25.05" y2="25.23" y3="25.23"/>
+ <curve x1="37.74" x2="37.92" x3="38.14" y1="25.23" y2="25.05" y3="25.05"/>
+ <line x="38.55" y="25.46"/>
+ <curve x1="38.55" x2="38.32" x3="38.32" y1="25.86" y2="26.04" y3="26.26"/>
+ <curve x1="38.55" x2="38.95" x3="39.3" y1="26.44" y2="26.62" y3="26.62"/>
+ <curve x1="39.53" x2="39.3" x3="39.3" y1="26.44" y2="26.04" y3="25.86"/>
+ <line x="39.3" y="25.46"/>
+ <line x="39.3" y="25.05"/>
+ <curve x1="39.3" x2="39.71" x3="40.34" y1="24.47" y2="24.07" y3="23.84"/>
+ <curve x1="40.52" x2="40.51" x3="40.74" y1="23.66" y2="23.44" y3="23.26"/>
+ <curve x1="41.1" x2="41.32" x3="41.32" y1="23.26" y2="23.26" y3="23.08"/>
+ <curve x1="41.9" x2="42.13" x3="42.31" y1="22.86" y2="22.86" y3="22.46"/>
+ <curve x1="42.48" x2="42.31" x3="42.31" y1="22.28" y2="21.87" y3="21.47"/>
+ <line x="42.71" y="21.47"/>
+ <curve x1="42.89" x2="42.89" x3="43.11" y1="21.47" y2="21.07" y3="21.07"/>
+ <line x="43.52" y="20.89"/>
+ <curve x1="43.69" x2="43.69" x3="43.87" y1="20.67" y2="20.48" y3="20.26"/>
+ <line x="44.28" y="20.26"/>
+ <curve x1="44.5" x2="44.68" x3="44.9" y1="20.26" y2="20.09" y3="20.09"/>
+ <curve x1="45.08" x2="45.31" x3="45.49" y1="20.09" y2="20.09" y3="19.86"/>
+ <line x="45.49" y="19.5"/>
+ <curve x1="45.49" x2="46.29" x3="46.87" y1="18.87" y2="18.87" y3="18.69"/>
+ <curve x1="47.05" x2="47.46" x3="47.86" y1="18.69" y2="18.29" y3="18.29"/>
+ <curve x1="47.86" x2="47.45" x3="47.45" y1="18.7" y2="18.7" y3="18.88"/>
+ <curve x1="47.68" x2="48.08" x3="48.26" y1="19.28" y2="18.69" y3="18.69"/>
+ <curve x1="48.66" x2="49.07" x3="49.47" y1="18.69" y2="18.47" y3="18.29"/>
+ <curve x1="49.65" x2="50.45" x3="50.05" y1="18.12" y2="18.11" y3="17.48"/>
+ <curve x1="49.87" x2="49.65" x3="49.47" y1="17.48" y2="17.89" y3="18.11"/>
+ <curve x1="49.25" x2="49.47" x3="49.25" y1="18.11" y2="17.89" y3="17.89"/>
+ <curve x1="49.07" x2="48.85" x3="48.85" y1="17.71" y2="18.11" y3="18.11"/>
+ <curve x1="48.67" x2="48.66" x3="48.48" y1="17.89" y2="17.71" y3="17.48"/>
+ <curve x1="48.48" x2="48.85" x3="49.07" y1="17.3" y2="16.9" y3="16.68"/>
+ <curve x1="48.85" x2="48.49" x3="48.08" y1="16.5" y2="16.68" y3="16.5"/>
+ <curve x1="48.08" x2="48.49" x3="48.66" y1="16.32" y2="16.1" y3="16.1"/>
+ <curve x1="48.84" x2="49.25" x3="49.47" y1="16.1" y2="16.1" y3="16.32"/>
+ <line x="49.47" y="16.5"/>
+ <curve x1="49.65" x2="49.65" x3="50.05" y1="16.68" y2="16.68" y3="16.5"/>
+ <curve x1="50.05" x2="49.65" x3="49.65" y1="16.32" y2="16.5" y3="16.32"/>
+ <curve x1="50.05" x2="50.46" x3="50.86" y1="15.92" y2="16.1" y3="16.1"/>
+ <curve x1="51.04" x2="51.44" x3="51.62" y1="16.1" y2="15.92" y3="15.69"/>
+ <curve x1="51.84" x2="52.02" x3="52.25" y1="15.69" y2="15.51" y3="15.69"/>
+ <curve x1="52.25" x2="52.02" x3="51.84" y1="15.92" y2="15.92" y3="15.92"/>
+ <curve x1="51.62" x2="51.26" x3="50.86" y1="16.5" y2="16.68" y3="17.08"/>
+ <curve x1="51.04" x2="51.44" x3="51.62" y1="17.31" y2="17.31" y3="17.31"/>
+ <line x="52.02" y="17.31"/>
+ <line x="52.43" y="17.31"/>
+ <curve x1="52.65" x2="52.65" x3="53.05" y1="17.49" y2="17.48" y3="17.48"/>
+ <curve x1="53.23" x2="53.23" x3="53.23" y1="17.48" y2="17.31" y3="16.9"/>
+ <line x="53.23" y="16.5"/>
+ <curve x1="53.05" x2="52.43" x3="52.43" y1="16.32" y2="16.5" y3="16.1"/>
+ <curve x1="52.43" x2="52.65" x3="52.65" y1="15.92" y2="15.92" y3="15.69"/>
+ <curve x1="52.65" x2="53.23" x3="53.05" y1="15.29" y2="15.29" y3="14.71"/>
+ <curve x1="53.05" x2="52.83" x3="52.83" y1="14.71" y2="14.71" y3="14.53"/>
+ <curve x1="52.65" x2="52.65" x3="52.65" y1="14.31" y2="14.12" y3="14.12"/>
+ <curve x1="52.43" x2="51.84" x3="51.84" y1="13.9" y2="13.91" y3="13.73"/>
+ <close/>
+ <move x="14.68" y="31.81"/>
+ <curve x1="11.51" x2="9.54" x3="9.54" y1="33.02" y2="34.59" y3="35.97"/>
+ <curve x1="9.54" x2="12.98" x3="18.24" y1="38.05" y2="39.9" y3="41.12"/>
+ <curve x1="16.46" x2="15.09" x3="14.68" y1="38.31" y2="35.15" y3="31.81"/>
+ <close/>
+ <move x="18.24" y="41.12"/>
+ <curve x1="18.25" x2="18.26" x3="18.27" y1="41.14" y2="41.16" y3="41.17"/>
+ <curve x1="18.67" x2="18.85" x3="19.07" y1="41.17" y2="41.35" y3="41.35"/>
+ <curve x1="18.76" x2="18.53" x3="18.24" y1="41.28" y2="41.19" y3="41.12"/>
+ <close/>
+ <move x="61.77" y="31.81"/>
+ <curve x1="61.19" x2="60" x3="58.24" y1="35.13" y2="38.28" y3="41.08"/>
+ <curve x1="63.52" x2="66.74" x3="66.74" y1="39.86" y2="38.03" y3="35.97"/>
+ <curve x1="66.74" x2="64.95" x3="61.77" y1="34.59" y2="33.02" y3="31.81"/>
+ <close/>
+ <move x="66.76" y="41.37"/>
+ <curve x1="60.98" x2="51.04" x3="39.71" y1="44.55" y2="46.52" y3="46.52"/>
+ <curve x1="28.61" x2="18.67" x3="12.71" y1="46.52" y2="44.55" y3="41.55"/>
+ <curve x1="25.02" x2="33.35" x3="33.35" y1="52.07" y2="52.07" y3="70.38"/>
+ <curve x1="33.35" x2="36.35" x3="39.93" y1="71.95" y2="73.16" y3="73.16"/>
+ <curve x1="43.69" x2="46.87" x3="46.87" y1="73.16" y2="71.95" y3="70.38"/>
+ <curve x1="46.87" x2="54.8" x3="66.76" y1="52.07" y2="52.07" y3="41.37"/>
+ <close/>
+ <move x="0" y="39.76"/>
+ <curve x1="0" x2="17.87" x3="39.72" y1="17.91" y2="0" y3="0"/>
+ <curve x1="61.79" x2="79.43" x3="79.43" y1="0" y2="17.91" y3="39.76"/>
+ <curve x1="79.43" x2="61.79" x3="39.72" y1="61.83" y2="79.52" y3="79.52"/>
+ <curve x1="17.87" x2="0" x3="0" y1="79.52" y2="61.83" y3="39.76"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="web security" strokewidth="inherit" w="76.71">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="50.34" y="9.6"/>
+ <curve x1="50.34" x2="50.76" x3="50.94" y1="9.78" y2="10.01" y3="10.01"/>
+ <curve x1="51.16" x2="51.34" x3="51.75" y1="10.19" y2="10.59" y3="10.82"/>
+ <curve x1="51.34" x2="51.34" x3="51.34" y1="11" y2="11.18" y3="11.18"/>
+ <curve x1="50.93" x2="50.57" x3="50.34" y1="11.18" y2="10.82" y3="10.82"/>
+ <curve x1="49.94" x2="49.36" x3="48.95" y1="10.82" y2="11.4" y3="11.4"/>
+ <curve x1="48.77" x2="48.55" x3="48.37" y1="11.4" y2="11.18" y3="11"/>
+ <curve x1="48.55" x2="48.95" x3="49.18" y1="10.6" y2="10.59" y3="10.01"/>
+ <curve x1="48.95" x2="48.95" x3="48.95" y1="10.01" y2="10.01" y3="10.19"/>
+ <curve x1="48.77" x2="48.77" x3="48.37" y1="10.19" y2="10.19" y3="10.42"/>
+ <curve x1="48.14" x2="47.96" x3="47.55" y1="10.6" y2="10.59" y3="10.82"/>
+ <line x="46.74" y="10.82"/>
+ <curve x1="46.34" x2="46.15" x3="45.75" y1="11" y2="11.4" y3="11.4"/>
+ <curve x1="45.34" x2="45.16" x3="44.94" y1="11.58" y2="11.59" y3="11.59"/>
+ <curve x1="44.58" x2="43.95" x3="43.55" y1="11.81" y2="11.99" y3="12.39"/>
+ <curve x1="42.96" x2="42.55" x3="42.15" y1="12.62" y2="12.8" y3="13.2"/>
+ <curve x1="42.15" x2="41.56" x3="41.56" y1="13.38" y2="13.8" y3="14.02"/>
+ <curve x1="41.56" x2="42.15" x3="42.15" y1="14.2" y2="14.42" y3="14.6"/>
+ <curve x1="42.15" x2="41.97" x3="41.97" y1="14.6" y2="15.01" y3="15.19"/>
+ <line x="42.37" y="15.19"/>
+ <line x="42.78" y="15.19"/>
+ <curve x1="43.54" x2="43.77" x3="44.17" y1="15.41" y2="15.82" y3="16"/>
+ <curve x1="44.58" x2="44.94" x3="45.35" y1="16.4" y2="16.58" y3="16.58"/>
+ <line x="46.16" y="16.58"/>
+ <curve x1="46.34" x2="46.57" x3="46.57" y1="16.58" y2="16.58" y3="16.99"/>
+ <curve x1="46.75" x2="46.15" x3="45.97" y1="17.22" y2="17.4" y3="17.62"/>
+ <curve x1="46.33" x2="45.97" x3="45.97" y1="18.21" y2="18.2" y3="18.61"/>
+ <curve x1="45.97" x2="46.34" x3="46.34" y1="18.79" y2="19.2" y3="19.2"/>
+ <curve x1="46.75" x2="47.37" x3="47.55" y1="19.2" y2="18.79" y3="18.38"/>
+ <curve x1="47.78" x2="47.55" x3="47.96" y1="17.98" y2="17.4" y3="16.99"/>
+ <curve x1="49.76" x2="51.16" x3="51.16" y1="16.99" y2="16.18" y3="14.42"/>
+ <curve x1="51.16" x2="50.94" x3="51.16" y1="14.2" y2="14.02" y3="13.8"/>
+ <curve x1="51.16" x2="51.56" x3="51.34" y1="13.39" y2="13.21" y3="12.8"/>
+ <curve x1="51.74" x2="51.75" x3="51.97" y1="12.62" y2="12.62" y3="12.39"/>
+ <curve x1="51.97" x2="52.37" x3="52.37" y1="11.99" y2="11.81" y3="11.81"/>
+ <curve x1="52.55" x2="52.55" x3="52.55" y1="11.81" y2="11.59" y3="11.59"/>
+ <curve x1="52.55" x2="52.74" x3="52.96" y1="11.59" y2="11.59" y3="11.81"/>
+ <line x="53.14" y="11.81"/>
+ <curve x1="53.36" x2="53.54" x3="53.95" y1="11.81" y2="11.99" y3="11.99"/>
+ <curve x1="54.13" x2="54.13" x3="54.36" y1="11.99" y2="11.81" y3="11.81"/>
+ <curve x1="53.14" x2="51.74" x3="50.34" y1="11" y2="10.19" y3="9.6"/>
+ <close/>
+ <move x="58.54" y="12.8"/>
+ <curve x1="58.36" x2="57.55" x3="57.55" y1="13.61" y2="13.61" y3="14.42"/>
+ <curve x1="57.96" x2="58.54" x3="58.76" y1="15.59" y2="15.82" y3="16"/>
+ <curve x1="59.35" x2="59.93" x3="60.34" y1="16" y2="15.82" y3="15.59"/>
+ <curve x1="60.56" x2="60.75" x3="60.75" y1="15.59" y2="15.19" y3="15.01"/>
+ <curve x1="60.16" x2="59.35" x3="58.54" y1="14.19" y2="13.61" y3="12.8"/>
+ <close/>
+ <move x="18.6" y="15.98"/>
+ <curve x1="18.38" x2="17.97" x3="17.79" y1="16.39" y2="16.62" y3="16.62"/>
+ <curve x1="10.81" x2="6.4" x3="6.4" y1="22.61" y2="31.39" y3="41.39"/>
+ <curve x1="6.4" x2="20.77" x3="38.38" y1="59.18" y2="73.6" y3="73.6"/>
+ <curve x1="40.95" x2="43.56" x3="46.17" y1="73.6" y2="73.42" y3="72.79"/>
+ <line x="46.17" y="72.61"/>
+ <line x="46.17" y="70.81"/>
+ <curve x1="45.95" x2="45.94" x3="45.76" y1="70.22" y2="69.59" y3="69.19"/>
+ <curve x1="45.54" x2="44.55" x3="44.37" y1="68.83" y2="68.19" y3="68.01"/>
+ <curve x1="44.14" x2="43.78" x3="43.56" y1="68.01" y2="67.79" y3="67.61"/>
+ <curve x1="43.38" x2="43.38" x3="43.15" y1="67.61" y2="67.61" y3="67.38"/>
+ <line x="42.97" y="67.2"/>
+ <line x="41.35" y="65.58"/>
+ <curve x1="41.35" x2="40.77" x3="40.77" y1="65.22" y2="64.82" y3="64.59"/>
+ <curve x1="40.18" x2="39.77" x3="39.36" y1="63.82" y2="63.02" y3="62.2"/>
+ <curve x1="39.18" x2="38.96" x3="38.78" y1="61.8" y2="61.39" y3="60.99"/>
+ <curve x1="38.38" x2="37.97" x3="37.97" y1="60.99" y2="60.58" y3="60.4"/>
+ <curve x1="37.97" x2="37.57" x3="37.75" y1="60.22" y2="59.59" y3="59.41"/>
+ <curve x1="37.97" x2="38.15" x3="38.38" y1="59.41" y2="59.59" y3="59.59"/>
+ <curve x1="43.38" x2="47.56" x3="49.95" y1="57.61" y2="53.6" y3="48.78"/>
+ <line x="50.13" y="49.01"/>
+ <curve x1="50.36" x2="50.54" x3="50.77" y1="49.01" y2="49.18" y3="49.18"/>
+ <curve x1="50.95" x2="51.17" x3="51.35" y1="49.18" y2="49" y3="49.18"/>
+ <curve x1="51.35" x2="51.35" x3="51.58" y1="49.41" y2="49.59" y3="49.82"/>
+ <curve x1="51.58" x2="51.57" x3="51.75" y1="50" y2="50.22" y3="50.22"/>
+ <curve x1="51.93" x2="52.16" x3="52.57" y1="50.4" y2="50.4" y3="50.58"/>
+ <curve x1="52.75" x2="52.97" x3="53.15" y1="50.81" y2="50.99" y3="51.39"/>
+ <curve x1="53.56" x2="53.96" x3="54.55" y1="51.8" y2="52.02" y3="52.2"/>
+ <curve x1="54.95" x2="55.13" x3="55.54" y1="52.2" y2="52.02" y3="52.02"/>
+ <curve x1="56.35" x2="56.94" x3="57.34" y1="52.38" y2="52.61" y3="53.01"/>
+ <curve x1="57.75" x2="57.97" x3="57.97" y1="53.19" y2="53.42" y3="53.82"/>
+ <curve x1="58.15" x2="57.97" x3="58.15" y1="53.82" y2="54.19" y3="54.41"/>
+ <curve x1="58.33" x2="59.14" x3="58.73" y1="55" y2="55.22" y3="55.81"/>
+ <curve x1="58.96" x2="59.14" x3="59.37" y1="56.21" y2="56.21" y3="56.39"/>
+ <curve x1="59.55" x2="59.73" x3="59.95" y1="56.39" y2="56.8" y3="56.8"/>
+ <line x="60.36" y="56.8"/>
+ <line x="60.54" y="56.8"/>
+ <curve x1="60.94" x2="61.12" x3="61.53" y1="56.8" y2="57.02" y3="57.2"/>
+ <line x="62.16" y="57.2"/>
+ <curve x1="62.34" x2="62.34" x3="62.75" y1="57.61" y2="57.79" y3="58.02"/>
+ <line x="63.15" y="58.02"/>
+ <line x="63.33" y="58.02"/>
+ <line x="63.56" y="58.02"/>
+ <curve x1="63.56" x2="63.74" x3="63.96" y1="58.02" y2="58.01" y3="58.19"/>
+ <curve x1="64.14" x2="64.32" x3="64.55" y1="58.19" y2="58.42" y3="58.42"/>
+ <curve x1="64.73" x2="64.95" x3="65.13" y1="58.42" y2="58.19" y3="58.19"/>
+ <line x="65.36" y="58.19"/>
+ <line x="65.54" y="58.42"/>
+ <curve x1="68.56" x2="70.36" x3="70.36" y1="53.42" y2="47.61" y3="41.39"/>
+ <curve x1="70.36" x2="70.13" x3="69.95" y1="39.18" y2="37.02" y3="34.99"/>
+ <curve x1="69.73" x2="69.55" x3="69.32" y1="34.41" y2="33.78" y3="33.19"/>
+ <curve x1="69.32" x2="69.14" x3="69.14" y1="32.79" y2="32.38" y3="32.02"/>
+ <curve x1="67.52" x2="64.73" x3="61.13" y1="27.02" y2="22.39" y3="18.6"/>
+ <curve x1="60.54" x2="60.14" x3="59.55" y1="18.2" y2="17.61" y3="17.2"/>
+ <line x="59.55" y="17.61"/>
+ <curve x1="59.55" x2="60.36" x3="60.94" y1="18.42" y2="18.42" y3="18.6"/>
+ <curve x1="60.94" x2="60.95" x3="61.13" y1="18.6" y2="19.01" y3="19.19"/>
+ <curve x1="61.35" x2="61.53" x3="61.53" y1="19.41" y2="19.41" y3="19.81"/>
+ <curve x1="61.75" x2="60.94" x3="60.94" y1="20.22" y2="20.22" y3="20.99"/>
+ <curve x1="60.94" x2="60.54" x3="60.54" y1="21.39" y2="21.21" y3="21.8"/>
+ <curve x1="60.54" x2="60.77" x3="61.13" y1="22.02" y2="22.02" y3="22.02"/>
+ <line x="61.35" y="22.02"/>
+ <curve x1="61.35" x2="61.75" x3="61.75" y1="22.02" y2="22.02" y3="22.38"/>
+ <curve x1="61.75" x2="61.75" x3="61.53" y1="22.61" y2="22.61" y3="23.02"/>
+ <curve x1="61.93" x2="61.94" x3="61.35" y1="23.42" y2="24.01" y3="24.01"/>
+ <curve x1="60.95" x2="60.94" x3="60.54" y1="24.01" y2="23.6" y3="23.6"/>
+ <curve x1="60.36" x2="60.13" x3="59.95" y1="23.6" y2="23.6" y3="23.42"/>
+ <line x="59.37" y="23.42"/>
+ <line x="58.73" y="23.42"/>
+ <curve x1="58.55" x2="58.33" x3="58.15" y1="23.42" y2="23.42" y3="23.19"/>
+ <curve x1="58.56" x2="59.15" x3="59.55" y1="22.61" y2="22.02" y3="21.61"/>
+ <curve x1="59.96" x2="60.13" x3="60.13" y1="21.39" y2="21.21" y3="20.99"/>
+ <curve x1="60.13" x2="59.95" x3="59.95" y1="20.81" y2="20.81" y3="20.81"/>
+ <curve x1="59.73" x2="59.37" x3="59.37" y1="20.81" y2="20.99" y3="21.21"/>
+ <curve x1="58.96" x2="58.56" x3="58.15" y1="21.21" y2="21.61" y3="21.61"/>
+ <curve x1="57.56" x2="56.76" x3="56.17" y1="21.79" y2="21.39" y3="21.8"/>
+ <curve x1="56.17" x2="56.94" x3="56.76" y1="22.02" y2="21.8" y3="22.38"/>
+ <line x="56.35" y="22.38"/>
+ <curve x1="56.17" x2="56.17" x3="55.95" y1="22.38" y2="22.39" y3="22.21"/>
+ <curve x1="55.77" x2="55.94" x3="55.76" y1="22.03" y2="21.8" y3="21.8"/>
+ <curve x1="55.76" x2="55.54" x3="55.36" y1="21.8" y2="21.61" y3="21.61"/>
+ <line x="54.77" y="21.61"/>
+ <curve x1="54.37" x2="53.96" x3="53.96" y1="21.79" y2="21.8" y3="22.38"/>
+ <line x="54.15" y="22.38"/>
+ <curve x1="54.55" x2="54.77" x3="54.95" y1="22.38" y2="22.2" y3="22.38"/>
+ <curve x1="55.13" x2="55.13" x3="55.36" y1="22.38" y2="22.38" y3="22.61"/>
+ <curve x1="55.13" x2="54.37" x3="54.55" y1="23.01" y2="23.42" y3="24.01"/>
+ <curve x1="54.55" x2="54.77" x3="54.95" y1="24.19" y2="24.41" y3="24.59"/>
+ <curve x1="55.13" x2="55.13" x3="55.54" y1="24.59" y2="24.41" y3="24.41"/>
+ <curve x1="55.76" x2="55.77" x3="55.95" y1="24.41" y2="24.59" y3="24.59"/>
+ <curve x1="56.17" x2="56.53" x3="56.93" y1="24.41" y2="24.01" y3="24.01"/>
+ <curve x1="57.56" x2="56.53" x3="55.95" y1="24.59" y2="24.99" y3="24.99"/>
+ <curve x1="55.54" x2="54.78" x3="54.15" y1="25.22" y2="25.4" y3="25.58"/>
+ <curve x1="53.97" x2="53.33" x3="53.15" y1="25.58" y2="26.21" y3="25.99"/>
+ <curve x1="52.97" x2="52.97" x3="52.97" y1="25.99" y2="25.99" y3="25.81"/>
+ <curve x1="52.74" x2="53.15" x3="53.33" y1="25.4" y2="25.4" y3="25.22"/>
+ <curve x1="52.97" x2="52.34" x3="51.94" y1="24.99" y2="25.4" y3="25.58"/>
+ <curve x1="51.17" x2="49.77" x3="49.55" y1="25.81" y2="25.98" y3="27.02"/>
+ <curve x1="49.55" x2="49.77" x3="49.55" y1="27.02" y2="27.21" y3="27.61"/>
+ <line x="48.74" y="27.61"/>
+ <curve x1="48.38" x2="48.15" x3="47.97" y1="27.79" y2="28.01" y3="28.01"/>
+ <curve x1="47.75" x2="47.56" x3="47.34" y1="28.19" y2="28.2" y3="28.2"/>
+ <curve x1="47.16" x2="46.98" x3="46.98" y1="28.2" y2="28.42" y3="28.6"/>
+ <line x="41.57" y="27.2"/>
+ <line x="38.38" y="26.79"/>
+ <line x="35.18" y="27.39"/>
+ <curve x1="35.18" x2="24.6" x3="24.19" y1="27.39" y2="29.81" y3="29.81"/>
+ <line x="24.19" y="38.6"/>
+ <curve x1="24.19" x2="24.59" x3="25" y1="40.58" y2="42.38" y3="44.19"/>
+ <curve x1="25" x2="24.77" x3="24.77" y1="44.01" y2="44" y3="44"/>
+ <curve x1="24.59" x2="24.19" x3="23.97" y1="43.78" y2="43.78" y3="43.78"/>
+ <curve x1="23.79" x2="23.6" x3="23.2" y1="43.6" y2="43.42" y3="43.19"/>
+ <curve x1="22.97" x2="22.79" x3="22.79" y1="43.01" y2="42.61" y3="42.38"/>
+ <curve x1="22.79" x2="22.97" x3="22.97" y1="42.2" y2="41.8" y3="41.62"/>
+ <curve x1="22.97" x2="22.39" x3="21.98" y1="40.81" y2="40" y3="39.59"/>
+ <curve x1="21.8" x2="21.39" x3="20.99" y1="39" y2="38.78" y3="38.6"/>
+ <line x="20.99" y="38.01"/>
+ <curve x1="20.76" x2="20.58" x3="20.4" y1="37.79" y2="37.38" y3="37.02"/>
+ <curve x1="20.18" x2="19.77" x3="19.59" y1="36.62" y2="36.39" y3="36.21"/>
+ <curve x1="19.59" x2="19.77" x3="19.59" y1="35.58" y2="35.22" y3="34.82"/>
+ <curve x1="19.37" x2="18.6" x3="18.6" y1="34.19" y2="34.41" y3="35.4"/>
+ <curve x1="18.6" x2="18.96" x3="19.19" y1="35.58" y2="35.81" y3="36.21"/>
+ <line x="19.19" y="37.02"/>
+ <curve x1="19.37" x2="19.59" x3="19.77" y1="37.38" y2="37.61" y3="38.01"/>
+ <curve x1="20" x2="20" x3="20" y1="38.42" y2="39" y3="39.18"/>
+ <curve x1="20.18" x2="20.58" x3="20.4" y1="39.59" y2="39.82" y3="40.22"/>
+ <curve x1="20" x2="20" x3="19.59" y1="40.4" y2="40" y3="39.82"/>
+ <curve x1="19.59" x2="19.19" x3="19.19" y1="39.59" y2="39.41" y3="39.01"/>
+ <curve x1="18.96" x2="19.19" x3="19.19" y1="38.78" y2="38.6" y3="38.2"/>
+ <curve x1="18.96" x2="17.97" x3="17.97" y1="37.79" y2="37.79" y3="37.2"/>
+ <curve x1="17.97" x2="18.38" x3="18.38" y1="37.02" y2="36.8" y3="36.39"/>
+ <curve x1="18.38" x2="17.79" x3="17.79" y1="36.21" y2="35.8" y3="35.58"/>
+ <curve x1="17.57" x2="17.57" x3="17.57" y1="35.4" y2="34.82" y3="34.41"/>
+ <line x="17.57" y="33.19"/>
+ <curve x1="17.57" x2="16.98" x3="16.8" y1="33.01" y2="32.79" y3="32.61"/>
+ <curve x1="16.57" x2="16.17" x3="16.17" y1="32.38" y2="32.61" y3="32.2"/>
+ <curve x1="15.99" x2="15.99" x3="15.77" y1="32.02" y2="31.39" y3="31.21"/>
+ <line x="15.77" y="29.81"/>
+ <line x="15.77" y="28.42"/>
+ <curve x1="15.99" x2="16.17" x3="16.39" y1="28.02" y2="27.79" y3="27.61"/>
+ <curve x1="16.57" x2="16.57" x3="16.8" y1="27.21" y2="27.02" y3="26.62"/>
+ <curve x1="16.98" x2="17.56" x3="17.97" y1="26.21" y2="25.8" y3="25.22"/>
+ <curve x1="18.37" x2="18.78" x3="19.19" y1="24.59" y2="24.18" y3="23.6"/>
+ <curve x1="19.19" x2="19.37" x3="19.37" y1="23.42" y2="23.01" y3="22.61"/>
+ <curve x1="19.37" x2="18.6" x3="18.6" y1="22.38" y2="22.02" y3="21.61"/>
+ <curve x1="18.6" x2="19.19" x3="19.19" y1="21.39" y2="21.39" y3="20.99"/>
+ <curve x1="19.19" x2="19.37" x3="19.37" y1="20.99" y2="20.58" y3="20.4"/>
+ <curve x1="19.37" x2="19.19" x3="19.19" y1="20" y2="19.82" y3="19.19"/>
+ <curve x1="19.19" x2="19.77" x3="19.59" y1="19.01" y2="18.78" y3="18.42"/>
+ <line x="19.37" y="18.42"/>
+ <line x="18.79" y="18.42"/>
+ <line x="18.6" y="18.42"/>
+ <curve x1="18.38" x2="18.6" x3="18.6" y1="18.19" y2="18.02" y3="17.61"/>
+ <line x="18.6" y="17.2"/>
+ <curve x1="18.6" x2="18.79" x3="18.79" y1="16.8" y2="16.62" y3="16.62"/>
+ <curve x1="18.6" x2="18.6" x3="18.6" y1="16.39" y2="16.39" y3="15.98"/>
+ <close/>
+ <move x="38.38" y="29.19"/>
+ <line x="40.94" y="29.81"/>
+ <line x="40.94" y="31.39"/>
+ <line x="45.54" y="32.61"/>
+ <line x="45.54" y="30.99"/>
+ <line x="49.77" y="31.8"/>
+ <line x="49.77" y="40.22"/>
+ <curve x1="49.77" x2="45.18" x3="38.38" y1="48.02" y2="54.59" y3="57.38"/>
+ <curve x1="31.76" x2="27.16" x3="27.16" y1="54.59" y2="48.02" y3="40.22"/>
+ <line x="27.16" y="31.8"/>
+ <line x="31.17" y="30.99"/>
+ <line x="31.17" y="32.61"/>
+ <line x="35.76" y="31.39"/>
+ <line x="35.76" y="29.81"/>
+ <line x="38.38" y="29.19"/>
+ <close/>
+ <move x="37.38" y="32.01"/>
+ <line x="28.77" y="34.21"/>
+ <line x="28.77" y="38.58"/>
+ <curve x1="28.77" x2="28.96" x3="29.18" y1="39.98" y2="41.01" y3="42"/>
+ <curve x1="29.59" x2="30.58" x3="31.57" y1="44.39" y2="46.2" y3="48"/>
+ <line x="44.76" y="33.99"/>
+ <curve x1="43.77" x2="41.75" x3="37.38" y1="33.58" y2="33.23" y3="32.01"/>
+ <close/>
+ <move x="47.96" y="38.41"/>
+ <line x="35.17" y="51.2"/>
+ <curve x1="36.57" x2="37.96" x3="39.77" y1="52.42" y2="53.59" y3="54.4"/>
+ <curve x1="43.78" x2="46.75" x3="47.56" y1="52.42" y2="48.41" y3="44"/>
+ <curve x1="47.96" x2="47.96" x3="47.96" y1="43.19" y2="42.19" y3="41.02"/>
+ <line x="47.96" y="38.41"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.21" x3="38.38" y1="18.02" y2="0" y3="0"/>
+ <curve x1="59.73" x2="76.71" x3="76.71" y1="0" y2="18.02" y3="40"/>
+ <curve x1="76.71" x2="59.73" x3="38.38" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.21" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wireless connection" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="17.97" x3="39.95" y1="18.02" y2="0" y3="0"/>
+ <curve x1="62.16" x2="79.91" x3="79.91" y1="0" y2="18.02" y3="40"/>
+ <curve x1="79.91" x2="62.16" x3="39.95" y1="62.21" y2="80" y3="80"/>
+ <curve x1="17.97" x2="0" x3="0" y1="80" y2="62.21" y3="40"/>
+ <close/>
+ <move x="24.99" y="40.59"/>
+ <curve x1="23.37" x2="22.38" x3="22.78" y1="40.99" y2="42.39" y3="43.79"/>
+ <curve x1="23.19" x2="24.58" x3="25.98" y1="45.18" y2="45.99" y3="45.59"/>
+ <curve x1="33.37" x2="40.75" x3="42.56" y1="44.19" y2="48.61" y3="55.59"/>
+ <curve x1="42.56" x2="43.14" x3="43.55" y1="56.22" y2="56.8" y3="57.21"/>
+ <curve x1="44.18" x2="44.94" x3="45.57" y1="57.39" y2="57.62" y3="57.39"/>
+ <curve x1="47.15" x2="47.96" x3="47.74" y1="57.21" y2="55.81" y3="54.42"/>
+ <curve x1="45.57" x2="35.17" x3="24.99" y1="44.6" y2="38.38" y3="40.59"/>
+ <close/>
+ <move x="31.77" y="52.38"/>
+ <curve x1="29.15" x2="25.78" x3="24.2" y1="51.21" y2="51.8" y3="53.82"/>
+ <curve x1="22.4" x2="23.16" x3="25.78" y1="55.81" y2="58.42" y3="59.59"/>
+ <curve x1="28.39" x2="31.99" x3="33.57" y1="60.81" y2="60.4" y3="58.42"/>
+ <curve x1="35.19" x2="34.56" x3="31.77" y1="56.39" y2="53.82" y3="52.38"/>
+ <close/>
+ <move x="22.19" y="29.2"/>
+ <curve x1="21.97" x2="21.97" x3="21.97" y1="29.2" y2="29.2" y3="29.2"/>
+ <curve x1="20.39" x2="19.17" x3="19.76" y1="29.6" y2="31.18" y3="32.8"/>
+ <curve x1="20.17" x2="21.79" x3="23.59" y1="34.42" y2="35.42" y3="35.01"/>
+ <curve x1="23.77" x2="23.77" x3="23.77" y1="35.01" y2="35.01" y3="35.01"/>
+ <curve x1="24.17" x2="24.17" x3="24.17" y1="35.01" y2="35.01" y3="35.01"/>
+ <curve x1="36.16" x2="48.14" x3="51.16" y1="32.22" y2="39.42" y3="51.18"/>
+ <curve x1="51.16" x2="51.16" x3="51.16" y1="51.59" y2="51.59" y3="51.59"/>
+ <curve x1="51.16" x2="51.16" x3="51.16" y1="51.81" y2="51.81" y3="51.81"/>
+ <curve x1="51.56" x2="53.14" x3="54.76" y1="53.39" y2="54.42" y3="54.2"/>
+ <curve x1="56.56" x2="57.55" x3="57.33" y1="54.02" y2="52.4" y3="50.82"/>
+ <curve x1="57.15" x2="57.15" x3="57.15" y1="50.6" y2="50.6" y3="50.6"/>
+ <curve x1="56.97" x2="56.97" x3="56.97" y1="49.78" y2="49.78" y3="49.78"/>
+ <curve x1="53.36" x2="37.96" x3="22.78" y1="35.01" y2="25.6" y3="29.2"/>
+ <line x="22.19" y="29.2"/>
+ <close/>
+ <move x="63.95" y="54.4"/>
+ <curve x1="64.13" x2="64.36" x3="64.36" y1="54.4" y2="54.4" y3="54.4"/>
+ <curve x1="65.94" x2="67.15" x3="66.93" y1="54.22" y2="52.6" y3="50.8"/>
+ <curve x1="65.53" x2="59.54" x3="51.16" y1="40.8" y2="31.2" y3="25.21"/>
+ <curve x1="41.34" x2="28.59" x3="18.37" y1="18.18" y2="16.02" y3="19.8"/>
+ <curve x1="16.79" x2="15.98" x3="16.57" y1="20.39" y2="22.19" y3="23.81"/>
+ <curve x1="17.2" x2="19" x3="20.4" y1="25.39" y2="26.2" y3="25.62"/>
+ <curve x1="27.38" x2="38.37" x3="47.56" y1="23" y2="23.59" y3="30.39"/>
+ <curve x1="55.94" x2="59.94" x3="60.94" y1="36.38" y2="45.39" y3="51.79"/>
+ <curve x1="61.16" x2="62.56" x3="63.95" y1="53.41" y2="54.4" y3="54.4"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wireless intrusion detection system" strokewidth="inherit" w="79.91">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="45.96" y="18.36"/>
+ <curve x1="39.41" x2="34.07" x3="34.07" y1="18.36" y2="23.7" y3="30.16"/>
+ <curve x1="34.07" x2="39.41" x3="45.96" y1="36.71" y2="41.97" y3="41.97"/>
+ <curve x1="52.42" x2="57.67" x3="57.67" y1="41.97" y2="36.71" y3="30.16"/>
+ <curve x1="57.67" x2="52.42" x3="45.96" y1="23.7" y2="18.36" y3="18.36"/>
+ <close/>
+ <move x="45.96" y="21.24"/>
+ <curve x1="50.85" x2="54.89" x3="54.89" y1="21.24" y2="25.23" y3="30.16"/>
+ <curve x1="54.89" x2="50.85" x3="45.96" y1="35.19" y2="39.18" y3="39.18"/>
+ <curve x1="40.93" x2="36.94" x3="36.94" y1="39.18" y2="35.19" y3="30.16"/>
+ <curve x1="36.94" x2="40.93" x3="45.96" y1="25.23" y2="21.24" y3="21.24"/>
+ <close/>
+ <move x="30.25" y="21.46"/>
+ <curve x1="26.44" x2="22.69" x3="19.26" y1="21.27" y2="21.84" y3="23.12"/>
+ <curve x1="17.77" x2="17.06" x3="17.59" y1="23.62" y2="25.23" y3="26.71"/>
+ <curve x1="18.09" x2="19.65" x3="21.13" y1="28.1" y2="28.86" y3="28.37"/>
+ <curve x1="24.01" x2="27.69" x3="31.59" y1="27.29" y2="26.89" y3="27.2"/>
+ <curve x1="32.04" x2="32.94" x3="34.06" y1="25.23" y2="23.44" y3="21.91"/>
+ <curve x1="32.79" x2="31.52" x3="30.25" y1="21.67" y2="21.53" y3="21.46"/>
+ <close/>
+ <move x="47.75" y="23.59"/>
+ <curve x1="46.67" x2="45.55" x3="44.7" y1="23.59" y2="24.09" y3="24.94"/>
+ <curve x1="43.31" x2="43.17" x3="44.16" y1="26.46" y2="28.7" y3="30.41"/>
+ <line x="40.93" y="33.77"/>
+ <curve x1="40.61" x2="40.61" x3="40.93" y1="34" y2="34.49" y3="34.76"/>
+ <line x="41.28" y="35.17"/>
+ <curve x1="41.6" x2="42" x3="42.27" y1="35.44" y2="35.44" y3="35.17"/>
+ <line x="45.55" y="31.8"/>
+ <curve x1="46.17" x2="47.03" x3="47.75" y1="32.21" y2="32.48" y3="32.48"/>
+ <curve x1="48.82" x2="49.94" x3="50.8" y1="32.48" y2="32.07" y3="31.22"/>
+ <curve x1="52.41" x2="52.41" x3="50.8" y1="29.52" y2="26.64" y3="24.94"/>
+ <curve x1="49.94" x2="48.82" x3="47.75" y1="24.09" y2="23.59" y3="23.59"/>
+ <close/>
+ <move x="47.75" y="25.07"/>
+ <curve x1="48.46" x2="49.22" x3="49.81" y1="25.07" y2="25.43" y3="25.92"/>
+ <curve x1="50.27" x2="50.55" x3="50.64" y1="26.38" y2="27.06" y3="27.69"/>
+ <line x="46.88" y="26.25"/>
+ <line x="46.88" y="26.33"/>
+ <curve x1="46.81" x2="46.67" x3="46.24" y1="26.27" y2="26.21" y3="26.21"/>
+ <curve x1="46.06" x2="45.66" x3="45.66" y1="26.21" y2="26.3" y3="26.39"/>
+ <line x="45.66" y="30.07"/>
+ <curve x1="46.06" x2="46.65" x3="46.96" y1="30.07" y2="30.16" y3="30.16"/>
+ <line x="46.96" y="28.83"/>
+ <line x="50.66" y="27.82"/>
+ <curve x1="50.66" x2="50.71" x3="50.71" y1="27.89" y2="27.96" y3="28.03"/>
+ <curve x1="50.71" x2="50.35" x3="49.81" y1="28.84" y2="29.6" y3="30.18"/>
+ <curve x1="49.22" x2="48.46" x3="47.75" y1="30.72" y2="31.08" y3="31.08"/>
+ <curve x1="47.03" x2="46.27" x3="45.69" y1="31.08" y2="30.72" y3="30.18"/>
+ <curve x1="44.65" x2="44.65" x3="45.69" y1="28.93" y2="27.04" y3="25.92"/>
+ <curve x1="46.27" x2="47.03" x3="47.75" y1="25.43" y2="25.07" y3="25.07"/>
+ <close/>
+ <move x="47.69" y="26.96"/>
+ <curve x1="47.87" x2="47.87" x3="47.87" y1="26.96" y2="27.06" y3="27.15"/>
+ <line x="47.87" y="27.64"/>
+ <curve x1="47.87" x2="47.87" x3="47.69" y1="27.73" y2="27.77" y3="27.77"/>
+ <curve x1="47.6" x2="47.56" x3="47.56" y1="27.77" y2="27.73" y3="27.64"/>
+ <line x="47.56" y="27.15"/>
+ <curve x1="47.56" x2="47.6" x3="47.69" y1="27.06" y2="26.96" y3="26.96"/>
+ <close/>
+ <move x="47.69" y="28.04"/>
+ <curve x1="47.87" x2="47.96" x3="47.96" y1="28.04" y2="28.04" y3="28.22"/>
+ <curve x1="47.96" x2="47.87" x3="47.69" y1="28.26" y2="28.35" y3="28.35"/>
+ <curve x1="47.6" x2="47.47" x3="47.47" y1="28.35" y2="28.26" y3="28.22"/>
+ <curve x1="47.47" x2="47.6" x3="47.69" y1="28.04" y2="28.04" y3="28.04"/>
+ <close/>
+ <move x="28.14" y="31.65"/>
+ <curve x1="26.79" x2="25.43" x3="24.06" y1="31.72" y2="31.87" y3="32.12"/>
+ <line x="23.57" y="32.21"/>
+ <line x="23.43" y="32.21"/>
+ <curve x1="21.95" x2="20.97" x3="21.37" y1="32.57" y2="33.77" y3="34.85"/>
+ <curve x1="21.87" x2="23.34" x3="24.91" y1="36.06" y2="36.74" y3="36.47"/>
+ <line x="25.05" y="36.47"/>
+ <line x="25.41" y="36.38"/>
+ <curve x1="28.33" x2="31.29" x3="34.07" y1="35.89" y2="35.89" y3="36.34"/>
+ <curve x1="33.08" x2="32.36" x3="32.18" y1="34.95" y2="33.37" y3="31.71"/>
+ <curve x1="30.84" x2="29.49" x3="28.14" y1="31.6" y2="31.58" y3="31.65"/>
+ <close/>
+ <move x="57.99" y="36.72"/>
+ <curve x1="56.91" x2="55.43" x3="53.73" y1="38.51" y2="39.99" y3="41.16"/>
+ <curve x1="56.1" x2="57.5" x3="57.99" y1="44.75" y2="48.43" y3="51.48"/>
+ <curve x1="58.21" x2="59.56" x3="60.95" y1="52.87" y2="53.77" y3="53.77"/>
+ <line x="61.49" y="53.77"/>
+ <curve x1="63.06" x2="64.22" x3="63.96" y1="53.63" y2="52.15" y3="50.58"/>
+ <curve x1="63.15" x2="61.09" x3="57.99" y1="45.74" y2="40.98" y3="36.72"/>
+ <close/>
+ <move x="28.7" y="40.91"/>
+ <curve x1="27.66" x2="26.6" x3="25.54" y1="40.93" y2="41.05" y3="41.3"/>
+ <curve x1="24.42" x2="23.57" x3="23.93" y1="41.57" y2="42.87" y3="44.08"/>
+ <curve x1="24.16" x2="25.37" x3="26.53" y1="45.34" y2="46.06" y3="45.84"/>
+ <curve x1="32.59" x2="38.65" x3="39.95" y1="44.45" y2="48.35" y3="54.59"/>
+ <curve x1="40.13" x2="40.44" x3="40.93" y1="55.17" y2="55.66" y3="55.97"/>
+ <curve x1="41.43" x2="42.01" x3="42.69" y1="56.33" y2="56.38" y3="56.33"/>
+ <curve x1="43.81" x2="44.57" x3="44.3" y1="55.97" y2="54.85" y3="53.6"/>
+ <curve x1="42.65" x2="35.99" x3="28.7" y1="45.94" y2="40.76" y3="40.91"/>
+ <close/>
+ <move x="50.43" y="43.28"/>
+ <curve x1="49" x2="47.43" x3="45.72" y1="43.77" y2="44.08" y3="44.08"/>
+ <curve x1="45.36" x2="44.95" x3="44.55" y1="44.08" y2="44.09" y3="44.04"/>
+ <curve x1="46.21" x2="47.51" x3="48.14" y1="46.06" y2="48.43" y3="51.08"/>
+ <line x="48.23" y="51.49"/>
+ <line x="48.23" y="51.62"/>
+ <curve x1="48.54" x2="49.93" x3="51.28" y1="52.97" y2="53.78" y3="53.69"/>
+ <curve x1="52.81" x2="53.7" x3="53.39" y1="53.38" y2="52.07" y3="50.68"/>
+ <line x="53.39" y="50.5"/>
+ <line x="53.21" y="49.92"/>
+ <curve x1="52.67" x2="51.69" x3="50.43" y1="47.54" y2="45.34" y3="43.28"/>
+ <close/>
+ <move x="30.14" y="51.8"/>
+ <curve x1="28.62" x2="27.05" x3="26.11" y1="51.53" y2="52.18" y3="53.6"/>
+ <curve x1="24.89" x2="25.48" x3="27.36" y1="55.48" y2="57.95" y3="59.21"/>
+ <curve x1="29.24" x2="31.71" x3="32.93" y1="60.33" y2="59.84" y3="57.95"/>
+ <curve x1="34.09" x2="33.6" x3="31.62" y1="56.07" y2="53.55" y3="52.39"/>
+ <curve x1="31.15" x2="30.65" x3="30.14" y1="52.08" y2="51.89" y3="51.8"/>
+ <close/>
+ <move x="0" y="40.02"/>
+ <curve x1="0" x2="17.95" x3="39.98" y1="17.95" y2="0" y3="0"/>
+ <curve x1="62.1" x2="79.91" x3="79.91" y1="0" y2="17.95" y3="40.02"/>
+ <curve x1="79.91" x2="62.1" x3="39.98" y1="62.14" y2="80" y3="80"/>
+ <curve x1="17.95" x2="0" x3="0" y1="80" y2="62.14" y3="40.02"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="wireless intrusion prevention system" strokewidth="inherit" w="81.21">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="46.51" y="18.34"/>
+ <curve x1="40.36" x2="35.37" x3="35.37" y1="18.34" y2="23.1" y3="28.84"/>
+ <curve x1="35.37" x2="40.36" x3="46.51" y1="34.77" y2="39.34" y3="39.34"/>
+ <curve x1="52.66" x2="57.64" x3="57.64" y1="39.34" y2="34.77" y3="28.84"/>
+ <curve x1="57.64" x2="52.66" x3="46.51" y1="23.1" y2="18.34" y3="18.34"/>
+ <close/>
+ <move x="46.51" y="20.99"/>
+ <curve x1="51.18" x2="54.94" x3="54.94" y1="20.99" y2="24.49" y3="28.84"/>
+ <curve x1="54.94" x2="51.18" x3="46.51" y1="33.29" y2="36.79" y3="36.79"/>
+ <curve x1="41.93" x2="38.16" x3="38.16" y1="36.79" y2="33.29" y3="28.84"/>
+ <curve x1="38.16" x2="41.93" x3="46.51" y1="24.49" y2="20.99" y3="20.99"/>
+ <close/>
+ <move x="29.25" y="21.33"/>
+ <curve x1="27.18" x2="25.1" x3="23.01" y1="21.43" y2="21.76" y3="22.27"/>
+ <curve x1="21.8" x2="20.94" x3="21.21" y1="22.54" y2="23.84" y3="25.32"/>
+ <curve x1="21.53" x2="22.82" x3="24.08" y1="26.71" y2="27.53" y3="27.3"/>
+ <curve x1="27.36" x2="30.64" x3="33.82" y1="26.49" y2="26.31" y3="26.72"/>
+ <curve x1="34.05" x2="34.63" x3="35.4" y1="24.92" y2="23.26" y3="21.73"/>
+ <curve x1="33.38" x2="31.32" x3="29.25" y1="21.35" y2="21.23" y3="21.33"/>
+ <close/>
+ <move x="46.58" y="22.31"/>
+ <line x="46.36" y="22.71"/>
+ <line x="46.27" y="22.8"/>
+ <curve x1="46" x2="44.88" x3="42.19" y1="23.02" y2="24.33" y3="24.33"/>
+ <curve x1="41.78" x2="41.34" x3="41.02" y1="24.33" y2="24.32" y3="24.28"/>
+ <line x="40.61" y="24.28"/>
+ <line x="40.61" y="24.59"/>
+ <curve x1="40.61" x2="40.61" x3="41.33" y1="24.59" y2="26.66" y3="29.08"/>
+ <curve x1="41.69" x2="42" x3="42.68" y1="30.07" y2="31.06" y3="32.05"/>
+ <curve x1="42.9" x2="43.4" x3="44.07" y1="31.74" y2="31.24" y3="30.56"/>
+ <curve x1="43.71" x2="43.57" x3="43.57" y1="29.98" y2="29.49" y3="28.86"/>
+ <curve x1="43.57" x2="43.89" x3="44.39" y1="28.09" y2="27.29" y3="26.66"/>
+ <curve x1="45.69" x2="47.49" x3="48.65" y1="25.5" y2="25.5" y3="26.66"/>
+ <curve x1="49.24" x2="49.55" x3="49.55" y1="27.29" y2="28.09" y3="28.86"/>
+ <curve x1="49.55" x2="49.24" x3="48.65" y1="29.67" y2="30.48" y3="31.06"/>
+ <curve x1="47.67" x2="46.18" x3="45.01" y1="32.14" y2="32.22" y3="31.46"/>
+ <line x="43.4" y="33.21"/>
+ <curve x1="44.21" x2="45.19" x3="46.49" y1="34.11" y2="34.92" y3="35.42"/>
+ <line x="46.58" y="35.42"/>
+ <line x="46.67" y="35.42"/>
+ <curve x1="49.68" x2="51.07" x3="51.84" y1="34.25" y2="31.46" y3="29.08"/>
+ <curve x1="52.42" x2="52.42" x3="52.42" y1="26.66" y2="24.59" y3="24.59"/>
+ <line x="52.42" y="24.28"/>
+ <line x="52.15" y="24.28"/>
+ <curve x1="51.75" x2="51.35" x3="51.03" y1="24.32" y2="24.33" y3="24.33"/>
+ <curve x1="49.46" x2="48.38" x3="47.76" y1="24.33" y2="24.01" y3="23.52"/>
+ <curve x1="47.35" x2="47.17" x3="46.99" y1="23.3" y2="23.11" y3="23.02"/>
+ <curve x1="46.99" x2="46.9" x3="46.86" y1="22.89" y2="22.8" y3="22.8"/>
+ <line x="46.86" y="22.71"/>
+ <line x="46.58" y="22.31"/>
+ <close/>
+ <move x="46.52" y="26.23"/>
+ <curve x1="46.03" x2="45.53" x3="45.22" y1="26.23" y2="26.63" y3="27.03"/>
+ <curve x1="44.77" x2="44.54" x3="44.54" y1="27.44" y2="28.11" y3="28.83"/>
+ <curve x1="44.54" x2="44.77" x3="45.22" y1="29.41" y2="30.09" y3="30.58"/>
+ <curve x1="45.93" x2="47.15" x3="47.91" y1="31.48" y2="31.48" y3="30.58"/>
+ <curve x1="48.31" x2="48.5" x3="48.5" y1="30.09" y2="29.41" y3="28.83"/>
+ <curve x1="48.5" x2="48.31" x3="47.91" y1="28.11" y2="27.44" y3="27.03"/>
+ <curve x1="47.55" x2="47.1" x3="46.52" y1="26.63" y2="26.23" y3="26.23"/>
+ <close/>
+ <move x="29.17" y="31.65"/>
+ <curve x1="27.57" x2="25.95" x3="24.31" y1="31.68" y2="31.86" y3="32.15"/>
+ <curve x1="23.01" x2="22.29" x3="22.52" y1="32.46" y2="33.45" y3="34.57"/>
+ <curve x1="22.83" x2="24.09" x3="25.3" y1="35.56" y2="36.23" y3="36.05"/>
+ <curve x1="29.25" x2="33.24" x3="36.7" y1="35.24" y2="35.55" y3="36.72"/>
+ <curve x1="35.35" x2="34.42" x3="33.92" y1="35.33" y2="33.76" y3="31.97"/>
+ <curve x1="32.35" x2="30.77" x3="29.17" y1="31.72" y2="31.62" y3="31.65"/>
+ <close/>
+ <move x="57.18" y="35.4"/>
+ <curve x1="56.19" x2="55.11" x3="53.72" y1="36.88" y2="38.09" y3="39.08"/>
+ <curve x1="55.69" x2="57.17" x3="57.98" y1="42.13" y2="45.5" y3="49.18"/>
+ <curve x1="58.07" x2="58.48" x3="58.97" y1="49.81" y2="50.3" y3="50.75"/>
+ <curve x1="59.55" x2="60.09" x3="60.77" y1="51.06" y2="51.15" y3="50.97"/>
+ <curve x1="62.16" x2="62.87" x3="62.65" y1="50.75" y2="49.41" y3="48.11"/>
+ <curve x1="61.57" x2="59.69" x3="57.18" y1="43.44" y2="39.17" y3="35.4"/>
+ <close/>
+ <move x="43.24" y="40.67"/>
+ <curve x1="46.51" x2="48.89" x3="49.88" y1="43.59" y2="47.36" y3="51.8"/>
+ <curve x1="49.97" x2="50.46" x3="50.91" y1="52.48" y2="53.01" y3="53.37"/>
+ <curve x1="51.5" x2="52.26" x3="52.8" y1="53.78" y2="53.78" y3="53.69"/>
+ <curve x1="54.19" x2="55.04" x3="54.77" y1="53.38" y2="52.11" y3="50.72"/>
+ <curve x1="53.87" x2="52.3" x3="50.1" y1="47.04" y2="43.59" y3="40.67"/>
+ <curve x1="49.07" x2="47.9" x3="46.69" y1="40.98" y2="41.16" y3="41.16"/>
+ <curve x1="45.52" x2="44.4" x3="43.24" y1="41.16" y2="40.98" y3="40.67"/>
+ <close/>
+ <move x="29.08" y="40.96"/>
+ <curve x1="27.97" x2="26.84" x3="25.72" y1="40.99" y2="41.13" y3="41.39"/>
+ <curve x1="24.41" x2="23.56" x3="23.83" y1="41.66" y2="42.87" y3="44.08"/>
+ <curve x1="24.14" x2="25.45" x3="26.8" y1="45.34" y2="46.06" y3="45.83"/>
+ <curve x1="33.08" x2="39.55" x3="40.94" y1="44.44" y2="48.35" y3="54.59"/>
+ <curve x1="41.12" x2="41.52" x3="42.1" y1="55.26" y2="55.75" y3="55.98"/>
+ <curve x1="42.6" x2="43.13" x3="43.81" y1="56.29" y2="56.38" y3="56.29"/>
+ <curve x1="45.11" x2="45.87" x3="45.51" y1="56.07" y2="54.81" y3="53.6"/>
+ <curve x1="43.82" x2="36.84" x3="29.08" y1="45.94" y2="40.75" y3="40.96"/>
+ <close/>
+ <move x="30.94" y="50.56"/>
+ <curve x1="29.2" x2="27.31" x3="26.27" y1="50.27" y2="51.06" y3="52.71"/>
+ <curve x1="24.88" x2="25.56" x3="27.76" y1="54.82" y2="57.6" y3="58.99"/>
+ <curve x1="29.82" x2="32.69" x3="34.08" y1="60.34" y2="59.75" y3="57.55"/>
+ <curve x1="35.39" x2="34.8" x3="32.6" y1="55.4" y2="52.62" y3="51.23"/>
+ <curve x1="32.09" x2="31.52" x3="30.94" y1="50.88" y2="50.66" y3="50.56"/>
+ <close/>
+ <move x="0" y="40"/>
+ <curve x1="0" x2="18.27" x3="40.63" y1="17.96" y2="0" y3="0"/>
+ <curve x1="63.03" x2="81.21" x3="81.21" y1="0" y2="17.96" y3="40"/>
+ <curve x1="81.21" x2="63.03" x3="40.63" y1="62.13" y2="80" y3="80"/>
+ <curve x1="18.27" x2="0" x3="0" y1="80" y2="62.13" y3="40"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/src/main/webapp/stencils/cisco_safe/design.xml b/src/main/webapp/stencils/cisco_safe/design.xml
new file mode 100644
index 00000000..5a10e09a
--- /dev/null
+++ b/src/main/webapp/stencils/cisco_safe/design.xml
@@ -0,0 +1,7556 @@
+<shapes name="mxGraph.cisco_safe.design">
+<shape aspect="variable" h="70.07" name="access point" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.96"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.96"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ <move x="67.03" y="39.76"/>
+ <curve x1="64.72" x2="63.47" x3="62.22" y1="39.76" y2="37.82" y3="35.6"/>
+ <curve x1="63.55" x2="64.8" x3="67.03" y1="33.16" y2="30.87" y3="30.87"/>
+ <curve x1="68.69" x2="70" x3="71.25" y1="30.87" y2="32.33" y3="35.32"/>
+ <curve x1="71.33" x2="71.39" x3="71.46" y1="35.46" y2="35.52" y3="35.66"/>
+ <curve x1="70.22" x2="68.75" x3="67.03" y1="38.45" y2="39.76" y3="39.76"/>
+ <close/>
+ <move x="56.05" y="39.2"/>
+ <curve x1="54.03" x2="52.72" x3="51.32" y1="39.2" y2="36.98" y3="34.55"/>
+ <curve x1="52.64" x2="53.97" x3="56.05" y1="32.33" y2="30.37" y3="30.37"/>
+ <curve x1="58.06" x2="59.31" x3="60.5" y1="30.37" y2="32.33" y3="34.55"/>
+ <curve x1="60.5" x2="60.42" x3="60.36" y1="34.61" y2="34.69" y3="34.83"/>
+ <curve x1="58.89" x2="57.85" x3="56.05" y1="37.6" y2="39.2" y3="39.2"/>
+ <close/>
+ <move x="44.94" y="39.76"/>
+ <curve x1="42.71" x2="41.4" x3="40.15" y1="39.76" y2="37.82" y3="35.6"/>
+ <curve x1="41.46" x2="42.71" x3="44.94" y1="33.16" y2="30.87" y3="30.87"/>
+ <curve x1="46.88" x2="48.13" x3="49.52" y1="30.87" y2="33.09" y3="35.46"/>
+ <curve x1="49.52" x2="49.52" x3="49.52" y1="35.52" y2="35.52" y3="35.6"/>
+ <curve x1="48.27" x2="46.94" x3="44.94" y1="37.82" y2="39.76" y3="39.76"/>
+ <close/>
+ <move x="34.02" y="39.2"/>
+ <curve x1="32.02" x2="30.83" x3="29.58" y1="39.2" y2="37.05" y3="34.75"/>
+ <curve x1="29.52" x2="29.45" x3="29.45" y1="34.61" y2="34.61" y3="34.55"/>
+ <curve x1="30.69" x2="31.94" x3="34.02" y1="32.33" y2="30.37" y3="30.37"/>
+ <curve x1="36.04" x2="37.3" x3="38.41" y1="30.37" y2="32.33" y3="34.55"/>
+ <curve x1="38.41" x2="38.33" x3="38.27" y1="34.61" y2="34.69" y3="34.83"/>
+ <curve x1="36.81" x2="35.76" x3="34.02" y1="37.6" y2="39.2" y3="39.2"/>
+ <close/>
+ <move x="22.92" y="39.76"/>
+ <curve x1="20.62" x2="19.37" x3="18.13" y1="39.76" y2="37.82" y3="35.6"/>
+ <curve x1="19.37" x2="20.7" x3="22.92" y1="33.16" y2="30.87" y3="30.87"/>
+ <curve x1="25.07" x2="26.32" x3="27.64" y1="30.87" y2="33.16" y3="35.6"/>
+ <curve x1="26.46" x2="25.15" x3="22.92" y1="37.82" y2="39.76" y3="39.76"/>
+ <close/>
+ <move x="11.95" y="39.2"/>
+ <curve x1="9.1" x2="7.79" x3="7.79" y1="39.2" y2="34.89" y3="34.89"/>
+ <curve x1="7.71" x2="7.57" x3="7.5" y1="34.69" y2="34.55" y3="34.41"/>
+ <curve x1="7.99" x2="9.44" x3="11.95" y1="33.16" y2="30.37" y3="30.37"/>
+ <curve x1="13.95" x2="15.21" x3="16.4" y1="30.37" y2="32.33" y3="34.55"/>
+ <curve x1="16.32" x2="16.32" x3="16.26" y1="34.61" y2="34.69" y3="34.83"/>
+ <curve x1="14.8" x2="13.69" x3="11.95" y1="37.6" y2="39.2" y3="39.2"/>
+ <close/>
+ <move x="73.13" y="34.61"/>
+ <curve x1="73.34" x2="73.13" x3="72.57" y1="35.1" y2="35.66" y3="35.86"/>
+ <curve x1="72.51" x2="72.51" x3="72.44" y1="35.86" y2="35.86" y3="35.86"/>
+ <curve x1="71.46" x2="69.86" x3="67.03" y1="38.17" y2="40.73" y3="40.73"/>
+ <curve x1="64.38" x2="62.85" x3="61.67" y1="40.73" y2="38.86" y3="36.71"/>
+ <curve x1="60.42" x2="58.82" x3="56.05" y1="39" y2="41.16" y3="41.16"/>
+ <curve x1="53.26" x2="51.53" x3="50.15" y1="41.16" y2="38.93" y3="36.57"/>
+ <curve x1="48.82" x2="47.36" x3="44.94" y1="38.79" y2="40.73" y3="40.73"/>
+ <curve x1="42.29" x2="40.83" x3="39.58" y1="40.73" y2="38.86" y3="36.71"/>
+ <curve x1="38.33" x2="36.81" x3="34.02" y1="39" y2="41.16" y3="41.16"/>
+ <curve x1="31.17" x2="29.66" x3="28.26" y1="41.16" y2="38.93" y3="36.63"/>
+ <curve x1="27.01" x2="25.49" x3="22.92" y1="38.86" y2="40.73" y3="40.73"/>
+ <curve x1="20.28" x2="18.74" x3="17.57" y1="40.73" y2="38.86" y3="36.71"/>
+ <curve x1="16.32" x2="14.72" x3="11.95" y1="39" y2="41.16" y3="41.16"/>
+ <curve x1="7.5" x2="5.83" x3="5.77" y1="41.16" y2="35.66" y3="35.38"/>
+ <curve x1="5.56" x2="5.91" x3="6.45" y1="34.83" y2="34.35" y3="34.21"/>
+ <curve x1="6.45" x2="6.45" x3="6.45" y1="34.21" y2="34.21" y3="34.21"/>
+ <curve x1="7.08" x2="8.68" x3="11.95" y1="32.67" y2="29.4" y3="29.4"/>
+ <curve x1="14.31" x2="15.77" x3="16.94" y1="29.4" y2="31.28" y3="33.44"/>
+ <curve x1="18.26" x2="19.93" x3="22.92" y1="31.14" y2="28.91" y3="28.91"/>
+ <curve x1="25.84" x2="27.5" x3="28.89" y1="28.91" y2="31.14" y3="33.5"/>
+ <curve x1="30.14" x2="31.6" x3="34.02" y1="31.36" y2="29.4" y3="29.4"/>
+ <curve x1="36.39" x2="37.78" x3="39.03" y1="29.4" y2="31.28" y3="33.44"/>
+ <curve x1="40.35" x2="41.95" x3="44.94" y1="31.14" y2="28.91" y3="28.91"/>
+ <curve x1="47.71" x2="49.3" x3="50.76" y1="28.91" y2="31.14" y3="33.58"/>
+ <curve x1="52.09" x2="53.61" x3="56.05" y1="31.36" y2="29.4" y3="29.4"/>
+ <curve x1="58.48" x2="59.87" x3="61.11" y1="29.4" y2="31.28" y3="33.44"/>
+ <curve x1="62.44" x2="64.04" x3="67.03" y1="31.14" y2="28.91" y3="28.91"/>
+ <curve x1="70.42" x2="72.16" x3="73.13" y1="28.91" y2="32.12" y3="34.61"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="71.06" name="aci controller" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="71.06"/>
+ <line x="80" y="35.45"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="35.45"/>
+ <line x="20.07" y="71.06"/>
+ <line x="60.01" y="71.06"/>
+ <line x="60.01" y="71.06"/>
+ <close/>
+ <move x="53.62" y="6.77"/>
+ <curve x1="56.06" x2="57.47" x3="57.47" y1="6.77" y2="8.67" y3="10.56"/>
+ <line x="57.47" y="60.39"/>
+ <curve x1="57.47" x2="55.81" x3="53.63" y1="62.61" y2="64.29" y3="64.29"/>
+ <line x="27.53" y="64.29"/>
+ <curve x1="25.41" x2="23.65" x3="23.65" y1="64.29" y2="62.58" y3="60.46"/>
+ <line x="23.66" y="25.94"/>
+ <curve x1="23.08" x2="22.53" x3="22.53" y1="25.94" y2="25.48" y3="24.79"/>
+ <curve x1="22.53" x2="22.88" x3="23.67" y1="24.38" y2="23.69" y3="23.69"/>
+ <line x="23.66" y="10.69"/>
+ <curve x1="23.66" x2="25.3" x3="27.64" y1="8.52" y2="6.77" y3="6.77"/>
+ <line x="53.62" y="6.77"/>
+ <close/>
+ <move x="27.58" y="9.03"/>
+ <curve x1="26.68" x2="25.92" x3="25.92" y1="9.03" y2="9.68" y3="10.65"/>
+ <line x="25.92" y="23.67"/>
+ <line x="55.21" y="23.69"/>
+ <line x="55.21" y="10.62"/>
+ <curve x1="55.21" x2="54.32" x3="53.69" y1="9.52" y2="9.03" y3="9.03"/>
+ <line x="27.58" y="9.03"/>
+ <close/>
+ <move x="30.36" y="14.67"/>
+ <line x="49.63" y="14.67"/>
+ <curve x1="50.33" x2="50.73" x3="50.73" y1="14.67" y2="15.31" y3="15.79"/>
+ <curve x1="50.73" x2="50.27" x3="49.59" y1="16.39" y2="16.91" y3="16.91"/>
+ <line x="30.36" y="16.92"/>
+ <curve x1="29.9" x2="29.29" x3="29.29" y1="16.92" y2="16.51" y3="15.78"/>
+ <curve x1="29.29" x2="29.85" x3="30.36" y1="15.14" y2="14.67" y3="14.67"/>
+ <close/>
+ <move x="55.21" y="25.94"/>
+ <line x="25.92" y="25.96"/>
+ <line x="25.92" y="60.5"/>
+ <curve x1="25.92" x2="26.52" x3="27.53" y1="61.2" y2="62.04" y3="62.04"/>
+ <line x="53.69" y="62.03"/>
+ <curve x1="54.59" x2="55.21" x3="55.21" y1="62.03" y2="61.3" y3="60.47"/>
+ <line x="55.21" y="25.94"/>
+ <close/>
+ <move x="34.79" y="38.34"/>
+ <line x="46.41" y="38.34"/>
+ <curve x1="48.17" x2="49.59" x3="49.59" y1="38.34" y2="39.84" y3="41.6"/>
+ <line x="49.59" y="47.3"/>
+ <line x="48.81" y="46.31"/>
+ <line x="47.89" y="47.38"/>
+ <line x="47.89" y="41.6"/>
+ <curve x1="47.89" x2="47.25" x3="46.41" y1="40.74" y2="40.1" y3="40.1"/>
+ <line x="34.79" y="40.1"/>
+ <curve x1="33.95" x2="33.31" x3="33.31" y1="40.1" y2="40.74" y3="41.6"/>
+ <line x="33.31" y="43.99"/>
+ <line x="33.81" y="43.99"/>
+ <line x="36.06" y="43.99"/>
+ <line x="32.68" y="47.38"/>
+ <line x="29.3" y="43.99"/>
+ <line x="31.55" y="43.99"/>
+ <line x="31.55" y="41.6"/>
+ <curve x1="31.55" x2="33.03" x3="34.79" y1="39.84" y2="38.34" y3="38.34"/>
+ <close/>
+ <move x="40.28" y="43.98"/>
+ <curve x1="41.12" x2="41.76" x3="42.19" y1="43.98" y2="44.2" y3="44.55"/>
+ <curve x1="42.61" x2="42.82" x3="42.82" y1="44.9" y2="45.47" y3="46.11"/>
+ <curve x1="42.82" x2="42.68" x3="42.25" y1="46.74" y2="47.3" y3="47.73"/>
+ <curve x1="41.84" x2="41.06" x3="40.28" y1="48.22" y2="48.42" y3="48.42"/>
+ <curve x1="40.07" x2="39.93" x3="39.79" y1="48.42" y2="48.36" y3="48.36"/>
+ <line x="39.79" y="50.76"/>
+ <line x="38.31" y="50.76"/>
+ <line x="38.31" y="44.12"/>
+ <curve x1="38.81" x2="39.44" x3="40.28" y1="44.06" y2="43.98" y3="43.98"/>
+ <close/>
+ <move x="39.79" y="45.19"/>
+ <line x="39.79" y="47.23"/>
+ <line x="40.22" y="47.23"/>
+ <curve x1="41" x2="41.49" x3="41.49" y1="47.23" y2="46.81" y3="46.17"/>
+ <curve x1="41.49" x2="41.06" x3="40.36" y1="45.54" y2="45.19" y3="45.19"/>
+ <line x="39.79" y="45.19"/>
+ <close/>
+ <move x="31.55" y="47.37"/>
+ <line x="32.47" y="48.43"/>
+ <line x="33.31" y="47.37"/>
+ <line x="33.31" y="53.22"/>
+ <curve x1="33.31" x2="33.95" x3="34.79" y1="54.07" y2="54.7" y3="54.7"/>
+ <line x="46.41" y="54.7"/>
+ <curve x1="47.25" x2="47.89" x3="47.89" y1="54.7" y2="54.07" y3="53.22"/>
+ <line x="47.89" y="51.89"/>
+ <line x="47.33" y="51.89"/>
+ <line x="45.07" y="51.89"/>
+ <line x="48.45" y="47.38"/>
+ <line x="51.84" y="51.89"/>
+ <line x="49.59" y="51.89"/>
+ <line x="49.59" y="53.22"/>
+ <curve x1="49.59" x2="48.17" x3="46.41" y1="54.99" y2="56.4" y3="56.4"/>
+ <line x="34.79" y="56.4"/>
+ <curve x1="33.03" x2="31.55" x3="31.55" y1="56.4" y2="54.99" y3="53.22"/>
+ <line x="31.55" y="47.37"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="aci leaf switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.96"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.96"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ <move x="26.81" y="3.34"/>
+ <line x="31.12" y="8.13"/>
+ <line x="28.2" y="8.13"/>
+ <line x="28.2" y="16.68"/>
+ <line x="53.47" y="16.68"/>
+ <curve x1="57.64" x2="61.11" x3="61.11" y1="16.68" y2="20.3" y3="24.75"/>
+ <curve x1="61.11" x2="57.71" x3="53.55" y1="29.19" y2="32.81" y3="32.81"/>
+ <line x="53.55" y="35.59"/>
+ <line x="48.62" y="31.35"/>
+ <line x="53.55" y="27.05"/>
+ <line x="53.55" y="29.82"/>
+ <curve x1="56.18" x2="58.34" x3="58.34" y1="29.82" y2="27.53" y3="24.75"/>
+ <curve x1="58.34" x2="56.12" x3="53.47" y1="21.96" y2="19.67" y3="19.67"/>
+ <line x="28.2" y="19.67"/>
+ <line x="28.2" y="23.29"/>
+ <line x="28.2" y="26.97"/>
+ <line x="28.2" y="28.64"/>
+ <line x="31.12" y="28.64"/>
+ <line x="26.81" y="33.37"/>
+ <line x="22.22" y="28.64"/>
+ <line x="25.21" y="28.64"/>
+ <line x="25.21" y="26.97"/>
+ <line x="25.21" y="23.29"/>
+ <line x="25.21" y="8.13"/>
+ <line x="22.22" y="8.13"/>
+ <line x="26.81" y="3.34"/>
+ <close/>
+ <move x="36.25" y="24.47"/>
+ <line x="43.89" y="24.47"/>
+ <curve x1="45.42" x2="46.67" x3="46.67" y1="24.47" y2="25.92" y3="27.6"/>
+ <line x="46.67" y="35.86"/>
+ <curve x1="46.67" x2="45.42" x3="43.89" y1="37.54" y2="38.93" y3="38.93"/>
+ <line x="36.25" y="38.93"/>
+ <curve x1="34.65" x2="33.34" x3="33.34" y1="38.93" y2="37.54" y3="35.86"/>
+ <line x="33.34" y="27.6"/>
+ <curve x1="33.34" x2="34.65" x3="36.25" y1="25.92" y2="24.47" y3="24.47"/>
+ <close/>
+ <move x="36.25" y="26.2"/>
+ <curve x1="35.5" x2="34.93" x3="34.93" y1="26.2" y2="26.83" y3="27.6"/>
+ <line x="34.93" y="35.86"/>
+ <curve x1="34.93" x2="35.5" x3="36.25" y1="36.63" y2="37.34" y3="37.34"/>
+ <line x="43.89" y="37.34"/>
+ <curve x1="44.59" x2="45.22" x3="45.22" y1="37.34" y2="36.63" y3="35.86"/>
+ <line x="45.22" y="27.6"/>
+ <curve x1="45.22" x2="44.59" x3="43.89" y1="26.83" y2="26.2" y3="26.2"/>
+ <line x="36.25" y="26.2"/>
+ <close/>
+ <move x="39.72" y="27.8"/>
+ <curve x1="40.55" x2="41.18" x3="41.6" y1="27.8" y2="28.02" y3="28.36"/>
+ <curve x1="41.94" x2="42.23" x3="42.23" y1="28.71" y2="29.19" y3="29.9"/>
+ <curve x1="42.23" x2="42.02" x3="41.66" y1="30.52" y2="31.07" y3="31.49"/>
+ <curve x1="41.18" x2="40.49" x3="39.66" y1="31.98" y2="32.18" y3="32.18"/>
+ <curve x1="39.52" x2="39.31" x3="39.17" y1="32.18" y2="32.12" y3="32.12"/>
+ <line x="39.17" y="34.48"/>
+ <line x="37.78" y="34.48"/>
+ <line x="37.78" y="27.94"/>
+ <curve x1="38.27" x2="38.83" x3="39.72" y1="27.88" y2="27.8" y3="27.8"/>
+ <close/>
+ <move x="39.17" y="28.99"/>
+ <line x="39.17" y="31.01"/>
+ <line x="39.66" y="31.01"/>
+ <curve x1="40.43" x2="40.83" x3="40.83" y1="31.01" y2="30.58" y3="29.96"/>
+ <curve x1="40.83" x2="40.49" x3="39.8" y1="29.33" y2="28.99" y3="28.99"/>
+ <line x="39.17" y="28.99"/>
+ <close/>
+ <move x="7.78" y="42.27"/>
+ <line x="71.12" y="42.27"/>
+ <line x="71.12" y="43.38"/>
+ <line x="7.78" y="43.38"/>
+ <line x="7.78" y="42.27"/>
+ <close/>
+ <move x="28.89" y="47.83"/>
+ <line x="37.78" y="47.83"/>
+ <line x="37.78" y="52.28"/>
+ <line x="37.74" y="52.28"/>
+ <line x="40.56" y="53.98"/>
+ <line x="43.38" y="52.28"/>
+ <line x="42.23" y="52.28"/>
+ <line x="42.23" y="47.83"/>
+ <line x="51.12" y="47.83"/>
+ <line x="51.12" y="52.28"/>
+ <line x="48.77" y="52.28"/>
+ <line x="53.01" y="60.07"/>
+ <line x="57.78" y="60.07"/>
+ <line x="57.78" y="64.51"/>
+ <line x="48.89" y="64.51"/>
+ <line x="48.89" y="60.32"/>
+ <line x="44.14" y="57.45"/>
+ <line x="42.71" y="60.07"/>
+ <line x="44.45" y="60.07"/>
+ <line x="44.45" y="64.51"/>
+ <line x="35.56" y="64.51"/>
+ <line x="35.56" y="60.07"/>
+ <line x="38.35" y="60.07"/>
+ <line x="36.95" y="57.47"/>
+ <line x="31.12" y="61"/>
+ <line x="31.12" y="64.51"/>
+ <line x="22.22" y="64.51"/>
+ <line x="22.22" y="60.07"/>
+ <line x="28.1" y="60.07"/>
+ <line x="32.35" y="52.28"/>
+ <line x="28.89" y="52.28"/>
+ <line x="28.89" y="47.83"/>
+ <close/>
+ <move x="33.61" y="52.28"/>
+ <line x="29.37" y="60.07"/>
+ <line x="30.51" y="60.07"/>
+ <line x="36.43" y="56.49"/>
+ <line x="34.16" y="52.28"/>
+ <line x="33.61" y="52.28"/>
+ <close/>
+ <move x="35.43" y="52.28"/>
+ <line x="37.38" y="55.91"/>
+ <line x="39.49" y="54.64"/>
+ <line x="35.59" y="52.28"/>
+ <line x="35.43" y="52.28"/>
+ <close/>
+ <move x="45.53" y="52.28"/>
+ <line x="41.64" y="54.64"/>
+ <line x="43.72" y="55.89"/>
+ <line x="45.68" y="52.28"/>
+ <line x="45.53" y="52.28"/>
+ <close/>
+ <move x="46.95" y="52.28"/>
+ <line x="44.67" y="56.47"/>
+ <line x="50.61" y="60.07"/>
+ <line x="51.75" y="60.07"/>
+ <line x="47.5" y="52.28"/>
+ <line x="46.95" y="52.28"/>
+ <close/>
+ <move x="40.56" y="55.29"/>
+ <line x="37.91" y="56.89"/>
+ <line x="39.62" y="60.07"/>
+ <line x="41.44" y="60.07"/>
+ <line x="43.18" y="56.87"/>
+ <line x="40.56" y="55.29"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="71.06" name="aci spine switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.14" y="71.06"/>
+ <line x="80" y="35.45"/>
+ <line x="60.14" y="0"/>
+ <line x="19.92" y="0"/>
+ <line x="0" y="35.45"/>
+ <line x="19.92" y="71.06"/>
+ <line x="60.14" y="71.06"/>
+ <line x="60.14" y="71.06"/>
+ <close/>
+ <move x="28.17" y="6.77"/>
+ <line x="37.19" y="6.77"/>
+ <line x="37.19" y="11.28"/>
+ <line x="37.1" y="11.28"/>
+ <line x="40.01" y="13.06"/>
+ <line x="42.91" y="11.28"/>
+ <line x="41.69" y="11.28"/>
+ <line x="41.69" y="6.77"/>
+ <line x="50.71" y="6.77"/>
+ <line x="50.71" y="11.28"/>
+ <line x="48.33" y="11.28"/>
+ <line x="52.63" y="19.18"/>
+ <line x="57.47" y="19.18"/>
+ <line x="57.47" y="23.69"/>
+ <line x="48.45" y="23.69"/>
+ <line x="48.45" y="19.55"/>
+ <line x="43.6" y="16.58"/>
+ <line x="42.18" y="19.18"/>
+ <line x="43.95" y="19.18"/>
+ <line x="43.95" y="23.69"/>
+ <line x="34.93" y="23.69"/>
+ <line x="34.93" y="19.18"/>
+ <line x="37.83" y="19.18"/>
+ <line x="36.41" y="16.58"/>
+ <line x="30.43" y="20.24"/>
+ <line x="30.43" y="23.69"/>
+ <line x="21.41" y="23.69"/>
+ <line x="21.41" y="19.18"/>
+ <line x="27.37" y="19.18"/>
+ <line x="31.68" y="11.28"/>
+ <line x="28.17" y="11.28"/>
+ <line x="28.17" y="6.77"/>
+ <close/>
+ <move x="32.96" y="11.28"/>
+ <line x="28.66" y="19.18"/>
+ <line x="30" y="19.18"/>
+ <line x="35.87" y="15.59"/>
+ <line x="33.53" y="11.28"/>
+ <line x="32.96" y="11.28"/>
+ <close/>
+ <move x="34.81" y="11.28"/>
+ <line x="36.84" y="15"/>
+ <line x="38.92" y="13.72"/>
+ <line x="34.94" y="11.28"/>
+ <line x="34.81" y="11.28"/>
+ <close/>
+ <move x="45.08" y="11.28"/>
+ <line x="41.09" y="13.72"/>
+ <line x="43.18" y="15"/>
+ <line x="45.2" y="11.28"/>
+ <line x="45.08" y="11.28"/>
+ <close/>
+ <move x="46.49" y="11.28"/>
+ <line x="44.14" y="15.59"/>
+ <line x="50.01" y="19.18"/>
+ <line x="51.35" y="19.18"/>
+ <line x="47.05" y="11.28"/>
+ <line x="46.49" y="11.28"/>
+ <close/>
+ <move x="40.01" y="14.38"/>
+ <line x="37.37" y="15.99"/>
+ <line x="39.11" y="19.18"/>
+ <line x="40.9" y="19.18"/>
+ <line x="42.64" y="16"/>
+ <line x="40.01" y="14.38"/>
+ <close/>
+ <move x="7.89" y="29.33"/>
+ <line x="71" y="29.33"/>
+ <line x="71" y="30.46"/>
+ <line x="7.89" y="30.46"/>
+ <line x="7.89" y="29.33"/>
+ <close/>
+ <move x="24.16" y="31.59"/>
+ <line x="28.17" y="36.65"/>
+ <line x="25.57" y="36.65"/>
+ <line x="25.57" y="45.12"/>
+ <line x="51.7" y="45.12"/>
+ <curve x1="56.13" x2="59.72" x3="59.72" y1="45.12" y2="48.58" y3="52.8"/>
+ <curve x1="59.72" x2="56.13" x3="51.76" y1="57.02" y2="60.48" y3="60.48"/>
+ <line x="51.76" y="63.17"/>
+ <line x="46.62" y="59.15"/>
+ <line x="51.76" y="54.99"/>
+ <line x="51.76" y="57.66"/>
+ <curve x1="54.57" x2="56.83" x3="56.83" y1="57.66" y2="55.48" y3="52.8"/>
+ <curve x1="56.83" x2="54.51" x3="51.7" y1="50.19" y2="47.94" y3="47.94"/>
+ <line x="25.57" y="47.94"/>
+ <line x="25.57" y="51.67"/>
+ <line x="25.57" y="55.4"/>
+ <line x="25.57" y="57.02"/>
+ <line x="28.17" y="57.02"/>
+ <line x="24.16" y="62.04"/>
+ <line x="20.28" y="57.02"/>
+ <line x="22.97" y="57.02"/>
+ <line x="22.97" y="55.4"/>
+ <line x="22.97" y="51.67"/>
+ <line x="22.97" y="36.65"/>
+ <line x="20.28" y="36.65"/>
+ <line x="24.16" y="31.59"/>
+ <close/>
+ <move x="33.6" y="51.88"/>
+ <line x="41.98" y="51.88"/>
+ <curve x1="43.73" x2="45.08" x3="45.08" y1="51.88" y2="53.36" y3="55.06"/>
+ <line x="45.08" y="63.44"/>
+ <curve x1="45.08" x2="43.73" x3="41.98" y1="65.14" y2="66.55" y3="66.55"/>
+ <line x="33.6" y="66.55"/>
+ <curve x1="31.9" x2="30.43" x3="30.43" y1="66.55" y2="65.14" y3="63.44"/>
+ <line x="30.43" y="55.06"/>
+ <curve x1="30.43" x2="31.9" x3="33.6" y1="53.36" y2="51.88" y3="51.88"/>
+ <close/>
+ <move x="33.6" y="53.58"/>
+ <curve x1="32.82" x2="32.19" x3="32.19" y1="53.58" y2="54.28" y3="55.06"/>
+ <line x="32.19" y="63.44"/>
+ <curve x1="32.19" x2="32.82" x3="33.6" y1="64.22" y2="64.85" y3="64.85"/>
+ <line x="41.98" y="64.85"/>
+ <curve x1="42.82" x2="43.46" x3="43.46" y1="64.85" y2="64.22" y3="63.44"/>
+ <line x="43.46" y="55.06"/>
+ <curve x1="43.46" x2="42.82" x3="41.98" y1="54.28" y2="53.58" y3="53.58"/>
+ <line x="33.6" y="53.58"/>
+ <close/>
+ <move x="37.33" y="55.26"/>
+ <curve x1="38.46" x2="39.23" x3="39.79" y1="55.26" y2="55.54" y3="55.97"/>
+ <curve x1="40.22" x2="40.57" x3="40.57" y1="56.32" y2="56.96" y3="57.8"/>
+ <curve x1="40.57" x2="40.36" x3="39.87" y1="58.51" y2="59.21" y3="59.64"/>
+ <curve x1="39.3" x2="38.38" x3="37.33" y1="60.2" y2="60.42" y3="60.42"/>
+ <line x="36.69" y="60.42"/>
+ <line x="36.69" y="63.17"/>
+ <line x="34.93" y="63.17"/>
+ <line x="34.93" y="55.48"/>
+ <curve x1="35.49" x2="36.27" x3="37.33" y1="55.4" y2="55.26" y3="55.26"/>
+ <close/>
+ <move x="36.69" y="56.67"/>
+ <line x="36.69" y="59.07"/>
+ <line x="37.33" y="59.07"/>
+ <curve x1="38.23" x2="38.8" x3="38.8" y1="59.07" y2="58.58" y3="57.8"/>
+ <curve x1="38.8" x2="38.31" x3="37.47" y1="57.02" y2="56.67" y3="56.67"/>
+ <line x="36.69" y="56.67"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="actor 1" strokewidth="inherit" w="37.36">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="19.54" y="0"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="19.51" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="19.48" x-axis-rotation="0" y="0"/>
+ <line x="18.75" y="0.06"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="18.67" x-axis-rotation="0" y="0.08"/>
+ <line x="17.91" y="0.3"/>
+ <line x="17.16" y="0.5"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="17.07" x-axis-rotation="0" y="0.54"/>
+ <line x="16.35" y="0.92"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="16.32" x-axis-rotation="0" y="0.94"/>
+ <line x="15.67" y="1.38"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="15.64" x-axis-rotation="0" y="1.41"/>
+ <line x="14.98" y="1.95"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="14.91" x-axis-rotation="0" y="2.01"/>
+ <line x="14.43" y="2.61"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="14.41" x-axis-rotation="0" y="2.62"/>
+ <line x="13.93" y="3.27"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.89" x-axis-rotation="0" y="3.35"/>
+ <line x="13.56" y="4.06"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.55" x-axis-rotation="0" y="4.09"/>
+ <line x="13.28" y="4.8"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.26" x-axis-rotation="0" y="4.86"/>
+ <line x="13.09" y="5.68"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.08" x-axis-rotation="0" y="5.74"/>
+ <line x="13.03" y="6.55"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.03" x-axis-rotation="0" y="6.61"/>
+ <line x="13.08" y="7.37"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.09" x-axis-rotation="0" y="7.43"/>
+ <line x="13.26" y="8.19"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.27" x-axis-rotation="0" y="8.24"/>
+ <line x="13.54" y="9.01"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.56" x-axis-rotation="0" y="9.04"/>
+ <line x="13.89" y="9.8"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="13.95" x-axis-rotation="0" y="9.9"/>
+ <line x="14.42" y="10.5"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="14.43" x-axis-rotation="0" y="10.5"/>
+ <line x="14.92" y="11.09"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="14.96" x-axis-rotation="0" y="11.13"/>
+ <line x="15.62" y="11.74"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="15.69" x-axis-rotation="0" y="11.79"/>
+ <line x="16.34" y="12.17"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="16.35" x-axis-rotation="0" y="12.18"/>
+ <line x="17.07" y="12.55"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="17.12" x-axis-rotation="0" y="12.58"/>
+ <line x="17.88" y="12.86"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="17.94" x-axis-rotation="0" y="12.88"/>
+ <line x="18.7" y="13.04"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="18.79" x-axis-rotation="0" y="13.05"/>
+ <line x="19.55" y="13.05"/>
+ <line x="20.36" y="13.05"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="20.44" x-axis-rotation="0" y="13.04"/>
+ <line x="21.26" y="12.88"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="21.33" x-axis-rotation="0" y="12.86"/>
+ <line x="22.04" y="12.58"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="22.08" x-axis-rotation="0" y="12.56"/>
+ <line x="22.84" y="12.18"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="22.86" x-axis-rotation="0" y="12.17"/>
+ <line x="23.51" y="11.79"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="23.6" x-axis-rotation="0" y="11.72"/>
+ <line x="24.2" y="11.12"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="24.21" x-axis-rotation="0" y="11.11"/>
+ <line x="24.75" y="10.52"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="24.78" x-axis-rotation="0" y="10.48"/>
+ <line x="25.22" y="9.88"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.27" x-axis-rotation="0" y="9.79"/>
+ <line x="25.59" y="9.04"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.6" x-axis-rotation="0" y="9.01"/>
+ <line x="25.87" y="8.24"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.88" x-axis-rotation="0" y="8.19"/>
+ <line x="26.05" y="7.43"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="26.07" x-axis-rotation="0" y="7.34"/>
+ <line x="26.07" y="6.58"/>
+ <line x="26.07" y="5.77"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="26.06" x-axis-rotation="0" y="5.68"/>
+ <line x="25.88" y="4.86"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.87" x-axis-rotation="0" y="4.8"/>
+ <line x="25.6" y="4.09"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.59" x-axis-rotation="0" y="4.06"/>
+ <line x="25.27" y="3.35"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="25.23" x-axis-rotation="0" y="3.29"/>
+ <line x="24.79" y="2.64"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="24.75" x-axis-rotation="0" y="2.59"/>
+ <line x="24.21" y="1.99"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="24.18" x-axis-rotation="0" y="1.96"/>
+ <line x="23.58" y="1.42"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="23.54" x-axis-rotation="0" y="1.38"/>
+ <line x="22.89" y="0.94"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="22.84" x-axis-rotation="0" y="0.91"/>
+ <line x="22.08" y="0.54"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="22.01" x-axis-rotation="0" y="0.51"/>
+ <line x="21.3" y="0.3"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="21.29" x-axis-rotation="0" y="0.3"/>
+ <line x="20.47" y="0.08"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="20.39" x-axis-rotation="0" y="0.06"/>
+ <line x="19.63" y="0"/>
+ <line x="19.62" y="0"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="19.55" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="0.43" ry="0.43" sweep-flag="0" x="19.54" x-axis-rotation="0" y="0"/>
+ <close/>
+ <move x="24.49" y="13.92"/>
+ <line x="13.03" y="13.97"/>
+ <line x="12.97" y="13.97"/>
+ <line x="12.82" y="14.03"/>
+ <line x="12.48" y="14.13"/>
+ <line x="12.11" y="14.24"/>
+ <line x="11.68" y="14.35"/>
+ <line x="11.19" y="14.52"/>
+ <line x="10.64" y="14.73"/>
+ <line x="10.1" y="15"/>
+ <line x="9.61" y="15.28"/>
+ <line x="9.07" y="15.6"/>
+ <line x="8.69" y="15.93"/>
+ <line x="8.25" y="16.31"/>
+ <line x="7.87" y="16.75"/>
+ <line x="7.55" y="17.18"/>
+ <line x="7.22" y="17.62"/>
+ <line x="6.95" y="18"/>
+ <line x="6.73" y="18.42"/>
+ <line x="6.57" y="18.69"/>
+ <line x="6.4" y="18.98"/>
+ <line x="6.35" y="19.13"/>
+ <line x="6.3" y="19.18"/>
+ <line x="0.05" y="39.29"/>
+ <line x="0.05" y="39.35"/>
+ <line x="0.05" y="39.47"/>
+ <line x="0" y="39.67"/>
+ <line x="0" y="39.95"/>
+ <line x="0.05" y="40.22"/>
+ <line x="0.11" y="40.54"/>
+ <line x="0.22" y="40.92"/>
+ <line x="0.33" y="41.25"/>
+ <line x="0.49" y="41.63"/>
+ <line x="0.82" y="42.01"/>
+ <line x="1.14" y="42.28"/>
+ <line x="1.58" y="42.56"/>
+ <line x="2.07" y="42.77"/>
+ <line x="2.66" y="42.94"/>
+ <line x="3.15" y="42.99"/>
+ <line x="3.59" y="42.94"/>
+ <line x="3.97" y="42.77"/>
+ <line x="4.34" y="42.56"/>
+ <line x="4.61" y="42.34"/>
+ <line x="4.88" y="42.07"/>
+ <line x="5.05" y="41.74"/>
+ <line x="5.26" y="41.52"/>
+ <line x="5.32" y="41.25"/>
+ <line x="5.44" y="41.09"/>
+ <line x="5.48" y="40.98"/>
+ <line x="5.48" y="40.92"/>
+ <line x="10.7" y="23.37"/>
+ <line x="11.99" y="23.37"/>
+ <line x="3.21" y="54.24"/>
+ <line x="11.46" y="54.24"/>
+ <line x="11.51" y="77.5"/>
+ <line x="11.57" y="77.55"/>
+ <line x="11.57" y="77.66"/>
+ <line x="11.57" y="77.82"/>
+ <line x="11.68" y="78.1"/>
+ <line x="11.79" y="78.31"/>
+ <line x="11.88" y="78.64"/>
+ <line x="12.11" y="78.91"/>
+ <line x="12.37" y="79.18"/>
+ <line x="12.66" y="79.46"/>
+ <line x="13.03" y="79.67"/>
+ <line x="13.46" y="79.84"/>
+ <line x="13.95" y="80"/>
+ <line x="14.55" y="80"/>
+ <line x="15.2" y="80"/>
+ <line x="15.74" y="79.89"/>
+ <line x="16.18" y="79.73"/>
+ <line x="16.56" y="79.56"/>
+ <line x="16.89" y="79.29"/>
+ <line x="17.1" y="79.07"/>
+ <line x="17.32" y="78.75"/>
+ <line x="17.48" y="78.48"/>
+ <line x="17.59" y="78.26"/>
+ <line x="17.7" y="77.99"/>
+ <line x="17.7" y="77.82"/>
+ <line x="17.76" y="77.66"/>
+ <line x="17.76" y="77.55"/>
+ <line x="17.76" y="77.5"/>
+ <line x="17.76" y="54.08"/>
+ <line x="19.59" y="54.08"/>
+ <line x="19.59" y="77.5"/>
+ <line x="19.59" y="77.55"/>
+ <line x="19.59" y="77.66"/>
+ <line x="19.66" y="77.82"/>
+ <line x="19.71" y="78.1"/>
+ <line x="19.88" y="78.31"/>
+ <line x="19.98" y="78.64"/>
+ <line x="20.2" y="78.91"/>
+ <line x="20.46" y="79.18"/>
+ <line x="20.8" y="79.46"/>
+ <line x="21.12" y="79.67"/>
+ <line x="21.61" y="79.89"/>
+ <line x="22.09" y="80"/>
+ <line x="22.69" y="80"/>
+ <line x="23.35" y="80"/>
+ <line x="23.89" y="79.89"/>
+ <line x="24.32" y="79.67"/>
+ <line x="24.7" y="79.46"/>
+ <line x="25.03" y="79.18"/>
+ <line x="25.3" y="78.91"/>
+ <line x="25.52" y="78.64"/>
+ <line x="25.68" y="78.31"/>
+ <line x="25.79" y="78.1"/>
+ <line x="25.85" y="77.82"/>
+ <line x="25.9" y="77.66"/>
+ <line x="25.95" y="77.55"/>
+ <line x="25.95" y="77.5"/>
+ <line x="25.9" y="54.3"/>
+ <line x="34.15" y="54.24"/>
+ <line x="25.14" y="23.32"/>
+ <line x="26.66" y="23.26"/>
+ <line x="32.14" y="41.36"/>
+ <line x="32.14" y="41.41"/>
+ <line x="32.25" y="41.52"/>
+ <line x="32.41" y="41.74"/>
+ <line x="32.58" y="42.01"/>
+ <line x="32.79" y="42.23"/>
+ <line x="33.07" y="42.5"/>
+ <line x="33.39" y="42.77"/>
+ <line x="33.77" y="42.94"/>
+ <line x="34.21" y="43.05"/>
+ <line x="34.64" y="43.1"/>
+ <line x="35.13" y="43.05"/>
+ <line x="35.67" y="42.88"/>
+ <line x="36.16" y="42.61"/>
+ <line x="36.53" y="42.28"/>
+ <line x="36.87" y="41.96"/>
+ <line x="37.09" y="41.58"/>
+ <line x="37.24" y="41.25"/>
+ <line x="37.36" y="40.87"/>
+ <line x="37.36" y="40.49"/>
+ <line x="37.36" y="40.22"/>
+ <line x="37.36" y="39.95"/>
+ <line x="37.36" y="39.73"/>
+ <line x="37.36" y="39.62"/>
+ <line x="37.31" y="39.56"/>
+ <line x="31.16" y="19.18"/>
+ <line x="31.11" y="19.13"/>
+ <line x="31.05" y="18.98"/>
+ <line x="30.89" y="18.69"/>
+ <line x="30.73" y="18.42"/>
+ <line x="30.51" y="18.11"/>
+ <line x="30.24" y="17.72"/>
+ <line x="29.91" y="17.29"/>
+ <line x="29.59" y="16.85"/>
+ <line x="29.22" y="16.47"/>
+ <line x="28.84" y="16.09"/>
+ <line x="28.4" y="15.77"/>
+ <line x="27.91" y="15.44"/>
+ <line x="27.37" y="15.11"/>
+ <line x="26.82" y="14.84"/>
+ <line x="26.28" y="14.62"/>
+ <line x="25.79" y="14.41"/>
+ <line x="25.36" y="14.24"/>
+ <line x="24.98" y="14.13"/>
+ <line x="24.7" y="14.03"/>
+ <line x="24.49" y="13.97"/>
+ <line x="24.49" y="13.92"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80.97" name="actor 2" strokewidth="inherit" w="31.03">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="16.07" y="14.72"/>
+ <curve x1="18.8" x2="21.55" x3="24.25" y1="14.78" y2="14.68" y3="15"/>
+ <curve x1="28.09" x2="31.03" x3="30.89" y1="15.76" y2="19.57" y3="23.46"/>
+ <curve x1="31" x2="30.93" x3="30.93" y1="29.9" y2="36.35" y3="42.79"/>
+ <curve x1="30.99" x2="30.77" x3="29.14" y1="44.25" y2="46.07" y3="46.59"/>
+ <curve x1="27.43" x2="24.83" x3="25.28" y1="47.41" y2="45.99" y3="43.95"/>
+ <curve x1="25.26" x2="25.22" x3="25.18" y1="37.72" y2="31.49" y3="25.26"/>
+ <curve x1="23.65" x2="23.86" x3="23.92" y1="24.78" y2="26.05" y3="27.15"/>
+ <curve x1="23.88" x2="23.98" x3="23.87" y1="43.09" y2="59.04" y3="74.98"/>
+ <curve x1="23.69" x2="24.09" x3="22.61" y1="76.44" y2="78.33" y3="79.21"/>
+ <curve x1="21" x2="18.23" x3="16.95" y1="80.51" y2="80.27" y3="78.6"/>
+ <curve x1="16.11" x2="16.45" x3="16.3" y1="77.49" y2="75.9" y3="74.57"/>
+ <curve x1="16.16" x2="16.27" x3="16.23" y1="65.28" y2="55.99" y3="46.69"/>
+ <curve x1="14.7" x2="14.92" x3="14.97" y1="46.21" y2="47.48" y3="48.58"/>
+ <curve x1="14.93" x2="15.07" x3="14.86" y1="58.13" y2="67.69" y3="77.23"/>
+ <curve x1="14.37" x2="10.42" x3="8.48" y1="79.99" y2="80.97" y3="79.07"/>
+ <curve x1="6.78" x2="7.61" x3="7.38" y1="77.73" y2="75.38" y3="73.53"/>
+ <curve x1="7.24" x2="7.3" x3="7.29" y1="57.45" y2="41.36" y3="25.26"/>
+ <curve x1="5.76" x2="5.97" x3="6.03" y1="24.78" y2="26.05" y3="27.15"/>
+ <curve x1="5.97" x2="6.13" x3="5.94" y1="32.87" y2="38.61" y3="44.32"/>
+ <curve x1="5.96" x2="2.29" x3="0.91" y1="46.77" y2="47.7" y3="45.77"/>
+ <curve x1="0" x2="0.5" x3="0.31" y1="44.59" y2="42.92" y3="41.52"/>
+ <curve x1="0.17" x2="0.16" x3="0.47" y1="34.84" y2="28.14" y3="21.46"/>
+ <curve x1="1.26" x2="4.92" x3="8.88" y1="17.66" y2="14.54" y3="14.82"/>
+ <curve x1="11.28" x2="13.68" x3="16.07" y1="14.79" y2="14.72" y3="14.72"/>
+ <close/>
+ <move x="15.58" y="0.05"/>
+ <curve x1="19.17" x2="22.57" x3="22.11" y1="0" y2="3.31" y3="6.98"/>
+ <curve x1="22.36" x2="19.69" x3="16.79" y1="10.04" y2="12.82" y3="13.35"/>
+ <curve x1="14.93" x2="12.99" x3="11.53" y1="13.61" y2="13.25" y3="12"/>
+ <curve x1="9.77" x2="8.88" x3="9.16" y1="10.65" y2="8.38" y3="6.18"/>
+ <curve x1="9.05" x2="12.35" x3="15.58" y1="2.83" y2="0.06" y3="0.05"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="adaptive security appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.56" y="4.46"/>
+ <curve x1="46.88" x2="52.08" x3="52.08" y1="4.46" y2="9.67" y3="16.06"/>
+ <curve x1="52.08" x2="46.88" x3="40.56" y1="22.52" y2="27.73" y3="27.73"/>
+ <curve x1="34.17" x2="28.96" x3="28.96" y1="27.73" y2="22.52" y3="16.06"/>
+ <curve x1="28.96" x2="34.17" x3="40.56" y1="9.67" y2="4.46" y3="4.46"/>
+ <close/>
+ <move x="40.56" y="7.3"/>
+ <curve x1="35.69" x2="31.81" x3="31.81" y1="7.3" y2="11.27" y3="16.06"/>
+ <curve x1="31.81" x2="35.69" x3="40.56" y1="20.93" y2="24.89" y3="24.89"/>
+ <curve x1="45.35" x2="49.23" x3="49.23" y1="24.89" y2="20.93" y3="16.06"/>
+ <curve x1="49.23" x2="45.35" x3="40.56" y1="11.27" y2="7.3" y3="7.3"/>
+ <close/>
+ <move x="42.12" y="8.63"/>
+ <curve x1="42.31" x2="42.5" x3="42.64" y1="8.63" y2="8.69" y3="8.82"/>
+ <line x="45.69" y="11.95"/>
+ <curve x1="45.84" x2="45.83" x3="45.83" y1="11.95" y2="12.03" y3="12.1"/>
+ <curve x1="45.98" x2="46.04" x3="46.04" y1="12.24" y2="12.44" y3="12.58"/>
+ <line x="46.04" y="12.78"/>
+ <curve x1="46.04" x2="45.98" x3="45.77" y1="13" y2="13.27" y3="13.35"/>
+ <curve x1="45.77" x2="45.77" x3="45.69" y1="13.41" y2="13.41" y3="13.41"/>
+ <line x="42.64" y="16.54"/>
+ <curve x1="42.36" x2="41.87" x3="41.59" y1="16.82" y2="16.82" y3="16.54"/>
+ <line x="41.47" y="16.4"/>
+ <curve x1="41.19" x2="41.19" x3="41.47" y1="16.14" y2="15.63" y3="15.37"/>
+ <line x="43.27" y="13.55"/>
+ <line x="33.34" y="13.55"/>
+ <curve x1="33.54" x2="34.17" x3="34.17" y1="12.58" y2="11.89" y3="11.89"/>
+ <line x="43.27" y="11.89"/>
+ <line x="41.47" y="10.08"/>
+ <curve x1="41.19" x2="41.19" x3="41.47" y1="9.73" y2="9.25" y3="8.97"/>
+ <line x="41.59" y="8.82"/>
+ <curve x1="41.73" x2="41.92" x3="42.12" y1="8.69" y2="8.63" y3="8.63"/>
+ <close/>
+ <move x="20.35" y="11.89"/>
+ <line x="28.53" y="11.89"/>
+ <line x="28.19" y="13.07"/>
+ <line x="20.35" y="13.07"/>
+ <curve x1="20.07" x2="19.86" x3="19.86" y1="13.07" y2="12.79" y3="12.52"/>
+ <line x="19.86" y="12.44"/>
+ <curve x1="19.86" x2="20.07" x3="20.35" y1="12.16" y2="11.89" y3="11.89"/>
+ <close/>
+ <move x="39.01" y="15.45"/>
+ <curve x1="39.21" x2="39.42" x3="39.59" y1="15.45" y2="15.54" y3="15.71"/>
+ <line x="39.65" y="15.78"/>
+ <curve x1="39.93" x2="39.93" x3="39.65" y1="16.06" y2="16.54" y3="16.89"/>
+ <line x="37.85" y="18.63"/>
+ <line x="47.78" y="18.63"/>
+ <curve x1="47.57" x2="46.95" x3="46.95" y1="19.61" y2="20.36" y3="20.36"/>
+ <line x="37.85" y="20.36"/>
+ <line x="39.65" y="22.18"/>
+ <curve x1="39.93" x2="39.93" x3="39.65" y1="22.46" y2="22.95" y3="23.29"/>
+ <line x="39.59" y="23.35"/>
+ <curve x1="39.24" x2="38.76" x3="38.48" y1="23.71" y2="23.71" y3="23.35"/>
+ <line x="35.34" y="20.3"/>
+ <curve x1="35.34" x2="35.28" x3="35.28" y1="20.22" y2="20.16" y3="20.1"/>
+ <curve x1="35.14" x2="35.06" x3="35.06" y1="19.95" y2="19.81" y3="19.61"/>
+ <line x="35.06" y="19.47"/>
+ <curve x1="35.06" x2="35.14" x3="35.34" y1="19.19" y2="18.98" y3="18.84"/>
+ <line x="35.34" y="18.76"/>
+ <line x="38.48" y="15.71"/>
+ <curve x1="38.62" x2="38.81" x3="39.01" y1="15.54" y2="15.45" y3="15.45"/>
+ <close/>
+ <move x="52.79" y="19.05"/>
+ <line x="60.63" y="19.05"/>
+ <curve x1="60.91" x2="61.12" x3="61.12" y1="19.05" y2="19.25" y3="19.53"/>
+ <line x="61.12" y="19.67"/>
+ <curve x1="61.12" x2="60.91" x3="60.63" y1="19.95" y2="20.22" y3="20.22"/>
+ <line x="52.43" y="20.22"/>
+ <line x="52.79" y="19.05"/>
+ <close/>
+ <move x="28.03" y="25.6"/>
+ <curve x1="28.83" x2="29.62" x3="30.21" y1="25.6" y2="25.9" y3="26.48"/>
+ <curve x1="31.38" x2="31.38" x3="30.21" y1="27.67" y2="29.68" y3="30.87"/>
+ <line x="24.45" y="36.63"/>
+ <curve x1="23.26" x2="21.32" x3="20.07" y1="37.82" y2="37.82" y3="36.63"/>
+ <curve x1="18.89" x2="18.89" x3="20.07" y1="35.45" y2="33.43" y3="32.26"/>
+ <line x="25.83" y="26.48"/>
+ <curve x1="26.42" x2="27.23" x3="28.03" y1="25.9" y2="25.6" y3="25.6"/>
+ <close/>
+ <move x="14.44" y="41.15"/>
+ <line x="64.45" y="41.15"/>
+ <line x="64.45" y="41.56"/>
+ <line x="64.45" y="41.7"/>
+ <line x="56.67" y="41.7"/>
+ <line x="56.67" y="47.28"/>
+ <line x="64.45" y="47.28"/>
+ <line x="64.45" y="47.4"/>
+ <line x="64.45" y="47.83"/>
+ <line x="64.45" y="47.96"/>
+ <line x="48.06" y="47.96"/>
+ <line x="48.06" y="53.32"/>
+ <line x="64.45" y="53.32"/>
+ <line x="64.45" y="53.52"/>
+ <line x="64.45" y="53.87"/>
+ <line x="64.45" y="54.01"/>
+ <line x="56.67" y="54.01"/>
+ <line x="56.67" y="59.44"/>
+ <line x="64.45" y="59.44"/>
+ <line x="64.45" y="59.57"/>
+ <line x="64.45" y="59.93"/>
+ <line x="64.45" y="60.13"/>
+ <line x="48.06" y="60.13"/>
+ <line x="48.06" y="65.63"/>
+ <line x="47.51" y="65.63"/>
+ <line x="47.51" y="60.13"/>
+ <line x="31.12" y="60.13"/>
+ <line x="31.12" y="65.63"/>
+ <line x="30.56" y="65.63"/>
+ <line x="30.56" y="60.13"/>
+ <line x="14.44" y="60.13"/>
+ <line x="14.44" y="59.93"/>
+ <line x="14.44" y="59.57"/>
+ <line x="14.44" y="59.44"/>
+ <line x="21.94" y="59.44"/>
+ <line x="21.94" y="54.01"/>
+ <line x="14.44" y="54.01"/>
+ <line x="14.44" y="53.87"/>
+ <line x="14.44" y="53.52"/>
+ <line x="14.44" y="53.32"/>
+ <line x="30.56" y="53.32"/>
+ <line x="30.56" y="47.96"/>
+ <line x="14.44" y="47.96"/>
+ <line x="14.44" y="47.83"/>
+ <line x="14.44" y="47.4"/>
+ <line x="14.44" y="47.28"/>
+ <line x="21.94" y="47.28"/>
+ <line x="21.94" y="41.7"/>
+ <line x="14.44" y="41.7"/>
+ <line x="14.44" y="41.56"/>
+ <line x="14.44" y="41.15"/>
+ <close/>
+ <move x="22.51" y="41.7"/>
+ <line x="22.51" y="47.28"/>
+ <line x="38.88" y="47.28"/>
+ <line x="38.88" y="41.7"/>
+ <line x="22.51" y="41.7"/>
+ <close/>
+ <move x="39.65" y="41.7"/>
+ <line x="39.65" y="47.28"/>
+ <line x="56.12" y="47.28"/>
+ <line x="56.12" y="41.7"/>
+ <line x="39.65" y="41.7"/>
+ <close/>
+ <move x="31.12" y="47.96"/>
+ <line x="31.12" y="53.32"/>
+ <line x="47.51" y="53.32"/>
+ <line x="47.51" y="47.96"/>
+ <line x="31.12" y="47.96"/>
+ <close/>
+ <move x="22.51" y="54.01"/>
+ <line x="22.51" y="59.44"/>
+ <line x="38.88" y="59.44"/>
+ <line x="38.88" y="54.01"/>
+ <line x="22.51" y="54.01"/>
+ <close/>
+ <move x="39.65" y="54.01"/>
+ <line x="39.65" y="59.44"/>
+ <line x="56.12" y="59.44"/>
+ <line x="56.12" y="54.01"/>
+ <line x="39.65" y="54.01"/>
+ <close/>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="35.18"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="35.18"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="automated system" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="45.83" y="49.15"/>
+ <curve x1="45.42" x2="44.94" x3="44.94" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="44.94" x2="45.42" x3="45.83" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="46.25" x2="46.6" x3="46.6" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="46.6" x2="46.25" x3="45.83" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="43.34" y="49.15"/>
+ <curve x1="42.92" x2="42.5" x3="42.5" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="42.5" x2="42.92" x3="43.34" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="43.83" x2="44.09" x3="44.09" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="44.09" x2="43.83" x3="43.34" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="40.9" y="49.15"/>
+ <curve x1="40.41" x2="40.01" x3="40.01" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="40.01" x2="40.41" x3="40.9" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="41.32" x2="41.6" x3="41.6" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="41.6" x2="41.32" x3="40.9" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="51.81" y="49.01"/>
+ <line x="51.81" y="50.68"/>
+ <line x="58.75" y="50.68"/>
+ <line x="58.75" y="49.01"/>
+ <line x="57.51" y="49.01"/>
+ <line x="51.81" y="49.01"/>
+ <close/>
+ <move x="34.72" y="26.7"/>
+ <line x="35.21" y="27.59"/>
+ <curve x1="35.35" x2="35.2" x3="34.94" y1="27.94" y2="28.16" y3="28.36"/>
+ <line x="30" y="30.89"/>
+ <line x="30" y="47.68"/>
+ <curve x1="30" x2="30.04" x3="30.21" y1="47.8" y2="47.83" y3="47.83"/>
+ <line x="57.43" y="47.83"/>
+ <line x="57.64" y="47.83"/>
+ <curve x1="57.73" x2="57.74" x3="57.74" y1="47.83" y2="47.82" y3="47.81"/>
+ <curve x1="57.75" x2="57.78" x3="57.78" y1="47.8" y2="47.78" y3="47.68"/>
+ <line x="57.78" y="26.91"/>
+ <curve x1="57.78" x2="57.75" x3="57.73" y1="26.81" y2="26.75" y3="26.73"/>
+ <curve x1="57.7" x2="57.7" x3="57.64" y1="26.7" y2="26.7" y3="26.7"/>
+ <line x="34.72" y="26.7"/>
+ <close/>
+ <move x="26.25" y="14.24"/>
+ <curve x1="25.63" x2="25.02" x3="24.45" y1="14.28" y2="14.44" y3="14.74"/>
+ <curve x1="22.29" x2="21.32" x3="22.51" y1="15.99" y2="18.91" y3="21.07"/>
+ <curve x1="23.74" x2="26.59" x3="28.82" y1="23.57" y2="24.34" y3="23.15"/>
+ <curve x1="31.18" x2="32.01" x3="30.84" y1="21.9" y2="19.11" y3="16.76"/>
+ <curve x1="29.94" x2="28.08" x3="26.25" y1="15.08" y2="14.12" y3="14.24"/>
+ <close/>
+ <move x="23.92" y="6.76"/>
+ <curve x1="24.09" x2="24.29" x3="24.45" y1="6.76" y2="6.88" y3="7.08"/>
+ <line x="26.53" y="10.92"/>
+ <curve x1="26.88" x2="27.16" x3="27.57" y1="10.92" y2="10.92" y3="11.13"/>
+ <line x="29.93" y="7.16"/>
+ <curve x1="30.07" x2="30.49" x3="30.69" y1="7.08" y2="6.94" y3="7.08"/>
+ <line x="35.77" y="10.29"/>
+ <curve x1="35.83" x2="35.97" x3="35.83" y1="10.36" y2="10.78" y3="11.13"/>
+ <line x="33.47" y="14.74"/>
+ <curve x1="33.61" x2="33.61" x3="33.75" y1="14.94" y2="15.02" y3="15.29"/>
+ <curve x1="33.89" x2="33.89" x3="33.97" y1="15.43" y2="15.57" y3="15.71"/>
+ <line x="38.34" y="15.99"/>
+ <curve x1="38.62" x2="38.88" x3="38.88" y1="15.99" y2="16.2" y3="16.48"/>
+ <line x="38.62" y="22.46"/>
+ <curve x1="38.62" x2="38.33" x3="38.13" y1="22.72" y2="22.95" y3="22.95"/>
+ <line x="33.75" y="22.73"/>
+ <curve x1="33.47" x2="33.34" x3="33.06" y1="23.15" y2="23.35" y3="23.63"/>
+ <line x="34.12" y="25.58"/>
+ <line x="57.64" y="25.58"/>
+ <curve x1="58" x2="58.35" x3="58.57" y1="25.58" y2="25.75" y3="26"/>
+ <curve x1="58.79" x2="58.89" x3="58.89" y1="26.26" y2="26.58" y3="26.91"/>
+ <line x="58.89" y="47.68"/>
+ <curve x1="58.89" x2="58.87" x3="58.86" y1="47.73" y2="47.78" y3="47.83"/>
+ <line x="60.63" y="47.83"/>
+ <curve x1="61.68" x2="62.22" x3="62.22" y1="47.83" y2="48.44" y3="49.43"/>
+ <line x="62.22" y="50.4"/>
+ <curve x1="62.22" x2="61.68" x3="60.63" y1="51.37" y2="52.28" y3="52.28"/>
+ <line x="26.04" y="52.28"/>
+ <curve x1="25.07" x2="24.45" x3="24.45" y1="52.28" y2="51.37" y3="50.4"/>
+ <line x="24.45" y="49.43"/>
+ <curve x1="24.45" x2="25.07" x3="26.04" y1="48.44" y2="47.83" y3="47.83"/>
+ <line x="27.98" y="47.83"/>
+ <line x="28.92" y="47.83"/>
+ <curve x1="28.92" x2="28.89" x3="28.89" y1="47.78" y2="47.74" y3="47.68"/>
+ <line x="28.89" y="30.6"/>
+ <line x="26.88" y="26.97"/>
+ <line x="25.84" y="26.97"/>
+ <line x="23.4" y="30.66"/>
+ <curve x1="23.34" x2="22.92" x3="22.71" y1="30.93" y2="30.93" y3="30.87"/>
+ <line x="17.78" y="27.59"/>
+ <curve x1="17.5" x2="17.43" x3="17.5" y1="27.53" y2="27.11" y3="26.83"/>
+ <line x="19.92" y="23.15"/>
+ <curve x1="19.72" x2="19.72" x3="19.58" y1="22.94" y2="22.87" y3="22.73"/>
+ <curve x1="19.52" x2="19.52" x3="19.38" y1="22.46" y2="22.32" y3="22.24"/>
+ <line x="14.93" y="21.9"/>
+ <curve x1="14.73" x2="14.44" x3="14.44" y1="21.9" y2="21.69" y3="21.41"/>
+ <line x="14.73" y="15.43"/>
+ <curve x1="14.73" x2="14.93" x3="15.28" y1="15.15" y2="14.94" y3="14.94"/>
+ <line x="19.58" y="15.15"/>
+ <curve x1="19.93" x2="20" x3="20.21" y1="14.74" y2="14.52" y3="14.26"/>
+ <line x="18.12" y="10.29"/>
+ <curve x1="18.06" x2="18.12" x3="18.47" y1="9.93" y2="9.73" y3="9.67"/>
+ <line x="23.75" y="6.82"/>
+ <curve x1="23.8" x2="23.86" x3="23.92" y1="6.78" y2="6.77" y3="6.76"/>
+ <close/>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.05" name="blade server" strokewidth="inherit" w="79.79">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="17.31" y="36.5"/>
+ <curve x1="16.5" x2="14.99" x3="14.34" y1="37.2" y2="38.37" y3="38.29"/>
+ <curve x1="14.28" x2="15.41" x3="16.14" y1="37.64" y2="36.17" y3="35.33"/>
+ <curve x1="16.32" x2="16.77" x3="17.31" y1="35.81" y2="36.31" y3="36.5"/>
+ <close/>
+ <move x="17.31" y="32.63"/>
+ <curve x1="16.82" x2="16.38" x3="16.15" y1="32.8" y2="33.18" y3="33.79"/>
+ <curve x1="15.14" x2="14.25" x3="14.35" y1="32.62" y2="31.28" y3="30.83"/>
+ <curve x1="15.18" x2="16.74" x3="17.31" y1="30.82" y2="32.13" y3="32.63"/>
+ <close/>
+ <move x="20.03" y="33.79"/>
+ <curve x1="19.81" x2="19.44" x3="18.85" y1="33.29" y2="32.81" y3="32.63"/>
+ <curve x1="19.92" x2="21.13" x3="21.82" y1="31.7" y2="30.81" y3="30.83"/>
+ <curve x1="21.95" x2="20.89" x3="20.03" y1="31.24" y2="32.79" y3="33.79"/>
+ <close/>
+ <move x="18.85" y="36.5"/>
+ <curve x1="19.33" x2="19.84" x3="20.02" y1="36.36" y2="35.83" y3="35.32"/>
+ <curve x1="20.72" x2="21.97" x3="21.81" y1="36.11" y2="37.8" y3="38.29"/>
+ <curve x1="21.24" x2="19.66" x3="18.85" y1="38.38" y2="37.21" y3="36.5"/>
+ <close/>
+ <move x="18.49" y="37.01"/>
+ <curve x1="19.54" x2="20.94" x3="21.79" y1="37.9" y2="38.92" y3="38.93"/>
+ <curve x1="22.25" x2="22.5" x3="22.47" y1="38.89" y2="38.62" y3="38.15"/>
+ <curve x1="22.38" x2="21.2" x3="20.45" y1="37.22" y2="35.68" y3="34.86"/>
+ <line x="22.67" y="34.86"/>
+ <line x="21.9" y="35.64"/>
+ <curve x1="21.71" x2="21.77" x3="21.89" y1="35.83" y2="35.96" y3="36.12"/>
+ <curve x1="22.05" x2="22.24" x3="22.35" y1="36.31" y2="36.3" y3="36.2"/>
+ <line x="23.82" y="34.74"/>
+ <curve x1="23.93" x2="24.01" x3="23.83" y1="34.63" y2="34.4" y3="34.2"/>
+ <line x="22.41" y="32.78"/>
+ <curve x1="22.28" x2="22.05" x3="21.91" y1="32.66" y2="32.67" y3="32.79"/>
+ <curve x1="21.73" x2="21.76" x3="21.85" y1="32.97" y2="33.13" y3="33.24"/>
+ <line x="22.68" y="34.11"/>
+ <line x="20.61" y="34.11"/>
+ <curve x1="21.32" x2="22.14" x3="22.43" y1="33.18" y2="32.25" y3="31.19"/>
+ <curve x1="22.61" x2="22.19" x3="21.66" y1="30.44" y2="30.14" y3="30.2"/>
+ <curve x1="20.89" x2="19.76" x3="18.49" y1="30.3" y2="31.01" y3="32.12"/>
+ <line x="18.49" y="29.88"/>
+ <line x="19.26" y="30.65"/>
+ <curve x1="19.4" x2="19.53" x3="19.74" y1="30.8" y2="30.84" y3="30.67"/>
+ <curve x1="19.92" x2="19.89" x3="19.79" y1="30.52" y2="30.28" y3="30.17"/>
+ <line x="18.38" y="28.75"/>
+ <curve x1="18.22" x2="17.98" x3="17.85" y1="28.59" y2="28.6" y3="28.73"/>
+ <line x="16.38" y="30.19"/>
+ <curve x1="16.26" x2="16.27" x3="16.43" y1="30.32" y2="30.51" y3="30.66"/>
+ <curve x1="16.6" x2="16.75" x3="16.94" y1="30.83" y2="30.83" y3="30.66"/>
+ <line x="17.75" y="29.88"/>
+ <line x="17.75" y="32.12"/>
+ <curve x1="16.94" x2="15.6" x3="14.69" y1="31.42" y2="30.45" y3="30.24"/>
+ <curve x1="14.05" x2="13.69" x3="13.73" y1="30.09" y2="30.38" y3="30.97"/>
+ <curve x1="13.83" x2="14.81" x3="15.6" y1="31.89" y2="33.13" y3="34.11"/>
+ <line x="13.52" y="34.11"/>
+ <line x="14.31" y="33.29"/>
+ <curve x1="14.51" x2="14.44" x3="14.31" y1="33.09" y2="32.92" y3="32.8"/>
+ <curve x1="14.14" x2="13.93" x3="13.79" y1="32.66" y2="32.65" y3="32.79"/>
+ <line x="12.4" y="34.18"/>
+ <curve x1="12.24" x2="12.21" x3="12.42" y1="34.35" y2="34.58" y3="34.78"/>
+ <line x="13.79" y="36.15"/>
+ <curve x1="13.97" x2="14.15" x3="14.32" y1="36.33" y2="36.29" y3="36.13"/>
+ <curve x1="14.43" x2="14.48" x3="14.33" y1="35.99" y2="35.81" y3="35.66"/>
+ <line x="13.53" y="34.86"/>
+ <line x="15.71" y="34.86"/>
+ <curve x1="15.11" x2="14.16" x3="13.78" y1="35.58" y2="36.68" y3="37.92"/>
+ <curve x1="13.61" x2="13.88" x3="14.51" y1="38.45" y2="38.99" y3="38.92"/>
+ <curve x1="15.47" x2="16.9" x3="17.75" y1="38.8" y2="37.69" y3="36.97"/>
+ <line x="17.75" y="39.04"/>
+ <line x="16.9" y="38.24"/>
+ <curve x1="16.77" x2="16.6" x3="16.43" y1="38.1" y2="38.12" y3="38.27"/>
+ <curve x1="16.26" x2="16.28" x3="16.4" y1="38.42" y2="38.63" y3="38.75"/>
+ <line x="17.78" y="40.13"/>
+ <curve x1="18.01" x2="18.19" x3="18.42" y1="40.35" y2="40.36" y3="40.13"/>
+ <line x="19.8" y="38.75"/>
+ <curve x1="19.9" x2="19.91" x3="19.75" y1="38.65" y2="38.41" y3="38.26"/>
+ <curve x1="19.62" x2="19.44" x3="19.28" y1="38.14" y2="38.07" y3="38.26"/>
+ <line x="18.49" y="39.04"/>
+ <close/>
+ <move x="14.48" y="52.6"/>
+ <curve x1="14.41" x2="14.24" x3="14.03" y1="52.47" y2="52.3" y3="52.22"/>
+ <line x="14.15" y="50.75"/>
+ <curve x1="14.46" x2="14.76" x3="14.91" y1="50.7" y2="50.54" y3="50.32"/>
+ <line x="17.64" y="50.32"/>
+ <curve x1="17.75" x2="17.95" x3="18.22" y1="50.5" y2="50.66" y3="50.73"/>
+ <line x="18.22" y="52.19"/>
+ <curve x1="17.98" x2="17.78" x3="17.63" y1="52.26" y2="52.39" y3="52.6"/>
+ <close/>
+ <move x="14.9" y="49.63"/>
+ <curve x1="14.86" x2="14.59" x3="14.26" y1="49.52" y2="49.28" y3="49.22"/>
+ <line x="14.37" y="47.79"/>
+ <curve x1="14.63" x2="14.89" x3="15.11" y1="47.75" y2="47.66" y3="47.35"/>
+ <line x="17.69" y="47.35"/>
+ <curve x1="17.77" x2="17.98" x3="18.22" y1="47.51" y2="47.67" y3="47.75"/>
+ <line x="18.22" y="49.22"/>
+ <curve x1="17.95" x2="17.76" x3="17.64" y1="49.3" y2="49.43" y3="49.63"/>
+ <close/>
+ <move x="19.49" y="49.63"/>
+ <curve x1="19.37" x2="19.18" x3="18.91" y1="49.44" y2="49.3" y3="49.22"/>
+ <line x="18.91" y="47.75"/>
+ <curve x1="19.13" x2="19.33" x3="19.45" y1="47.68" y2="47.54" y3="47.35"/>
+ <line x="21.81" y="47.34"/>
+ <curve x1="21.95" x2="22.24" x3="22.53" y1="47.56" y2="47.72" y3="47.78"/>
+ <line x="22.64" y="49.22"/>
+ <curve x1="22.28" x2="22.08" x3="21.99" y1="49.31" y2="49.5" y3="49.63"/>
+ <close/>
+ <move x="19.49" y="52.6"/>
+ <curve x1="19.41" x2="19.22" x3="18.91" y1="52.47" y2="52.28" y3="52.19"/>
+ <line x="18.91" y="50.73"/>
+ <curve x1="19.16" x2="19.38" x3="19.49" y1="50.66" y2="50.51" y3="50.32"/>
+ <line x="22" y="50.32"/>
+ <curve x1="22.12" x2="22.39" x3="22.76" y1="50.51" y2="50.69" y3="50.75"/>
+ <line x="22.87" y="52.24"/>
+ <curve x1="22.67" x2="22.49" x3="22.44" y1="52.32" y2="52.49" y3="52.6"/>
+ <close/>
+ <move x="23.02" y="54.21"/>
+ <line x="23.7" y="54.21"/>
+ <line x="23.67" y="53.71"/>
+ <curve x1="23.95" x2="24.16" x3="24.3" y1="53.65" y2="53.51" y3="53.29"/>
+ <line x="25.31" y="53.3"/>
+ <line x="25.12" y="52.6"/>
+ <line x="24.29" y="52.6"/>
+ <curve x1="24.2" x2="23.92" x3="23.55" y1="52.42" y2="52.21" y3="52.16"/>
+ <line x="23.44" y="50.72"/>
+ <curve x1="23.71" x2="23.94" x3="24.05" y1="50.64" y2="50.5" y3="50.32"/>
+ <line x="25.08" y="50.32"/>
+ <line x="24.9" y="49.63"/>
+ <line x="24.06" y="49.63"/>
+ <curve x1="23.9" x2="23.63" x3="23.33" y1="49.4" y2="49.26" y3="49.2"/>
+ <line x="23.21" y="47.74"/>
+ <curve x1="23.48" x2="23.67" x3="23.78" y1="47.66" y2="47.51" y3="47.34"/>
+ <line x="24.62" y="47.34"/>
+ <line x="24.44" y="46.66"/>
+ <line x="23.9" y="46.66"/>
+ <curve x1="23.79" x2="23.44" x3="23.08" y1="46.31" y2="46.08" y3="46"/>
+ <line x="23.02" y="45.29"/>
+ <line x="22.34" y="45.29"/>
+ <line x="22.39" y="46.03"/>
+ <curve x1="21.99" x2="21.76" x3="21.69" y1="46.14" y2="46.43" y3="46.66"/>
+ <line x="19.56" y="46.66"/>
+ <curve x1="19.47" x2="19.17" x3="18.91" y1="46.32" y2="46.11" y3="46.02"/>
+ <line x="18.91" y="45.29"/>
+ <line x="18.22" y="45.29"/>
+ <line x="18.22" y="46.02"/>
+ <curve x1="17.99" x2="17.69" x3="17.57" y1="46.1" y2="46.27" y3="46.65"/>
+ <line x="15.22" y="46.65"/>
+ <curve x1="15.14" x2="14.88" x3="14.51" y1="46.38" y2="46.11" y3="46"/>
+ <line x="14.57" y="45.29"/>
+ <line x="13.88" y="45.29"/>
+ <line x="13.82" y="46.05"/>
+ <curve x1="13.56" x2="13.31" x3="13.23" y1="46.14" y2="46.35" y3="46.65"/>
+ <line x="12.69" y="46.65"/>
+ <line x="12.51" y="47.34"/>
+ <line x="13.34" y="47.34"/>
+ <curve x1="13.41" x2="13.55" x3="13.69" y1="47.48" y2="47.6" y3="47.67"/>
+ <line x="13.58" y="49.2"/>
+ <curve x1="13.24" x2="13" x3="12.84" y1="49.27" y2="49.41" y3="49.63"/>
+ <line x="12.46" y="49.63"/>
+ <line x="12.27" y="50.32"/>
+ <line x="12.85" y="50.32"/>
+ <curve x1="12.99" x2="13.27" x3="13.46" y1="50.56" y2="50.65" y3="50.72"/>
+ <line x="13.35" y="52.19"/>
+ <curve x1="13.05" x2="12.91" x3="12.82" y1="52.29" y2="52.45" y3="52.6"/>
+ <line x="12.01" y="52.6"/>
+ <line x="11.82" y="53.29"/>
+ <line x="12.82" y="53.29"/>
+ <curve x1="12.92" x2="13.05" x3="13.23" y1="53.46" y2="53.59" y3="53.66"/>
+ <line x="13.19" y="54.2"/>
+ <line x="13.88" y="54.2"/>
+ <line x="13.91" y="53.71"/>
+ <curve x1="14.24" x2="14.39" x3="14.48" y1="53.61" y2="53.45" y3="53.29"/>
+ <line x="17.64" y="53.29"/>
+ <curve x1="17.72" x2="17.92" x3="18.22" y1="53.44" y2="53.61" y3="53.7"/>
+ <line x="18.22" y="54.21"/>
+ <line x="18.91" y="54.2"/>
+ <line x="18.91" y="53.7"/>
+ <curve x1="19.15" x2="19.4" x3="19.49" y1="53.64" y2="53.46" y3="53.29"/>
+ <line x="22.45" y="53.29"/>
+ <curve x1="22.53" x2="22.65" x3="22.98" y1="53.44" y2="53.58" y3="53.68"/>
+ <close/>
+ <move x="14.4" y="20.96"/>
+ <curve x1="14.33" x2="14.17" x3="13.96" y1="20.83" y2="20.66" y3="20.58"/>
+ <line x="14.07" y="19.11"/>
+ <curve x1="14.39" x2="14.69" x3="14.84" y1="19.06" y2="18.9" y3="18.68"/>
+ <line x="17.56" y="18.68"/>
+ <curve x1="17.67" x2="17.88" x3="18.15" y1="18.86" y2="19.02" y3="19.09"/>
+ <line x="18.15" y="20.55"/>
+ <curve x1="17.91" x2="17.7" x3="17.56" y1="20.62" y2="20.75" y3="20.96"/>
+ <close/>
+ <move x="14.83" y="17.99"/>
+ <curve x1="14.79" x2="14.52" x3="14.19" y1="17.88" y2="17.64" y3="17.58"/>
+ <line x="14.3" y="16.15"/>
+ <curve x1="14.56" x2="14.82" x3="15.04" y1="16.11" y2="16.02" y3="15.71"/>
+ <line x="17.61" y="15.71"/>
+ <curve x1="17.7" x2="17.9" x3="18.15" y1="15.87" y2="16.03" y3="16.11"/>
+ <line x="18.15" y="17.58"/>
+ <curve x1="17.88" x2="17.68" x3="17.57" y1="17.66" y2="17.79" y3="17.99"/>
+ <close/>
+ <move x="19.42" y="17.99"/>
+ <curve x1="19.3" x2="19.11" x3="18.83" y1="17.8" y2="17.66" y3="17.58"/>
+ <line x="18.84" y="16.11"/>
+ <curve x1="19.06" x2="19.26" x3="19.38" y1="16.04" y2="15.9" y3="15.71"/>
+ <line x="21.73" y="15.7"/>
+ <curve x1="21.87" x2="22.17" x3="22.45" y1="15.92" y2="16.09" y3="16.14"/>
+ <line x="22.57" y="17.58"/>
+ <curve x1="22.21" x2="22.01" x3="21.92" y1="17.67" y2="17.86" y3="17.99"/>
+ <close/>
+ <move x="19.42" y="20.96"/>
+ <curve x1="19.34" x2="19.15" x3="18.84" y1="20.83" y2="20.64" y3="20.55"/>
+ <line x="18.84" y="19.09"/>
+ <curve x1="19.09" x2="19.31" x3="19.42" y1="19.02" y2="18.87" y3="18.68"/>
+ <line x="21.92" y="18.68"/>
+ <curve x1="22.04" x2="22.31" x3="22.68" y1="18.87" y2="19.05" y3="19.11"/>
+ <line x="22.8" y="20.61"/>
+ <curve x1="22.6" x2="22.42" x3="22.36" y1="20.69" y2="20.85" y3="20.96"/>
+ <close/>
+ <move x="22.95" y="22.57"/>
+ <line x="23.63" y="22.57"/>
+ <line x="23.6" y="22.07"/>
+ <curve x1="23.87" x2="24.09" x3="24.23" y1="22.01" y2="21.87" y3="21.65"/>
+ <line x="25.24" y="21.66"/>
+ <line x="25.05" y="20.96"/>
+ <line x="24.22" y="20.96"/>
+ <curve x1="24.13" x2="23.85" x3="23.48" y1="20.78" y2="20.58" y3="20.52"/>
+ <line x="23.37" y="19.08"/>
+ <curve x1="23.64" x2="23.86" x3="23.98" y1="19" y2="18.86" y3="18.68"/>
+ <line x="25.01" y="18.68"/>
+ <line x="24.82" y="17.99"/>
+ <line x="23.98" y="17.99"/>
+ <curve x1="23.83" x2="23.56" x3="23.25" y1="17.76" y2="17.62" y3="17.56"/>
+ <line x="23.14" y="16.1"/>
+ <curve x1="23.41" x2="23.6" x3="23.71" y1="16.02" y2="15.87" y3="15.7"/>
+ <line x="24.55" y="15.7"/>
+ <line x="24.37" y="15.02"/>
+ <line x="23.83" y="15.02"/>
+ <curve x1="23.72" x2="23.37" x3="23.01" y1="14.67" y2="14.44" y3="14.36"/>
+ <line x="22.95" y="13.65"/>
+ <line x="22.26" y="13.65"/>
+ <line x="22.32" y="14.39"/>
+ <curve x1="21.92" x2="21.69" x3="21.61" y1="14.5" y2="14.79" y3="15.02"/>
+ <line x="19.49" y="15.02"/>
+ <curve x1="19.4" x2="19.1" x3="18.83" y1="14.68" y2="14.47" y3="14.39"/>
+ <line x="18.84" y="13.65"/>
+ <line x="18.15" y="13.65"/>
+ <line x="18.15" y="14.38"/>
+ <curve x1="17.92" x2="17.62" x3="17.5" y1="14.46" y2="14.64" y3="15.02"/>
+ <line x="15.14" y="15.02"/>
+ <curve x1="15.07" x2="14.8" x3="14.44" y1="14.74" y2="14.47" y3="14.37"/>
+ <line x="14.49" y="13.65"/>
+ <line x="13.81" y="13.65"/>
+ <line x="13.75" y="14.41"/>
+ <curve x1="13.48" x2="13.24" x3="13.15" y1="14.5" y2="14.71" y3="15.02"/>
+ <line x="12.62" y="15.02"/>
+ <line x="12.43" y="15.7"/>
+ <line x="13.27" y="15.7"/>
+ <curve x1="13.33" x2="13.48" x3="13.62" y1="15.84" y2="15.96" y3="16.03"/>
+ <line x="13.5" y="17.56"/>
+ <curve x1="13.17" x2="12.92" x3="12.77" y1="17.63" y2="17.77" y3="17.99"/>
+ <line x="12.39" y="17.99"/>
+ <line x="12.2" y="18.68"/>
+ <line x="12.78" y="18.68"/>
+ <curve x1="12.92" x2="13.19" x3="13.39" y1="18.92" y2="19.01" y3="19.08"/>
+ <line x="13.27" y="20.55"/>
+ <curve x1="12.98" x2="12.84" x3="12.75" y1="20.65" y2="20.81" y3="20.96"/>
+ <line x="11.94" y="20.97"/>
+ <line x="11.74" y="21.65"/>
+ <line x="12.75" y="21.65"/>
+ <curve x1="12.84" x2="12.98" x3="13.16" y1="21.82" y2="21.95" y3="22.02"/>
+ <line x="13.12" y="22.56"/>
+ <line x="13.81" y="22.56"/>
+ <line x="13.84" y="22.07"/>
+ <curve x1="14.17" x2="14.31" x3="14.4" y1="21.97" y2="21.81" y3="21.65"/>
+ <line x="17.57" y="21.65"/>
+ <curve x1="17.65" x2="17.85" x3="18.15" y1="21.8" y2="21.98" y3="22.07"/>
+ <line x="18.15" y="22.57"/>
+ <line x="18.84" y="22.56"/>
+ <line x="18.84" y="22.06"/>
+ <curve x1="19.08" x2="19.32" x3="19.41" y1="22" y2="21.83" y3="21.65"/>
+ <line x="22.38" y="21.65"/>
+ <curve x1="22.45" x2="22.58" x3="22.91" y1="21.8" y2="21.94" y3="22.04"/>
+ <close/>
+ <move x="56.86" y="20.91"/>
+ <curve x1="56.79" x2="56.63" x3="56.42" y1="20.79" y2="20.61" y3="20.53"/>
+ <line x="56.53" y="19.06"/>
+ <curve x1="56.85" x2="57.15" x3="57.29" y1="19.01" y2="18.86" y3="18.63"/>
+ <line x="60.02" y="18.63"/>
+ <curve x1="60.13" x2="60.34" x3="60.61" y1="18.81" y2="18.97" y3="19.04"/>
+ <line x="60.61" y="20.5"/>
+ <curve x1="60.37" x2="60.16" x3="60.01" y1="20.58" y2="20.7" y3="20.91"/>
+ <close/>
+ <move x="57.28" y="17.94"/>
+ <curve x1="57.24" x2="56.97" x3="56.64" y1="17.83" y2="17.6" y3="17.53"/>
+ <line x="56.75" y="16.1"/>
+ <curve x1="57.02" x2="57.27" x3="57.49" y1="16.06" y2="15.97" y3="15.66"/>
+ <line x="60.07" y="15.66"/>
+ <curve x1="60.16" x2="60.36" x3="60.61" y1="15.82" y2="15.98" y3="16.06"/>
+ <line x="60.6" y="17.53"/>
+ <curve x1="60.34" x2="60.14" x3="60.02" y1="17.61" y2="17.74" y3="17.94"/>
+ <close/>
+ <move x="61.88" y="17.94"/>
+ <curve x1="61.76" x2="61.56" x3="61.29" y1="17.75" y2="17.61" y3="17.53"/>
+ <line x="61.29" y="16.06"/>
+ <curve x1="61.52" x2="61.71" x3="61.84" y1="15.99" y2="15.85" y3="15.66"/>
+ <line x="64.19" y="15.66"/>
+ <curve x1="64.33" x2="64.63" x3="64.91" y1="15.87" y2="16.04" y3="16.09"/>
+ <line x="65.03" y="17.53"/>
+ <curve x1="64.67" x2="64.47" x3="64.38" y1="17.62" y2="17.81" y3="17.94"/>
+ <close/>
+ <move x="61.88" y="20.92"/>
+ <curve x1="61.8" x2="61.61" x3="61.29" y1="20.78" y2="20.59" y3="20.5"/>
+ <line x="61.29" y="19.04"/>
+ <curve x1="61.54" x2="61.77" x3="61.87" y1="18.97" y2="18.82" y3="18.63"/>
+ <line x="64.38" y="18.63"/>
+ <curve x1="64.5" x2="64.77" x3="65.14" y1="18.82" y2="19.01" y3="19.06"/>
+ <line x="65.26" y="20.56"/>
+ <curve x1="65.05" x2="64.88" x3="64.82" y1="20.64" y2="20.8" y3="20.91"/>
+ <close/>
+ <move x="65.41" y="22.53"/>
+ <line x="66.09" y="22.52"/>
+ <line x="66.05" y="22.02"/>
+ <curve x1="66.33" x2="66.54" x3="66.68" y1="21.96" y2="21.82" y3="21.6"/>
+ <line x="67.7" y="21.61"/>
+ <line x="67.5" y="20.91"/>
+ <line x="66.68" y="20.92"/>
+ <curve x1="66.59" x2="66.31" x3="65.94" y1="20.73" y2="20.53" y3="20.47"/>
+ <line x="65.82" y="19.03"/>
+ <curve x1="66.1" x2="66.32" x3="66.44" y1="18.96" y2="18.81" y3="18.63"/>
+ <line x="67.46" y="18.63"/>
+ <line x="67.28" y="17.95"/>
+ <line x="66.44" y="17.94"/>
+ <curve x1="66.29" x2="66.01" x3="65.71" y1="17.72" y2="17.57" y3="17.52"/>
+ <line x="65.6" y="16.05"/>
+ <curve x1="65.86" x2="66.05" x3="66.17" y1="15.97" y2="15.82" y3="15.66"/>
+ <line x="67.01" y="15.66"/>
+ <line x="66.83" y="14.97"/>
+ <line x="66.29" y="14.97"/>
+ <curve x1="66.18" x2="65.83" x3="65.46" y1="14.62" y2="14.4" y3="14.31"/>
+ <line x="65.41" y="13.6"/>
+ <line x="64.72" y="13.6"/>
+ <line x="64.78" y="14.34"/>
+ <curve x1="64.38" x2="64.15" x3="64.07" y1="14.46" y2="14.74" y3="14.97"/>
+ <line x="61.94" y="14.97"/>
+ <curve x1="61.85" x2="61.56" x3="61.29" y1="14.64" y2="14.42" y3="14.34"/>
+ <line x="61.29" y="13.6"/>
+ <line x="60.61" y="13.6"/>
+ <line x="60.61" y="14.34"/>
+ <curve x1="60.38" x2="60.07" x3="59.96" y1="14.41" y2="14.59" y3="14.97"/>
+ <line x="57.6" y="14.97"/>
+ <curve x1="57.53" x2="57.26" x3="56.89" y1="14.69" y2="14.42" y3="14.32"/>
+ <line x="56.95" y="13.6"/>
+ <line x="56.26" y="13.6"/>
+ <line x="56.2" y="14.36"/>
+ <curve x1="55.94" x2="55.7" x3="55.61" y1="14.45" y2="14.67" y3="14.97"/>
+ <line x="55.08" y="14.97"/>
+ <line x="54.89" y="15.66"/>
+ <line x="55.73" y="15.66"/>
+ <curve x1="55.79" x2="55.93" x3="56.08" y1="15.79" y2="15.91" y3="15.99"/>
+ <line x="55.96" y="17.52"/>
+ <curve x1="55.63" x2="55.38" x3="55.23" y1="17.58" y2="17.72" y3="17.94"/>
+ <line x="54.85" y="17.94"/>
+ <line x="54.66" y="18.63"/>
+ <line x="55.24" y="18.63"/>
+ <curve x1="55.37" x2="55.65" x3="55.85" y1="18.87" y2="18.96" y3="19.03"/>
+ <line x="55.73" y="20.5"/>
+ <curve x1="55.44" x2="55.29" x3="55.21" y1="20.6" y2="20.77" y3="20.91"/>
+ <line x="54.39" y="20.92"/>
+ <line x="54.2" y="21.6"/>
+ <line x="55.21" y="21.6"/>
+ <curve x1="55.3" x2="55.44" x3="55.62" y1="21.77" y2="21.9" y3="21.97"/>
+ <line x="55.57" y="22.52"/>
+ <line x="56.26" y="22.52"/>
+ <line x="56.3" y="22.03"/>
+ <curve x1="56.62" x2="56.77" x3="56.86" y1="21.93" y2="21.76" y3="21.6"/>
+ <line x="60.03" y="21.6"/>
+ <curve x1="60.1" x2="60.3" x3="60.61" y1="21.76" y2="21.93" y3="22.02"/>
+ <line x="60.6" y="22.52"/>
+ <line x="61.29" y="22.52"/>
+ <line x="61.29" y="22.01"/>
+ <curve x1="61.54" x2="61.78" x3="61.87" y1="21.95" y2="21.78" y3="21.6"/>
+ <line x="64.83" y="21.6"/>
+ <curve x1="64.91" x2="65.04" x3="65.36" y1="21.75" y2="21.9" y3="21.99"/>
+ <close/>
+ <move x="48.23" y="20.45"/>
+ <line x="48.23" y="18.38"/>
+ <line x="31.31" y="18.38"/>
+ <line x="31.31" y="20.45"/>
+ <close/>
+ <move x="48.23" y="26.37"/>
+ <line x="48.23" y="24.31"/>
+ <line x="31.31" y="24.31"/>
+ <line x="31.31" y="26.37"/>
+ <close/>
+ <move x="48.23" y="32.3"/>
+ <line x="48.23" y="30.23"/>
+ <line x="31.31" y="30.23"/>
+ <line x="31.31" y="32.3"/>
+ <close/>
+ <move x="48.23" y="38.22"/>
+ <line x="48.23" y="36.16"/>
+ <line x="31.31" y="36.16"/>
+ <line x="31.31" y="38.22"/>
+ <close/>
+ <move x="48.23" y="44.15"/>
+ <line x="48.23" y="42.08"/>
+ <line x="31.31" y="42.08"/>
+ <line x="31.31" y="44.15"/>
+ <close/>
+ <move x="48.23" y="50.07"/>
+ <line x="48.23" y="48"/>
+ <line x="31.31" y="48"/>
+ <line x="31.31" y="50.07"/>
+ <close/>
+ <move x="60.14" y="36.44"/>
+ <curve x1="59.33" x2="57.82" x3="57.17" y1="37.14" y2="38.31" y3="38.23"/>
+ <curve x1="57.11" x2="58.24" x3="58.97" y1="37.58" y2="36.11" y3="35.27"/>
+ <curve x1="59.15" x2="59.6" x3="60.14" y1="35.75" y2="36.26" y3="36.44"/>
+ <close/>
+ <move x="60.14" y="32.57"/>
+ <curve x1="59.65" x2="59.2" x3="58.97" y1="32.74" y2="33.12" y3="33.73"/>
+ <curve x1="57.97" x2="57.07" x3="57.17" y1="32.56" y2="31.22" y3="30.77"/>
+ <curve x1="58.01" x2="59.56" x3="60.14" y1="30.76" y2="32.07" y3="32.57"/>
+ <close/>
+ <move x="62.85" y="33.73"/>
+ <curve x1="62.64" x2="62.26" x3="61.68" y1="33.23" y2="32.76" y3="32.57"/>
+ <curve x1="62.75" x2="63.96" x3="64.65" y1="31.64" y2="30.75" y3="30.77"/>
+ <curve x1="64.78" x2="63.72" x3="62.85" y1="31.18" y2="32.74" y3="33.73"/>
+ <close/>
+ <move x="61.68" y="36.44"/>
+ <curve x1="62.16" x2="62.67" x3="62.84" y1="36.3" y2="35.78" y3="35.26"/>
+ <curve x1="63.55" x2="64.8" x3="64.64" y1="36.05" y2="37.75" y3="38.23"/>
+ <curve x1="64.06" x2="62.49" x3="61.68" y1="38.32" y2="37.15" y3="36.44"/>
+ <close/>
+ <move x="61.32" y="36.95"/>
+ <curve x1="62.37" x2="63.77" x3="64.62" y1="37.84" y2="38.86" y3="38.87"/>
+ <curve x1="65.08" x2="65.33" x3="65.29" y1="38.83" y2="38.57" y3="38.1"/>
+ <curve x1="65.2" x2="64.03" x3="63.27" y1="37.16" y2="35.63" y3="34.8"/>
+ <line x="65.5" y="34.8"/>
+ <line x="64.73" y="35.58"/>
+ <curve x1="64.54" x2="64.6" x3="64.72" y1="35.77" y2="35.91" y3="36.06"/>
+ <curve x1="64.88" x2="65.07" x3="65.18" y1="36.25" y2="36.24" y3="36.15"/>
+ <line x="66.65" y="34.68"/>
+ <curve x1="66.76" x2="66.84" x3="66.65" y1="34.57" y2="34.34" y3="34.14"/>
+ <line x="65.23" y="32.72"/>
+ <curve x1="65.11" x2="64.88" x3="64.74" y1="32.6" y2="32.61" y3="32.73"/>
+ <curve x1="64.56" x2="64.59" x3="64.68" y1="32.91" y2="33.07" y3="33.18"/>
+ <line x="65.5" y="34.06"/>
+ <line x="63.44" y="34.06"/>
+ <curve x1="64.15" x2="64.97" x3="65.26" y1="33.13" y2="32.19" y3="31.13"/>
+ <curve x1="65.44" x2="65.02" x3="64.49" y1="30.38" y2="30.08" y3="30.14"/>
+ <curve x1="63.72" x2="62.59" x3="61.32" y1="30.24" y2="30.96" y3="32.06"/>
+ <line x="61.32" y="29.83"/>
+ <line x="62.09" y="30.59"/>
+ <curve x1="62.23" x2="62.36" x3="62.57" y1="30.74" y2="30.78" y3="30.61"/>
+ <curve x1="62.75" x2="62.72" x3="62.62" y1="30.46" y2="30.22" y3="30.12"/>
+ <line x="61.21" y="28.69"/>
+ <curve x1="61.05" x2="60.81" x3="60.67" y1="28.53" y2="28.55" y3="28.68"/>
+ <line x="59.21" y="30.13"/>
+ <curve x1="59.09" x2="59.1" x3="59.26" y1="30.26" y2="30.46" y3="30.61"/>
+ <curve x1="59.42" x2="59.58" x3="59.77" y1="30.77" y2="30.77" y3="30.6"/>
+ <line x="60.58" y="29.82"/>
+ <line x="60.58" y="32.06"/>
+ <curve x1="59.77" x2="58.43" x3="57.52" y1="31.36" y2="30.39" y3="30.18"/>
+ <curve x1="56.87" x2="56.52" x3="56.56" y1="30.03" y2="30.32" y3="30.91"/>
+ <curve x1="56.66" x2="57.64" x3="58.42" y1="31.84" y2="33.08" y3="34.06"/>
+ <line x="56.35" y="34.06"/>
+ <line x="57.14" y="33.23"/>
+ <curve x1="57.34" x2="57.27" x3="57.14" y1="33.03" y2="32.86" y3="32.74"/>
+ <curve x1="56.96" x2="56.75" x3="56.61" y1="32.6" y2="32.6" y3="32.73"/>
+ <line x="55.23" y="34.13"/>
+ <curve x1="55.07" x2="55.04" x3="55.25" y1="34.29" y2="34.52" y3="34.72"/>
+ <line x="56.62" y="36.09"/>
+ <curve x1="56.8" x2="56.98" x3="57.14" y1="36.27" y2="36.23" y3="36.07"/>
+ <curve x1="57.26" x2="57.31" x3="57.16" y1="35.94" y2="35.75" y3="35.6"/>
+ <line x="56.36" y="34.8"/>
+ <line x="58.54" y="34.8"/>
+ <curve x1="57.94" x2="56.99" x3="56.61" y1="35.52" y2="36.63" y3="37.86"/>
+ <curve x1="56.43" x2="56.7" x3="57.33" y1="38.39" y2="38.93" y3="38.86"/>
+ <curve x1="58.3" x2="59.72" x3="60.58" y1="38.74" y2="37.63" y3="36.91"/>
+ <line x="60.58" y="38.98"/>
+ <line x="59.73" y="38.18"/>
+ <curve x1="59.59" x2="59.43" x3="59.26" y1="38.04" y2="38.06" y3="38.21"/>
+ <curve x1="59.09" x2="59.11" x3="59.23" y1="38.37" y2="38.57" y3="38.69"/>
+ <line x="60.61" y="40.07"/>
+ <curve x1="60.83" x2="61.02" x3="61.25" y1="40.29" y2="40.3" y3="40.07"/>
+ <line x="62.62" y="38.7"/>
+ <curve x1="62.73" x2="62.74" x3="62.58" y1="38.59" y2="38.35" y3="38.2"/>
+ <curve x1="62.45" x2="62.27" x3="62.11" y1="38.09" y2="38.01" y3="38.2"/>
+ <line x="61.32" y="38.98"/>
+ <close/>
+ <move x="56.84" y="52.58"/>
+ <curve x1="56.77" x2="56.61" x3="56.4" y1="52.45" y2="52.28" y3="52.2"/>
+ <line x="56.51" y="50.73"/>
+ <curve x1="56.83" x2="57.13" x3="57.27" y1="50.68" y2="50.52" y3="50.3"/>
+ <line x="60" y="50.3"/>
+ <curve x1="60.11" x2="60.31" x3="60.59" y1="50.48" y2="50.64" y3="50.71"/>
+ <line x="60.59" y="52.17"/>
+ <curve x1="60.35" x2="60.14" x3="59.99" y1="52.24" y2="52.37" y3="52.58"/>
+ <close/>
+ <move x="57.26" y="49.61"/>
+ <curve x1="57.22" x2="56.95" x3="56.62" y1="49.5" y2="49.26" y3="49.2"/>
+ <line x="56.73" y="47.77"/>
+ <curve x1="57" x2="57.25" x3="57.47" y1="47.73" y2="47.64" y3="47.33"/>
+ <line x="60.05" y="47.33"/>
+ <curve x1="60.14" x2="60.34" x3="60.59" y1="47.49" y2="47.65" y3="47.73"/>
+ <line x="60.58" y="49.2"/>
+ <curve x1="60.32" x2="60.12" x3="60" y1="49.28" y2="49.41" y3="49.61"/>
+ <close/>
+ <move x="61.86" y="49.61"/>
+ <curve x1="61.74" x2="61.54" x3="61.27" y1="49.42" y2="49.28" y3="49.2"/>
+ <line x="61.27" y="47.73"/>
+ <curve x1="61.5" x2="61.69" x3="61.82" y1="47.66" y2="47.52" y3="47.33"/>
+ <line x="64.17" y="47.32"/>
+ <curve x1="64.31" x2="64.61" x3="64.89" y1="47.54" y2="47.7" y3="47.76"/>
+ <line x="65.01" y="49.2"/>
+ <curve x1="64.65" x2="64.45" x3="64.36" y1="49.29" y2="49.48" y3="49.61"/>
+ <close/>
+ <move x="61.86" y="52.58"/>
+ <curve x1="61.78" x2="61.59" x3="61.27" y1="52.45" y2="52.26" y3="52.17"/>
+ <line x="61.27" y="50.71"/>
+ <curve x1="61.52" x2="61.75" x3="61.85" y1="50.64" y2="50.49" y3="50.3"/>
+ <line x="64.36" y="50.3"/>
+ <curve x1="64.48" x2="64.75" x3="65.12" y1="50.49" y2="50.67" y3="50.73"/>
+ <line x="65.24" y="52.23"/>
+ <curve x1="65.03" x2="64.86" x3="64.8" y1="52.3" y2="52.47" y3="52.58"/>
+ <close/>
+ <move x="65.39" y="54.19"/>
+ <line x="66.07" y="54.19"/>
+ <line x="66.03" y="53.69"/>
+ <curve x1="66.31" x2="66.52" x3="66.66" y1="53.63" y2="53.49" y3="53.27"/>
+ <line x="67.68" y="53.28"/>
+ <line x="67.48" y="52.58"/>
+ <line x="66.66" y="52.58"/>
+ <curve x1="66.57" x2="66.29" x3="65.92" y1="52.4" y2="52.19" y3="52.14"/>
+ <line x="65.8" y="50.7"/>
+ <curve x1="66.08" x2="66.3" x3="66.42" y1="50.62" y2="50.48" y3="50.3"/>
+ <line x="67.44" y="50.3"/>
+ <line x="67.26" y="49.61"/>
+ <line x="66.42" y="49.61"/>
+ <curve x1="66.26" x2="65.99" x3="65.69" y1="49.38" y2="49.24" y3="49.18"/>
+ <line x="65.58" y="47.72"/>
+ <curve x1="65.84" x2="66.03" x3="66.15" y1="47.64" y2="47.49" y3="47.32"/>
+ <line x="66.99" y="47.32"/>
+ <line x="66.81" y="46.64"/>
+ <line x="66.27" y="46.64"/>
+ <curve x1="66.16" x2="65.81" x3="65.44" y1="46.29" y2="46.06" y3="45.98"/>
+ <line x="65.39" y="45.27"/>
+ <line x="64.7" y="45.27"/>
+ <line x="64.76" y="46.01"/>
+ <curve x1="64.36" x2="64.13" x3="64.05" y1="46.12" y2="46.41" y3="46.64"/>
+ <line x="61.92" y="46.64"/>
+ <curve x1="61.83" x2="61.54" x3="61.27" y1="46.3" y2="46.09" y3="46.01"/>
+ <line x="61.27" y="45.27"/>
+ <line x="60.58" y="45.27"/>
+ <line x="60.59" y="46"/>
+ <curve x1="60.36" x2="60.05" x3="59.94" y1="46.08" y2="46.25" y3="46.64"/>
+ <line x="57.58" y="46.64"/>
+ <curve x1="57.51" x2="57.24" x3="56.87" y1="46.36" y2="46.09" y3="45.99"/>
+ <line x="56.93" y="45.27"/>
+ <line x="56.24" y="45.27"/>
+ <line x="56.18" y="46.03"/>
+ <curve x1="55.92" x2="55.68" x3="55.59" y1="46.12" y2="46.33" y3="46.64"/>
+ <line x="55.05" y="46.64"/>
+ <line x="54.87" y="47.32"/>
+ <line x="55.7" y="47.32"/>
+ <curve x1="55.77" x2="55.91" x3="56.06" y1="47.46" y2="47.58" y3="47.65"/>
+ <line x="55.94" y="49.18"/>
+ <curve x1="55.61" x2="55.36" x3="55.21" y1="49.25" y2="49.39" y3="49.61"/>
+ <line x="54.83" y="49.61"/>
+ <line x="54.64" y="50.3"/>
+ <line x="55.22" y="50.3"/>
+ <curve x1="55.35" x2="55.63" x3="55.83" y1="50.54" y2="50.63" y3="50.7"/>
+ <line x="55.71" y="52.17"/>
+ <curve x1="55.42" x2="55.27" x3="55.19" y1="52.27" y2="52.43" y3="52.58"/>
+ <line x="54.37" y="52.59"/>
+ <line x="54.18" y="53.27"/>
+ <line x="55.19" y="53.27"/>
+ <curve x1="55.28" x2="55.42" x3="55.6" y1="53.44" y2="53.57" y3="53.64"/>
+ <line x="55.55" y="54.18"/>
+ <line x="56.24" y="54.18"/>
+ <line x="56.28" y="53.69"/>
+ <curve x1="56.6" x2="56.75" x3="56.84" y1="53.59" y2="53.43" y3="53.27"/>
+ <line x="60" y="53.27"/>
+ <curve x1="60.08" x2="60.28" x3="60.59" y1="53.42" y2="53.59" y3="53.69"/>
+ <line x="60.58" y="54.19"/>
+ <line x="61.27" y="54.18"/>
+ <line x="61.27" y="53.68"/>
+ <curve x1="61.52" x2="61.76" x3="61.85" y1="53.62" y2="53.44" y3="53.27"/>
+ <line x="64.81" y="53.27"/>
+ <curve x1="64.89" x2="65.02" x3="65.34" y1="53.42" y2="53.56" y3="53.66"/>
+ <close/>
+ <move x="29.57" y="56.69"/>
+ <curve x1="28.25" x2="27.21" x3="27.21" y1="56.69" y2="55.65" y3="54.23"/>
+ <line x="27.21" y="14.5"/>
+ <curve x1="27.21" x2="28.26" x3="29.57" y1="13.15" y2="12.12" y3="12.12"/>
+ <line x="50.02" y="12.12"/>
+ <curve x1="50.94" x2="52.35" x3="52.35" y1="12.12" y2="12.87" y3="14.58"/>
+ <line x="52.35" y="54.38"/>
+ <curve x1="52.35" x2="51.32" x3="49.98" y1="55.54" y2="56.69" y3="56.69"/>
+ <close/>
+ <move x="50" y="57.16"/>
+ <curve x1="51.56" x2="52.81" x3="52.81" y1="57.16" y2="55.86" y3="54.33"/>
+ <line x="52.81" y="14.58"/>
+ <curve x1="52.81" x2="51.38" x3="50.01" y1="12.77" y2="11.66" y3="11.66"/>
+ <line x="29.56" y="11.66"/>
+ <curve x1="28.1" x2="26.75" x3="26.75" y1="11.66" y2="12.81" y3="14.56"/>
+ <line x="26.75" y="54.23"/>
+ <curve x1="26.75" x2="28.2" x3="29.58" y1="56.16" y2="57.16" y3="57.16"/>
+ <close/>
+ <move x="19.99" y="69.05"/>
+ <line x="0" y="34.43"/>
+ <line x="19.99" y="0"/>
+ <line x="59.8" y="0"/>
+ <line x="79.79" y="34.43"/>
+ <line x="59.8" y="69.05"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="86.34" name="blank device" strokewidth="inherit" w="100">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="24.74" y="86.34"/>
+ <line x="0" y="43"/>
+ <line x="24.66" y="0"/>
+ <line x="75.28" y="0"/>
+ <line x="100" y="43"/>
+ <line x="75.27" y="86.34"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="86.34" name="blank service" strokewidth="inherit" w="100">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="72.72" y="82.83"/>
+ <line x="95.45" y="42.87"/>
+ <line x="72.71" y="3.12"/>
+ <line x="27.36" y="3.12"/>
+ <line x="4.57" y="42.84"/>
+ <line x="27.32" y="82.83"/>
+ <close/>
+ <move x="24.74" y="86.34"/>
+ <line x="0" y="43"/>
+ <line x="24.66" y="0"/>
+ <line x="75.28" y="0"/>
+ <line x="100" y="43"/>
+ <line x="75.27" y="86.34"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="call manager" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.15"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="24.67" y="20.63"/>
+ <curve x1="24.67" x2="24.67" x3="24.67" y1="46.51" y2="46.51" y3="46.51"/>
+ <curve x1="24.67" x2="22.15" x3="19.01" y1="49.72" y2="52.25" y3="52.25"/>
+ <curve x1="18.54" x2="18.54" x3="18.54" y1="52.25" y2="52.25" y3="52.25"/>
+ <curve x1="15.41" x2="12.87" x3="12.87" y1="52.25" y2="49.72" y3="46.51"/>
+ <curve x1="12.87" x2="12.87" x3="12.87" y1="20.63" y2="20.63" y3="20.63"/>
+ <curve x1="12.87" x2="14.74" x3="17.2" y1="17.89" y2="15.62" y3="15.08"/>
+ <curve x1="17.2" x2="17.2" x3="17.2" y1="22.76" y2="22.76" y3="22.76"/>
+ <curve x1="17.2" x2="17.88" x3="18.68" y1="23.56" y2="24.22" y3="24.22"/>
+ <curve x1="18.87" x2="18.87" x3="18.87" y1="24.22" y2="24.22" y3="24.22"/>
+ <curve x1="19.67" x2="20.34" x3="20.34" y1="24.22" y2="23.56" y3="22.76"/>
+ <curve x1="20.34" x2="20.34" x3="20.34" y1="15.08" y2="15.08" y3="15.08"/>
+ <curve x1="22.81" x2="24.67" x3="24.67" y1="15.62" y2="17.89" y3="20.63"/>
+ <close/>
+ <move x="63.01" y="17.89"/>
+ <curve x1="63.01" x2="63.01" x3="63.01" y1="49.45" y2="49.45" y3="49.45"/>
+ <curve x1="63.01" x2="61.75" x3="60.22" y1="51.04" y2="52.32" y3="52.32"/>
+ <curve x1="29.27" x2="29.27" x3="29.27" y1="52.32" y2="52.32" y3="52.32"/>
+ <curve x1="27.74" x2="26.48" x3="26.48" y1="52.32" y2="51.04" y3="49.45"/>
+ <curve x1="26.48" x2="26.48" x3="26.48" y1="17.89" y2="17.89" y3="17.89"/>
+ <curve x1="26.48" x2="27.74" x3="29.27" y1="16.28" y2="14.94" y3="14.94"/>
+ <curve x1="60.22" x2="60.22" x3="60.22" y1="14.94" y2="14.94" y3="14.94"/>
+ <curve x1="61.75" x2="63.01" x3="63.01" y1="14.94" y2="16.28" y3="17.89"/>
+ <close/>
+ <move x="33.48" y="41.5"/>
+ <curve x1="33.48" x2="32.68" x3="31.62" y1="40.43" y2="39.58" y3="39.58"/>
+ <curve x1="30.61" x2="29.74" x3="29.74" y1="39.58" y2="40.43" y3="41.5"/>
+ <curve x1="29.74" x2="30.61" x3="31.62" y1="42.57" y2="43.44" y3="43.44"/>
+ <curve x1="32.68" x2="33.48" x3="33.48" y1="43.44" y2="42.57" y3="41.5"/>
+ <close/>
+ <move x="39.14" y="41.5"/>
+ <curve x1="39.14" x2="38.27" x3="37.21" y1="40.43" y2="39.58" y3="39.58"/>
+ <curve x1="36.21" x2="35.34" x3="35.34" y1="39.58" y2="40.43" y3="41.5"/>
+ <curve x1="35.34" x2="36.21" x3="37.21" y1="42.57" y2="43.44" y3="43.44"/>
+ <curve x1="38.27" x2="39.14" x3="39.14" y1="43.44" y2="42.57" y3="41.5"/>
+ <close/>
+ <move x="44.74" y="41.5"/>
+ <curve x1="44.74" x2="43.88" x3="42.87" y1="40.43" y2="39.58" y3="39.58"/>
+ <curve x1="41.8" x2="41.01" x3="41.01" y1="39.58" y2="40.43" y3="41.5"/>
+ <curve x1="41.01" x2="41.8" x3="42.87" y1="42.57" y2="43.44" y3="43.44"/>
+ <curve x1="43.88" x2="44.74" x3="44.74" y1="43.44" y2="42.57" y3="41.5"/>
+ <close/>
+ <move x="48.34" y="18.61"/>
+ <curve x1="30.34" x2="30.34" x3="30.34" y1="18.61" y2="18.61" y3="18.61"/>
+ <curve x1="30.34" x2="30.34" x3="30.34" y1="35.29" y2="35.29" y3="35.29"/>
+ <curve x1="48.34" x2="48.34" x3="48.34" y1="35.29" y2="35.29" y3="35.29"/>
+ <line x="48.34" y="18.61"/>
+ <close/>
+ <move x="59.67" y="33.02"/>
+ <curve x1="59.67" x2="58.88" x3="57.87" y1="32.03" y2="31.24" y3="31.16"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="31.16" y2="31.16" y3="31.16"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="31.16" y2="31.16" y3="31.16"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="31.16" y2="31.16" y3="31.16"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="31.16" y2="31.16" y3="31.16"/>
+ <curve x1="52.75" x2="51.95" x3="51.95" y1="31.16" y2="32.03" y3="33.02"/>
+ <curve x1="51.95" x2="52.75" x3="53.81" y1="34.03" y2="34.9" y3="34.9"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="34.9" y2="34.9" y3="34.9"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="34.9" y2="34.9" y3="34.9"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="34.9" y2="34.9" y3="34.9"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="34.9" y2="34.9" y3="34.9"/>
+ <curve x1="58.88" x2="59.67" x3="59.67" y1="34.83" y2="34.03" y3="33.02"/>
+ <close/>
+ <move x="59.67" y="26.56"/>
+ <curve x1="59.67" x2="58.88" x3="57.87" y1="25.56" y2="24.76" y3="24.68"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="24.68" y2="24.68" y3="24.68"/>
+ <curve x1="52.75" x2="51.95" x3="51.95" y1="24.68" y2="25.56" y3="26.56"/>
+ <curve x1="51.95" x2="52.75" x3="53.81" y1="27.55" y2="28.43" y3="28.43"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="28.43" y2="28.43" y3="28.43"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="28.43" y2="28.43" y3="28.43"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="28.43" y2="28.43" y3="28.43"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="28.37" y2="28.37" y3="28.37"/>
+ <curve x1="58.88" x2="59.67" x3="59.67" y1="28.37" y2="27.55" y3="26.56"/>
+ <close/>
+ <move x="59.67" y="20.08"/>
+ <curve x1="59.67" x2="58.88" x3="57.87" y1="19.08" y2="18.28" y3="18.22"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="18.22" y2="18.22" y3="18.22"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="18.22" y2="18.22" y3="18.22"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="18.22" y2="18.22" y3="18.22"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="18.22" y2="18.22" y3="18.22"/>
+ <curve x1="52.75" x2="51.95" x3="51.95" y1="18.22" y2="19.02" y3="20.08"/>
+ <curve x1="51.95" x2="52.75" x3="53.81" y1="21.09" y2="21.89" y3="21.89"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="21.89" y2="21.89" y3="21.89"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="21.89" y2="21.89" y3="21.89"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="21.89" y2="21.89" y3="21.89"/>
+ <curve x1="57.87" x2="57.87" x3="57.87" y1="21.89" y2="21.89" y3="21.89"/>
+ <curve x1="58.88" x2="59.67" x3="59.67" y1="21.89" y2="21.09" y3="20.08"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="catalyst data center switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="35.18"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="35.18"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ <move x="55.41" y="48.45"/>
+ <curve x1="55.49" x2="55.55" x3="55.55" y1="48.59" y2="48.73" y3="48.94"/>
+ <curve x1="55.55" x2="55.55" x3="55.55" y1="48.94" y2="48.94" y3="49.08"/>
+ <curve x1="55.55" x2="55.49" x3="55.35" y1="49.28" y2="49.5" y3="49.56"/>
+ <curve x1="55.35" x2="55.35" x3="55.29" y1="49.56" y2="49.64" y3="49.64"/>
+ <curve x1="55.29" x2="55.29" x3="52.5" y1="49.64" y2="49.64" y3="52.41"/>
+ <curve x1="52.3" x2="51.81" x3="51.59" y1="52.69" y2="52.69" y3="52.41"/>
+ <curve x1="51.59" x2="51.59" x3="51.47" y1="52.41" y2="52.41" y3="52.35"/>
+ <curve x1="51.19" x2="51.19" x3="51.47" y1="52.07" y2="51.64" y3="51.38"/>
+ <curve x1="51.47" x2="51.47" x3="53.06" y1="51.38" y2="51.38" y3="49.77"/>
+ <curve x1="53.06" x2="53.06" x3="48.13" y1="49.77" y2="49.77" y3="49.77"/>
+ <curve x1="47.99" x2="47.29" x3="46.25" y1="51.44" y2="52.98" y3="54.23"/>
+ <curve x1="46.25" x2="46.25" x3="49.79" y1="54.23" y2="54.23" y3="57.7"/>
+ <curve x1="49.79" x2="49.79" x3="49.79" y1="57.7" y2="57.7" y3="55.4"/>
+ <curve x1="49.79" x2="50.14" x3="50.5" y1="54.98" y2="54.71" y3="54.71"/>
+ <curve x1="50.5" x2="50.5" x3="50.62" y1="54.71" y2="54.71" y3="54.71"/>
+ <curve x1="50.98" x2="51.25" x3="51.25" y1="54.71" y2="54.98" y3="55.4"/>
+ <curve x1="51.25" x2="51.25" x3="51.25" y1="55.4" y2="55.4" y3="59.3"/>
+ <curve x1="51.25" x2="51.25" x3="51.25" y1="59.36" y2="59.44" y3="59.5"/>
+ <curve x1="51.25" x2="51.19" x3="51.11" y1="59.64" y2="59.85" y3="59.93"/>
+ <curve x1="51.11" x2="51.11" x3="50.98" y1="59.93" y2="59.93" y3="60.07"/>
+ <curve x1="50.84" x2="50.62" x3="50.42" y1="60.19" y2="60.27" y3="60.19"/>
+ <curve x1="50.42" x2="50.36" x3="50.36" y1="60.19" y2="60.27" y3="60.27"/>
+ <curve x1="50.36" x2="50.36" x3="46.46" y1="60.27" y2="60.27" y3="60.27"/>
+ <curve x1="46.05" x2="45.77" x3="45.77" y1="60.27" y2="59.93" y3="59.57"/>
+ <curve x1="45.77" x2="45.77" x3="45.77" y1="59.57" y2="59.57" y3="59.44"/>
+ <curve x1="45.77" x2="46.05" x3="46.46" y1="59.08" y2="58.74" y3="58.74"/>
+ <curve x1="46.46" x2="46.46" x3="48.68" y1="58.74" y2="58.74" y3="58.74"/>
+ <curve x1="48.68" x2="48.68" x3="45.21" y1="58.74" y2="58.74" y3="55.26"/>
+ <curve x1="44.03" x2="42.5" x3="40.84" y1="56.23" y2="56.94" y3="57.08"/>
+ <curve x1="40.84" x2="40.84" x3="40.84" y1="57.08" y2="57.08" y3="62.01"/>
+ <curve x1="40.84" x2="40.84" x3="42.43" y1="62.01" y2="62.01" y3="60.41"/>
+ <curve x1="42.72" x2="43.12" x3="43.4" y1="60.13" y2="60.13" y3="60.41"/>
+ <curve x1="43.4" x2="43.4" x3="43.47" y1="60.41" y2="60.41" y3="60.55"/>
+ <curve x1="43.75" x2="43.75" x3="43.47" y1="60.76" y2="61.24" y3="61.44"/>
+ <curve x1="43.47" x2="43.47" x3="40.7" y1="61.44" y2="61.44" y3="64.23"/>
+ <curve x1="40.7" x2="40.63" x3="40.63" y1="64.29" y2="64.29" y3="64.29"/>
+ <curve x1="40.56" x2="40.35" x3="40.15" y1="64.43" y2="64.51" y3="64.51"/>
+ <curve x1="40.15" x2="40.15" x3="40.01" y1="64.51" y2="64.51" y3="64.51"/>
+ <curve x1="39.79" x2="39.65" x3="39.52" y1="64.51" y2="64.43" y3="64.37"/>
+ <curve x1="39.44" x2="39.44" x3="39.38" y1="64.29" y2="64.29" y3="64.23"/>
+ <curve x1="39.38" x2="39.38" x3="36.59" y1="64.23" y2="64.23" y3="61.44"/>
+ <curve x1="36.33" x2="36.33" x3="36.59" y1="61.24" y2="60.76" y3="60.55"/>
+ <curve x1="36.59" x2="36.59" x3="36.74" y1="60.55" y2="60.55" y3="60.41"/>
+ <curve x1="36.94" x2="37.44" x3="37.64" y1="60.13" y2="60.13" y3="60.41"/>
+ <curve x1="37.64" x2="37.64" x3="39.3" y1="60.41" y2="60.41" y3="62.07"/>
+ <curve x1="39.3" x2="39.3" x3="39.3" y1="62.07" y2="62.07" y3="57.08"/>
+ <curve x1="37.64" x2="36.11" x3="34.86" y1="56.94" y2="56.23" y3="55.26"/>
+ <curve x1="34.86" x2="34.86" x3="31.4" y1="55.26" y2="55.26" y3="58.74"/>
+ <curve x1="31.4" x2="31.4" x3="33.62" y1="58.74" y2="58.74" y3="58.74"/>
+ <curve x1="34.03" x2="34.31" x3="34.31" y1="58.74" y2="59.08" y3="59.44"/>
+ <curve x1="34.31" x2="34.31" x3="34.31" y1="59.44" y2="59.44" y3="59.57"/>
+ <curve x1="34.31" x2="34.03" x3="33.62" y1="59.93" y2="60.27" y3="60.27"/>
+ <curve x1="33.62" x2="33.62" x3="29.72" y1="60.27" y2="60.27" y3="60.27"/>
+ <curve x1="29.72" x2="29.72" x3="29.66" y1="60.27" y2="60.19" y3="60.19"/>
+ <curve x1="29.44" x2="29.24" x3="29.1" y1="60.27" y2="60.19" y3="60.07"/>
+ <curve x1="29.1" x2="29.1" x3="28.95" y1="60.07" y2="60.07" y3="59.93"/>
+ <curve x1="28.89" x2="28.81" x3="28.81" y1="59.85" y2="59.64" y3="59.5"/>
+ <curve x1="28.81" x2="28.81" x3="28.81" y1="59.44" y2="59.36" y3="59.3"/>
+ <curve x1="28.81" x2="28.81" x3="28.81" y1="59.3" y2="59.3" y3="55.4"/>
+ <curve x1="28.81" x2="29.1" x3="29.44" y1="54.98" y2="54.71" y3="54.71"/>
+ <curve x1="29.44" x2="29.44" x3="29.58" y1="54.71" y2="54.71" y3="54.71"/>
+ <curve x1="29.93" x2="30.29" x3="30.29" y1="54.71" y2="54.98" y3="55.4"/>
+ <curve x1="30.29" x2="30.29" x3="30.29" y1="55.4" y2="55.4" y3="57.7"/>
+ <curve x1="30.29" x2="30.29" x3="33.82" y1="57.7" y2="57.7" y3="54.23"/>
+ <curve x1="32.77" x2="32.09" x3="31.95" y1="52.98" y2="51.44" y3="49.77"/>
+ <curve x1="31.95" x2="31.95" x3="27.01" y1="49.77" y2="49.77" y3="49.77"/>
+ <curve x1="27.01" x2="27.01" x3="28.61" y1="49.77" y2="49.77" y3="51.38"/>
+ <curve x1="28.89" x2="28.89" x3="28.61" y1="51.64" y2="52.07" y3="52.35"/>
+ <curve x1="28.61" x2="28.61" x3="28.55" y1="52.35" y2="52.35" y3="52.41"/>
+ <curve x1="28.27" x2="27.84" x3="27.58" y1="52.69" y2="52.69" y3="52.41"/>
+ <curve x1="27.58" x2="27.58" x3="24.79" y1="52.41" y2="52.41" y3="49.64"/>
+ <curve x1="24.73" x2="24.73" x3="24.73" y1="49.64" y2="49.56" y3="49.56"/>
+ <curve x1="24.59" x2="24.45" x3="24.45" y1="49.5" y2="49.28" y3="49.08"/>
+ <curve x1="24.45" x2="24.45" x3="24.45" y1="49.08" y2="49.08" y3="48.94"/>
+ <curve x1="24.45" x2="24.59" x3="24.65" y1="48.73" y2="48.59" y3="48.45"/>
+ <curve x1="24.73" x2="24.73" x3="24.79" y1="48.39" y2="48.39" y3="48.31"/>
+ <curve x1="24.79" x2="24.79" x3="27.58" y1="48.31" y2="48.31" y3="45.54"/>
+ <curve x1="27.84" x2="28.27" x3="28.55" y1="45.26" y2="45.26" y3="45.54"/>
+ <curve x1="28.55" x2="28.55" x3="28.61" y1="45.54" y2="45.54" y3="45.66"/>
+ <curve x1="28.89" x2="28.89" x3="28.61" y1="45.95" y2="46.37" y3="46.65"/>
+ <curve x1="28.61" x2="28.61" x3="27.01" y1="46.65" y2="46.65" y3="48.25"/>
+ <curve x1="27.01" x2="27.01" x3="31.95" y1="48.25" y2="48.25" y3="48.25"/>
+ <curve x1="32.09" x2="32.77" x3="33.75" y1="46.57" y2="45.04" y3="43.8"/>
+ <curve x1="33.75" x2="33.75" x3="30.29" y1="43.8" y2="43.8" y3="40.33"/>
+ <curve x1="30.29" x2="30.29" x3="30.29" y1="40.33" y2="40.33" y3="42.55"/>
+ <curve x1="30.29" x2="29.93" x3="29.58" y1="42.96" y2="43.24" y3="43.24"/>
+ <curve x1="29.58" x2="29.58" x3="29.44" y1="43.24" y2="43.24" y3="43.24"/>
+ <curve x1="29.1" x2="28.81" x3="28.81" y1="43.24" y2="42.96" y3="42.55"/>
+ <curve x1="28.81" x2="28.81" x3="28.81" y1="42.55" y2="42.55" y3="38.65"/>
+ <curve x1="28.81" x2="28.81" x3="28.81" y1="38.65" y2="38.65" y3="38.59"/>
+ <curve x1="28.75" x2="28.81" x3="28.95" y1="38.37" y2="38.16" y3="38.02"/>
+ <curve x1="28.95" x2="28.95" x3="29.1" y1="38.02" y2="38.02" y3="37.88"/>
+ <curve x1="29.24" x2="29.38" x3="29.52" y1="37.82" y2="37.74" y3="37.74"/>
+ <curve x1="29.58" x2="29.66" x3="29.72" y1="37.74" y2="37.74" y3="37.74"/>
+ <curve x1="29.72" x2="29.72" x3="33.62" y1="37.74" y2="37.74" y3="37.74"/>
+ <curve x1="34.03" x2="34.31" x3="34.31" y1="37.74" y2="38.02" y3="38.37"/>
+ <curve x1="34.31" x2="34.31" x3="34.31" y1="38.37" y2="38.37" y3="38.51"/>
+ <curve x1="34.31" x2="34.03" x3="33.62" y1="38.93" y2="39.2" y3="39.2"/>
+ <curve x1="33.62" x2="33.62" x3="31.32" y1="39.2" y2="39.2" y3="39.2"/>
+ <curve x1="31.32" x2="31.32" x3="34.86" y1="39.2" y2="39.2" y3="42.75"/>
+ <curve x1="36.05" x2="37.64" x3="39.3" y1="41.7" y2="41.01" y3="40.87"/>
+ <curve x1="39.3" x2="39.3" x3="39.3" y1="40.87" y2="40.87" y3="35.94"/>
+ <curve x1="39.3" x2="39.3" x3="37.64" y1="35.94" y2="35.94" y3="37.54"/>
+ <curve x1="37.44" x2="36.94" x3="36.74" y1="37.82" y2="37.82" y3="37.54"/>
+ <curve x1="36.74" x2="36.74" x3="36.59" y1="37.54" y2="37.54" y3="37.46"/>
+ <curve x1="36.33" x2="36.33" x3="36.59" y1="37.19" y2="36.77" y3="36.49"/>
+ <curve x1="36.59" x2="36.59" x3="39.38" y1="36.49" y2="36.49" y3="33.72"/>
+ <curve x1="39.44" x2="39.44" x3="39.52" y1="33.64" y2="33.64" y3="33.58"/>
+ <curve x1="39.65" x2="39.79" x3="40.01" y1="33.5" y2="33.37" y3="33.37"/>
+ <curve x1="40.01" x2="40.01" x3="40.15" y1="33.37" y2="33.37" y3="33.37"/>
+ <curve x1="40.35" x2="40.56" x3="40.63" y1="33.37" y2="33.5" y3="33.64"/>
+ <curve x1="40.63" x2="40.7" x3="40.7" y1="33.64" y2="33.64" y3="33.72"/>
+ <curve x1="40.7" x2="40.7" x3="43.47" y1="33.72" y2="33.72" y3="36.49"/>
+ <curve x1="43.75" x2="43.75" x3="43.47" y1="36.77" y2="37.19" y3="37.46"/>
+ <curve x1="43.47" x2="43.47" x3="43.4" y1="37.46" y2="37.46" y3="37.54"/>
+ <curve x1="43.12" x2="42.72" x3="42.43" y1="37.82" y2="37.82" y3="37.54"/>
+ <curve x1="42.43" x2="42.43" x3="40.84" y1="37.54" y2="37.54" y3="35.94"/>
+ <curve x1="40.84" x2="40.84" x3="40.84" y1="35.94" y2="35.94" y3="40.87"/>
+ <curve x1="42.5" x2="44.03" x3="45.28" y1="41.08" y2="41.7" y3="42.75"/>
+ <curve x1="45.28" x2="45.28" x3="48.76" y1="42.75" y2="42.75" y3="39.2"/>
+ <curve x1="48.76" x2="48.76" x3="46.46" y1="39.2" y2="39.2" y3="39.2"/>
+ <curve x1="46.05" x2="45.77" x3="45.77" y1="39.2" y2="38.93" y3="38.51"/>
+ <curve x1="45.77" x2="45.77" x3="45.77" y1="38.51" y2="38.51" y3="38.37"/>
+ <curve x1="45.77" x2="46.05" x3="46.46" y1="38.02" y2="37.74" y3="37.74"/>
+ <curve x1="46.46" x2="46.46" x3="50.36" y1="37.74" y2="37.74" y3="37.74"/>
+ <curve x1="50.42" x2="50.5" x3="50.56" y1="37.74" y2="37.74" y3="37.74"/>
+ <curve x1="50.7" x2="50.84" x3="50.98" y1="37.74" y2="37.82" y3="37.88"/>
+ <curve x1="50.98" x2="50.98" x3="51.11" y1="37.88" y2="37.88" y3="38.02"/>
+ <curve x1="51.25" x2="51.33" x3="51.25" y1="38.16" y2="38.37" y3="38.59"/>
+ <curve x1="51.25" x2="51.25" x3="51.33" y1="38.65" y2="38.65" y3="38.65"/>
+ <curve x1="51.33" x2="51.33" x3="51.25" y1="38.65" y2="38.65" y3="42.55"/>
+ <curve x1="51.25" x2="50.98" x3="50.62" y1="42.96" y2="43.24" y3="43.24"/>
+ <curve x1="50.62" x2="50.62" x3="50.5" y1="43.24" y2="43.24" y3="43.24"/>
+ <curve x1="50.14" x2="49.79" x3="49.79" y1="43.24" y2="42.96" y3="42.55"/>
+ <curve x1="49.79" x2="49.79" x3="49.79" y1="42.55" y2="42.55" y3="40.33"/>
+ <curve x1="49.79" x2="49.79" x3="46.32" y1="40.33" y2="40.33" y3="43.8"/>
+ <curve x1="47.29" x2="47.99" x3="48.13" y1="45.04" y2="46.57" y3="48.25"/>
+ <curve x1="48.13" x2="48.13" x3="53.13" y1="48.25" y2="48.25" y3="48.25"/>
+ <curve x1="53.13" x2="53.13" x3="51.47" y1="48.25" y2="48.25" y3="46.65"/>
+ <curve x1="51.19" x2="51.19" x3="51.47" y1="46.37" y2="45.95" y3="45.66"/>
+ <curve x1="51.47" x2="51.47" x3="51.59" y1="45.66" y2="45.66" y3="45.54"/>
+ <curve x1="51.81" x2="52.3" x3="52.5" y1="45.26" y2="45.26" y3="45.54"/>
+ <curve x1="52.5" x2="52.5" x3="55.29" y1="45.54" y2="45.54" y3="48.31"/>
+ <curve x1="55.35" x2="55.35" x3="55.41" y1="48.39" y2="48.39" y3="48.45"/>
+ <close/>
+ <move x="51.25" y="12.31"/>
+ <line x="51.25" y="12.31"/>
+ <line x="50.7" y="12.31"/>
+ <line x="40.98" y="15.02"/>
+ <line x="50.7" y="17.58"/>
+ <line x="58.89" y="17.58"/>
+ <line x="58.89" y="22.25"/>
+ <line x="49.79" y="22.25"/>
+ <line x="49.79" y="20.29"/>
+ <line x="29.18" y="20.29"/>
+ <line x="29.18" y="22.25"/>
+ <line x="20" y="22.25"/>
+ <line x="20" y="17.58"/>
+ <line x="28.47" y="17.58"/>
+ <line x="38.33" y="15.02"/>
+ <line x="28.47" y="12.31"/>
+ <line x="28.06" y="12.31"/>
+ <line x="20" y="12.31"/>
+ <line x="20" y="7.78"/>
+ <line x="29.18" y="7.78"/>
+ <line x="29.18" y="9.6"/>
+ <line x="49.79" y="9.6"/>
+ <line x="49.79" y="7.78"/>
+ <line x="58.89" y="7.78"/>
+ <line x="58.89" y="12.31"/>
+ <line x="51.25" y="12.31"/>
+ <close/>
+ <move x="49.79" y="18.15"/>
+ <line x="49.79" y="18.15"/>
+ <line x="39.65" y="15.44"/>
+ <line x="29.18" y="18.15"/>
+ <line x="29.18" y="19.54"/>
+ <line x="49.79" y="19.54"/>
+ <line x="49.79" y="18.15"/>
+ <close/>
+ <move x="49.79" y="11.96"/>
+ <line x="49.79" y="11.96"/>
+ <line x="49.79" y="10.35"/>
+ <line x="29.18" y="10.35"/>
+ <line x="29.18" y="11.96"/>
+ <line x="39.65" y="14.67"/>
+ <line x="49.79" y="11.96"/>
+ <close/>
+ <move x="8.89" y="26.7"/>
+ <line x="8.89" y="26.7"/>
+ <line x="71.12" y="26.7"/>
+ <line x="71.12" y="27.81"/>
+ <line x="8.89" y="27.81"/>
+ <line x="8.89" y="26.7"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="catalyst switch stack" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.56" y="36.7"/>
+ <line x="27.78" y="38.65"/>
+ <line x="26.67" y="38.65"/>
+ <line x="26.67" y="44.7"/>
+ <line x="26.67" y="44.7"/>
+ <line x="26.95" y="44.7"/>
+ <line x="27.16" y="44.7"/>
+ <line x="27.34" y="44.89"/>
+ <line x="32.15" y="40.8"/>
+ <line x="31.32" y="40.03"/>
+ <line x="34.45" y="40.03"/>
+ <line x="34.45" y="42.68"/>
+ <line x="33.62" y="42.13"/>
+ <line x="29.23" y="45.99"/>
+ <line x="29.38" y="46.1"/>
+ <line x="29.38" y="46.3"/>
+ <line x="29.58" y="46.5"/>
+ <line x="29.58" y="46.72"/>
+ <line x="35.62" y="46.72"/>
+ <line x="35.62" y="45.61"/>
+ <line x="37.78" y="47.83"/>
+ <line x="35.62" y="50.05"/>
+ <line x="35.62" y="48.94"/>
+ <line x="30" y="48.94"/>
+ <line x="30" y="49.15"/>
+ <line x="30" y="49.29"/>
+ <line x="29.8" y="49.7"/>
+ <line x="29.8" y="49.91"/>
+ <line x="29.64" y="50.07"/>
+ <line x="33.62" y="53.74"/>
+ <line x="34.45" y="52.97"/>
+ <line x="34.45" y="55.62"/>
+ <line x="31.32" y="55.62"/>
+ <line x="32.15" y="55.05"/>
+ <line x="28.17" y="51.61"/>
+ <line x="28.06" y="51.71"/>
+ <line x="27.78" y="51.93"/>
+ <line x="27.58" y="51.93"/>
+ <line x="27.36" y="52.14"/>
+ <line x="27.16" y="52.14"/>
+ <line x="26.95" y="52.14"/>
+ <line x="26.67" y="52.28"/>
+ <line x="26.67" y="52.28"/>
+ <line x="26.67" y="57.84"/>
+ <line x="27.78" y="57.84"/>
+ <line x="25.56" y="60.06"/>
+ <line x="23.33" y="57.84"/>
+ <line x="24.45" y="57.84"/>
+ <line x="24.45" y="52.28"/>
+ <line x="24.24" y="52.14"/>
+ <line x="24.02" y="52.14"/>
+ <line x="23.82" y="52.14"/>
+ <line x="23.62" y="51.93"/>
+ <line x="23.34" y="51.71"/>
+ <line x="23.13" y="51.71"/>
+ <line x="23" y="51.59"/>
+ <line x="19.03" y="55.05"/>
+ <line x="19.86" y="55.62"/>
+ <line x="16.67" y="55.62"/>
+ <line x="16.67" y="52.97"/>
+ <line x="17.58" y="53.74"/>
+ <line x="21.6" y="50.17"/>
+ <line x="21.6" y="50.12"/>
+ <line x="21.6" y="49.91"/>
+ <line x="21.39" y="49.7"/>
+ <line x="21.39" y="49.29"/>
+ <line x="21.11" y="49.15"/>
+ <line x="21.11" y="48.94"/>
+ <line x="15.49" y="48.94"/>
+ <line x="15.49" y="50.05"/>
+ <line x="13.33" y="47.83"/>
+ <line x="15.49" y="45.61"/>
+ <line x="15.49" y="46.5"/>
+ <line x="21.8" y="46.5"/>
+ <line x="21.8" y="46.3"/>
+ <line x="22.02" y="46.1"/>
+ <line x="22.15" y="46.01"/>
+ <line x="17.58" y="42.13"/>
+ <line x="16.67" y="42.68"/>
+ <line x="16.67" y="40.03"/>
+ <line x="19.86" y="40.03"/>
+ <line x="19.03" y="40.8"/>
+ <line x="23.8" y="44.9"/>
+ <line x="23.82" y="44.9"/>
+ <line x="24.02" y="44.7"/>
+ <line x="24.24" y="44.7"/>
+ <line x="24.45" y="44.7"/>
+ <line x="24.45" y="38.65"/>
+ <line x="23.33" y="38.65"/>
+ <line x="25.56" y="36.7"/>
+ <close/>
+ <move x="34.17" y="23.35"/>
+ <line x="37.78" y="27.11"/>
+ <line x="34.17" y="31.15"/>
+ <line x="34.17" y="29.13"/>
+ <line x="27.78" y="29.13"/>
+ <line x="27.78" y="25.45"/>
+ <line x="34.17" y="25.45"/>
+ <line x="34.17" y="23.35"/>
+ <close/>
+ <move x="19.44" y="18.9"/>
+ <line x="19.44" y="21"/>
+ <line x="26.67" y="21"/>
+ <line x="26.67" y="24.68"/>
+ <line x="19.44" y="24.68"/>
+ <line x="19.44" y="26.7"/>
+ <line x="15.56" y="22.8"/>
+ <line x="19.44" y="18.9"/>
+ <close/>
+ <move x="34.17" y="13.34"/>
+ <line x="37.78" y="17.73"/>
+ <line x="34.17" y="22.25"/>
+ <line x="34.17" y="20.02"/>
+ <line x="27.78" y="20.02"/>
+ <line x="27.78" y="15.64"/>
+ <line x="34.17" y="15.64"/>
+ <line x="34.17" y="13.34"/>
+ <close/>
+ <move x="19.44" y="10"/>
+ <line x="19.44" y="11.88"/>
+ <line x="26.67" y="11.88"/>
+ <line x="26.67" y="15.98"/>
+ <line x="19.44" y="15.98"/>
+ <line x="19.44" y="17.8"/>
+ <line x="15.56" y="13.9"/>
+ <line x="19.44" y="10"/>
+ <close/>
+ <move x="55" y="8.9"/>
+ <curve x1="54.14" x2="53.2" x3="52.19" y1="8.9" y2="9.41" y3="10.64"/>
+ <curve x1="51.19" x2="50.21" x3="49.38" y1="11.87" y2="13.76" y3="16.14"/>
+ <curve x1="47.73" x2="46.67" x3="46.67" y1="20.91" y2="27.63" y3="35.03"/>
+ <curve x1="46.67" x2="47.73" x3="49.38" y1="42.47" y2="49.19" y3="53.96"/>
+ <curve x1="50.21" x2="51.19" x3="52.19" y1="56.34" y2="58.22" y3="59.45"/>
+ <curve x1="53.19" x2="54.13" x3="55" y1="60.67" y2="61.18" y3="61.18"/>
+ <curve x1="55.89" x2="56.84" x3="57.84" y1="61.18" y2="60.67" y3="59.44"/>
+ <curve x1="58.85" x2="59.83" x3="60.66" y1="58.22" y2="56.34" y3="53.96"/>
+ <curve x1="62.3" x2="63.34" x3="63.34" y1="49.19" y2="42.48" y3="35.03"/>
+ <curve x1="63.34" x2="62.3" x3="60.65" y1="27.63" y2="20.91" y3="16.14"/>
+ <curve x1="59.83" x2="58.85" x3="57.84" y1="13.76" y2="11.87" y3="10.64"/>
+ <curve x1="56.84" x2="55.89" x3="55" y1="9.41" y2="8.9" y3="8.9"/>
+ <close/>
+ <move x="55" y="6.68"/>
+ <curve x1="56.75" x2="58.3" x3="59.56" y1="6.68" y2="7.7" y3="9.23"/>
+ <curve x1="60.82" x2="61.88" x3="62.76" y1="10.77" y2="12.87" y3="15.42"/>
+ <curve x1="64.52" x2="65.57" x3="65.57" y1="20.52" y2="27.42" y3="35.03"/>
+ <curve x1="65.57" x2="64.52" x3="62.76" y1="42.68" y2="49.59" y3="54.68"/>
+ <curve x1="61.88" x2="60.82" x3="59.56" y1="57.23" y2="59.33" y3="60.86"/>
+ <curve x1="58.3" x2="56.75" x3="55" y1="62.39" y2="63.4" y3="63.4"/>
+ <curve x1="53.27" x2="51.73" x3="50.47" y1="63.4" y2="62.39" y3="60.86"/>
+ <curve x1="49.22" x2="48.16" x3="47.28" y1="59.33" y2="57.23" y3="54.68"/>
+ <curve x1="45.53" x2="44.48" x3="44.46" y1="49.63" y2="42.79" y3="35.21"/>
+ <arc large-arc-flag="0" rx="1.11" ry="1.11" sweep-flag="1" x="44.45" x-axis-rotation="0" y="35.03"/>
+ <arc large-arc-flag="0" rx="1.11" ry="1.11" sweep-flag="1" x="44.46" x-axis-rotation="0" y="34.84"/>
+ <arc large-arc-flag="0" rx="1.11" ry="1.11" sweep-flag="1" x="44.46" x-axis-rotation="0" y="34.84"/>
+ <curve x1="44.48" x2="45.53" x3="47.28" y1="27.31" y2="20.47" y3="15.42"/>
+ <curve x1="48.16" x2="49.22" x3="50.47" y1="12.87" y2="10.77" y3="9.23"/>
+ <curve x1="51.73" x2="53.26" x3="55" y1="7.7" y2="6.68" y3="6.68"/>
+ <close/>
+ <move x="40" y="6.67"/>
+ <line x="41.12" y="6.67"/>
+ <line x="41.12" y="64.51"/>
+ <line x="40" y="64.51"/>
+ <line x="40" y="6.67"/>
+ <close/>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.9"/>
+ <line x="60.01" y="0"/>
+ <line x="20.01" y="0"/>
+ <line x="0" y="34.9"/>
+ <line x="20.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="cisco amp" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.16"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="66.26" y="16.8"/>
+ <line x="62.21" y="15.95"/>
+ <line x="62.21" y="17.75"/>
+ <line x="56.68" y="16.42"/>
+ <line x="56.68" y="14.61"/>
+ <line x="53.47" y="13.87"/>
+ <line x="50.21" y="14.61"/>
+ <line x="50.21" y="16.42"/>
+ <line x="44.68" y="17.75"/>
+ <line x="44.68" y="15.95"/>
+ <line x="39.54" y="17.02"/>
+ <line x="39.54" y="26.83"/>
+ <curve x1="39.54" x2="45.34" x3="53.47" y1="35.97" y2="43.78" y3="46.98"/>
+ <curve x1="61.54" x2="67.27" x3="67.27" y1="43.78" y2="35.97" y3="26.83"/>
+ <line x="67.27" y="18.55"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="19.27" y="17.08"/>
+ <curve x1="18.15" x2="17.14" x3="17.14" y1="17.08" y2="17.96" y3="19.16"/>
+ <line x="17.14" y="35.24"/>
+ <line x="39.55" y="35.24"/>
+ <curve x1="39.34" x2="39.2" x3="39.07" y1="34.77" y2="34.17" y3="33.63"/>
+ <line x="20.75" y="33.63"/>
+ <curve x1="19.87" x2="19.21" x3="19.21" y1="33.63" y2="32.89" y3="32.16"/>
+ <line x="19.21" y="20.42"/>
+ <curve x1="19.21" x2="19.87" x3="20.75" y1="19.55" y2="18.81" y3="18.81"/>
+ <line x="38.14" y="18.81"/>
+ <line x="38.14" y="17.08"/>
+ <line x="19.27" y="17.08"/>
+ <close/>
+ <move x="53.47" y="19.62"/>
+ <curve x1="58.81" x2="61.35" x3="62.48" y1="20.89" y2="21.42" y3="21.69"/>
+ <line x="46.81" y="37.17"/>
+ <curve x1="45.34" x2="44.27" x3="43.81" y1="35.17" y2="32.83" y3="30.5"/>
+ <curve x1="43.48" x2="43.34" x3="43.34" y1="29.3" y2="28.17" y3="26.83"/>
+ <line x="43.34" y="21.96"/>
+ <line x="53.47" y="19.62"/>
+ <close/>
+ <move x="63.54" y="23.82"/>
+ <line x="63.54" y="26.83"/>
+ <curve x1="63.54" x2="63.41" x3="63.14" y1="28.17" y2="29.3" y3="30.5"/>
+ <curve x1="62.07" x2="58.4" x3="53.47" y1="35.77" y2="40.37" y3="42.91"/>
+ <curve x1="51.47" x2="49.67" x3="48.14" y1="41.84" y2="40.51" y3="38.9"/>
+ <line x="63.54" y="23.82"/>
+ <close/>
+ <move x="16.74" y="36.3"/>
+ <line x="11.81" y="43.78"/>
+ <line x="45.94" y="43.78"/>
+ <curve x1="43.67" x2="41.8" x3="40.6" y1="41.65" y2="39.11" y3="36.3"/>
+ <line x="16.74" y="36.3"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="cisco anyconnect" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.16"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="39.61" y="23.49"/>
+ <curve x1="37.28" x2="35.15" x3="33.34" y1="23.49" y2="24.29" y3="25.69"/>
+ <line x="15.01" y="25.69"/>
+ <curve x1="12.87" x2="11.81" x3="11.81" y1="25.69" y2="30.03" y3="34.1"/>
+ <curve x1="11.81" x2="12.87" x3="15.01" y1="38.18" y2="42.58" y3="42.58"/>
+ <line x="33.21" y="42.58"/>
+ <curve x1="35.01" x2="37.21" x3="39.61" y1="43.98" y2="44.85" y3="44.85"/>
+ <curve x1="42.01" x2="44.21" x3="46.01" y1="44.85" y2="43.98" y3="42.58"/>
+ <line x="64.14" y="42.58"/>
+ <curve x1="66.27" x2="67.28" x3="67.28" y1="42.58" y2="38.18" y3="34.1"/>
+ <curve x1="67.28" x2="66.27" x3="64.14" y1="30.03" y2="25.69" y3="25.69"/>
+ <line x="45.88" y="25.69"/>
+ <curve x1="44.07" x2="41.94" x3="39.61" y1="24.36" y2="23.49" y3="23.49"/>
+ <close/>
+ <move x="39.61" y="24.89"/>
+ <curve x1="41.74" x2="43.61" x3="45.14" y1="24.89" y2="25.69" y3="26.89"/>
+ <curve x1="44.94" x2="44.68" x3="44.41" y1="27.02" y2="27.02" y3="27.02"/>
+ <line x="44.41" y="27.63"/>
+ <line x="45.41" y="27.63"/>
+ <line x="45.41" y="30.16"/>
+ <line x="46.15" y="30.16"/>
+ <line x="46.15" y="27.9"/>
+ <curve x1="46.48" x2="46.73" x3="47" y1="28.23" y2="28.63" y3="29.02"/>
+ <curve x1="47.22" x2="47.33" x3="47.47" y1="29.23" y2="29.56" y3="29.83"/>
+ <curve x1="47.74" x2="47.94" x3="48.21" y1="30.3" y2="30.83" y3="31.43"/>
+ <curve x1="48.21" x2="48.28" x3="48.34" y1="31.7" y2="31.97" y3="32.24"/>
+ <line x="48.34" y="32.36"/>
+ <curve x1="48.21" x2="47.94" x3="47.68" y1="32.24" y2="32.16" y3="32.16"/>
+ <curve x1="47.22" x2="46.87" x3="46.61" y1="32.16" y2="32.36" y3="32.71"/>
+ <curve x1="46.34" x2="46.27" x3="46.27" y1="33.1" y2="33.56" y3="34.16"/>
+ <curve x1="46.27" x2="46.34" x3="46.61" y1="34.84" y2="35.31" y3="35.64"/>
+ <curve x1="46.81" x2="47.22" x3="47.68" y1="36.04" y2="36.24" y3="36.24"/>
+ <curve x1="47.94" x2="48.21" x3="48.34" y1="36.24" y2="36.16" y3="36.04"/>
+ <line x="48.34" y="36.1"/>
+ <curve x1="48.28" x2="48.28" x3="48.28" y1="36.24" y2="36.37" y3="36.51"/>
+ <curve x1="48.01" x2="47.61" x3="47" y1="37.57" y2="38.43" y3="39.38"/>
+ <curve x1="46.94" x2="46.87" x3="46.73" y1="39.11" y2="38.84" y3="38.78"/>
+ <curve x1="46.54" x2="46.15" x3="45.74" y1="38.31" y2="38.17" y3="38.17"/>
+ <curve x1="45.28" x2="44.94" x3="44.61" y1="38.17" y2="38.31" y3="38.7"/>
+ <curve x1="44.34" x2="44.34" x3="44.34" y1="39.11" y2="39.57" y3="40.1"/>
+ <curve x1="44.34" x2="44.34" x3="44.61" y1="40.78" y2="41.24" y3="41.57"/>
+ <curve x1="44.61" x2="44.67" x3="44.73" y1="41.71" y2="41.77" y3="41.77"/>
+ <curve x1="44.34" x2="43.94" x3="43.47" y1="42.11" y2="42.31" y3="42.51"/>
+ <curve x1="43.2" x2="42.95" x3="42.68" y1="42.64" y2="42.78" y3="42.85"/>
+ <curve x1="42.27" x2="41.88" x3="41.41" y1="43.05" y2="43.18" y3="43.24"/>
+ <curve x1="41.07" x2="40.81" x3="40.48" y1="43.32" y2="43.32" y3="43.38"/>
+ <curve x1="40.21" x2="39.94" x3="39.61" y1="43.38" y2="43.51" y3="43.51"/>
+ <curve x1="39.34" x2="39.01" x3="38.74" y1="43.51" y2="43.38" y3="43.38"/>
+ <curve x1="38.41" x2="38.14" x3="37.81" y1="43.32" y2="43.32" y3="43.24"/>
+ <curve x1="37.34" x2="36.93" x3="36.6" y1="43.18" y2="43.05" y3="42.85"/>
+ <curve x1="36.27" x2="36" x3="35.75" y1="42.78" y2="42.64" y3="42.51"/>
+ <curve x1="35.48" x2="35.27" x3="35.01" y1="42.44" y2="42.31" y3="42.17"/>
+ <curve x1="35.4" x2="35.67" x3="35.87" y1="42.11" y2="41.84" y3="41.57"/>
+ <curve x1="36.08" x2="36.21" x3="36.21" y1="41.24" y2="40.78" y3="40.1"/>
+ <curve x1="36.21" x2="36.08" x3="35.81" y1="39.57" y2="39.11" y3="38.78"/>
+ <curve x1="35.61" x2="35.21" x3="34.8" y1="38.31" y2="38.17" y3="38.17"/>
+ <curve x1="34.27" x2="34" x3="33.67" y1="38.17" y2="38.31" y3="38.7"/>
+ <curve x1="33.4" x2="33.34" x3="33.34" y1="39.11" y2="39.57" y3="40.1"/>
+ <line x="33.34" y="40.78"/>
+ <line x="33.34" y="40.84"/>
+ <line x="33.21" y="40.7"/>
+ <curve x1="33.23" x2="33.23" x3="33.24" y1="40.7" y2="40.7" y3="40.7"/>
+ <line x="33.19" y="40.67"/>
+ <curve x1="33.13" x2="33.07" x3="33.01" y1="40.6" y2="40.49" y3="40.37"/>
+ <curve x1="32.67" x2="32.41" x3="32.2" y1="40.04" y2="39.71" y3="39.38"/>
+ <curve x1="32.08" x2="32.01" x3="31.87" y1="39.24" y2="39.03" y3="38.84"/>
+ <curve x1="31.81" x2="31.61" x3="31.61" y1="38.78" y2="38.24" y3="38.24"/>
+ <curve x1="31.34" x2="31.13" x3="31.01" y1="37.71" y2="37.11" y3="36.51"/>
+ <curve x1="30.95" x2="30.94" x3="30.94" y1="36.45" y2="36.34" y3="36.24"/>
+ <curve x1="31.41" x2="31.74" x3="32.01" y1="36.24" y2="36.04" y3="35.58"/>
+ <curve x1="32.2" x2="32.34" x3="32.34" y1="35.23" y2="34.76" y3="34.16"/>
+ <curve x1="32.34" x2="32.2" x3="32.01" y1="33.56" y2="33.1" y3="32.71"/>
+ <curve x1="31.74" x2="31.4" x3="30.94" y1="32.36" y2="32.16" y3="32.16"/>
+ <line x="30.88" y="32.16"/>
+ <curve x1="30.94" x2="31.01" x3="31.07" y1="31.97" y2="31.7" y3="31.43"/>
+ <curve x1="31.21" x2="31.4" x3="31.61" y1="31.04" y2="30.57" y3="30.16"/>
+ <curve x1="31.61" x2="31.74" x3="31.74" y1="30.03" y2="29.83" y3="29.83"/>
+ <curve x1="31.87" x2="32.08" x3="32.2" y1="29.56" y2="29.23" y3="29.02"/>
+ <curve x1="32.61" x2="33.01" x3="33.48" y1="28.42" y2="27.89" y3="27.43"/>
+ <curve x1="33.48" x2="33.4" x3="33.4" y1="27.62" y2="27.9" y3="28.23"/>
+ <curve x1="33.4" x2="33.61" x3="33.73" y1="28.83" y2="29.29" y3="29.62"/>
+ <curve x1="34.01" x2="34.41" x3="34.88" y1="30.03" y2="30.23" y3="30.23"/>
+ <curve x1="35.34" x2="35.75" x3="35.94" y1="30.23" y2="30.03" y3="29.62"/>
+ <curve x1="36.14" x2="36.27" x3="36.27" y1="29.29" y2="28.83" y3="28.23"/>
+ <curve x1="36.27" x2="36.14" x3="35.94" y1="27.63" y2="27.16" y3="26.75"/>
+ <curve x1="35.75" x2="35.4" x3="35.01" y1="26.42" y2="26.29" y3="26.23"/>
+ <curve x1="36.33" x2="37.87" x3="39.61" y1="25.43" y2="24.89" y3="24.89"/>
+ <close/>
+ <move x="33.24" y="40.7"/>
+ <line x="33.34" y="40.78"/>
+ <curve x1="33.34" x2="33.33" x3="33.24" y1="40.71" y2="40.7" y3="40.7"/>
+ <close/>
+ <move x="38.14" y="25.63"/>
+ <curve x1="38.07" x2="38.01" x3="37.93" y1="25.96" y2="26.1" y3="26.29"/>
+ <curve x1="37.81" x2="37.68" x3="37.41" y1="26.43" y2="26.43" y3="26.43"/>
+ <line x="37.41" y="27.09"/>
+ <line x="38.01" y="27.09"/>
+ <line x="38.01" y="29.9"/>
+ <line x="38.48" y="29.9"/>
+ <line x="38.48" y="25.63"/>
+ <line x="38.14" y="25.63"/>
+ <close/>
+ <move x="41.67" y="25.63"/>
+ <curve x1="41.4" x2="41.13" x3="40.94" y1="25.63" y2="25.83" y3="26.29"/>
+ <curve x1="40.74" x2="40.61" x3="40.61" y1="26.62" y2="27.16" y3="27.83"/>
+ <curve x1="40.61" x2="40.74" x3="40.94" y1="28.43" y2="28.97" y3="29.3"/>
+ <curve x1="41.13" x2="41.4" x3="41.67" y1="29.69" y2="29.9" y3="29.9"/>
+ <curve x1="42.08" x2="42.34" x3="42.55" y1="29.9" y2="29.69" y3="29.3"/>
+ <curve x1="42.74" x2="42.74" x3="42.74" y1="28.97" y2="28.43" y3="27.83"/>
+ <curve x1="42.74" x2="42.74" x3="42.55" y1="27.16" y2="26.62" y3="26.29"/>
+ <curve x1="42.34" x2="42.08" x3="41.67" y1="25.89" y2="25.63" y3="25.63"/>
+ <close/>
+ <move x="41.67" y="26.35"/>
+ <curve x1="42.08" x2="42.2" x3="42.2" y1="26.35" y2="26.89" y3="27.83"/>
+ <curve x1="42.2" x2="42.08" x3="41.67" y1="28.7" y2="29.22" y3="29.22"/>
+ <curve x1="41.4" x2="41.27" x3="41.27" y1="29.22" y2="28.7" y3="27.83"/>
+ <curve x1="41.27" x2="41.4" x3="41.67" y1="26.89" y2="26.35" y3="26.35"/>
+ <close/>
+ <move x="34.88" y="26.89"/>
+ <curve x1="35.27" x2="35.54" x3="35.54" y1="26.89" y2="27.36" y3="28.23"/>
+ <curve x1="35.54" x2="35.27" x3="34.88" y1="29.1" y2="29.56" y3="29.56"/>
+ <curve x1="34.47" x2="34.27" x3="34.27" y1="29.56" y2="29.1" y3="28.23"/>
+ <curve x1="34.27" x2="34.47" x3="34.88" y1="27.36" y2="26.89" y3="26.89"/>
+ <close/>
+ <move x="15.01" y="27.35"/>
+ <curve x1="15.53" x2="16.6" x3="16.6" y1="27.43" y2="29.89" y3="34.1"/>
+ <curve x1="16.6" x2="15.53" x3="15.01" y1="38.37" y2="40.84" y3="40.91"/>
+ <curve x1="14.54" x2="13.48" x3="13.48" y1="40.84" y2="38.37" y3="34.1"/>
+ <curve x1="13.48" x2="14.54" x3="15.01" y1="29.89" y2="27.43" y3="27.35"/>
+ <close/>
+ <move x="33.88" y="32.04"/>
+ <curve x1="33.8" x2="33.74" x3="33.67" y1="32.37" y2="32.5" y3="32.7"/>
+ <curve x1="33.55" x2="33.41" x3="33.14" y1="32.83" y2="32.9" y3="32.9"/>
+ <line x="33.14" y="33.5"/>
+ <line x="33.74" y="33.5"/>
+ <line x="33.74" y="36.31"/>
+ <line x="34.21" y="36.31"/>
+ <line x="34.21" y="32.04"/>
+ <line x="33.88" y="32.04"/>
+ <close/>
+ <move x="36.94" y="32.04"/>
+ <curve x1="36.48" x2="36.01" x3="35.8" y1="32.04" y2="32.29" y3="32.64"/>
+ <curve x1="35.47" x2="35.28" x3="35.28" y1="33.03" y2="33.57" y3="34.23"/>
+ <curve x1="35.28" x2="35.47" x3="35.8" y1="34.83" y2="35.37" y3="35.77"/>
+ <curve x1="36.01" x2="36.48" x3="36.94" y1="36.1" y2="36.31" y3="36.31"/>
+ <curve x1="37.41" x2="37.93" x3="38.14" y1="36.31" y2="36.1" y3="35.63"/>
+ <curve x1="38.4" x2="38.48" x3="38.48" y1="35.3" y2="34.83" y3="34.23"/>
+ <curve x1="38.48" x2="38.4" x3="38.14" y1="33.57" y2="33.03" y3="32.64"/>
+ <curve x1="37.81" x2="37.41" x3="36.94" y1="32.29" y2="32.04" y3="32.04"/>
+ <close/>
+ <move x="41.21" y="32.04"/>
+ <curve x1="40.61" x2="40.28" x3="40.07" y1="32.04" y2="32.29" y3="32.64"/>
+ <curve x1="39.74" x2="39.54" x3="39.54" y1="33.03" y2="33.57" y3="34.23"/>
+ <curve x1="39.54" x2="39.74" x3="39.95" y1="34.83" y2="35.37" y3="35.77"/>
+ <curve x1="40.28" x2="40.61" x3="41.21" y1="36.1" y2="36.31" y3="36.31"/>
+ <curve x1="41.68" x2="42.2" x3="42.41" y1="36.31" y2="36.1" y3="35.63"/>
+ <curve x1="42.67" x2="42.74" x3="42.74" y1="35.3" y2="34.83" y3="34.23"/>
+ <curve x1="42.74" x2="42.61" x3="42.41" y1="33.57" y2="33.03" y3="32.64"/>
+ <curve x1="42.08" x2="41.68" x3="41.21" y1="32.29" y2="32.04" y3="32.04"/>
+ <close/>
+ <move x="44.14" y="32.04"/>
+ <curve x1="44" x2="43.87" x3="43.67" y1="32.37" y2="32.5" y3="32.7"/>
+ <curve x1="43.54" x2="43.21" x3="42.74" y1="32.83" y2="32.9" y3="32.9"/>
+ <line x="42.74" y="33.5"/>
+ <line x="43.94" y="33.5"/>
+ <line x="43.94" y="36.31"/>
+ <line x="44.87" y="36.31"/>
+ <line x="44.87" y="32.04"/>
+ <line x="44.14" y="32.04"/>
+ <close/>
+ <move x="36.94" y="32.83"/>
+ <curve x1="37.41" x2="37.68" x3="37.68" y1="32.83" y2="33.22" y3="34.23"/>
+ <curve x1="37.68" x2="37.41" x3="36.94" y1="35.16" y2="35.57" y3="35.57"/>
+ <curve x1="36.48" x2="36.28" x3="36.28" y1="35.57" y2="35.16" y3="34.23"/>
+ <curve x1="36.28" x2="36.48" x3="36.94" y1="33.22" y2="32.83" y3="32.83"/>
+ <close/>
+ <move x="41.21" y="32.83"/>
+ <curve x1="41.68" x2="41.95" x3="41.95" y1="32.83" y2="33.22" y3="34.23"/>
+ <curve x1="41.95" x2="41.68" x3="41.21" y1="35.16" y2="35.57" y3="35.57"/>
+ <curve x1="40.74" x2="40.55" x3="40.55" y1="35.57" y2="35.16" y3="34.23"/>
+ <curve x1="40.55" x2="40.74" x3="41.21" y1="33.22" y2="32.83" y3="32.83"/>
+ <close/>
+ <move x="30.74" y="32.9"/>
+ <line x="30.94" y="32.9"/>
+ <curve x1="31.34" x2="31.54" x3="31.54" y1="32.9" y2="33.31" y3="34.16"/>
+ <curve x1="31.54" x2="31.34" x3="30.94" y1="35.1" y2="35.5" y3="35.5"/>
+ <line x="30.74" y="35.5"/>
+ <curve x1="30.74" x2="30.67" x3="30.67" y1="35.09" y2="34.63" y3="34.16"/>
+ <curve x1="30.67" x2="30.74" x3="30.74" y1="33.7" y2="33.31" y3="32.9"/>
+ <close/>
+ <move x="47.68" y="32.9"/>
+ <curve x1="48.15" x2="48.28" x3="48.28" y1="32.9" y2="33.31" y3="34.16"/>
+ <curve x1="48.28" x2="48.15" x3="47.68" y1="35.1" y2="35.5" y3="35.5"/>
+ <curve x1="47.22" x2="47" x3="47" y1="35.5" y2="35.1" y3="34.16"/>
+ <curve x1="47" x2="47.22" x3="47.68" y1="33.31" y2="32.9" y3="32.9"/>
+ <close/>
+ <move x="38.07" y="38.44"/>
+ <curve x1="38.07" x2="38.01" x3="37.93" y1="38.64" y2="38.83" y3="38.91"/>
+ <curve x1="37.81" x2="37.6" x3="37.41" y1="38.97" y2="39.05" y3="39.05"/>
+ <line x="37.41" y="39.57"/>
+ <line x="38.01" y="39.57"/>
+ <line x="38.01" y="41.65"/>
+ <line x="38.48" y="41.65"/>
+ <line x="38.48" y="38.44"/>
+ <line x="38.07" y="38.44"/>
+ <close/>
+ <move x="41.67" y="38.44"/>
+ <curve x1="41.34" x2="41.07" x3="40.88" y1="38.44" y2="38.56" y3="38.83"/>
+ <curve x1="40.74" x2="40.61" x3="40.61" y1="39.17" y2="39.57" y3="40.04"/>
+ <curve x1="40.61" x2="40.74" x3="40.88" y1="40.58" y2="40.97" y3="41.24"/>
+ <curve x1="41.07" x2="41.34" x3="41.67" y1="41.51" y2="41.65" y3="41.65"/>
+ <curve x1="42.08" x2="42.34" x3="42.55" y1="41.65" y2="41.51" y3="41.24"/>
+ <curve x1="42.68" x2="42.74" x3="42.74" y1="40.97" y2="40.58" y3="40.04"/>
+ <curve x1="42.74" x2="42.68" x3="42.55" y1="39.57" y2="39.17" y3="38.91"/>
+ <curve x1="42.34" x2="42.08" x3="41.67" y1="38.56" y2="38.44" y3="38.44"/>
+ <close/>
+ <move x="34.8" y="38.84"/>
+ <curve x1="35.21" x2="35.4" x3="35.4" y1="38.84" y2="39.24" y3="40.1"/>
+ <curve x1="35.4" x2="35.21" x3="34.8" y1="41.05" y2="41.51" y3="41.51"/>
+ <curve x1="34.27" x2="34.14" x3="34.14" y1="41.51" y2="41.05" y3="40.1"/>
+ <curve x1="34.14" x2="34.27" x3="34.8" y1="39.24" y2="38.84" y3="38.84"/>
+ <close/>
+ <move x="45.74" y="38.84"/>
+ <curve x1="46.15" x2="46.34" x3="46.34" y1="38.84" y2="39.24" y3="40.1"/>
+ <line x="46.34" y="40.31"/>
+ <curve x1="46.34" x2="46.27" x3="46.21" y1="40.31" y2="40.31" y3="40.37"/>
+ <curve x1="46.15" x2="46.07" x3="45.94" y1="40.58" y2="40.64" y3="40.78"/>
+ <curve x1="45.74" x2="45.55" x3="45.28" y1="40.97" y2="41.11" y3="41.3"/>
+ <curve x1="45.14" x2="45.01" x3="45.01" y1="41.11" y2="40.78" y3="40.1"/>
+ <curve x1="45.01" x2="45.28" x3="45.74" y1="39.24" y2="38.84" y3="38.84"/>
+ <close/>
+ <move x="41.67" y="38.97"/>
+ <curve x1="42" x2="42.14" x3="42.14" y1="38.97" y2="39.3" y3="40.04"/>
+ <curve x1="42.14" x2="42" x3="41.67" y1="40.77" y2="41.18" y3="41.18"/>
+ <curve x1="41.4" x2="41.21" x3="41.21" y1="41.18" y2="40.77" y3="40.04"/>
+ <curve x1="41.21" x2="41.4" x3="41.67" y1="39.3" y2="38.97" y3="38.97"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="cisco cloud web security" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.16"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="44.38" y="14.56"/>
+ <curve x1="39.31" x2="34.35" x3="33.48" y1="14.47" y2="16.87" y3="21.69"/>
+ <curve x1="27.13" x2="22.34" x3="23.13" y1="18.36" y2="23.62" y3="27.49"/>
+ <curve x1="10.74" x2="12.01" x3="22.53" y1="27.49" y2="44.91" y3="44.91"/>
+ <line x="37.28" y="44.91"/>
+ <line x="40.01" y="44.91"/>
+ <line x="40.01" y="47.24"/>
+ <curve x1="39.41" x2="39.01" x3="38.74" y1="47.45" y2="47.92" y3="48.44"/>
+ <line x="28.68" y="48.44"/>
+ <curve x1="28.34" x2="27.54" x3="26.67" y1="47.65" y2="47.11" y3="47.11"/>
+ <curve x1="25.48" x2="24.53" x3="24.53" y1="47.11" y2="48.05" y3="49.18"/>
+ <curve x1="24.53" x2="25.48" x3="26.67" y1="50.32" y2="51.25" y3="51.25"/>
+ <curve x1="27.54" x2="28.34" x3="28.68" y1="51.25" y2="50.79" y3="49.98"/>
+ <line x="38.74" y="49.98"/>
+ <curve x1="39.08" x2="39.88" x3="40.73" y1="50.79" y2="51.25" y3="51.25"/>
+ <curve x1="41.68" x2="42.4" x3="42.75" y1="51.25" y2="50.79" y3="49.98"/>
+ <line x="52.88" y="49.98"/>
+ <curve x1="53.15" x2="53.94" x3="54.88" y1="50.79" y2="51.25" y3="51.25"/>
+ <curve x1="56" x2="57.01" x3="57.01" y1="51.25" y2="50.32" y3="49.18"/>
+ <curve x1="57.01" x2="56" x3="54.88" y1="48.05" y2="47.11" y3="47.11"/>
+ <curve x1="53.94" x2="53.15" x3="52.88" y1="47.11" y2="47.65" y3="48.44"/>
+ <line x="42.75" y="48.44"/>
+ <curve x1="42.48" x2="42.07" x3="41.55" y1="47.92" y2="47.45" y3="47.24"/>
+ <line x="41.55" y="44.91"/>
+ <line x="55.61" y="44.91"/>
+ <curve x1="61.75" x2="65.14" x3="65.14" y1="44.91" y2="42.7" y3="38.44"/>
+ <curve x1="65.14" x2="62.74" x3="59.94" y1="33.76" y2="32.36" y3="31.43"/>
+ <curve x1="60.21" x2="57.81" x3="56" y1="28.89" y2="27.49" y3="27.49"/>
+ <curve x1="57.58" x2="50.89" x3="44.38" y1="18.94" y2="14.69" y3="14.56"/>
+ <close/>
+ <move x="40.73" y="23.56"/>
+ <line x="43.68" y="24.22"/>
+ <line x="48.74" y="25.28"/>
+ <line x="48.74" y="31.1"/>
+ <curve x1="48.74" x2="45.81" x3="41.27" y1="35.84" y2="40.04" y3="41.85"/>
+ <line x="40.73" y="42.04"/>
+ <line x="40.21" y="41.85"/>
+ <curve x1="35.67" x2="32.81" x3="32.81" y1="40.04" y2="35.84" y3="31.1"/>
+ <line x="32.81" y="25.28"/>
+ <line x="37.88" y="24.22"/>
+ <line x="40.73" y="23.56"/>
+ <close/>
+ <move x="40.61" y="24.56"/>
+ <line x="39.14" y="24.96"/>
+ <line x="39.14" y="25.82"/>
+ <line x="36.61" y="26.42"/>
+ <line x="36.61" y="25.56"/>
+ <line x="34.21" y="26.09"/>
+ <line x="34.21" y="30.82"/>
+ <curve x1="34.21" x2="36.87" x3="40.61" y1="35.23" y2="38.97" y3="40.58"/>
+ <curve x1="44.41" x2="47.01" x3="47.01" y1="38.97" y2="35.23" y3="30.82"/>
+ <line x="47.01" y="26.09"/>
+ <line x="44.67" y="25.56"/>
+ <line x="44.67" y="26.42"/>
+ <line x="42.07" y="25.82"/>
+ <line x="42.07" y="24.96"/>
+ <line x="40.61" y="24.56"/>
+ <close/>
+ <move x="40.61" y="27.37"/>
+ <curve x1="43.08" x2="44.28" x3="44.8" y1="27.97" y2="28.22" y3="28.36"/>
+ <line x="37.54" y="35.77"/>
+ <curve x1="36.87" x2="36.4" x3="36.15" y1="34.84" y2="33.77" y3="32.57"/>
+ <curve x1="36.01" x2="36.01" x3="36.01" y1="32.03" y2="31.43" y3="30.82"/>
+ <line x="36.01" y="28.49"/>
+ <line x="40.61" y="27.37"/>
+ <close/>
+ <move x="45.27" y="29.37"/>
+ <line x="45.27" y="30.82"/>
+ <curve x1="45.27" x2="45.21" x3="45.07" y1="31.43" y2="32.03" y3="32.57"/>
+ <curve x1="44.61" x2="42.94" x3="40.61" y1="35.17" y2="37.38" y3="38.58"/>
+ <curve x1="39.68" x2="38.88" x3="38.21" y1="38.1" y2="37.44" y3="36.64"/>
+ <line x="45.27" y="29.37"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="client firewall" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="43.28" y="37.97"/>
+ <curve x1="44.61" x2="44.61" x3="44.61" y1="37.5" y2="37.5" y3="37.5"/>
+ <curve x1="45.48" x2="47.48" x3="49.34" y1="39.17" y2="39.97" y3="39.31"/>
+ <curve x1="51.34" x2="52.35" x3="51.67" y1="38.63" y2="36.3" y3="34.17"/>
+ <curve x1="50.95" x2="48.68" x3="46.68" y1="32.09" y2="30.97" y3="31.7"/>
+ <curve x1="46.54" x2="46.54" x3="46.54" y1="31.84" y2="31.84" y3="31.84"/>
+ <curve x1="44.82" x2="43.75" x3="44.08" y1="32.5" y2="34.44" y3="36.17"/>
+ <curve x1="40.2" x2="40.2" x3="40.2" y1="37.5" y2="37.5" y3="37.5"/>
+ <curve x1="34.88" x2="34.88" x3="34.88" y1="39.44" y2="39.44" y3="39.44"/>
+ <curve x1="34.48" x2="34.21" x3="34.42" y1="39.7" y2="40.1" y3="40.51"/>
+ <curve x1="34.42" x2="34.42" x3="34.42" y1="40.51" y2="40.51" y3="40.65"/>
+ <curve x1="34.67" x2="35.08" x3="35.47" y1="40.77" y2="40.9" y3="40.77"/>
+ <curve x1="36.01" x2="36.01" x3="36.01" y1="40.65" y2="40.65" y3="40.65"/>
+ <curve x1="37.08" x2="37.08" x3="37.08" y1="43.38" y2="43.38" y3="43.38"/>
+ <curve x1="37.08" x2="37.41" x3="37.81" y1="43.64" y2="43.77" y3="43.64"/>
+ <curve x1="38.2" x2="38.34" x3="38.2" y1="43.52" y2="43.25" y3="42.97"/>
+ <curve x1="37.95" x2="37.95" x3="37.95" y1="42.18" y2="42.18" y3="42.18"/>
+ <curve x1="39.01" x2="39.01" x3="39.01" y1="41.77" y2="41.77" y3="41.77"/>
+ <curve x1="39.27" x2="39.27" x3="39.27" y1="42.57" y2="42.57" y3="42.57"/>
+ <curve x1="39.41" x2="39.81" x3="40.08" y1="42.84" y2="42.97" y3="42.84"/>
+ <curve x1="40.47" x2="40.74" x3="40.61" y1="42.7" y2="42.45" y3="42.18"/>
+ <curve x1="39.81" x2="39.81" x3="39.81" y1="39.83" y2="39.83" y3="39.83"/>
+ <curve x1="39.68" x2="39.68" x3="39.68" y1="39.31" y2="39.31" y3="39.31"/>
+ <curve x1="41.01" x2="41.01" x3="41.01" y1="38.77" y2="38.77" y3="38.77"/>
+ <curve x1="43.28" x2="43.28" x3="43.28" y1="37.97" y2="37.97" y3="37.97"/>
+ <close/>
+ <move x="49.2" y="33.57"/>
+ <curve x1="49.88" x2="50.68" x3="50.95" y1="33.3" y2="33.7" y3="34.5"/>
+ <curve x1="51.2" x2="50.81" x3="50.02" y1="35.23" y2="36.03" y3="36.3"/>
+ <curve x1="49.34" x2="48.54" x3="48.27" y1="36.57" y2="36.17" y3="35.51"/>
+ <curve x1="48" x2="48.41" x3="49.2" y1="34.69" y2="33.84" y3="33.57"/>
+ <close/>
+ <move x="59.41" y="48.05"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="56.54" x2="56.54" x3="56.54" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="56.54" x2="56.54" x3="56.54" y1="48.25" y2="48.25" y3="48.25"/>
+ <curve x1="56.54" x2="56.54" x3="56.54" y1="48.25" y2="48.17" y3="48.17"/>
+ <curve x1="56.54" x2="56.54" x3="56.54" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="56.54" x2="56.47" x3="56.41" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="56.41" x2="56.41" x3="56.41" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="32.35" x2="30.35" x3="30.21" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="30.21" x2="30.21" x3="30.21" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="30.08" x2="30.08" x3="30.08" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="30.08" x2="30.08" x3="30.08" y1="48.17" y2="48.17" y3="48.17"/>
+ <curve x1="30.08" x2="30.08" x3="30.08" y1="48.17" y2="48.25" y3="48.25"/>
+ <curve x1="30.08" x2="30.08" x3="30.08" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="28.94" x2="28.94" x3="28.94" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="27.21" x2="27.21" x3="27.21" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="26.2" x2="25.67" x3="25.67" y1="48.05" y2="48.65" y3="49.59"/>
+ <curve x1="25.67" x2="25.67" x3="25.67" y1="50.52" y2="50.52" y3="50.52"/>
+ <curve x1="25.67" x2="26.2" x3="27.21" y1="51.45" y2="52.32" y3="52.32"/>
+ <curve x1="59.41" x2="59.41" x3="59.41" y1="52.32" y2="52.32" y3="52.32"/>
+ <curve x1="60.41" x2="60.87" x3="60.87" y1="52.32" y2="51.45" y3="50.52"/>
+ <curve x1="60.87" x2="60.87" x3="60.87" y1="49.59" y2="49.59" y3="49.59"/>
+ <curve x1="60.87" x2="60.41" x3="59.41" y1="48.65" y2="48.05" y3="48.05"/>
+ <close/>
+ <move x="41" y="50.79"/>
+ <curve x1="40.61" x2="40.15" x3="40.15" y1="50.79" y2="50.52" y3="50.11"/>
+ <curve x1="40.15" x2="40.61" x3="41" y1="49.65" y2="49.32" y3="49.32"/>
+ <curve x1="41.41" x2="41.68" x3="41.68" y1="49.32" y2="49.65" y3="50.11"/>
+ <curve x1="41.68" x2="41.41" x3="41" y1="50.52" y2="50.79" y3="50.79"/>
+ <close/>
+ <move x="43.27" y="50.79"/>
+ <curve x1="42.88" x2="42.48" x3="42.48" y1="50.79" y2="50.52" y3="50.11"/>
+ <curve x1="42.48" x2="42.88" x3="43.27" y1="49.65" y2="49.32" y3="49.32"/>
+ <curve x1="43.74" x2="44.01" x3="44.01" y1="49.32" y2="49.65" y3="50.11"/>
+ <curve x1="44.01" x2="43.74" x3="43.27" y1="50.52" y2="50.79" y3="50.79"/>
+ <close/>
+ <move x="45.6" y="50.79"/>
+ <curve x1="45.21" x2="44.81" x3="44.81" y1="50.79" y2="50.52" y3="50.11"/>
+ <curve x1="44.81" x2="45.21" x3="45.6" y1="49.65" y2="49.32" y3="49.32"/>
+ <curve x1="46.01" x2="46.28" x3="46.28" y1="49.32" y2="49.65" y3="50.11"/>
+ <curve x1="46.28" x2="46.01" x3="45.6" y1="50.52" y2="50.79" y3="50.79"/>
+ <close/>
+ <move x="57.67" y="50.79"/>
+ <curve x1="51.15" x2="51.15" x3="51.15" y1="50.79" y2="50.79" y3="50.79"/>
+ <curve x1="51.15" x2="51.15" x3="51.15" y1="49.18" y2="49.18" y3="49.18"/>
+ <curve x1="56.47" x2="56.47" x3="56.47" y1="49.18" y2="49.18" y3="49.18"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="49.18" y2="49.18" y3="49.18"/>
+ <line x="57.67" y="50.79"/>
+ <close/>
+ <move x="28.47" y="39.44"/>
+ <curve x1="28.47" x2="28.47" x3="28.47" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="29.6" x2="29.6" x3="29.6" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="29.6" x2="29.6" x3="29.6" y1="39.44" y2="39.44" y3="39.44"/>
+ <curve x1="29.6" x2="29.6" x3="29.6" y1="39.44" y2="39.44" y3="39.44"/>
+ <curve x1="29.6" x2="29.6" x3="29.6" y1="36.1" y2="36.1" y3="36.1"/>
+ <curve x1="31.87" x2="33.34" x3="33.34" y1="35.83" y2="35.44" y3="35.44"/>
+ <curve x1="32.88" x2="32.88" x3="32.88" y1="29.35" y2="29.35" y3="29.35"/>
+ <curve x1="32.88" x2="32.68" x3="32.47" y1="28.69" y2="28.17" y3="27.63"/>
+ <curve x1="45.55" x2="45.55" x3="45.55" y1="27.63" y2="27.63" y3="27.63"/>
+ <curve x1="45.55" x2="45.55" x3="45.55" y1="27.63" y2="27.63" y3="27.63"/>
+ <curve x1="56.41" x2="56.41" x3="56.41" y1="27.63" y2="27.63" y3="27.63"/>
+ <curve x1="56.61" x2="56.61" x3="56.61" y1="27.63" y2="27.63" y3="27.63"/>
+ <curve x1="56.61" x2="56.61" x3="56.61" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="48.05" y2="48.05" y3="48.05"/>
+ <curve x1="57.67" x2="57.67" x3="57.67" y1="27.63" y2="27.63" y3="27.63"/>
+ <curve x1="57.67" x2="57.15" x3="56.41" y1="27.03" y2="26.56" y3="26.56"/>
+ <curve x1="45.55" x2="45.55" x3="45.55" y1="26.56" y2="26.56" y3="26.56"/>
+ <curve x1="37.81" x2="33.87" x3="31.87" y1="26.56" y2="26.56" y3="26.56"/>
+ <curve x1="31.07" x2="29.87" x3="28.47" y1="25.49" y2="24.7" y3="24.43"/>
+ <curve x1="27.68" x2="26.94" x3="26.28" y1="24.29" y2="24.02" y3="23.49"/>
+ <curve x1="26.07" x2="25.87" x3="25.6" y1="23.36" y2="23.22" y3="23.09"/>
+ <curve x1="25.41" x2="25.35" x3="25.14" y1="22.89" y2="22.82" y3="22.68"/>
+ <curve x1="26.67" x2="27.81" x3="27.87" y1="21.83" y2="19.75" y3="17.42"/>
+ <curve x1="27.95" x2="28.07" x3="27.87" y1="16.75" y2="14.61" y3="13.74"/>
+ <curve x1="27.81" x2="27.54" x3="27.35" y1="13.02" y2="13.14" y3="13.02"/>
+ <curve x1="26.94" x2="26.61" x3="25.93" y1="12.81" y2="12.21" y3="12.01"/>
+ <curve x1="24.94" x2="23.74" x3="23.08" y1="11.74" y2="11.95" y3="12.15"/>
+ <curve x1="22.4" x2="22.21" x3="21.61" y1="12.28" y2="12.21" y3="12.21"/>
+ <curve x1="21.34" x2="21.08" x3="20.87" y1="12.21" y2="12.21" y3="12.21"/>
+ <curve x1="20.34" x2="19.61" x3="19.34" y1="12.34" y2="12.88" y3="13.88"/>
+ <curve x1="19.08" x2="19.41" x3="19.41" y1="14.81" y2="17.48" y3="17.75"/>
+ <curve x1="19.61" x2="20.61" x3="21.94" y1="19.95" y2="21.75" y3="22.56"/>
+ <curve x1="21.88" x2="21.74" x3="21.61" y1="22.68" y2="22.82" y3="22.89"/>
+ <curve x1="21.41" x2="21.14" x3="20.94" y1="23.09" y2="23.28" y3="23.42"/>
+ <curve x1="20.34" x2="19.68" x3="18.81" y1="23.96" y2="24.23" y3="24.43"/>
+ <curve x1="16.48" x2="14.6" x3="14.41" y1="25.16" y2="26.89" y3="29.35"/>
+ <curve x1="14.41" x2="14.41" x3="13.94" y1="29.35" y2="29.35" y3="35.44"/>
+ <curve x1="13.94" x2="18.01" x3="23.68" y1="35.44" y2="36.51" y3="36.51"/>
+ <curve x1="25.41" x2="27.08" x3="28.47" y1="36.51" y2="36.37" y3="36.24"/>
+ <curve x1="28.47" x2="28.47" x3="28.47" y1="39.44" y2="39.44" y3="39.44"/>
+ <close/>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.15"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="corporate device" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="24.75" y="10.16"/>
+ <curve x1="25.02" x2="25.3" x3="25.56" y1="10.18" y2="10.22" y3="10.29"/>
+ <curve x1="26.25" x2="26.53" x3="26.94" y1="10.49" y2="11.12" y3="11.34"/>
+ <curve x1="27.16" x2="27.44" x3="27.5" y1="11.46" y2="11.34" y3="12.09"/>
+ <curve x1="27.64" x2="27.57" x3="27.5" y1="13" y2="15.22" y3="15.92"/>
+ <curve x1="27.44" x2="26.25" x3="24.73" y1="18.35" y2="20.51" y3="21.4"/>
+ <curve x1="24.93" x2="25" x3="25.14" y1="21.55" y2="21.62" y3="21.83"/>
+ <curve x1="25.42" x2="25.7" x3="25.91" y1="21.97" y2="22.11" y3="22.25"/>
+ <curve x1="26.53" x2="27.3" x3="28.13" y1="22.8" y2="23.08" y3="23.22"/>
+ <curve x1="29.52" x2="30.7" x3="31.53" y1="23.5" y2="24.33" y3="25.44"/>
+ <line x="45.49" y="25.44"/>
+ <line x="56.53" y="25.44"/>
+ <curve x1="57.23" x2="57.78" x3="57.78" y1="25.44" y2="25.93" y3="26.56"/>
+ <line x="57.78" y="47.83"/>
+ <line x="56.67" y="47.83"/>
+ <line x="56.67" y="26.56"/>
+ <line x="56.53" y="26.56"/>
+ <line x="45.49" y="26.56"/>
+ <line x="32.15" y="26.56"/>
+ <curve x1="32.43" x2="32.58" x3="32.58" y1="27.12" y2="27.67" y3="28.36"/>
+ <line x="33.06" y="34.68"/>
+ <curve x1="33.06" x2="31.6" x3="29.24" y1="34.68" y2="35.1" y3="35.38"/>
+ <line x="29.24" y="38.86"/>
+ <line x="29.24" y="47.83"/>
+ <line x="28.13" y="47.83"/>
+ <line x="28.13" y="38.86"/>
+ <line x="28.13" y="35.53"/>
+ <curve x1="26.67" x2="25" x3="23.2" y1="35.67" y2="35.81" y3="35.81"/>
+ <curve x1="17.5" x2="13.33" x3="13.33" y1="35.81" y2="34.68" y3="34.68"/>
+ <line x="13.82" y="28.36"/>
+ <curve x1="13.96" x2="15.9" x3="18.27" y1="25.79" y2="23.99" y3="23.22"/>
+ <curve x1="19.17" x2="19.86" x3="20.49" y1="23.02" y2="22.74" y3="22.17"/>
+ <curve x1="20.69" x2="20.91" x3="21.12" y1="22.03" y2="21.83" y3="21.62"/>
+ <curve x1="21.26" x2="21.4" x3="21.52" y1="21.55" y2="21.4" y3="21.28"/>
+ <curve x1="20.14" x2="19.1" x3="18.89" y1="20.43" y2="18.56" y3="16.27"/>
+ <curve x1="18.89" x2="18.55" x3="18.81" y1="15.99" y2="13.2" y3="12.23"/>
+ <curve x1="19.1" x2="19.86" x3="20.35" y1="11.2" y2="10.63" y3="10.49"/>
+ <line x="21.12" y="10.49"/>
+ <curve x1="21.74" x2="21.94" x3="22.57" y1="10.49" y2="10.57" y3="10.43"/>
+ <curve x1="23.09" x2="23.92" x3="24.75" y1="10.28" y2="10.12" y3="10.16"/>
+ <close/>
+ <move x="26.04" y="47.83"/>
+ <line x="27.84" y="47.83"/>
+ <line x="29.03" y="47.83"/>
+ <line x="29.17" y="47.83"/>
+ <line x="56.46" y="47.83"/>
+ <line x="56.6" y="47.83"/>
+ <line x="57.78" y="47.83"/>
+ <line x="59.59" y="47.83"/>
+ <curve x1="60.63" x2="61.11" x3="61.11" y1="47.83" y2="48.44" y3="49.43"/>
+ <line x="61.11" y="50.4"/>
+ <curve x1="61.11" x2="60.63" x3="59.59" y1="51.37" y2="52.28" y3="52.28"/>
+ <line x="26.04" y="52.28"/>
+ <curve x1="24.99" x2="24.45" x3="24.45" y1="52.28" y2="51.37" y3="50.4"/>
+ <line x="24.45" y="49.43"/>
+ <curve x1="24.45" x2="24.99" x3="26.04" y1="48.44" y2="47.83" y3="47.83"/>
+ <close/>
+ <move x="50.98" y="49.01"/>
+ <line x="50.98" y="50.68"/>
+ <line x="57.78" y="50.68"/>
+ <line x="57.78" y="49.01"/>
+ <line x="56.52" y="49.01"/>
+ <line x="50.98" y="49.01"/>
+ <close/>
+ <move x="40.42" y="49.15"/>
+ <curve x1="40.01" x2="39.52" x3="39.52" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="39.52" x2="40.01" x3="40.42" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="40.84" x2="41.12" x3="41.12" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="41.12" x2="40.84" x3="40.42" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="42.78" y="49.15"/>
+ <curve x1="42.37" x2="41.95" x3="41.95" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="41.95" x2="42.37" x3="42.78" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="43.26" x2="43.55" x3="43.55" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="43.55" x2="43.26" x3="42.78" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="45.21" y="49.15"/>
+ <curve x1="44.8" x2="44.38" x3="44.38" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="44.38" x2="44.8" x3="45.21" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="45.63" x2="45.91" x3="45.91" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="45.91" x2="45.63" x3="45.21" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="email security" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="23.19" y="15.57"/>
+ <line x="55.78" y="15.57"/>
+ <curve x1="57.5" x2="58.89" x3="58.89" y1="15.57" y2="17.03" y3="18.77"/>
+ <line x="58.89" y="36.83"/>
+ <curve x1="58.89" x2="57.5" x3="55.78" y1="38.57" y2="40.04" y3="40.04"/>
+ <line x="50.9" y="40.04"/>
+ <curve x1="49.86" x2="45.19" x3="39.52" y1="45.12" y2="48.94" y3="48.94"/>
+ <curve x1="33.05" x2="27.78" x3="27.78" y1="48.94" y2="43.99" y3="37.89"/>
+ <curve x1="27.78" x2="31.57" x3="36.65" y1="32.65" y2="28.27" y3="27.05"/>
+ <line x="21.94" y="18.71"/>
+ <line x="21.94" y="18.77"/>
+ <line x="21.94" y="36.83"/>
+ <curve x1="21.94" x2="22.51" x3="23.19" y1="37.54" y2="38.17" y3="38.17"/>
+ <line x="27.64" y="38.17"/>
+ <curve x1="27.7" x2="27.85" x3="27.99" y1="38.79" y2="39.42" y3="40.04"/>
+ <line x="23.19" y="40.04"/>
+ <curve x1="21.46" x2="20" x3="20" y1="40.04" y2="38.57" y3="36.83"/>
+ <line x="20" y="18.77"/>
+ <curve x1="20" x2="21.46" x3="23.19" y1="17.03" y2="15.57" y3="15.57"/>
+ <close/>
+ <move x="23.68" y="17.52"/>
+ <line x="39.59" y="26.49"/>
+ <line x="56.04" y="17.52"/>
+ <line x="55.78" y="17.52"/>
+ <line x="23.68" y="17.52"/>
+ <close/>
+ <move x="57.01" y="19.19"/>
+ <line x="42.55" y="27.09"/>
+ <curve x1="47.51" x2="51.12" x3="51.12" y1="28.37" y2="32.71" y3="37.89"/>
+ <curve x1="51.12" x2="51.11" x3="51.11" y1="37.98" y2="38.07" y3="38.17"/>
+ <line x="55.78" y="38.17"/>
+ <curve x1="56.46" x2="57.01" x3="57.01" y1="38.17" y2="37.54" y3="36.83"/>
+ <line x="57.01" y="19.19"/>
+ <close/>
+ <move x="14" y="24.54"/>
+ <curve x1="14.19" x2="14.38" x3="14.51" y1="24.54" y2="24.61" y3="24.75"/>
+ <line x="17.5" y="27.67"/>
+ <curve x1="17.5" x2="17.5" x3="17.58" y1="27.67" y2="27.74" y3="27.74"/>
+ <curve x1="17.7" x2="17.78" x3="17.78" y1="27.87" y2="28.09" y3="28.29"/>
+ <line x="17.78" y="28.43"/>
+ <curve x1="17.78" x2="17.7" x3="17.64" y1="28.64" y2="28.78" y3="28.92"/>
+ <curve x1="17.58" x2="17.58" x3="17.5" y1="28.98" y2="29.06" y3="29.06"/>
+ <line x="14.51" y="31.97"/>
+ <curve x1="14.24" x2="13.76" x3="13.48" y1="32.25" y2="32.25" y3="31.97"/>
+ <line x="13.34" y="31.91"/>
+ <curve x1="13.05" x2="13.05" x3="13.34" y1="31.63" y2="31.14" y3="30.86"/>
+ <line x="15.14" y="29.2"/>
+ <line x="8.89" y="29.2"/>
+ <line x="8.89" y="27.6"/>
+ <line x="15.07" y="27.6"/>
+ <line x="13.34" y="25.87"/>
+ <curve x1="13.05" x2="13.05" x3="13.34" y1="25.58" y2="25.16" y3="24.88"/>
+ <line x="13.48" y="24.75"/>
+ <curve x1="13.62" x2="13.81" x3="14" y1="24.61" y2="24.54" y3="24.54"/>
+ <close/>
+ <move x="66.08" y="24.54"/>
+ <curve x1="66.27" x2="66.46" x3="66.59" y1="24.54" y2="24.61" y3="24.75"/>
+ <line x="66.73" y="24.88"/>
+ <curve x1="67.02" x2="67.02" x3="66.73" y1="25.16" y2="25.58" y3="25.87"/>
+ <line x="65" y="27.6"/>
+ <line x="71.12" y="27.6"/>
+ <line x="71.12" y="29.2"/>
+ <line x="65" y="29.2"/>
+ <line x="66.73" y="30.86"/>
+ <curve x1="67.02" x2="67.02" x3="66.73" y1="31.14" y2="31.63" y3="31.91"/>
+ <line x="66.59" y="31.97"/>
+ <curve x1="66.33" x2="65.84" x3="65.56" y1="32.25" y2="32.25" y3="31.97"/>
+ <line x="62.57" y="29.06"/>
+ <curve x1="62.57" x2="62.51" x3="62.51" y1="29.06" y2="28.98" y3="28.92"/>
+ <curve x1="62.37" x2="62.23" x3="62.23" y1="28.78" y2="28.64" y3="28.43"/>
+ <line x="62.23" y="28.29"/>
+ <curve x1="62.23" x2="62.37" x3="62.57" y1="28.09" y2="27.87" y3="27.74"/>
+ <line x="62.57" y="27.67"/>
+ <line x="65.56" y="24.75"/>
+ <curve x1="65.7" x2="65.89" x3="66.08" y1="24.61" y2="24.54" y3="24.54"/>
+ <close/>
+ <move x="39.52" y="29.47"/>
+ <curve x1="34.65" x2="30.69" x3="30.69" y1="29.47" y2="33.22" y3="37.89"/>
+ <curve x1="30.69" x2="34.65" x3="39.52" y1="42.54" y2="46.24" y3="46.24"/>
+ <curve x1="44.37" x2="48.27" x3="48.27" y1="46.24" y2="42.54" y3="37.89"/>
+ <curve x1="48.27" x2="44.37" x3="39.52" y1="33.22" y2="29.47" y3="29.47"/>
+ <close/>
+ <move x="26.74" y="47.05"/>
+ <curve x1="27.52" x2="28.3" x3="28.88" y1="47.05" y2="47.38" y3="48.04"/>
+ <curve x1="30" x2="30" x3="28.88" y1="49.29" y2="51.37" y3="52.69"/>
+ <line x="23.26" y="58.81"/>
+ <curve x1="22.09" x2="20.13" x3="19.02" y1="60.06" y2="60.06" y3="58.81"/>
+ <curve x1="17.78" x2="17.78" x3="19.02" y1="57.49" y2="55.41" y3="54.16"/>
+ <line x="24.58" y="48.04"/>
+ <curve x1="25.17" x2="25.96" x3="26.74" y1="47.38" y2="47.05" y3="47.05"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="encryption offload" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.16"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="38.6" y="17.09"/>
+ <curve x1="35.94" x2="33.4" x3="31.48" y1="17.09" y2="18.08" y3="20.02"/>
+ <curve x1="29.74" x2="28.61" x3="28.61" y1="21.75" y2="24.23" y3="26.83"/>
+ <curve x1="28.61" x2="28.61" x3="28.67" y1="27.16" y2="27.43" y3="27.63"/>
+ <line x="20.48" y="36.7"/>
+ <line x="13.4" y="36.7"/>
+ <curve x1="12.27" x2="11.81" x3="11.81" y1="36.7" y2="38.78" y3="40.78"/>
+ <curve x1="11.81" x2="12.27" x3="13.4" y1="42.72" y2="44.85" y3="44.85"/>
+ <line x="34.14" y="44.85"/>
+ <line x="34.14" y="43.38"/>
+ <line x="24.61" y="43.38"/>
+ <line x="25.68" y="42.17"/>
+ <line x="32.34" y="42.17"/>
+ <line x="32.34" y="40.64"/>
+ <line x="27" y="40.64"/>
+ <line x="32.61" y="34.57"/>
+ <curve x1="34.28" x2="36.27" x3="38.6" y1="35.77" y2="36.51" y3="36.51"/>
+ <curve x1="41.01" x2="43.34" x3="45.14" y1="36.51" y2="35.7" y3="34.16"/>
+ <line x="51" y="40.64"/>
+ <line x="48.07" y="40.64"/>
+ <line x="48.07" y="42.17"/>
+ <line x="52.42" y="42.17"/>
+ <line x="53.48" y="43.38"/>
+ <line x="49.94" y="43.38"/>
+ <line x="49.94" y="44.85"/>
+ <line x="64.68" y="44.85"/>
+ <curve x1="65.81" x2="66.21" x3="66.21" y1="44.85" y2="42.72" y3="40.78"/>
+ <curve x1="66.21" x2="65.81" x3="64.68" y1="38.78" y2="36.7" y3="36.7"/>
+ <line x="57.61" y="36.7"/>
+ <line x="48.48" y="26.75"/>
+ <curve x1="48.48" x2="44.01" x3="38.6" y1="21.42" y2="17.09" y3="17.09"/>
+ <close/>
+ <move x="38.6" y="18.49"/>
+ <curve x1="40.54" x2="42.41" x3="43.88" y1="18.49" y2="19.09" y3="20.29"/>
+ <curve x1="43.74" x2="43.55" x3="43.28" y1="20.29" y2="20.35" y3="20.35"/>
+ <line x="43.28" y="20.89"/>
+ <line x="44.21" y="20.89"/>
+ <line x="44.21" y="23.16"/>
+ <line x="44.81" y="23.16"/>
+ <line x="44.81" y="21.09"/>
+ <curve x1="45.2" x2="45.47" x3="45.74" y1="21.42" y2="21.75" y3="22.15"/>
+ <curve x1="45.88" x2="45.94" x3="46.15" y1="22.43" y2="22.62" y3="22.89"/>
+ <curve x1="46.4" x2="46.67" x3="46.81" y1="23.3" y2="23.76" y3="24.42"/>
+ <curve x1="46.87" x2="46.94" x3="46.94" y1="24.56" y2="24.83" y3="25.09"/>
+ <curve x1="46.94" x2="47.08" x3="47.08" y1="25.09" y2="25.09" y3="25.22"/>
+ <curve x1="46.87" x2="46.61" x3="46.34" y1="25.09" y2="25.02" y3="25.02"/>
+ <curve x1="45.88" x2="45.55" x3="45.28" y1="25.02" y2="25.22" y3="25.49"/>
+ <curve x1="45.14" x2="44.95" x3="44.95" y1="25.82" y2="26.29" y3="26.83"/>
+ <curve x1="44.95" x2="45.14" x3="45.28" y1="27.43" y2="27.82" y3="28.17"/>
+ <curve x1="45.55" x2="45.88" x3="46.34" y1="28.5" y2="28.69" y3="28.69"/>
+ <curve x1="46.61" x2="46.87" x3="47.08" y1="28.69" y2="28.63" y3="28.5"/>
+ <line x="46.94" y="28.63"/>
+ <curve x1="46.94" x2="46.94" x3="46.87" y1="28.69" y2="28.77" y3="28.9"/>
+ <curve x1="46.67" x2="46.21" x3="45.74" y1="29.9" y2="30.77" y3="31.56"/>
+ <curve x1="45.68" x2="45.55" x3="45.47" y1="31.29" y2="31.1" y3="30.96"/>
+ <curve x1="45.2" x2="44.81" x3="44.34" y1="30.69" y2="30.43" y3="30.43"/>
+ <curve x1="44.01" x2="43.61" x3="43.41" y1="30.43" y2="30.69" y3="30.96"/>
+ <curve x1="43.14" x2="43.08" x3="43.08" y1="31.29" y2="31.76" y3="32.3"/>
+ <curve x1="43.08" x2="43.14" x3="43.34" y1="32.83" y2="33.31" y3="33.56"/>
+ <line x="43.55" y="33.77"/>
+ <curve x1="43.14" x2="42.68" x3="42.35" y1="34.03" y2="34.3" y3="34.43"/>
+ <curve x1="42.08" x2="41.75" x3="41.47" y1="34.57" y2="34.63" y3="34.84"/>
+ <curve x1="41.14" x2="40.74" x3="40.27" y1="34.9" y2="34.97" y3="35.09"/>
+ <curve x1="40" x2="39.74" x3="39.47" y1="35.17" y2="35.23" y3="35.23"/>
+ <line x="38.6" y="35.23"/>
+ <line x="37.67" y="35.23"/>
+ <curve x1="37.4" x2="37.07" x3="36.87" y1="35.23" y2="35.17" y3="35.09"/>
+ <curve x1="36.41" x2="35.94" x3="35.54" y1="34.97" y2="34.9" y3="34.84"/>
+ <curve x1="35.27" x2="35.01" x3="34.8" y1="34.63" y2="34.57" y3="34.43"/>
+ <curve x1="34.61" x2="34.34" x3="34.14" y1="34.37" y2="34.16" y3="34.1"/>
+ <curve x1="34.47" x2="34.74" x3="34.94" y1="34.03" y2="33.83" y3="33.56"/>
+ <curve x1="35.21" x2="35.27" x3="35.27" y1="33.31" y2="32.83" y3="32.3"/>
+ <curve x1="35.27" x2="35.21" x3="34.94" y1="31.76" y2="31.29" y3="30.96"/>
+ <curve x1="34.61" x2="34.33" x3="33.87" y1="30.69" y2="30.43" y3="30.43"/>
+ <curve x1="33.4" x2="33.07" x3="32.88" y1="30.43" y2="30.69" y3="30.96"/>
+ <curve x1="32.61" x2="32.47" x3="32.47" y1="31.29" y2="31.76" y3="32.3"/>
+ <curve x1="32.47" x2="32.61" x3="32.61" y1="32.49" y2="32.63" y3="32.83"/>
+ <line x="32.43" y="32.77"/>
+ <line x="32.34" y="32.63"/>
+ <line x="32.41" y="32.76"/>
+ <line x="32.14" y="32.49"/>
+ <curve x1="31.94" x2="31.68" x3="31.48" y1="32.24" y2="31.97" y3="31.56"/>
+ <curve x1="31.27" x2="31.21" x3="31.13" y1="31.43" y2="31.23" y3="31.1"/>
+ <curve x1="31.01" x2="30.8" x3="30.8" y1="30.96" y2="30.5" y3="30.5"/>
+ <curve x1="30.55" x2="30.34" x3="30.2" y1="30.03" y2="29.49" y3="28.9"/>
+ <curve x1="30.2" x2="30.2" x3="30.07" y1="28.9" y2="28.69" y3="28.69"/>
+ <line x="30.2" y="28.69"/>
+ <curve x1="30.67" x2="31.01" x3="31.21" y1="28.69" y2="28.5" y3="28.17"/>
+ <curve x1="31.48" x2="31.61" x3="31.61" y1="27.82" y2="27.43" y3="26.83"/>
+ <curve x1="31.61" x2="31.48" x3="31.21" y1="26.29" y2="25.9" y3="25.55"/>
+ <curve x1="31.01" x2="30.55" x3="30.2" y1="25.22" y2="25.02" y3="25.02"/>
+ <line x="30.07" y="25.02"/>
+ <curve x1="30.2" x2="30.28" x3="30.34" y1="24.75" y2="24.56" y3="24.42"/>
+ <curve x1="30.47" x2="30.55" x3="30.8" y1="23.96" y2="23.49" y3="23.16"/>
+ <curve x1="30.8" x2="31.01" x3="31.01" y1="23.03" y2="22.89" y3="22.89"/>
+ <curve x1="31.13" x2="31.21" x3="31.48" y1="22.62" y2="22.43" y3="22.15"/>
+ <curve x1="31.74" x2="32.2" x3="32.67" y1="21.63" y2="21.09" y3="20.62"/>
+ <curve x1="32.61" x2="32.61" x3="32.61" y1="20.89" y2="21.09" y3="21.42"/>
+ <curve x1="32.61" x2="32.8" x3="32.94" y1="21.96" y2="22.42" y3="22.69"/>
+ <curve x1="33.27" x2="33.54" x3="34" y1="23.03" y2="23.22" y3="23.22"/>
+ <curve x1="34.47" x2="34.8" x3="35.01" y1="23.22" y2="23.03" y3="22.69"/>
+ <curve x1="35.27" x2="35.4" x3="35.4" y1="22.42" y2="21.96" y3="21.42"/>
+ <curve x1="35.4" x2="35.27" x3="35.01" y1="20.89" y2="20.43" y3="20.08"/>
+ <curve x1="34.8" x2="34.55" x3="34.14" y1="19.83" y2="19.62" y3="19.55"/>
+ <curve x1="35.48" x2="36.93" x3="38.6" y1="18.82" y2="18.49" y3="18.49"/>
+ <close/>
+ <move x="37.68" y="19.23"/>
+ <curve x1="37.54" x2="37.41" x3="37.35" y1="19.48" y2="19.56" y3="19.75"/>
+ <curve x1="37.08" x2="36.87" x3="36.34" y1="19.83" y2="19.89" y3="19.89"/>
+ <line x="36.34" y="20.43"/>
+ <line x="37.54" y="20.43"/>
+ <line x="37.54" y="22.43"/>
+ <line x="38.48" y="22.43"/>
+ <line x="38.48" y="19.23"/>
+ <line x="37.68" y="19.23"/>
+ <close/>
+ <move x="41.13" y="19.23"/>
+ <curve x1="40.55" x2="40.2" x3="39.87" y1="19.23" y2="19.42" y3="19.69"/>
+ <curve x1="39.68" x2="39.54" x3="39.54" y1="19.95" y2="20.35" y3="20.89"/>
+ <curve x1="39.54" x2="39.68" x3="39.87" y1="21.36" y2="21.69" y3="21.96"/>
+ <curve x1="40.2" x2="40.55" x3="41.13" y1="22.29" y2="22.43" y3="22.43"/>
+ <curve x1="41.68" x2="42.14" x3="42.47" y1="22.43" y2="22.29" y3="21.96"/>
+ <curve x1="42.67" x2="42.74" x3="42.74" y1="21.69" y2="21.28" y3="20.89"/>
+ <curve x1="42.74" x2="42.67" x3="42.47" y1="20.35" y2="19.95" y3="19.69"/>
+ <curve x1="42.14" x2="41.68" x3="41.13" y1="19.42" y2="19.23" y3="19.23"/>
+ <close/>
+ <move x="41.13" y="19.83"/>
+ <curve x1="41.68" x2="42.01" x3="42.01" y1="19.83" y2="20.22" y3="20.89"/>
+ <curve x1="42.01" x2="41.68" x3="41.13" y1="21.61" y2="21.88" y3="21.88"/>
+ <curve x1="40.67" x2="40.47" x3="40.47" y1="21.88" y2="21.61" y3="20.89"/>
+ <curve x1="40.47" x2="40.67" x3="41.13" y1="20.22" y2="19.83" y3="19.83"/>
+ <close/>
+ <move x="34" y="20.16"/>
+ <curve x1="34.34" x2="34.61" x3="34.61" y1="20.16" y2="20.62" y3="21.42"/>
+ <curve x1="34.61" x2="34.34" x3="34" y1="22.21" y2="22.62" y3="22.62"/>
+ <curve x1="33.54" x2="33.34" x3="33.34" y1="22.62" y2="22.21" y3="21.42"/>
+ <curve x1="33.34" x2="33.54" x3="34" y1="20.62" y2="20.16" y3="20.16"/>
+ <close/>
+ <move x="33.8" y="24.56"/>
+ <curve x1="33.74" x2="33.74" x3="33.67" y1="24.82" y2="25.03" y3="25.17"/>
+ <curve x1="33.55" x2="33.41" x3="33.14" y1="25.23" y2="25.36" y3="25.36"/>
+ <line x="33.14" y="26.02"/>
+ <line x="33.74" y="26.02"/>
+ <line x="33.74" y="28.83"/>
+ <line x="34.21" y="28.83"/>
+ <line x="34.21" y="24.56"/>
+ <line x="33.8" y="24.56"/>
+ <close/>
+ <move x="36.87" y="24.56"/>
+ <curve x1="36.34" x2="36.07" x3="35.74" y1="24.56" y2="24.82" y3="25.09"/>
+ <curve x1="35.54" x2="35.28" x3="35.28" y1="25.56" y2="26.02" y3="26.7"/>
+ <curve x1="35.28" x2="35.54" x3="35.74" y1="27.3" y2="27.83" y3="28.23"/>
+ <curve x1="36.07" x2="36.34" x3="36.87" y1="28.62" y2="28.83" y3="28.83"/>
+ <curve x1="37.41" x2="37.74" x3="38.07" y1="28.83" y2="28.62" y3="28.23"/>
+ <curve x1="38.28" x2="38.48" x3="38.48" y1="27.83" y2="27.3" y3="26.7"/>
+ <curve x1="38.48" x2="38.28" x3="38.07" y1="26.02" y2="25.56" y3="25.23"/>
+ <curve x1="37.74" x2="37.41" x3="36.87" y1="24.82" y2="24.56" y3="24.56"/>
+ <close/>
+ <move x="40.61" y="24.56"/>
+ <curve x1="40.28" x2="40.07" x3="39.87" y1="24.56" y2="24.82" y3="25.09"/>
+ <curve x1="39.74" x2="39.54" x3="39.54" y1="25.56" y2="26.02" y3="26.7"/>
+ <curve x1="39.54" x2="39.74" x3="39.87" y1="27.3" y2="27.83" y3="28.23"/>
+ <curve x1="40.07" x2="40.28" x3="40.61" y1="28.62" y2="28.83" y3="28.83"/>
+ <curve x1="41.01" x2="41.21" x3="41.4" y1="28.83" y2="28.62" y3="28.23"/>
+ <curve x1="41.54" x2="41.67" x3="41.67" y1="27.83" y2="27.3" y3="26.7"/>
+ <curve x1="41.67" x2="41.54" x3="41.4" y1="26.02" y2="25.56" y3="25.23"/>
+ <curve x1="41.21" x2="41.01" x3="40.61" y1="24.82" y2="24.56" y3="24.56"/>
+ <close/>
+ <move x="43.48" y="24.56"/>
+ <curve x1="43.4" x2="43.34" x3="43.27" y1="24.82" y2="25.03" y3="25.17"/>
+ <curve x1="43.21" x2="43.01" x3="42.74" y1="25.23" y2="25.36" y3="25.36"/>
+ <line x="42.74" y="26.02"/>
+ <line x="43.34" y="26.02"/>
+ <line x="43.34" y="28.83"/>
+ <line x="43.81" y="28.83"/>
+ <line x="43.81" y="24.56"/>
+ <line x="43.48" y="24.56"/>
+ <close/>
+ <move x="36.87" y="25.28"/>
+ <curve x1="37.35" x2="37.68" x3="37.68" y1="25.28" y2="25.75" y3="26.7"/>
+ <curve x1="37.68" x2="37.35" x3="36.87" y1="27.63" y2="28.16" y3="28.16"/>
+ <curve x1="36.48" x2="36.28" x3="36.28" y1="28.16" y2="27.63" y3="26.7"/>
+ <curve x1="36.28" x2="36.48" x3="36.87" y1="25.75" y2="25.28" y3="25.28"/>
+ <close/>
+ <move x="40.61" y="25.28"/>
+ <curve x1="40.94" x2="41.07" x3="41.07" y1="25.28" y2="25.75" y3="26.7"/>
+ <curve x1="41.07" x2="40.94" x3="40.61" y1="27.63" y2="28.16" y3="28.16"/>
+ <curve x1="40.34" x2="40.14" x3="40.14" y1="28.16" y2="27.63" y3="26.7"/>
+ <curve x1="40.14" x2="40.34" x3="40.61" y1="25.75" y2="25.28" y3="25.28"/>
+ <close/>
+ <move x="30.01" y="25.63"/>
+ <line x="30.2" y="25.63"/>
+ <curve x1="30.55" x2="30.8" x3="30.8" y1="25.63" y2="26.03" y3="26.83"/>
+ <curve x1="30.8" x2="30.55" x3="30.2" y1="27.62" y2="28.09" y3="28.09"/>
+ <line x="30.01" y="28.09"/>
+ <curve x1="30.01" x2="29.95" x3="29.95" y1="27.63" y2="27.29" y3="26.83"/>
+ <curve x1="29.95" x2="30.01" x3="30.01" y1="26.42" y2="26.03" y3="25.63"/>
+ <close/>
+ <move x="46.34" y="25.63"/>
+ <curve x1="46.81" x2="46.94" x3="46.94" y1="25.63" y2="26.03" y3="26.83"/>
+ <curve x1="46.94" x2="46.81" x3="46.34" y1="27.62" y2="28.09" y3="28.09"/>
+ <curve x1="45.94" x2="45.74" x3="45.74" y1="28.09" y2="27.62" y3="26.83"/>
+ <curve x1="45.74" x2="45.94" x3="46.34" y1="26.03" y2="25.63" y3="25.63"/>
+ <close/>
+ <move x="41.21" y="29.9"/>
+ <curve x1="40.67" x2="40.2" x3="40.01" y1="29.9" y2="30.16" y3="30.56"/>
+ <curve x1="39.68" x2="39.54" x3="39.54" y1="30.97" y2="31.36" y3="32.1"/>
+ <curve x1="39.54" x2="39.68" x3="40.01" y1="32.76" y2="33.16" y3="33.57"/>
+ <curve x1="40.2" x2="40.67" x3="41.21" y1="33.96" y2="34.17" y3="34.17"/>
+ <curve x1="41.81" x2="42.14" x3="42.47" y1="34.17" y2="33.96" y3="33.57"/>
+ <curve x1="42.67" x2="42.74" x3="42.74" y1="33.16" y2="32.76" y3="32.1"/>
+ <curve x1="42.74" x2="42.67" x3="42.34" y1="31.36" y2="30.97" y3="30.56"/>
+ <curve x1="42.14" x2="41.68" x3="41.21" y1="30.16" y2="29.9" y3="29.9"/>
+ <close/>
+ <move x="41.21" y="30.62"/>
+ <curve x1="41.68" x2="41.87" x3="41.87" y1="30.62" y2="31.17" y3="32.1"/>
+ <curve x1="41.87" x2="41.68" x3="41.21" y1="33.03" y2="33.49" y3="33.49"/>
+ <curve x1="40.67" x2="40.47" x3="40.47" y1="33.49" y2="33.03" y3="32.1"/>
+ <curve x1="40.47" x2="40.67" x3="41.21" y1="31.17" y2="30.62" y3="30.62"/>
+ <close/>
+ <move x="37.74" y="30.97"/>
+ <curve x1="37.6" x2="37.47" x3="37.27" y1="31.23" y2="31.3" y3="31.5"/>
+ <curve x1="37.14" x2="36.75" x3="36.34" y1="31.57" y2="31.63" y3="31.63"/>
+ <line x="36.34" y="32.17"/>
+ <line x="37.47" y="32.17"/>
+ <line x="37.47" y="34.17"/>
+ <line x="38.48" y="34.17"/>
+ <line x="38.48" y="30.97"/>
+ <line x="37.74" y="30.97"/>
+ <close/>
+ <move x="33.87" y="31.04"/>
+ <curve x1="34.33" x2="34.54" x3="34.54" y1="31.04" y2="31.5" y3="32.3"/>
+ <curve x1="34.54" x2="34.33" x3="33.87" y1="33.1" y2="33.43" y3="33.43"/>
+ <curve x1="33.4" x2="33.27" x3="33.27" y1="33.43" y2="33.1" y3="32.3"/>
+ <curve x1="33.27" x2="33.4" x3="33.87" y1="31.5" y2="31.04" y3="31.04"/>
+ <close/>
+ <move x="44.34" y="31.04"/>
+ <curve x1="44.81" x2="45.14" x3="45.14" y1="31.04" y2="31.5" y3="32.3"/>
+ <line x="45.14" y="32.36"/>
+ <curve x1="45.01" x2="45.01" x3="44.95" y1="32.36" y2="32.49" y3="32.49"/>
+ <curve x1="44.81" x2="44.74" x3="44.68" y1="32.63" y2="32.63" y3="32.83"/>
+ <curve x1="44.48" x2="44.27" x3="44.07" y1="33.04" y2="33.17" y3="33.31"/>
+ <curve x1="43.88" x2="43.8" x3="43.8" y1="33.1" y2="32.83" y3="32.3"/>
+ <curve x1="43.8" x2="44.01" x3="44.34" y1="31.5" y2="31.04" y3="31.04"/>
+ <close/>
+ <move x="13.4" y="37.5"/>
+ <curve x1="13.67" x2="14.27" x3="14.27" y1="37.57" y2="38.7" y3="40.78"/>
+ <curve x1="14.27" x2="13.67" x3="13.4" y1="42.85" y2="43.98" y3="44.04"/>
+ <curve x1="13.14" x2="12.68" x3="12.68" y1="43.98" y2="42.85" y3="40.78"/>
+ <curve x1="12.68" x2="13.14" x3="13.4" y1="38.7" y2="37.57" y3="37.5"/>
+ <close/>
+ <move x="35.28" y="40.58"/>
+ <line x="35.28" y="42.71"/>
+ <line x="39.54" y="42.71"/>
+ <line x="39.54" y="40.58"/>
+ <line x="35.28" y="40.58"/>
+ <close/>
+ <move x="41.67" y="40.58"/>
+ <line x="41.67" y="42.71"/>
+ <line x="45.94" y="42.71"/>
+ <line x="45.94" y="40.58"/>
+ <line x="41.67" y="40.58"/>
+ <close/>
+ <move x="37.41" y="43.78"/>
+ <line x="37.41" y="44.85"/>
+ <line x="40.61" y="44.85"/>
+ <line x="40.61" y="43.78"/>
+ <line x="37.41" y="43.78"/>
+ <close/>
+ <move x="43.81" y="43.78"/>
+ <line x="43.81" y="44.85"/>
+ <line x="47.01" y="44.85"/>
+ <line x="47.01" y="43.78"/>
+ <line x="43.81" y="43.78"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.93" name="fabric switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="69.93"/>
+ <line x="80" y="34.9"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.9"/>
+ <line x="20.07" y="69.93"/>
+ <line x="60.01" y="69.93"/>
+ <line x="60.01" y="69.93"/>
+ <close/>
+ <move x="63.88" y="33.98"/>
+ <curve x1="64.09" x2="64.23" x3="64.23" y1="34.19" y2="34.54" y3="34.89"/>
+ <curve x1="64.23" x2="64.23" x3="64.23" y1="34.89" y2="34.89" y3="35.17"/>
+ <curve x1="64.23" x2="64.09" x3="63.74" y1="35.6" y2="35.95" y3="36.24"/>
+ <curve x1="63.67" x2="63.67" x3="63.67" y1="36.24" y2="36.3" y3="36.3"/>
+ <curve x1="63.67" x2="63.67" x3="57.96" y1="36.3" y2="36.3" y3="41.87"/>
+ <curve x1="57.47" x2="56.55" x3="55.99" y1="42.37" y2="42.37" y3="41.87"/>
+ <curve x1="55.99" x2="55.99" x3="55.78" y1="41.87" y2="41.87" y3="41.67"/>
+ <curve x1="55.29" x2="55.29" x3="55.78" y1="41.1" y2="40.26" y3="39.76"/>
+ <curve x1="55.78" x2="55.78" x3="59.09" y1="39.76" y2="39.76" y3="36.51"/>
+ <curve x1="59.09" x2="59.09" x3="49.86" y1="36.51" y2="36.51" y3="36.51"/>
+ <curve x1="52.05" x2="53.88" x3="55.29" y1="39.05" y2="41.38" y3="43.56"/>
+ <curve x1="58.24" x2="58.88" x3="57.4" y1="48" y2="50.89" y3="52.38"/>
+ <curve x1="57.05" x2="56.42" x3="55.36" y1="52.73" y2="53.15" y3="53.15"/>
+ <curve x1="52.26" x2="46.91" x3="41.62" y1="53.15" y2="49.7" y3="45.32"/>
+ <curve x1="41.62" x2="41.62" x3="41.62" y1="45.32" y2="45.32" y3="53.58"/>
+ <curve x1="41.62" x2="41.62" x3="44.86" y1="53.58" y2="53.58" y3="50.4"/>
+ <curve x1="45.43" x2="46.27" x3="46.83" y1="49.91" y2="49.91" y3="50.4"/>
+ <curve x1="46.83" x2="46.83" x3="47.05" y1="50.4" y2="50.4" y3="50.62"/>
+ <curve x1="47.61" x2="47.61" x3="47.05" y1="51.18" y2="52.02" y3="52.51"/>
+ <curve x1="47.05" x2="47.05" x3="41.42" y1="52.51" y2="52.51" y3="58.08"/>
+ <curve x1="41.34" x2="41.34" x3="41.27" y1="58.16" y2="58.16" y3="58.16"/>
+ <curve x1="41.07" x2="40.64" x3="40.21" y1="58.51" y2="58.66" y3="58.66"/>
+ <curve x1="40.21" x2="40.21" x3="39.94" y1="58.66" y2="58.66" y3="58.66"/>
+ <curve x1="39.51" x2="39.22" x3="38.94" y1="58.66" y2="58.51" y3="58.29"/>
+ <curve x1="38.81" x2="38.73" x3="38.67" y1="58.23" y2="58.16" y3="58.08"/>
+ <curve x1="38.67" x2="38.67" x3="33.03" y1="58.08" y2="58.08" y3="52.51"/>
+ <curve x1="32.46" x2="32.46" x3="33.03" y1="52.02" y2="51.18" y3="50.62"/>
+ <curve x1="33.03" x2="33.03" x3="33.18" y1="50.62" y2="50.62" y3="50.4"/>
+ <curve x1="33.81" x2="34.65" x3="35.21" y1="49.91" y2="49.91" y3="50.4"/>
+ <curve x1="35.21" x2="35.21" x3="38.53" y1="50.4" y2="50.4" y3="53.64"/>
+ <curve x1="38.53" x2="38.53" x3="38.53" y1="53.64" y2="53.64" y3="45.19"/>
+ <curve x1="33.18" x2="27.75" x3="24.65" y1="49.62" y2="53.15" y3="53.15"/>
+ <curve x1="24.65" x2="24.65" x3="24.65" y1="53.15" y2="53.15" y3="53.15"/>
+ <curve x1="23.52" x2="22.89" x3="22.6" y1="53.15" y2="52.73" y3="52.38"/>
+ <curve x1="21.06" x2="21.76" x3="24.71" y1="50.89" y2="48" y3="43.56"/>
+ <curve x1="26.13" x2="27.95" x3="30.14" y1="41.38" y2="39.05" y3="36.51"/>
+ <curve x1="30.14" x2="30.14" x3="20.98" y1="36.51" y2="36.51" y3="36.51"/>
+ <curve x1="20.98" x2="20.98" x3="24.3" y1="36.51" y2="36.51" y3="39.76"/>
+ <curve x1="24.79" x2="24.79" x3="24.3" y1="40.26" y2="41.1" y3="41.67"/>
+ <curve x1="24.3" x2="24.3" x3="24.08" y1="41.67" y2="41.67" y3="41.87"/>
+ <curve x1="23.52" x2="22.6" x3="22.11" y1="42.37" y2="42.37" y3="41.87"/>
+ <curve x1="22.11" x2="22.11" x3="16.41" y1="41.87" y2="41.87" y3="36.3"/>
+ <curve x1="16.41" x2="16.33" x3="16.33" y1="36.3" y2="36.24" y3="36.24"/>
+ <curve x1="15.98" x2="15.78" x3="15.78" y1="35.95" y2="35.6" y3="35.17"/>
+ <curve x1="15.78" x2="15.78" x3="15.78" y1="35.17" y2="35.17" y3="34.89"/>
+ <curve x1="15.78" x2="15.98" x3="16.2" y1="34.54" y2="34.19" y3="33.98"/>
+ <curve x1="16.27" x2="16.33" x3="16.41" y1="33.84" y2="33.76" y3="33.7"/>
+ <curve x1="16.41" x2="16.41" x3="22.11" y1="33.7" y2="33.7" y3="28.13"/>
+ <curve x1="22.6" x2="23.52" x3="24.08" y1="27.63" y2="27.63" y3="28.13"/>
+ <curve x1="24.08" x2="24.08" x3="24.3" y1="28.13" y2="28.13" y3="28.33"/>
+ <curve x1="24.79" x2="24.79" x3="24.3" y1="28.9" y2="29.68" y3="30.24"/>
+ <curve x1="24.3" x2="24.3" x3="20.98" y1="30.24" y2="30.24" y3="33.49"/>
+ <curve x1="20.98" x2="20.98" x3="29.57" y1="33.49" y2="33.49" y3="33.49"/>
+ <curve x1="27.68" x2="25.98" x3="24.71" y1="31.22" y2="29.11" y3="27.14"/>
+ <curve x1="21.76" x2="21.06" x3="22.6" y1="22.63" y2="19.81" y3="18.33"/>
+ <curve x1="22.89" x2="23.52" x3="24.65" y1="17.98" y2="17.55" y3="17.55"/>
+ <curve x1="27.75" x2="33.18" x3="38.53" y1="17.55" y2="21.08" y3="25.52"/>
+ <curve x1="38.53" x2="38.53" x3="38.53" y1="25.52" y2="25.52" y3="16.36"/>
+ <curve x1="38.53" x2="38.53" x3="35.21" y1="16.36" y2="16.36" y3="19.6"/>
+ <curve x1="34.65" x2="33.81" x3="33.18" y1="20.09" y2="20.09" y3="19.6"/>
+ <curve x1="33.18" x2="33.18" x3="33.03" y1="19.6" y2="19.6" y3="19.38"/>
+ <curve x1="32.46" x2="32.46" x3="33.03" y1="18.82" y2="17.98" y3="17.49"/>
+ <curve x1="33.03" x2="33.03" x3="38.67" y1="17.49" y2="17.49" y3="11.92"/>
+ <curve x1="38.73" x2="38.81" x3="38.94" y1="11.84" y2="11.77" y3="11.71"/>
+ <curve x1="39.22" x2="39.51" x3="39.94" y1="11.49" y2="11.28" y3="11.28"/>
+ <curve x1="39.94" x2="39.94" x3="40.21" y1="11.28" y2="11.28" y3="11.28"/>
+ <curve x1="40.64" x2="41.07" x3="41.27" y1="11.28" y2="11.49" y3="11.84"/>
+ <curve x1="41.34" x2="41.34" x3="41.42" y1="11.84" y2="11.84" y3="11.92"/>
+ <curve x1="41.42" x2="41.42" x3="47.05" y1="11.92" y2="11.92" y3="17.49"/>
+ <curve x1="47.61" x2="47.61" x3="47.05" y1="17.98" y2="18.82" y3="19.38"/>
+ <curve x1="47.05" x2="47.05" x3="46.83" y1="19.38" y2="19.38" y3="19.6"/>
+ <curve x1="46.27" x2="45.43" x3="44.86" y1="20.09" y2="20.09" y3="19.6"/>
+ <curve x1="44.86" x2="44.86" x3="41.62" y1="19.6" y2="19.6" y3="16.36"/>
+ <curve x1="41.62" x2="41.62" x3="41.62" y1="16.36" y2="16.36" y3="25.38"/>
+ <curve x1="46.91" x2="52.26" x3="55.36" y1="21.01" y2="17.55" y3="17.55"/>
+ <curve x1="56.42" x2="57.05" x3="57.4" y1="17.55" y2="17.98" y3="18.33"/>
+ <curve x1="58.88" x2="58.24" x3="55.29" y1="19.81" y2="22.63" y3="27.14"/>
+ <curve x1="54.02" x2="52.32" x3="50.43" y1="29.11" y2="31.22" y3="33.49"/>
+ <curve x1="50.43" x2="50.43" x3="59.09" y1="33.49" y2="33.49" y3="33.49"/>
+ <curve x1="59.09" x2="59.09" x3="55.78" y1="33.49" y2="33.49" y3="30.24"/>
+ <curve x1="55.29" x2="55.29" x3="55.78" y1="29.68" y2="28.9" y3="28.33"/>
+ <curve x1="55.78" x2="55.78" x3="55.99" y1="28.33" y2="28.33" y3="28.13"/>
+ <curve x1="56.55" x2="57.47" x3="57.96" y1="27.63" y2="27.63" y3="28.13"/>
+ <curve x1="57.96" x2="57.96" x3="63.67" y1="28.13" y2="28.13" y3="33.7"/>
+ <curve x1="63.74" x2="63.8" x3="63.88" y1="33.76" y2="33.84" y3="33.98"/>
+ <close/>
+ <move x="24.65" y="50.62"/>
+ <curve x1="26.48" x2="31.13" x3="36.83" y1="50.62" y2="48.08" y3="43.29"/>
+ <curve x1="34.57" x2="32.75" x3="31.91" y1="42.37" y2="40.67" y3="38.41"/>
+ <curve x1="26.27" x2="23.95" x3="24.44" y1="44.91" y2="49.56" y3="50.54"/>
+ <curve x1="24.44" x2="24.51" x3="24.65" y1="50.62" y2="50.62" y3="50.62"/>
+ <close/>
+ <move x="31.91" y="32.29"/>
+ <curve x1="32.75" x2="34.57" x3="36.83" y1="30.03" y2="28.27" y3="27.43"/>
+ <curve x1="31.13" x2="26.48" x3="24.65" y1="22.63" y2="20.09" y3="20.09"/>
+ <curve x1="24.51" x2="24.44" x3="24.44" y1="20.09" y2="20.09" y3="20.09"/>
+ <curve x1="23.95" x2="26.27" x3="31.91" y1="21.14" y2="25.81" y3="32.29"/>
+ <close/>
+ <move x="55.36" y="20.09"/>
+ <curve x1="53.45" x2="48.88" x3="43.18" y1="20.09" y2="22.63" y3="27.43"/>
+ <curve x1="45.43" x2="47.18" x3="48.1" y1="28.27" y2="30.03" y3="32.29"/>
+ <curve x1="53.74" x2="55.99" x3="55.56" y1="25.81" y2="21.14" y3="20.09"/>
+ <curve x1="55.56" x2="55.5" x3="55.36" y1="20.09" y2="20.09" y3="20.09"/>
+ <close/>
+ <move x="55.56" y="50.54"/>
+ <curve x1="55.99" x2="53.74" x3="48.1" y1="49.56" y2="44.91" y3="38.41"/>
+ <curve x1="47.18" x2="45.43" x3="43.18" y1="40.67" y2="42.37" y3="43.29"/>
+ <curve x1="48.88" x2="53.45" x3="55.36" y1="48.08" y2="50.62" y3="50.62"/>
+ <curve x1="55.5" x2="55.56" x3="55.56" y1="50.62" y2="50.62" y3="50.54"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="firepower appliance" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="23.96" y="5.56"/>
+ <line x="28.89" y="10.71"/>
+ <line x="28.75" y="10.71"/>
+ <line x="23.96" y="15.57"/>
+ <line x="23.96" y="13.07"/>
+ <line x="15.56" y="13.07"/>
+ <line x="15.56" y="8.14"/>
+ <line x="23.96" y="8.14"/>
+ <line x="23.96" y="5.56"/>
+ <close/>
+ <move x="40.49" y="12.23"/>
+ <curve x1="40.56" x2="40.56" x3="40.56" y1="12.23" y2="12.31" y3="12.37"/>
+ <curve x1="40.84" x2="41.12" x3="39.44" y1="13.07" y2="15.78" y3="16.69"/>
+ <curve x1="37.93" x2="37.5" x3="37.36" y1="17.44" y2="18.55" y3="18.84"/>
+ <curve x1="37.36" x2="37.36" x3="37.3" y1="18.91" y2="18.91" y3="18.91"/>
+ <curve x1="37.22" x2="37.22" x3="37.22" y1="18.91" y2="18.91" y3="18.84"/>
+ <curve x1="37.02" x2="36.67" x3="38.41" y1="18.15" y2="15.44" y3="14.59"/>
+ <curve x1="39.93" x2="40.35" x3="40.42" y1="13.84" y2="12.65" y3="12.37"/>
+ <curve x1="40.42" x2="40.49" x3="40.49" y1="12.31" y2="12.23" y3="12.23"/>
+ <close/>
+ <move x="28.89" y="17.79"/>
+ <line x="34.45" y="17.79"/>
+ <line x="34.45" y="18.9"/>
+ <line x="30.21" y="18.9"/>
+ <line x="30.21" y="21.89"/>
+ <line x="33.96" y="21.89"/>
+ <line x="33.96" y="23"/>
+ <line x="30.21" y="23"/>
+ <line x="30.21" y="26.7"/>
+ <line x="28.89" y="26.7"/>
+ <line x="28.89" y="17.79"/>
+ <close/>
+ <move x="36.67" y="20.01"/>
+ <line x="37.78" y="20.01"/>
+ <line x="37.78" y="26.7"/>
+ <line x="36.67" y="26.7"/>
+ <line x="36.67" y="20.01"/>
+ <close/>
+ <move x="42.71" y="20.01"/>
+ <curve x1="42.99" x2="43.2" x3="43.34" y1="20.01" y2="20.09" y3="20.15"/>
+ <line x="43.34" y="21.34"/>
+ <curve x1="43.13" x2="42.92" x3="42.65" y1="21.26" y2="21.2" y3="21.2"/>
+ <curve x1="41.88" x2="41.18" x3="41.18" y1="21.2" y2="21.83" y3="23.49"/>
+ <line x="41.18" y="26.7"/>
+ <line x="40" y="26.7"/>
+ <line x="40" y="20.23"/>
+ <line x="40.97" y="20.23"/>
+ <line x="41.12" y="21.2"/>
+ <curve x1="41.46" x2="42.02" x3="42.71" y1="20.51" y2="20.01" y3="20.01"/>
+ <close/>
+ <move x="47.84" y="20.01"/>
+ <curve x1="49.8" x2="51.12" x3="51.12" y1="20.01" y2="21.06" y3="23.63"/>
+ <line x="45.76" y="23.63"/>
+ <curve x1="45.9" x2="46.81" x3="47.98" y1="25.1" y2="25.79" y3="25.79"/>
+ <curve x1="48.81" x2="49.44" x3="49.66" y1="25.79" y2="25.3" y3="24.74"/>
+ <line x="51.04" y="24.74"/>
+ <curve x1="50.77" x2="49.66" x3="47.92" y1="25.85" y2="26.7" y3="26.7"/>
+ <curve x1="45.9" x2="44.45" x3="44.45" y1="26.7" y2="25.59" y3="23.36"/>
+ <curve x1="44.45" x2="45.9" x3="47.84" y1="21.2" y2="20.01" y3="20.01"/>
+ <close/>
+ <move x="47.92" y="21"/>
+ <curve x1="46.87" x2="46.11" x3="45.9" y1="21" y2="21.55" y3="22.74"/>
+ <line x="49.86" y="22.74"/>
+ <curve x1="49.72" x2="48.96" x3="47.92" y1="21.55" y2="21" y3="21"/>
+ <close/>
+ <move x="56.11" y="25.58"/>
+ <line x="56.11" y="28.43"/>
+ <line x="64.45" y="28.43"/>
+ <line x="64.45" y="33.92"/>
+ <line x="56.11" y="33.92"/>
+ <line x="56.11" y="36.71"/>
+ <line x="51.12" y="31.28"/>
+ <line x="51.32" y="31.07"/>
+ <line x="56.11" y="25.58"/>
+ <close/>
+ <move x="15.56" y="40.04"/>
+ <line x="64.45" y="40.04"/>
+ <line x="64.45" y="40.45"/>
+ <line x="64.45" y="40.67"/>
+ <line x="56.95" y="40.67"/>
+ <line x="56.95" y="46.43"/>
+ <line x="64.45" y="46.43"/>
+ <line x="64.45" y="46.57"/>
+ <line x="64.45" y="47"/>
+ <line x="48.54" y="47"/>
+ <line x="48.54" y="52.76"/>
+ <line x="64.45" y="52.76"/>
+ <line x="64.45" y="52.98"/>
+ <line x="64.45" y="53.32"/>
+ <line x="64.45" y="53.53"/>
+ <line x="56.95" y="53.53"/>
+ <line x="56.95" y="59.08"/>
+ <line x="64.45" y="59.08"/>
+ <line x="64.45" y="59.3"/>
+ <line x="64.45" y="59.71"/>
+ <line x="64.45" y="59.85"/>
+ <line x="48.54" y="59.85"/>
+ <line x="48.54" y="65.63"/>
+ <line x="47.99" y="65.63"/>
+ <line x="47.99" y="59.85"/>
+ <line x="31.87" y="59.85"/>
+ <line x="31.87" y="65.63"/>
+ <line x="31.18" y="65.63"/>
+ <line x="31.18" y="59.85"/>
+ <line x="15.56" y="59.85"/>
+ <line x="15.56" y="59.71"/>
+ <line x="15.56" y="59.3"/>
+ <line x="15.56" y="59.08"/>
+ <line x="22.92" y="59.08"/>
+ <line x="22.92" y="53.53"/>
+ <line x="15.56" y="53.53"/>
+ <line x="15.56" y="53.32"/>
+ <line x="15.56" y="52.98"/>
+ <line x="15.56" y="52.76"/>
+ <line x="31.18" y="52.76"/>
+ <line x="31.18" y="47"/>
+ <line x="15.56" y="47"/>
+ <line x="15.56" y="46.57"/>
+ <line x="15.56" y="46.43"/>
+ <line x="22.92" y="46.43"/>
+ <line x="22.92" y="40.67"/>
+ <line x="15.56" y="40.67"/>
+ <line x="15.56" y="40.45"/>
+ <line x="15.56" y="40.04"/>
+ <close/>
+ <move x="23.48" y="40.67"/>
+ <line x="23.48" y="46.43"/>
+ <line x="39.59" y="46.43"/>
+ <line x="39.59" y="40.67"/>
+ <line x="23.48" y="40.67"/>
+ <close/>
+ <move x="40.14" y="40.67"/>
+ <line x="40.14" y="46.43"/>
+ <line x="56.39" y="46.43"/>
+ <line x="56.39" y="40.67"/>
+ <line x="40.14" y="40.67"/>
+ <close/>
+ <move x="31.87" y="47"/>
+ <line x="31.87" y="52.76"/>
+ <line x="47.99" y="52.76"/>
+ <line x="47.99" y="47"/>
+ <line x="31.87" y="47"/>
+ <close/>
+ <move x="23.48" y="53.53"/>
+ <line x="23.48" y="59.08"/>
+ <line x="39.59" y="59.08"/>
+ <line x="39.59" y="53.53"/>
+ <line x="23.48" y="53.53"/>
+ <close/>
+ <move x="40.14" y="53.53"/>
+ <line x="40.14" y="59.08"/>
+ <line x="56.39" y="59.08"/>
+ <line x="56.39" y="53.53"/>
+ <line x="40.14" y="53.53"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.06" name="firewall" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="57.75" y="49.5"/>
+ <line x="64.08" y="49.5"/>
+ <line x="64.08" y="46.43"/>
+ <line x="57.75" y="46.43"/>
+ <close/>
+ <move x="15.92" y="49.5"/>
+ <line x="22.06" y="49.5"/>
+ <line x="22.06" y="46.43"/>
+ <line x="15.92" y="46.43"/>
+ <close/>
+ <move x="40.86" y="49.5"/>
+ <line x="55.44" y="49.5"/>
+ <line x="55.44" y="46.43"/>
+ <line x="40.86" y="46.43"/>
+ <close/>
+ <move x="24.37" y="49.5"/>
+ <line x="38.95" y="49.5"/>
+ <line x="38.95" y="46.43"/>
+ <line x="24.37" y="46.43"/>
+ <close/>
+ <move x="49.11" y="44.12"/>
+ <line x="64.08" y="44.12"/>
+ <line x="64.08" y="41.05"/>
+ <line x="49.11" y="41.05"/>
+ <close/>
+ <move x="32.61" y="44.12"/>
+ <line x="47.39" y="44.12"/>
+ <line x="47.39" y="41.05"/>
+ <line x="32.61" y="41.05"/>
+ <close/>
+ <move x="15.92" y="44.12"/>
+ <line x="30.7" y="44.12"/>
+ <line x="30.7" y="41.05"/>
+ <line x="15.92" y="41.05"/>
+ <close/>
+ <move x="57.75" y="38.94"/>
+ <line x="64.08" y="38.94"/>
+ <line x="64.08" y="35.68"/>
+ <line x="57.75" y="35.68"/>
+ <close/>
+ <move x="15.92" y="38.94"/>
+ <line x="22.06" y="38.94"/>
+ <line x="22.06" y="35.68"/>
+ <line x="15.92" y="35.68"/>
+ <close/>
+ <move x="40.86" y="38.94"/>
+ <line x="55.44" y="38.94"/>
+ <line x="55.44" y="35.68"/>
+ <line x="40.86" y="35.68"/>
+ <close/>
+ <move x="24.37" y="38.94"/>
+ <line x="38.95" y="38.94"/>
+ <line x="38.95" y="35.68"/>
+ <line x="24.37" y="35.68"/>
+ <close/>
+ <move x="49.11" y="33.76"/>
+ <line x="64.08" y="33.76"/>
+ <line x="64.08" y="30.31"/>
+ <line x="49.11" y="30.31"/>
+ <close/>
+ <move x="32.61" y="33.76"/>
+ <line x="47.39" y="33.76"/>
+ <line x="47.39" y="30.31"/>
+ <line x="32.61" y="30.31"/>
+ <close/>
+ <move x="15.92" y="33.76"/>
+ <line x="30.7" y="33.76"/>
+ <line x="30.7" y="30.31"/>
+ <line x="15.92" y="30.31"/>
+ <close/>
+ <move x="57.75" y="28.39"/>
+ <line x="64.08" y="28.39"/>
+ <line x="64.08" y="25.13"/>
+ <line x="57.75" y="25.13"/>
+ <close/>
+ <move x="15.92" y="28.39"/>
+ <line x="22.06" y="28.39"/>
+ <line x="22.06" y="25.13"/>
+ <line x="15.92" y="25.13"/>
+ <close/>
+ <move x="40.86" y="28.39"/>
+ <line x="55.44" y="28.39"/>
+ <line x="55.44" y="25.13"/>
+ <line x="40.86" y="25.13"/>
+ <close/>
+ <move x="24.37" y="28.39"/>
+ <line x="38.95" y="28.39"/>
+ <line x="38.95" y="25.13"/>
+ <line x="24.37" y="25.13"/>
+ <close/>
+ <move x="49.11" y="23.02"/>
+ <line x="64.08" y="23.02"/>
+ <line x="64.08" y="19.76"/>
+ <line x="49.11" y="19.76"/>
+ <close/>
+ <move x="32.61" y="23.02"/>
+ <line x="47.39" y="23.02"/>
+ <line x="47.39" y="19.76"/>
+ <line x="32.61" y="19.76"/>
+ <close/>
+ <move x="15.92" y="23.02"/>
+ <line x="30.7" y="23.02"/>
+ <line x="30.7" y="19.76"/>
+ <line x="15.92" y="19.76"/>
+ <close/>
+ <move x="20.05" y="69.06"/>
+ <line x="0" y="34.44"/>
+ <line x="20.05" y="0"/>
+ <line x="59.95" y="0"/>
+ <line x="80" y="34.44"/>
+ <line x="59.95" y="69.06"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="intrusion detection" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="40.01" y="15.57"/>
+ <curve x1="46.95" x2="53.06" x3="56.65" y1="15.57" y2="19.03" y3="24.26"/>
+ <line x="66.33" y="24.26"/>
+ <line x="63.34" y="21.33"/>
+ <curve x1="62.85" x2="62.85" x3="63.34" y1="20.85" y2="20.1" y3="19.6"/>
+ <line x="63.54" y="19.47"/>
+ <curve x1="64.03" x2="64.87" x3="65.36" y1="18.91" y2="18.91" y3="19.47"/>
+ <line x="70.56" y="24.46"/>
+ <curve x1="70.56" x2="70.63" x3="70.7" y1="24.46" y2="24.46" y3="24.54"/>
+ <curve x1="70.98" x2="71.12" x3="71.12" y1="24.75" y2="25.09" y3="25.43"/>
+ <line x="71.12" y="25.72"/>
+ <curve x1="71.12" x2="70.98" x3="70.78" y1="26" y2="26.34" y3="26.55"/>
+ <curve x1="70.7" x2="70.7" x3="70.56" y1="26.63" y2="26.77" y3="26.83"/>
+ <line x="65.36" y="31.84"/>
+ <curve x1="64.87" x2="64.03" x3="63.54" y1="32.26" y2="32.26" y3="31.84"/>
+ <line x="63.34" y="31.63"/>
+ <curve x1="62.85" x2="62.85" x3="63.34" y1="31.15" y2="30.38" y3="29.9"/>
+ <line x="66.39" y="26.97"/>
+ <line x="58.19" y="26.97"/>
+ <curve x1="59.35" x2="60" x3="60" y1="29.43" y2="32.16" y3="35.03"/>
+ <curve x1="60" x2="59.45" x3="58.47" y1="37.69" y2="40.23" y3="42.53"/>
+ <line x="67.65" y="42.53"/>
+ <curve x1="68.33" x2="68.9" x3="68.9" y1="42.53" y2="43.1" y3="43.87"/>
+ <line x="68.9" y="44.15"/>
+ <curve x1="68.9" x2="68.33" x3="67.65" y1="44.9" y2="45.46" y3="45.46"/>
+ <line x="56.89" y="45.46"/>
+ <curve x1="53.35" x2="47.11" x3="40.01" y1="50.9" y2="54.5" y3="54.5"/>
+ <curve x1="32.9" x2="26.66" x3="23.11" y1="54.5" y2="50.9" y3="45.46"/>
+ <line x="13.76" y="45.46"/>
+ <line x="16.73" y="48.59"/>
+ <curve x1="17.22" x2="17.22" x3="16.73" y1="49.08" y2="49.91" y3="50.47"/>
+ <line x="16.53" y="50.68"/>
+ <curve x1="16.04" x2="15.21" x3="14.73" y1="51.16" y2="51.16" y3="50.68"/>
+ <line x="9.44" y="45.26"/>
+ <curve x1="9.44" x2="9.44" x3="9.37" y1="45.18" y2="45.18" y3="45.18"/>
+ <curve x1="9.09" x2="8.89" x3="8.89" y1="44.9" y2="44.55" y3="44.15"/>
+ <line x="8.89" y="43.87"/>
+ <curve x1="8.89" x2="9.09" x3="9.31" y1="43.52" y2="43.16" y3="42.96"/>
+ <curve x1="9.38" x2="9.37" x3="9.44" y1="42.82" y2="42.76" y3="42.68"/>
+ <line x="14.73" y="37.26"/>
+ <curve x1="15.21" x2="16.04" x3="16.53" y1="36.7" y2="36.7" y3="37.26"/>
+ <line x="16.73" y="37.46"/>
+ <curve x1="17.22" x2="17.22" x3="16.73" y1="38.03" y2="38.86" y3="39.34"/>
+ <line x="13.68" y="42.53"/>
+ <line x="21.54" y="42.53"/>
+ <curve x1="20.55" x2="20" x3="20" y1="40.23" y2="37.69" y3="35.03"/>
+ <curve x1="20" x2="20.65" x3="21.81" y1="32.16" y2="29.43" y3="26.97"/>
+ <line x="12.43" y="26.97"/>
+ <curve x1="11.74" x2="11.11" x3="11.11" y1="26.97" y2="26.42" y3="25.72"/>
+ <line x="11.11" y="25.43"/>
+ <curve x1="11.11" x2="11.74" x3="12.43" y1="24.75" y2="24.26" y3="24.26"/>
+ <line x="23.36" y="24.26"/>
+ <curve x1="26.94" x2="33.06" x3="40.01" y1="19.03" y2="15.57" y3="15.57"/>
+ <close/>
+ <move x="40.01" y="18.9"/>
+ <curve x1="35.11" x2="30.72" x3="27.67" y1="18.9" y2="20.98" y3="24.26"/>
+ <line x="52.33" y="24.26"/>
+ <curve x1="49.29" x2="44.9" x3="40.01" y1="20.98" y2="18.9" y3="18.9"/>
+ <close/>
+ <move x="25.64" y="26.97"/>
+ <curve x1="24.22" x2="23.4" x3="23.4" y1="29.34" y2="32.09" y3="35.03"/>
+ <curve x1="23.4" x2="24.09" x3="25.31" y1="37.74" y2="40.29" y3="42.53"/>
+ <line x="54.69" y="42.53"/>
+ <curve x1="55.91" x2="56.6" x3="56.6" y1="40.29" y2="37.74" y3="35.03"/>
+ <curve x1="56.6" x2="55.78" x3="54.36" y1="32.09" y2="29.34" y3="26.97"/>
+ <line x="25.64" y="26.97"/>
+ <close/>
+ <move x="27.35" y="45.46"/>
+ <curve x1="30.4" x2="34.93" x3="40.01" y1="48.95" y2="51.17" y3="51.17"/>
+ <curve x1="45.08" x2="49.61" x3="52.65" y1="51.17" y2="48.95" y3="45.46"/>
+ <line x="27.35" y="45.46"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="l2 switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.96"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.96"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ <move x="24.86" y="13.35"/>
+ <line x="24.86" y="13.35"/>
+ <line x="24.86" y="17.51"/>
+ <line x="38.9" y="17.51"/>
+ <line x="38.9" y="25.85"/>
+ <line x="24.86" y="25.85"/>
+ <line x="24.86" y="30.03"/>
+ <line x="16.67" y="21.69"/>
+ <line x="16.87" y="21.69"/>
+ <line x="24.86" y="13.35"/>
+ <close/>
+ <move x="24.86" y="32.25"/>
+ <line x="24.86" y="32.25"/>
+ <line x="24.86" y="36.15"/>
+ <line x="38.9" y="36.15"/>
+ <line x="38.9" y="43.93"/>
+ <line x="24.86" y="43.93"/>
+ <line x="24.86" y="47.83"/>
+ <line x="16.67" y="40.03"/>
+ <line x="16.87" y="39.91"/>
+ <line x="24.86" y="32.25"/>
+ <close/>
+ <move x="55.22" y="38.93"/>
+ <line x="55.22" y="38.93"/>
+ <line x="55.22" y="34.75"/>
+ <line x="41.11" y="34.75"/>
+ <line x="41.11" y="26.41"/>
+ <line x="55.22" y="26.41"/>
+ <line x="55.22" y="22.24"/>
+ <line x="63.34" y="30.59"/>
+ <line x="63.2" y="30.59"/>
+ <line x="55.22" y="38.93"/>
+ <close/>
+ <move x="55.22" y="45.25"/>
+ <line x="55.22" y="45.25"/>
+ <line x="55.22" y="41.15"/>
+ <line x="63.34" y="48.93"/>
+ <line x="63.2" y="49.15"/>
+ <line x="55.22" y="56.73"/>
+ <line x="55.22" y="52.83"/>
+ <line x="41.11" y="52.83"/>
+ <line x="41.11" y="45.25"/>
+ <line x="55.22" y="45.25"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="l3 switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="64.25" y="33.15"/>
+ <curve x1="64.39" x2="64.45" x3="64.45" y1="33.29" y2="33.57" y3="33.86"/>
+ <curve x1="64.45" x2="64.45" x3="64.45" y1="33.86" y2="33.86" y3="34.06"/>
+ <curve x1="64.45" x2="64.39" x3="64.1" y1="34.4" y2="34.69" y3="34.89"/>
+ <curve x1="64.1" x2="64.1" x3="64.03" y1="34.97" y2="34.97" y3="34.97"/>
+ <curve x1="64.03" x2="64.03" x3="59.8" y1="34.97" y2="34.97" y3="39.21"/>
+ <curve x1="59.38" x2="58.75" x3="58.34" y1="39.62" y2="39.62" y3="39.21"/>
+ <curve x1="58.34" x2="58.34" x3="58.2" y1="39.21" y2="39.21" y3="39.07"/>
+ <curve x1="57.78" x2="57.78" x3="58.2" y1="38.65" y2="38.02" y3="37.54"/>
+ <curve x1="58.2" x2="58.2" x3="60.63" y1="37.54" y2="37.54" y3="35.11"/>
+ <curve x1="60.63" x2="60.63" x3="52.99" y1="35.11" y2="35.11" y3="35.11"/>
+ <curve x1="52.79" x2="51.74" x3="50.14" y1="37.74" y2="40.04" y3="41.98"/>
+ <curve x1="50.14" x2="50.14" x3="55.56" y1="41.98" y2="41.98" y3="47.34"/>
+ <curve x1="55.56" x2="55.56" x3="55.56" y1="47.34" y2="47.34" y3="43.86"/>
+ <curve x1="55.56" x2="56.04" x3="56.67" y1="43.23" y2="42.75" y3="42.75"/>
+ <curve x1="56.67" x2="56.67" x3="56.81" y1="42.75" y2="42.75" y3="42.75"/>
+ <curve x1="57.43" x2="57.92" x3="57.92" y1="42.75" y2="43.23" y3="43.86"/>
+ <curve x1="57.92" x2="57.92" x3="57.92" y1="43.86" y2="43.86" y3="49.84"/>
+ <curve x1="57.92" x2="57.92" x3="57.86" y1="49.92" y2="49.98" y3="50.12"/>
+ <curve x1="57.86" x2="57.72" x3="57.58" y1="50.33" y2="50.61" y3="50.81"/>
+ <curve x1="57.58" x2="57.58" x3="57.43" y1="50.81" y2="50.81" y3="50.95"/>
+ <curve x1="57.15" x2="56.87" x3="56.53" y1="51.16" y2="51.3" y3="51.23"/>
+ <curve x1="56.53" x2="56.46" x3="56.46" y1="51.23" y2="51.23" y3="51.23"/>
+ <curve x1="56.46" x2="56.46" x3="50.42" y1="51.23" y2="51.23" y3="51.23"/>
+ <curve x1="49.94" x2="49.45" x3="49.45" y1="51.23" y2="50.75" y3="50.26"/>
+ <curve x1="49.45" x2="49.45" x3="49.45" y1="50.26" y2="50.26" y3="49.98"/>
+ <curve x1="49.45" x2="49.94" x3="50.42" y1="49.42" y2="48.93" y3="48.93"/>
+ <curve x1="50.42" x2="50.42" x3="53.96" y1="48.93" y2="48.93" y3="48.93"/>
+ <curve x1="53.96" x2="53.96" x3="48.54" y1="48.93" y2="48.93" y3="43.58"/>
+ <curve x1="46.66" x2="44.32" x3="41.81" y1="45.11" y2="46.16" y3="46.37"/>
+ <curve x1="41.81" x2="41.81" x3="41.81" y1="46.37" y2="46.37" y3="54.01"/>
+ <curve x1="41.81" x2="41.81" x3="44.24" y1="54.01" y2="54.01" y3="51.52"/>
+ <curve x1="44.66" x2="45.29" x3="45.69" y1="51.09" y2="51.09" y3="51.52"/>
+ <curve x1="45.69" x2="45.69" x3="45.83" y1="51.52" y2="51.52" y3="51.66"/>
+ <curve x1="46.26" x2="46.26" x3="45.83" y1="52.14" y2="52.77" y3="53.18"/>
+ <curve x1="45.83" x2="45.83" x3="41.61" y1="53.18" y2="53.18" y3="57.42"/>
+ <curve x1="41.61" x2="41.53" x3="41.53" y1="57.42" y2="57.42" y3="57.48"/>
+ <curve x1="41.33" x2="41.04" x3="40.7" y1="57.7" y2="57.84" y3="57.84"/>
+ <curve x1="40.7" x2="40.7" x3="40.56" y1="57.84" y2="57.84" y3="57.84"/>
+ <curve x1="40.21" x2="40.01" x3="39.79" y1="57.84" y2="57.76" y3="57.62"/>
+ <curve x1="39.73" x2="39.65" x3="39.59" y1="57.48" y2="57.48" y3="57.42"/>
+ <curve x1="39.59" x2="39.59" x3="35.34" y1="57.42" y2="57.42" y3="53.18"/>
+ <curve x1="34.94" x2="34.94" x3="35.34" y1="52.77" y2="52.14" y3="51.66"/>
+ <curve x1="35.34" x2="35.34" x3="35.49" y1="51.66" y2="51.66" y3="51.52"/>
+ <curve x1="35.91" x2="36.6" x3="36.94" y1="51.09" y2="51.09" y3="51.52"/>
+ <curve x1="36.94" x2="36.94" x3="39.45" y1="51.52" y2="51.52" y3="54.01"/>
+ <curve x1="39.45" x2="39.45" x3="39.45" y1="54.01" y2="54.01" y3="46.37"/>
+ <curve x1="36.88" x2="34.52" x3="32.64" y1="46.16" y2="45.11" y3="43.58"/>
+ <curve x1="32.64" x2="32.64" x3="27.3" y1="43.58" y2="43.58" y3="48.93"/>
+ <curve x1="27.3" x2="27.3" x3="30.77" y1="48.93" y2="48.93" y3="48.93"/>
+ <curve x1="31.32" x2="31.81" x3="31.81" y1="48.93" y2="49.42" y3="49.98"/>
+ <curve x1="31.81" x2="31.81" x3="31.81" y1="49.98" y2="49.98" y3="50.26"/>
+ <curve x1="31.81" x2="31.32" x3="30.77" y1="50.75" y2="51.23" y3="51.23"/>
+ <curve x1="30.77" x2="30.77" x3="24.73" y1="51.23" y2="51.23" y3="51.23"/>
+ <curve x1="24.73" x2="24.65" x3="24.59" y1="51.23" y2="51.23" y3="51.23"/>
+ <curve x1="24.37" x2="24.03" x3="23.82" y1="51.3" y2="51.16" y3="50.95"/>
+ <curve x1="23.82" x2="23.82" x3="23.62" y1="50.95" y2="50.95" y3="50.81"/>
+ <curve x1="23.48" x2="23.34" x3="23.34" y1="50.61" y2="50.33" y3="50.12"/>
+ <curve x1="23.34" x2="23.26" x3="23.26" y1="49.98" y2="49.92" y3="49.84"/>
+ <curve x1="23.26" x2="23.26" x3="23.26" y1="49.84" y2="49.84" y3="43.86"/>
+ <curve x1="23.26" x2="23.74" x3="24.37" y1="43.23" y2="42.75" y3="42.75"/>
+ <curve x1="24.37" x2="24.37" x3="24.51" y1="42.75" y2="42.75" y3="42.75"/>
+ <curve x1="25.14" x2="25.62" x3="25.62" y1="42.75" y2="43.23" y3="43.86"/>
+ <curve x1="25.62" x2="25.62" x3="25.62" y1="43.86" y2="43.86" y3="47.34"/>
+ <curve x1="25.62" x2="25.62" x3="30.98" y1="47.34" y2="47.34" y3="41.98"/>
+ <curve x1="29.44" x2="28.41" x3="28.19" y1="40.04" y2="37.74" y3="35.11"/>
+ <curve x1="28.19" x2="28.19" x3="20.55" y1="35.11" y2="35.11" y3="35.11"/>
+ <curve x1="20.55" x2="20.55" x3="22.99" y1="35.11" y2="35.11" y3="37.54"/>
+ <curve x1="23.48" x2="23.48" x3="22.99" y1="38.02" y2="38.65" y3="39.07"/>
+ <curve x1="22.99" x2="22.99" x3="22.85" y1="39.07" y2="39.07" y3="39.21"/>
+ <curve x1="22.43" x2="21.8" x3="21.4" y1="39.62" y2="39.62" y3="39.21"/>
+ <curve x1="21.4" x2="21.4" x3="17.15" y1="39.21" y2="39.21" y3="34.97"/>
+ <curve x1="17.15" x2="17.09" x3="17.09" y1="34.97" y2="34.97" y3="34.89"/>
+ <curve x1="16.87" x2="16.67" x3="16.67" y1="34.69" y2="34.4" y3="34.06"/>
+ <curve x1="16.67" x2="16.67" x3="16.67" y1="34.06" y2="34.06" y3="33.86"/>
+ <curve x1="16.67" x2="16.81" x3="16.95" y1="33.57" y2="33.29" y3="33.15"/>
+ <curve x1="17.01" x2="17.09" x3="17.15" y1="33.09" y2="33.03" y3="32.95"/>
+ <curve x1="17.15" x2="17.15" x3="21.4" y1="32.95" y2="32.95" y3="28.71"/>
+ <curve x1="21.8" x2="22.43" x3="22.85" y1="28.3" y2="28.3" y3="28.71"/>
+ <curve x1="22.85" x2="22.85" x3="22.99" y1="28.71" y2="28.71" y3="28.85"/>
+ <curve x1="23.48" x2="23.48" x3="22.99" y1="29.27" y2="29.9" y3="30.38"/>
+ <curve x1="22.99" x2="22.99" x3="20.55" y1="30.38" y2="30.38" y3="32.81"/>
+ <curve x1="20.55" x2="20.55" x3="28.19" y1="32.81" y2="32.81" y3="32.81"/>
+ <curve x1="28.41" x2="29.44" x3="30.98" y1="30.24" y2="27.88" y3="26"/>
+ <curve x1="30.98" x2="30.98" x3="25.62" y1="26" y2="26" y3="20.64"/>
+ <curve x1="25.62" x2="25.62" x3="25.62" y1="20.64" y2="20.64" y3="24.06"/>
+ <curve x1="25.62" x2="25.14" x3="24.51" y1="24.68" y2="25.17" y3="25.17"/>
+ <curve x1="24.51" x2="24.51" x3="24.37" y1="25.17" y2="25.17" y3="25.17"/>
+ <curve x1="23.74" x2="23.26" x3="23.26" y1="25.17" y2="24.68" y3="24.06"/>
+ <curve x1="23.26" x2="23.26" x3="23.26" y1="24.06" y2="24.06" y3="18.08"/>
+ <curve x1="23.26" x2="23.26" x3="23.26" y1="18.08" y2="18.08" y3="18"/>
+ <curve x1="23.26" x2="23.34" x3="23.62" y1="17.65" y2="17.37" y3="17.17"/>
+ <curve x1="23.62" x2="23.62" x3="23.74" y1="17.17" y2="17.17" y3="16.96"/>
+ <curve x1="23.96" x2="24.25" x3="24.45" y1="16.76" y2="16.68" y3="16.68"/>
+ <curve x1="24.51" x2="24.65" x3="24.73" y1="16.68" y2="16.68" y3="16.68"/>
+ <curve x1="24.73" x2="24.73" x3="30.77" y1="16.68" y2="16.68" y3="16.68"/>
+ <curve x1="31.32" x2="31.81" x3="31.81" y1="16.68" y2="17.17" y3="17.65"/>
+ <curve x1="31.81" x2="31.81" x3="31.81" y1="17.65" y2="17.65" y3="17.93"/>
+ <curve x1="31.81" x2="31.32" x3="30.77" y1="18.5" y2="18.98" y3="18.98"/>
+ <curve x1="30.77" x2="30.77" x3="27.22" y1="18.98" y2="18.98" y3="18.98"/>
+ <curve x1="27.22" x2="27.22" x3="32.64" y1="18.98" y2="18.98" y3="24.34"/>
+ <curve x1="34.52" x2="36.88" x3="39.45" y1="22.8" y2="21.75" y3="21.55"/>
+ <curve x1="39.45" x2="39.45" x3="39.45" y1="21.55" y2="21.55" y3="13.9"/>
+ <curve x1="39.45" x2="39.45" x3="36.94" y1="13.9" y2="13.9" y3="16.4"/>
+ <curve x1="36.6" x2="35.91" x3="35.49" y1="16.76" y2="16.76" y3="16.4"/>
+ <curve x1="35.49" x2="35.49" x3="35.34" y1="16.4" y2="16.4" y3="16.26"/>
+ <curve x1="34.94" x2="34.94" x3="35.34" y1="15.77" y2="15.15" y3="14.74"/>
+ <curve x1="35.34" x2="35.34" x3="39.59" y1="14.74" y2="14.74" y3="10.5"/>
+ <curve x1="39.65" x2="39.73" x3="39.79" y1="10.42" y2="10.42" y3="10.29"/>
+ <curve x1="40.01" x2="40.21" x3="40.56" y1="10.15" y2="10.01" y3="10.01"/>
+ <curve x1="40.56" x2="40.56" x3="40.7" y1="10.01" y2="10.01" y3="10.01"/>
+ <curve x1="41.04" x2="41.33" x3="41.53" y1="10.01" y2="10.22" y3="10.42"/>
+ <curve x1="41.53" x2="41.61" x3="41.61" y1="10.5" y2="10.5" y3="10.5"/>
+ <curve x1="41.61" x2="41.61" x3="45.83" y1="10.5" y2="10.5" y3="14.74"/>
+ <curve x1="46.26" x2="46.26" x3="45.83" y1="15.15" y2="15.77" y3="16.26"/>
+ <curve x1="45.83" x2="45.83" x3="45.69" y1="16.26" y2="16.26" y3="16.4"/>
+ <curve x1="45.29" x2="44.66" x3="44.24" y1="16.76" y2="16.76" y3="16.4"/>
+ <curve x1="44.24" x2="44.24" x3="41.81" y1="16.4" y2="16.4" y3="13.9"/>
+ <curve x1="41.81" x2="41.81" x3="41.81" y1="13.9" y2="13.9" y3="21.55"/>
+ <curve x1="44.32" x2="46.66" x3="48.54" y1="21.75" y2="22.8" y3="24.34"/>
+ <curve x1="48.54" x2="48.54" x3="53.96" y1="24.34" y2="24.34" y3="18.98"/>
+ <curve x1="53.96" x2="53.96" x3="50.42" y1="18.98" y2="18.98" y3="18.98"/>
+ <curve x1="49.94" x2="49.45" x3="49.45" y1="18.98" y2="18.5" y3="17.93"/>
+ <curve x1="49.45" x2="49.45" x3="49.45" y1="17.93" y2="17.93" y3="17.65"/>
+ <curve x1="49.45" x2="49.94" x3="50.42" y1="17.17" y2="16.68" y3="16.68"/>
+ <curve x1="50.42" x2="50.42" x3="56.46" y1="16.68" y2="16.68" y3="16.68"/>
+ <curve x1="56.53" x2="56.67" x3="56.75" y1="16.68" y2="16.68" y3="16.68"/>
+ <curve x1="57.01" x2="57.23" x3="57.43" y1="16.68" y2="16.76" y3="16.96"/>
+ <curve x1="57.43" x2="57.43" x3="57.58" y1="16.96" y2="16.96" y3="17.17"/>
+ <curve x1="57.86" x2="57.92" x3="57.92" y1="17.37" y2="17.65" y3="18"/>
+ <curve x1="57.92" x2="57.92" x3="57.92" y1="18.08" y2="18.08" y3="18.08"/>
+ <curve x1="57.92" x2="57.92" x3="57.92" y1="18.08" y2="18.08" y3="24.06"/>
+ <curve x1="57.92" x2="57.43" x3="56.81" y1="24.68" y2="25.17" y3="25.17"/>
+ <curve x1="56.81" x2="56.81" x3="56.67" y1="25.17" y2="25.17" y3="25.17"/>
+ <curve x1="56.04" x2="55.56" x3="55.56" y1="25.17" y2="24.68" y3="24.06"/>
+ <curve x1="55.56" x2="55.56" x3="55.56" y1="24.06" y2="24.06" y3="20.64"/>
+ <curve x1="55.56" x2="55.56" x3="50.22" y1="20.64" y2="20.64" y3="26"/>
+ <curve x1="51.81" x2="52.79" x3="52.99" y1="27.88" y2="30.24" y3="32.81"/>
+ <curve x1="52.99" x2="52.99" x3="60.69" y1="32.81" y2="32.81" y3="32.81"/>
+ <curve x1="60.69" x2="60.69" x3="58.2" y1="32.81" y2="32.81" y3="30.38"/>
+ <curve x1="57.78" x2="57.78" x3="58.2" y1="29.9" y2="29.27" y3="28.85"/>
+ <curve x1="58.2" x2="58.2" x3="58.34" y1="28.85" y2="28.85" y3="28.71"/>
+ <curve x1="58.75" x2="59.38" x3="59.8" y1="28.3" y2="28.3" y3="28.71"/>
+ <curve x1="59.8" x2="59.8" x3="64.03" y1="28.71" y2="28.71" y3="32.95"/>
+ <curve x1="64.1" x2="64.17" x3="64.25" y1="33.03" y2="33.09" y3="33.15"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.93" name="load balancer" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="10.14" y="32.7"/>
+ <line x="10.14" y="32.7"/>
+ <line x="20.78" y="32.7"/>
+ <line x="20.78" y="29.32"/>
+ <line x="25.92" y="34.54"/>
+ <line x="20.78" y="39.48"/>
+ <line x="20.78" y="36.1"/>
+ <line x="10.14" y="36.1"/>
+ <line x="10.14" y="32.7"/>
+ <close/>
+ <move x="40" y="47.38"/>
+ <curve x1="33.52" x2="28.17" x3="28.17" y1="47.38" y2="41.87" y3="34.96"/>
+ <curve x1="28.17" x2="33.52" x3="40" y1="28.13" y2="22.56" y3="22.56"/>
+ <curve x1="46.56" x2="51.84" x3="51.84" y1="22.56" y2="28.13" y3="34.96"/>
+ <curve x1="51.84" x2="46.56" x3="40" y1="41.87" y2="47.38" y3="47.38"/>
+ <close/>
+ <move x="40" y="25.31"/>
+ <curve x1="34.93" x2="30.77" x3="30.77" y1="25.31" y2="29.61" y3="34.96"/>
+ <curve x1="30.77" x2="34.93" x3="40" y1="40.39" y2="44.69" y3="44.69"/>
+ <curve x1="45.14" x2="49.3" x3="49.3" y1="44.69" y2="40.39" y3="34.96"/>
+ <curve x1="49.3" x2="45.14" x3="40" y1="29.61" y2="25.31" y3="25.31"/>
+ <close/>
+ <move x="59.87" y="19.17"/>
+ <line x="66.49" y="20.93"/>
+ <curve x1="66.49" x2="66.49" x3="64.73" y1="20.93" y2="20.93" y3="27.35"/>
+ <curve x1="64.73" x2="64.73" x3="63.17" y1="27.35" y2="27.35" y3="24.68"/>
+ <curve x1="63.17" x2="63.17" x3="54.72" y1="24.68" y2="24.68" y3="29.33"/>
+ <curve x1="54.3" x2="53.74" x3="52.96" y1="28.35" y2="27.43" y3="26.58"/>
+ <curve x1="52.96" x2="52.96" x3="61.49" y1="26.58" y2="26.58" y3="21.92"/>
+ <curve x1="61.49" x2="61.49" x3="59.87" y1="21.92" y2="21.92" y3="19.17"/>
+ <close/>
+ <move x="69.87" y="34.4"/>
+ <line x="64.87" y="39.48"/>
+ <curve x1="64.87" x2="64.87" x3="64.87" y1="39.48" y2="39.48" y3="36.16"/>
+ <curve x1="64.87" x2="64.87" x3="55.22" y1="36.16" y2="36.16" y3="36.16"/>
+ <curve x1="55.28" x2="55.36" x3="55.36" y1="35.59" y2="35.04" y3="34.4"/>
+ <curve x1="55.36" x2="55.28" x3="55.22" y1="33.83" y2="33.27" y3="32.64"/>
+ <curve x1="55.22" x2="55.22" x3="64.87" y1="32.64" y2="32.64" y3="32.64"/>
+ <curve x1="64.87" x2="64.87" x3="64.87" y1="32.64" y2="32.64" y3="29.32"/>
+ <curve x1="64.87" x2="64.87" x3="69.87" y1="29.32" y2="29.32" y3="34.4"/>
+ <close/>
+ <move x="66.49" y="47.93"/>
+ <line x="59.87" y="49.63"/>
+ <curve x1="59.87" x2="59.87" x3="61.49" y1="49.63" y2="49.63" y3="46.95"/>
+ <curve x1="61.49" x2="61.49" x3="52.96" y1="46.95" y2="46.95" y3="42.22"/>
+ <curve x1="53.74" x2="54.3" x3="54.72" y1="41.46" y2="40.46" y3="39.47"/>
+ <curve x1="54.72" x2="54.72" x3="63.17" y1="39.47" y2="39.47" y3="44.2"/>
+ <curve x1="63.17" x2="63.17" x3="64.73" y1="44.2" y2="44.2" y3="41.52"/>
+ <curve x1="64.73" x2="64.73" x3="66.49" y1="41.52" y2="41.52" y3="47.93"/>
+ <close/>
+ <move x="60.01" y="69.93"/>
+ <line x="80" y="34.9"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.9"/>
+ <line x="20.07" y="69.93"/>
+ <line x="60.01" y="69.93"/>
+ <line x="60.01" y="69.93"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="mobile device" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="36.11" y="15.58"/>
+ <arc large-arc-flag="1" rx="0.56" ry="0.56" sweep-flag="0" x="36.11" x-axis-rotation="0" y="16.69"/>
+ <line x="45.35" y="16.69"/>
+ <arc large-arc-flag="0" rx="0.56" ry="0.56" sweep-flag="0" x="45.35" x-axis-rotation="0" y="15.58"/>
+ <line x="36.11" y="15.58"/>
+ <close/>
+ <move x="50.97" y="48.31"/>
+ <line x="50.97" y="19.05"/>
+ <curve x1="50.97" x2="50.97" x3="50.69" y1="19.05" y2="18.77" y3="18.77"/>
+ <curve x1="50.69" x2="50.69" x3="31.61" y1="18.77" y2="18.77" y3="18.77"/>
+ <curve x1="31.33" x2="31.33" x3="31.33" y1="18.77" y2="19.05" y3="19.05"/>
+ <curve x1="31.33" x2="31.33" x3="31.33" y1="19.05" y2="19.05" y3="48.31"/>
+ <curve x1="31.33" x2="31.33" x3="31.61" y1="48.59" y2="48.59" y3="48.59"/>
+ <curve x1="31.61" x2="31.61" x3="50.69" y1="48.59" y2="48.59" y3="48.59"/>
+ <curve x1="50.97" x2="50.97" x3="50.97" y1="48.59" y2="48.59" y3="48.31"/>
+ <move x="41.11" y="53.59"/>
+ <curve x1="42.22" x2="43.27" x3="43.27" y1="53.59" y2="52.84" y3="51.58"/>
+ <curve x1="43.27" x2="42.22" x3="41.11" y1="50.61" y2="49.85" y3="49.85"/>
+ <curve x1="40.08" x2="39.03" x3="39.03" y1="49.85" y2="50.61" y3="51.58"/>
+ <curve x1="39.03" x2="40.08" x3="41.11" y1="52.84" y2="53.59" y3="53.59"/>
+ <move x="33.2" y="14.46"/>
+ <line x="49.09" y="14.46"/>
+ <arc large-arc-flag="0" rx="0.56" ry="0.56" sweep-flag="1" x="49.47" x-axis-rotation="0" y="14.6"/>
+ <curve x1="51.67" x2="53.35" x3="53.35" y1="14.8" y2="16.35" y3="18.29"/>
+ <line x="53.35" y="51.85"/>
+ <curve x1="53.35" x2="51.51" x3="49.09" y1="53.91" y2="55.62" y3="55.62"/>
+ <line x="33.2" y="55.62"/>
+ <curve x1="30.79" x2="28.89" x3="28.89" y1="55.62" y2="53.93" y3="51.85"/>
+ <line x="28.89" y="18.29"/>
+ <curve x1="28.89" x2="30.78" x3="33.2" y1="16.21" y2="14.46" y3="14.46"/>
+ <close/>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="44.05" name="nexus 1kv" strokewidth="inherit" w="50.39">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="25.19" y="11.77"/>
+ <curve x1="22.84" x2="20.93" x3="20.93" y1="11.77" y2="13.81" y3="16.34"/>
+ <curve x1="20.93" x2="22.84" x3="25.19" y1="18.87" y2="20.92" y3="20.92"/>
+ <curve x1="27.59" x2="29.5" x3="29.5" y1="20.92" y2="18.87" y3="16.34"/>
+ <curve x1="29.5" x2="27.59" x3="25.19" y1="13.81" y2="11.77" y3="11.77"/>
+ <close/>
+ <move x="25.19" y="22.03"/>
+ <curve x1="22.27" x2="19.87" x3="19.87" y1="22.03" y2="19.5" y3="16.34"/>
+ <curve x1="19.87" x2="22.27" x3="25.19" y1="13.24" y2="10.66" y3="10.66"/>
+ <curve x1="28.12" x2="30.52" x3="30.52" y1="10.66" y2="13.24" y3="16.34"/>
+ <curve x1="30.52" x2="28.12" x3="25.19" y1="19.5" y2="22.03" y3="22.03"/>
+ <close/>
+ <move x="33.01" y="13.98"/>
+ <line x="32.92" y="13.89"/>
+ <curve x1="32.65" x2="32.65" x3="32.92" y1="13.63" y2="13.23" y3="12.96"/>
+ <curve x1="32.92" x2="32.92" x3="35.58" y1="12.96" y2="12.96" y3="10.25"/>
+ <curve x1="35.63" x2="35.67" x3="35.71" y1="10.21" y2="10.21" y3="10.16"/>
+ <curve x1="35.85" x2="35.98" x3="36.16" y1="10.03" y2="9.94" y3="9.94"/>
+ <curve x1="36.16" x2="36.16" x3="36.29" y1="9.94" y2="9.94" y3="9.94"/>
+ <curve x1="36.51" x2="36.69" x3="36.82" y1="9.94" y2="10.07" y3="10.21"/>
+ <curve x1="36.82" x2="36.87" x3="36.87" y1="10.25" y2="10.25" y3="10.25"/>
+ <curve x1="36.87" x2="36.87" x3="39.53" y1="10.25" y2="10.25" y3="12.96"/>
+ <curve x1="39.75" x2="39.75" x3="39.53" y1="13.23" y2="13.63" y3="13.89"/>
+ <curve x1="39.53" x2="39.53" x3="39.44" y1="13.89" y2="13.89" y3="13.98"/>
+ <curve x1="39.17" x2="38.73" x3="38.51" y1="14.25" y2="14.25" y3="13.98"/>
+ <curve x1="38.51" x2="38.51" x3="36.96" y1="13.98" y2="13.98" y3="12.43"/>
+ <curve x1="36.96" x2="36.96" x3="36.96" y1="12.43" y2="12.43" y3="17.8"/>
+ <curve x1="36.96" x2="36.69" x3="36.29" y1="18.2" y2="18.47" y3="18.47"/>
+ <curve x1="36.29" x2="36.29" x3="36.16" y1="18.47" y2="18.47" y3="18.47"/>
+ <curve x1="35.8" x2="35.54" x3="35.54" y1="18.47" y2="18.2" y3="17.8"/>
+ <curve x1="35.54" x2="35.54" x3="35.54" y1="17.8" y2="17.8" y3="12.43"/>
+ <curve x1="35.54" x2="35.54" x3="33.94" y1="12.43" y2="12.43" y3="13.98"/>
+ <curve x1="33.72" x2="33.27" x3="33.01" y1="14.25" y2="14.25" y3="13.98"/>
+ <close/>
+ <move x="14.24" y="17.8"/>
+ <line x="14.24" y="12.43"/>
+ <curve x1="14.24" x2="14.24" x3="12.68" y1="12.43" y2="12.43" y3="13.98"/>
+ <curve x1="12.42" x2="12.02" x3="11.71" y1="14.25" y2="14.25" y3="13.98"/>
+ <curve x1="11.71" x2="11.71" x3="11.66" y1="13.98" y2="13.98" y3="13.89"/>
+ <curve x1="11.35" x2="11.35" x3="11.66" y1="13.63" y2="13.23" y3="12.96"/>
+ <curve x1="11.66" x2="11.66" x3="14.28" y1="12.96" y2="12.96" y3="10.25"/>
+ <curve x1="14.37" x2="14.37" x3="14.41" y1="10.21" y2="10.21" y3="10.16"/>
+ <curve x1="14.55" x2="14.68" x3="14.86" y1="10.03" y2="9.94" y3="9.94"/>
+ <curve x1="14.86" x2="14.86" x3="15.03" y1="9.94" y2="9.94" y3="9.94"/>
+ <curve x1="15.21" x2="15.39" x3="15.52" y1="9.94" y2="10.07" y3="10.21"/>
+ <curve x1="15.57" x2="15.57" x3="15.57" y1="10.25" y2="10.25" y3="10.25"/>
+ <curve x1="15.57" x2="15.57" x3="18.23" y1="10.25" y2="10.25" y3="12.96"/>
+ <curve x1="18.45" x2="18.45" x3="18.23" y1="13.23" y2="13.63" y3="13.89"/>
+ <curve x1="18.23" x2="18.23" x3="18.14" y1="13.89" y2="13.89" y3="13.98"/>
+ <curve x1="17.87" x2="17.43" x3="17.21" y1="14.25" y2="14.25" y3="13.98"/>
+ <curve x1="17.21" x2="17.21" x3="15.66" y1="13.98" y2="13.98" y3="12.43"/>
+ <curve x1="15.66" x2="15.66" x3="15.66" y1="12.43" y2="12.43" y3="17.8"/>
+ <curve x1="15.66" x2="15.39" x3="15.03" y1="18.2" y2="18.47" y3="18.47"/>
+ <curve x1="15.03" x2="15.03" x3="14.86" y1="18.47" y2="18.47" y3="18.47"/>
+ <curve x1="14.5" x2="14.24" x3="14.24" y1="18.47" y2="18.2" y3="17.8"/>
+ <close/>
+ <move x="28.79" y="28.64"/>
+ <line x="28.88" y="28.77"/>
+ <curve x1="29.1" x2="29.1" x3="28.88" y1="28.99" y2="29.44" y3="29.7"/>
+ <curve x1="28.88" x2="28.88" x3="26.22" y1="29.7" y2="29.7" y3="32.41"/>
+ <curve x1="26.22" x2="26.17" x3="26.13" y1="32.41" y2="32.45" y3="32.45"/>
+ <curve x1="26.04" x2="25.86" x3="25.64" y1="32.59" y2="32.68" y3="32.68"/>
+ <curve x1="25.64" x2="25.64" x3="25.51" y1="32.68" y2="32.68" y3="32.68"/>
+ <curve x1="25.33" x2="25.15" x3="25.06" y1="32.68" y2="32.63" y3="32.5"/>
+ <curve x1="25.02" x2="24.98" x3="24.93" y1="32.5" y2="32.45" y3="32.41"/>
+ <curve x1="24.93" x2="24.93" x3="22.27" y1="32.41" y2="32.41" y3="29.7"/>
+ <curve x1="22" x2="22" x3="22.27" y1="29.44" y2="28.99" y3="28.77"/>
+ <curve x1="22.27" x2="22.27" x3="22.36" y1="28.77" y2="28.77" y3="28.64"/>
+ <curve x1="22.62" x2="23.07" x3="23.29" y1="28.41" y2="28.41" y3="28.64"/>
+ <curve x1="23.29" x2="23.29" x3="24.84" y1="28.64" y2="28.64" y3="30.23"/>
+ <curve x1="24.84" x2="24.84" x3="24.84" y1="30.23" y2="30.23" y3="24.82"/>
+ <curve x1="24.84" x2="25.15" x3="25.51" y1="24.46" y2="24.15" y3="24.15"/>
+ <curve x1="25.51" x2="25.51" x3="25.64" y1="24.15" y2="24.15" y3="24.15"/>
+ <curve x1="26.04" x2="26.31" x3="26.31" y1="24.15" y2="24.46" y3="24.82"/>
+ <curve x1="26.31" x2="26.31" x3="26.31" y1="24.82" y2="24.82" y3="30.23"/>
+ <curve x1="26.31" x2="26.31" x3="27.86" y1="30.23" y2="30.23" y3="28.64"/>
+ <curve x1="28.08" x2="28.52" x3="28.79" y1="28.41" y2="28.41" y3="28.64"/>
+ <close/>
+ <move x="11.67" y="20.82"/>
+ <curve x1="11.98" x2="12.07" x3="11.94" y1="21" y2="21.35" y3="21.71"/>
+ <curve x1="11.94" x2="11.94" x3="8.39" y1="21.71" y2="21.71" y3="29.3"/>
+ <curve x1="8.39" x2="8.39" x3="10.34" y1="29.3" y2="29.3" y3="28.59"/>
+ <curve x1="10.65" x2="11.05" x3="11.14" y1="28.46" y2="28.64" y3="28.99"/>
+ <curve x1="11.14" x2="11.14" x3="11.18" y1="28.99" y2="28.99" y3="29.13"/>
+ <curve x1="11.31" x2="11.14" x3="10.83" y1="29.44" y2="29.84" y3="29.97"/>
+ <curve x1="10.83" x2="10.83" x3="7.37" y1="29.97" y2="29.97" y3="31.17"/>
+ <curve x1="7.37" x2="7.37" x3="7.32" y1="31.17" y2="31.17" y3="31.17"/>
+ <curve x1="7.14" x2="6.97" x3="6.79" y1="31.26" y2="31.26" y3="31.17"/>
+ <curve x1="6.79" x2="6.79" x3="6.66" y1="31.17" y2="31.17" y3="31.12"/>
+ <curve x1="6.52" x2="6.39" x3="6.35" y1="31.03" y2="30.95" y3="30.77"/>
+ <curve x1="6.35" x2="6.3" x3="6.3" y1="30.72" y2="30.68" y3="30.63"/>
+ <curve x1="6.3" x2="6.3" x3="5.1" y1="30.63" y2="30.63" y3="27.04"/>
+ <curve x1="4.97" x2="5.15" x3="5.5" y1="26.73" y2="26.37" y3="26.24"/>
+ <curve x1="5.5" x2="5.5" x3="5.64" y1="26.24" y2="26.24" y3="26.19"/>
+ <curve x1="5.95" x2="6.3" x3="6.39" y1="26.06" y2="26.24" y3="26.59"/>
+ <curve x1="6.39" x2="6.39" x3="7.1" y1="26.59" y2="26.59" y3="28.68"/>
+ <curve x1="7.1" x2="7.1" x3="10.69" y1="28.68" y2="28.68" y3="21.09"/>
+ <curve x1="10.83" x2="11.23" x3="11.54" y1="20.73" y2="20.6" y3="20.78"/>
+ <curve x1="11.54" x2="11.54" x3="11.67" y1="20.78" y2="20.78" y3="20.82"/>
+ <close/>
+ <move x="44.93" y="26.24"/>
+ <curve x1="45.24" x2="45.42" x3="45.33" y1="26.37" y2="26.73" y3="27.04"/>
+ <curve x1="45.33" x2="45.33" x3="44.13" y1="27.04" y2="27.04" y3="30.63"/>
+ <curve x1="44.13" x2="44.09" x3="44.09" y1="30.68" y2="30.72" y3="30.77"/>
+ <curve x1="44" x2="43.91" x3="43.78" y1="30.95" y2="31.03" y3="31.12"/>
+ <curve x1="43.78" x2="43.78" x3="43.65" y1="31.12" y2="31.12" y3="31.17"/>
+ <curve x1="43.47" x2="43.25" x3="43.07" y1="31.26" y2="31.26" y3="31.17"/>
+ <curve x1="43.07" x2="43.07" x3="43.02" y1="31.17" y2="31.17" y3="31.17"/>
+ <curve x1="43.02" x2="43.02" x3="39.65" y1="31.17" y2="31.17" y3="29.97"/>
+ <curve x1="39.3" x2="39.12" x3="39.25" y1="29.84" y2="29.44" y3="29.13"/>
+ <curve x1="39.25" x2="39.25" x3="39.3" y1="29.13" y2="29.13" y3="28.99"/>
+ <curve x1="39.39" x2="39.74" x3="40.1" y1="28.64" y2="28.46" y3="28.59"/>
+ <curve x1="40.1" x2="40.1" x3="42.05" y1="28.59" y2="28.59" y3="29.3"/>
+ <curve x1="42.05" x2="42.05" x3="38.5" y1="29.3" y2="29.3" y3="21.71"/>
+ <curve x1="38.32" x2="38.5" x3="38.81" y1="21.35" y2="21" y3="20.82"/>
+ <curve x1="38.81" x2="38.81" x3="38.9" y1="20.82" y2="20.82" y3="20.78"/>
+ <curve x1="39.21" x2="39.61" x3="39.74" y1="20.6" y2="20.73" y3="21.09"/>
+ <curve x1="39.74" x2="39.74" x3="43.29" y1="21.09" y2="21.09" y3="28.68"/>
+ <curve x1="43.29" x2="43.29" x3="44" y1="28.68" y2="28.68" y3="26.59"/>
+ <curve x1="44.13" x2="44.49" x3="44.8" y1="26.24" y2="26.06" y3="26.19"/>
+ <curve x1="44.8" x2="44.8" x3="44.93" y1="26.19" y2="26.19" y3="26.24"/>
+ <close/>
+ <move x="37.17" y="27.31"/>
+ <curve x1="37.53" x2="37.62" x3="37.44" y1="27.49" y2="27.89" y3="28.2"/>
+ <curve x1="37.44" x2="37.44" x3="35.62" y1="28.2" y2="28.2" y3="31.48"/>
+ <curve x1="35.58" x2="35.58" x3="35.53" y1="31.53" y2="31.57" y3="31.62"/>
+ <curve x1="35.44" x2="35.31" x3="35.13" y1="31.75" y2="31.84" y3="31.88"/>
+ <curve x1="35.13" x2="35.13" x3="35" y1="31.88" y2="31.88" y3="31.93"/>
+ <curve x1="34.78" x2="34.6" x3="34.42" y1="31.97" y2="31.97" y3="31.88"/>
+ <curve x1="34.42" x2="34.42" x3="34.38" y1="31.84" y2="31.84" y3="31.84"/>
+ <curve x1="34.38" x2="34.38" x3="30.96" y1="31.84" y2="31.84" y3="30.06"/>
+ <curve x1="30.65" x2="30.52" x3="30.74" y1="29.89" y2="29.49" y3="29.18"/>
+ <curve x1="30.74" x2="30.74" x3="30.78" y1="29.18" y2="29.18" y3="29.04"/>
+ <curve x1="30.96" x2="31.36" x3="31.67" y1="28.73" y2="28.6" y3="28.78"/>
+ <curve x1="31.67" x2="31.67" x3="33.62" y1="28.78" y2="28.78" y3="29.8"/>
+ <curve x1="33.62" x2="33.62" x3="31.76" y1="29.8" y2="29.8" y3="23.71"/>
+ <curve x1="31.67" x2="31.89" x3="32.2" y1="23.36" y2="23" y3="22.87"/>
+ <curve x1="32.2" x2="32.2" x3="32.34" y1="22.87" y2="22.87" y3="22.87"/>
+ <curve x1="32.69" x2="33.09" x3="33.18" y1="22.74" y2="22.96" y3="23.31"/>
+ <curve x1="33.18" x2="33.18" x3="35.09" y1="23.31" y2="23.31" y3="29.44"/>
+ <curve x1="35.09" x2="35.09" x3="36.15" y1="29.44" y2="29.44" y3="27.49"/>
+ <curve x1="36.33" x2="36.73" x3="37.08" y1="27.18" y2="27.09" y3="27.27"/>
+ <curve x1="37.08" x2="37.08" x3="37.17" y1="27.27" y2="27.27" y3="27.31"/>
+ <close/>
+ <move x="20.37" y="29.04"/>
+ <line x="20.41" y="29.18"/>
+ <curve x1="20.59" x2="20.5" x3="20.19" y1="29.49" y2="29.89" y3="30.06"/>
+ <curve x1="20.19" x2="20.19" x3="16.77" y1="30.06" y2="30.06" y3="31.84"/>
+ <curve x1="16.77" x2="16.73" x3="16.73" y1="31.84" y2="31.84" y3="31.88"/>
+ <curve x1="16.55" x2="16.37" x3="16.15" y1="31.97" y2="31.97" y3="31.93"/>
+ <curve x1="16.15" x2="16.15" x3="16.02" y1="31.93" y2="31.93" y3="31.88"/>
+ <curve x1="15.84" x2="15.71" x3="15.62" y1="31.84" y2="31.75" y3="31.62"/>
+ <curve x1="15.58" x2="15.58" x3="15.53" y1="31.57" y2="31.53" y3="31.48"/>
+ <curve x1="15.53" x2="15.53" x3="13.71" y1="31.48" y2="31.48" y3="28.2"/>
+ <curve x1="13.49" x2="13.62" x3="13.98" y1="27.89" y2="27.49" y3="27.31"/>
+ <curve x1="13.98" x2="13.98" x3="14.11" y1="27.31" y2="27.31" y3="27.27"/>
+ <curve x1="14.42" x2="14.82" x3="15" y1="27.09" y2="27.18" y3="27.49"/>
+ <curve x1="15" x2="15" x3="16.06" y1="27.49" y2="27.49" y3="29.44"/>
+ <curve x1="16.06" x2="16.06" x3="17.97" y1="29.44" y2="29.44" y3="23.31"/>
+ <curve x1="18.06" x2="18.46" x3="18.81" y1="22.96" y2="22.74" y3="22.87"/>
+ <curve x1="18.81" x2="18.81" x3="18.95" y1="22.87" y2="22.87" y3="22.87"/>
+ <curve x1="19.3" x2="19.52" x3="19.39" y1="23" y2="23.36" y3="23.71"/>
+ <curve x1="19.39" x2="19.39" x3="17.53" y1="23.71" y2="23.71" y3="29.8"/>
+ <curve x1="17.53" x2="17.53" x3="19.43" y1="29.8" y2="29.8" y3="28.78"/>
+ <curve x1="19.79" x2="20.19" x3="20.37" y1="28.6" y2="28.73" y3="29.04"/>
+ <close/>
+ <move x="37.8" y="44.05"/>
+ <line x="50.39" y="21.98"/>
+ <line x="37.8" y="0"/>
+ <line x="12.64" y="0"/>
+ <line x="0" y="21.98"/>
+ <line x="12.64" y="44.05"/>
+ <line x="37.8" y="44.05"/>
+ <line x="37.8" y="44.05"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="nexus data center switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.15" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.15" y="0"/>
+ <line x="19.93" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="19.93" y="68.96"/>
+ <line x="60.15" y="68.96"/>
+ <line x="60.15" y="68.96"/>
+ <close/>
+ <move x="51.25" y="11.2"/>
+ <line x="51.25" y="11.2"/>
+ <line x="50.7" y="11.2"/>
+ <line x="40.76" y="13.9"/>
+ <line x="50.7" y="16.47"/>
+ <line x="58.89" y="16.47"/>
+ <line x="58.89" y="21.14"/>
+ <line x="49.59" y="21.14"/>
+ <line x="49.59" y="19.18"/>
+ <line x="29.18" y="19.18"/>
+ <line x="29.18" y="21.14"/>
+ <line x="20" y="21.14"/>
+ <line x="20" y="16.47"/>
+ <line x="28.47" y="16.47"/>
+ <line x="38.33" y="13.9"/>
+ <line x="28.47" y="11.2"/>
+ <line x="27.92" y="11.2"/>
+ <line x="20" y="11.2"/>
+ <line x="20" y="6.67"/>
+ <line x="29.18" y="6.67"/>
+ <line x="29.18" y="8.49"/>
+ <line x="49.59" y="8.49"/>
+ <line x="49.59" y="6.67"/>
+ <line x="58.89" y="6.67"/>
+ <line x="58.89" y="11.2"/>
+ <line x="51.25" y="11.2"/>
+ <close/>
+ <move x="49.59" y="17.04"/>
+ <line x="49.59" y="17.04"/>
+ <line x="39.65" y="14.33"/>
+ <line x="29.18" y="17.04"/>
+ <line x="29.18" y="18.43"/>
+ <line x="49.59" y="18.43"/>
+ <line x="49.59" y="17.04"/>
+ <close/>
+ <move x="49.59" y="10.85"/>
+ <line x="49.59" y="10.85"/>
+ <line x="49.59" y="9.24"/>
+ <line x="29.18" y="9.24"/>
+ <line x="29.18" y="10.85"/>
+ <line x="39.65" y="13.56"/>
+ <line x="49.59" y="10.85"/>
+ <close/>
+ <move x="55.35" y="47.2"/>
+ <curve x1="55.49" x2="55.55" x3="55.55" y1="47.34" y2="47.54" y3="47.76"/>
+ <curve x1="55.55" x2="55.55" x3="55.55" y1="47.76" y2="47.76" y3="47.97"/>
+ <curve x1="55.55" x2="55.49" x3="55.29" y1="48.25" y2="48.45" y3="48.65"/>
+ <curve x1="55.21" x2="55.21" x3="55.21" y1="48.65" y2="48.73" y3="48.73"/>
+ <curve x1="55.21" x2="55.21" x3="51.53" y1="48.73" y2="48.73" y3="52.35"/>
+ <curve x1="51.19" x2="50.62" x3="50.28" y1="52.69" y2="52.69" y3="52.35"/>
+ <curve x1="50.28" x2="50.28" x3="50.22" y1="52.35" y2="52.35" y3="52.27"/>
+ <curve x1="49.87" x2="49.87" x3="50.22" y1="51.93" y2="51.3" y3="50.96"/>
+ <curve x1="50.22" x2="50.22" x3="52.3" y1="50.96" y2="50.96" y3="48.87"/>
+ <curve x1="52.3" x2="52.3" x3="46.4" y1="48.87" y2="48.87" y3="48.87"/>
+ <curve x1="47.79" x2="48.96" x3="49.87" y1="50.47" y2="52.07" y3="53.52"/>
+ <curve x1="51.73" x2="52.16" x3="51.25" y1="56.45" y2="58.33" y3="59.3"/>
+ <curve x1="50.98" x2="50.56" x3="49.87" y1="59.57" y2="59.85" y3="59.85"/>
+ <curve x1="47.91" x2="44.45" x3="41.04" y1="59.85" y2="57.56" y3="54.71"/>
+ <curve x1="41.04" x2="41.04" x3="41.04" y1="54.71" y2="54.71" y3="60.13"/>
+ <curve x1="41.04" x2="41.04" x3="43.12" y1="60.13" y2="60.13" y3="58.05"/>
+ <curve x1="43.47" x2="44.09" x3="44.45" y1="57.7" y2="57.7" y3="58.05"/>
+ <curve x1="44.45" x2="44.45" x3="44.52" y1="58.05" y2="58.05" y3="58.11"/>
+ <curve x1="44.86" x2="44.86" x3="44.52" y1="58.45" y2="59.02" y3="59.36"/>
+ <curve x1="44.52" x2="44.52" x3="40.9" y1="59.36" y2="59.36" y3="63.04"/>
+ <curve x1="40.9" x2="40.84" x3="40.84" y1="63.04" y2="63.04" y3="63.12"/>
+ <curve x1="40.7" x2="40.41" x3="40.15" y1="63.32" y2="63.4" y3="63.4"/>
+ <curve x1="40.15" x2="40.15" x3="39.93" y1="63.4" y2="63.4" y3="63.4"/>
+ <curve x1="39.73" x2="39.52" x3="39.38" y1="63.4" y2="63.32" y3="63.18"/>
+ <curve x1="39.3" x2="39.24" x3="39.16" y1="63.18" y2="63.12" y3="63.04"/>
+ <curve x1="39.16" x2="39.16" x3="35.56" y1="63.04" y2="63.04" y3="59.36"/>
+ <curve x1="35.22" x2="35.22" x3="35.56" y1="59.02" y2="58.45" y3="58.11"/>
+ <curve x1="35.56" x2="35.56" x3="35.62" y1="58.11" y2="58.11" y3="58.05"/>
+ <curve x1="35.97" x2="36.59" x3="36.94" y1="57.7" y2="57.7" y3="58.05"/>
+ <curve x1="36.94" x2="36.94" x3="39.04" y1="58.05" y2="58.05" y3="60.13"/>
+ <curve x1="39.04" x2="39.04" x3="39.04" y1="60.13" y2="60.13" y3="54.63"/>
+ <curve x1="35.62" x2="32.15" x3="30.14" y1="57.56" y2="59.85" y3="59.85"/>
+ <curve x1="30.14" x2="30.14" x3="30.14" y1="59.85" y2="59.85" y3="59.85"/>
+ <curve x1="29.44" x2="29.03" x3="28.81" y1="59.85" y2="59.57" y3="59.3"/>
+ <curve x1="27.78" x2="28.27" x3="30.14" y1="58.33" y2="56.45" y3="53.52"/>
+ <curve x1="31.04" x2="32.23" x3="33.62" y1="52.07" y2="50.47" y3="48.87"/>
+ <curve x1="33.62" x2="33.62" x3="27.78" y1="48.87" y2="48.87" y3="48.87"/>
+ <curve x1="27.78" x2="27.78" x3="29.93" y1="48.87" y2="48.87" y3="50.96"/>
+ <curve x1="30.29" x2="30.29" x3="29.93" y1="51.3" y2="51.93" y3="52.27"/>
+ <curve x1="29.93" x2="29.93" x3="29.8" y1="52.27" y2="52.27" y3="52.35"/>
+ <curve x1="29.44" x2="28.89" x3="28.55" y1="52.69" y2="52.69" y3="52.35"/>
+ <curve x1="28.55" x2="28.55" x3="24.87" y1="52.35" y2="52.35" y3="48.73"/>
+ <curve x1="24.87" x2="24.87" x3="24.79" y1="48.73" y2="48.65" y3="48.65"/>
+ <curve x1="24.59" x2="24.45" x3="24.45" y1="48.45" y2="48.25" y3="47.97"/>
+ <curve x1="24.45" x2="24.45" x3="24.45" y1="47.97" y2="47.97" y3="47.76"/>
+ <curve x1="24.45" x2="24.59" x3="24.73" y1="47.54" y2="47.34" y3="47.2"/>
+ <curve x1="24.73" x2="24.79" x3="24.87" y1="47.14" y2="47.06" y3="46.99"/>
+ <curve x1="24.87" x2="24.87" x3="28.55" y1="46.99" y2="46.99" y3="43.38"/>
+ <curve x1="28.89" x2="29.44" x3="29.8" y1="43.03" y2="43.03" y3="43.38"/>
+ <curve x1="29.8" x2="29.8" x3="29.93" y1="43.38" y2="43.38" y3="43.44"/>
+ <curve x1="30.29" x2="30.29" x3="29.93" y1="43.8" y2="44.43" y3="44.77"/>
+ <curve x1="29.93" x2="29.93" x3="27.78" y1="44.77" y2="44.77" y3="46.85"/>
+ <curve x1="27.78" x2="27.78" x3="33.26" y1="46.85" y2="46.85" y3="46.85"/>
+ <curve x1="32.02" x2="30.97" x3="30.14" y1="45.4" y2="44" y3="42.69"/>
+ <curve x1="28.27" x2="27.78" x3="28.81" y1="39.76" y2="37.88" y3="36.85"/>
+ <curve x1="29.03" x2="29.44" x3="30.14" y1="36.63" y2="36.35" y3="36.35"/>
+ <curve x1="32.15" x2="35.62" x3="39.04" y1="36.35" y2="38.65" y3="41.56"/>
+ <curve x1="39.04" x2="39.04" x3="39.04" y1="41.56" y2="41.56" y3="35.6"/>
+ <curve x1="39.04" x2="39.04" x3="36.94" y1="35.6" y2="35.6" y3="37.74"/>
+ <curve x1="36.59" x2="35.97" x3="35.62" y1="38.09" y2="38.09" y3="37.74"/>
+ <curve x1="35.62" x2="35.62" x3="35.56" y1="37.74" y2="37.74" y3="37.6"/>
+ <curve x1="35.22" x2="35.22" x3="35.56" y1="37.26" y2="36.71" y3="36.35"/>
+ <curve x1="35.56" x2="35.56" x3="39.16" y1="36.35" y2="36.35" y3="32.67"/>
+ <curve x1="39.24" x2="39.3" x3="39.38" y1="32.61" y2="32.53" y3="32.53"/>
+ <curve x1="39.52" x2="39.73" x3="39.93" y1="32.39" y2="32.25" y3="32.25"/>
+ <curve x1="39.93" x2="39.93" x3="40.15" y1="32.25" y2="32.25" y3="32.25"/>
+ <curve x1="40.41" x2="40.7" x3="40.84" y1="32.25" y2="32.39" y3="32.61"/>
+ <curve x1="40.84" x2="40.9" x3="40.9" y1="32.67" y2="32.67" y3="32.67"/>
+ <curve x1="40.9" x2="40.9" x3="44.52" y1="32.67" y2="32.67" y3="36.35"/>
+ <curve x1="44.86" x2="44.86" x3="44.52" y1="36.71" y2="37.26" y3="37.6"/>
+ <curve x1="44.52" x2="44.52" x3="44.45" y1="37.6" y2="37.6" y3="37.74"/>
+ <curve x1="44.09" x2="43.47" x3="43.12" y1="38.09" y2="38.09" y3="37.74"/>
+ <curve x1="43.12" x2="43.12" x3="41.04" y1="37.74" y2="37.74" y3="35.6"/>
+ <curve x1="41.04" x2="41.04" x3="41.04" y1="35.6" y2="35.6" y3="41.5"/>
+ <curve x1="44.45" x2="47.91" x3="49.87" y1="38.59" y2="36.35" y3="36.35"/>
+ <curve x1="50.56" x2="50.98" x3="51.19" y1="36.35" y2="36.63" y3="36.85"/>
+ <curve x1="52.16" x2="51.73" x3="49.87" y1="37.88" y2="39.76" y3="42.69"/>
+ <curve x1="49.03" x2="47.99" x3="46.74" y1="44" y2="45.4" y3="46.85"/>
+ <curve x1="46.74" x2="46.74" x3="52.3" y1="46.85" y2="46.85" y3="46.85"/>
+ <curve x1="52.3" x2="52.3" x3="50.22" y1="46.85" y2="46.85" y3="44.77"/>
+ <curve x1="49.87" x2="49.87" x3="50.22" y1="44.43" y2="43.8" y3="43.44"/>
+ <curve x1="50.22" x2="50.22" x3="50.28" y1="43.44" y2="43.44" y3="43.38"/>
+ <curve x1="50.62" x2="51.19" x3="51.53" y1="43.03" y2="43.03" y3="43.38"/>
+ <curve x1="51.53" x2="51.53" x3="55.21" y1="43.38" y2="43.38" y3="46.99"/>
+ <curve x1="55.29" x2="55.35" x3="55.35" y1="47.06" y2="47.14" y3="47.2"/>
+ <close/>
+ <move x="50" y="38.09"/>
+ <curve x1="50" x2="49.93" x3="49.87" y1="38.09" y2="38.09" y3="38.09"/>
+ <curve x1="48.68" x2="45.69" x3="42.09" y1="38.09" y2="39.82" y3="42.89"/>
+ <curve x1="43.47" x2="44.66" x3="45.21" y1="43.44" y2="44.63" y3="46.09"/>
+ <curve x1="46.4" x2="47.43" x3="48.2" y1="44.63" y2="43.3" y3="42.13"/>
+ <curve x1="49.87" x2="50.07" x3="50" y1="39.56" y2="38.37" y3="38.09"/>
+ <close/>
+ <move x="30.07" y="38.09"/>
+ <curve x1="30" x2="29.93" x3="31.8" y1="38.31" y2="39.28" y3="42.13"/>
+ <curve x1="32.63" x2="33.62" x3="34.79" y1="43.3" y2="44.63" y3="46.09"/>
+ <curve x1="35.34" x2="36.53" x3="37.99" y1="44.63" y2="43.44" y3="42.89"/>
+ <curve x1="34.37" x2="31.4" x3="30.14" y1="39.82" y2="38.09" y3="38.09"/>
+ <curve x1="30.07" x2="30.07" x3="30.07" y1="38.09" y2="38.09" y3="38.09"/>
+ <close/>
+ <move x="30.14" y="58.11"/>
+ <curve x1="31.4" x2="34.37" x3="37.99" y1="58.11" y2="56.37" y3="53.32"/>
+ <curve x1="36.53" x2="35.34" x3="34.79" y1="52.69" y2="51.58" y3="50.13"/>
+ <curve x1="33.62" x2="32.63" x3="31.8" y1="51.58" y2="52.9" y3="54.09"/>
+ <curve x1="29.93" x2="30" x3="30.07" y1="56.94" y2="57.91" y3="58.11"/>
+ <curve x1="30.07" x2="30.07" x3="30.14" y1="58.11" y2="58.11" y3="58.11"/>
+ <close/>
+ <move x="50" y="58.11"/>
+ <curve x1="50" x2="50.07" x3="48.2" y1="57.91" y2="56.94" y3="54.09"/>
+ <curve x1="47.43" x2="46.4" x3="45.21" y1="52.9" y2="51.58" y3="50.13"/>
+ <curve x1="44.66" x2="43.47" x3="42.09" y1="51.58" y2="52.69" y3="53.32"/>
+ <curve x1="45.69" x2="48.68" x3="49.87" y1="56.37" y2="58.11" y3="58.11"/>
+ <curve x1="49.93" x2="50" x3="50" y1="58.11" y2="58.11" y3="58.11"/>
+ <close/>
+ <move x="8.89" y="26.7"/>
+ <line x="8.89" y="26.7"/>
+ <line x="71.12" y="26.7"/>
+ <line x="71.12" y="27.81"/>
+ <line x="8.89" y="27.81"/>
+ <line x="8.89" y="26.7"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="nexus fabric switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="32.5" y="28.5"/>
+ <curve x1="32.72" x2="31.6" x3="28.9" y1="28.02" y2="25.79" y3="22.73"/>
+ <curve x1="28.47" x2="27.64" x3="26.53" y1="23.77" y2="24.6" y3="25.09"/>
+ <curve x1="29.3" x2="31.46" x3="32.43" y1="27.31" y2="28.5" y3="28.5"/>
+ <curve x1="32.43" x2="32.5" x3="32.5" y1="28.5" y2="28.5" y3="28.5"/>
+ <close/>
+ <move x="32.43" y="14.18"/>
+ <curve x1="31.46" x2="29.3" x3="26.53" y1="14.18" y2="15.37" y3="17.59"/>
+ <curve x1="27.64" x2="28.47" x3="28.9" y1="18" y2="18.84" y3="19.88"/>
+ <curve x1="31.6" x2="32.72" x3="32.5" y1="16.82" y2="14.66" y3="14.18"/>
+ <curve x1="32.5" x2="32.43" x3="32.43" y1="14.18" y2="14.18" y3="14.18"/>
+ <close/>
+ <move x="21.12" y="19.88"/>
+ <curve x1="21.52" x2="22.43" x3="23.48" y1="18.84" y2="18" y3="17.59"/>
+ <curve x1="20.69" x2="18.55" x3="17.64" y1="15.37" y2="14.18" y3="14.18"/>
+ <curve x1="17.58" x2="17.5" x3="17.5" y1="14.18" y2="14.18" y3="14.18"/>
+ <curve x1="17.3" x2="18.41" x3="21.12" y1="14.66" y2="16.82" y3="19.88"/>
+ <close/>
+ <move x="17.64" y="28.5"/>
+ <curve x1="18.55" x2="20.69" x3="23.48" y1="28.5" y2="27.31" y3="25.09"/>
+ <curve x1="22.43" x2="21.52" x3="21.12" y1="24.6" y2="23.77" y3="22.73"/>
+ <curve x1="18.41" x2="17.3" x3="17.5" y1="25.79" y2="28.02" y3="28.5"/>
+ <curve x1="17.5" x2="17.58" x3="17.64" y1="28.5" y2="28.5" y3="28.5"/>
+ <close/>
+ <move x="36.54" y="20.72"/>
+ <curve x1="36.6" x2="36.68" x3="36.68" y1="20.78" y2="20.92" y3="21.13"/>
+ <curve x1="36.68" x2="36.68" x3="36.68" y1="21.13" y2="21.13" y3="21.27"/>
+ <curve x1="36.68" x2="36.6" x3="36.46" y1="21.47" y2="21.61" y3="21.75"/>
+ <curve x1="36.46" x2="36.39" x3="36.39" y1="21.75" y2="21.75" y3="21.83"/>
+ <curve x1="36.39" x2="36.39" x3="33.69" y1="21.83" y2="21.83" y3="24.4"/>
+ <curve x1="33.4" x2="32.98" x3="32.72" y1="24.6" y2="24.6" y3="24.4"/>
+ <curve x1="32.72" x2="32.72" x3="32.64" y1="24.4" y2="24.4" y3="24.34"/>
+ <curve x1="32.36" x2="32.36" x3="32.64" y1="24.06" y2="23.63" y3="23.35"/>
+ <curve x1="32.64" x2="32.64" x3="34.17" y1="23.35" y2="23.35" y3="21.9"/>
+ <curve x1="34.17" x2="34.17" x3="29.73" y1="21.9" y2="21.9" y3="21.9"/>
+ <curve x1="30.84" x2="31.67" x3="32.36" y1="23.09" y2="24.2" y3="25.17"/>
+ <curve x1="33.83" x2="34.09" x3="33.4" y1="27.31" y2="28.64" y3="29.33"/>
+ <curve x1="33.2" x2="32.92" x3="32.43" y1="29.47" y2="29.68" y3="29.68"/>
+ <curve x1="30.9" x2="28.33" x3="25.83" y1="29.68" y2="28.08" y3="26"/>
+ <curve x1="25.83" x2="25.83" x3="25.83" y1="26" y2="26" y3="29.9"/>
+ <curve x1="25.83" x2="25.83" x3="27.36" y1="29.9" y2="29.9" y3="28.42"/>
+ <curve x1="27.64" x2="28.05" x3="28.33" y1="28.16" y2="28.16" y3="28.42"/>
+ <curve x1="28.33" x2="28.33" x3="28.41" y1="28.42" y2="28.42" y3="28.5"/>
+ <curve x1="28.68" x2="28.68" x3="28.41" y1="28.78" y2="29.13" y3="29.41"/>
+ <curve x1="28.41" x2="28.41" x3="25.7" y1="29.41" y2="29.41" y3="31.98"/>
+ <curve x1="25.7" x2="25.62" x3="25.62" y1="32.04" y2="32.04" y3="32.04"/>
+ <curve x1="25.48" x2="25.34" x3="25.14" y1="32.18" y2="32.26" y3="32.26"/>
+ <curve x1="25.14" x2="25.14" x3="25" y1="32.26" y2="32.26" y3="32.26"/>
+ <curve x1="24.79" x2="24.65" x3="24.51" y1="32.26" y2="32.18" y3="32.12"/>
+ <curve x1="24.45" x2="24.45" x3="24.37" y1="32.04" y2="32.04" y3="31.98"/>
+ <curve x1="24.37" x2="24.37" x3="21.66" y1="31.98" y2="31.98" y3="29.41"/>
+ <curve x1="21.4" x2="21.4" x3="21.66" y1="29.13" y2="28.78" y3="28.5"/>
+ <curve x1="21.66" x2="21.66" x3="21.74" y1="28.5" y2="28.5" y3="28.42"/>
+ <curve x1="22.02" x2="22.43" x3="22.71" y1="28.16" y2="28.16" y3="28.42"/>
+ <curve x1="22.71" x2="22.71" x3="24.31" y1="28.42" y2="28.42" y3="29.9"/>
+ <curve x1="24.31" x2="24.31" x3="24.31" y1="29.9" y2="29.9" y3="25.93"/>
+ <curve x1="21.74" x2="19.1" x3="17.64" y1="28.02" y2="29.68" y3="29.68"/>
+ <curve x1="17.64" x2="17.64" x3="17.64" y1="29.68" y2="29.68" y3="29.68"/>
+ <curve x1="17.09" x2="16.81" x3="16.67" y1="29.68" y2="29.47" y3="29.33"/>
+ <curve x1="15.9" x2="16.25" x3="17.64" y1="28.64" y2="27.31" y3="25.17"/>
+ <curve x1="18.33" x2="19.24" x3="20.29" y1="24.2" y2="23.09" y3="21.9"/>
+ <curve x1="20.29" x2="20.29" x3="15.9" y1="21.9" y2="21.9" y3="21.9"/>
+ <curve x1="15.9" x2="15.9" x3="17.44" y1="21.9" y2="21.9" y3="23.35"/>
+ <curve x1="17.7" x2="17.7" x3="17.44" y1="23.63" y2="24.06" y3="24.34"/>
+ <curve x1="17.44" x2="17.44" x3="17.3" y1="24.34" y2="24.34" y3="24.4"/>
+ <curve x1="17.09" x2="16.67" x3="16.39" y1="24.6" y2="24.6" y3="24.4"/>
+ <curve x1="16.39" x2="16.39" x3="13.68" y1="24.4" y2="24.4" y3="21.83"/>
+ <curve x1="13.68" x2="13.62" x3="13.62" y1="21.75" y2="21.75" y3="21.75"/>
+ <curve x1="13.48" x2="13.33" x3="13.33" y1="21.61" y2="21.47" y3="21.27"/>
+ <curve x1="13.33" x2="13.33" x3="13.33" y1="21.27" y2="21.27" y3="21.13"/>
+ <curve x1="13.33" x2="13.48" x3="13.54" y1="20.92" y2="20.78" y3="20.72"/>
+ <curve x1="13.54" x2="13.62" x3="13.68" y1="20.64" y2="20.58" y3="20.5"/>
+ <curve x1="13.68" x2="13.68" x3="16.39" y1="20.5" y2="20.5" y3="17.93"/>
+ <curve x1="16.67" x2="17.09" x3="17.3" y1="17.65" y2="17.65" y3="17.93"/>
+ <curve x1="17.3" x2="17.3" x3="17.44" y1="17.93" y2="17.93" y3="18"/>
+ <curve x1="17.7" x2="17.7" x3="17.44" y1="18.28" y2="18.7" y3="18.98"/>
+ <curve x1="17.44" x2="17.44" x3="15.84" y1="18.98" y2="18.98" y3="20.44"/>
+ <curve x1="15.84" x2="15.84" x3="20" y1="20.44" y2="20.44" y3="20.44"/>
+ <curve x1="19.03" x2="18.27" x3="17.64" y1="19.39" y2="18.42" y3="17.45"/>
+ <curve x1="16.25" x2="15.9" x3="16.67" y1="15.37" y2="14.04" y3="13.35"/>
+ <curve x1="16.81" x2="17.09" x3="17.64" y1="13.21" y2="13" y3="13"/>
+ <curve x1="19.1" x2="21.74" x3="24.31" y1="13" y2="14.6" y3="16.76"/>
+ <curve x1="24.31" x2="24.31" x3="24.31" y1="16.76" y2="16.76" y3="12.44"/>
+ <curve x1="24.31" x2="24.31" x3="22.71" y1="12.44" y2="12.44" y3="13.9"/>
+ <curve x1="22.43" x2="22.02" x3="21.74" y1="14.18" y2="14.18" y3="13.9"/>
+ <curve x1="21.74" x2="21.74" x3="21.66" y1="13.9" y2="13.9" y3="13.83"/>
+ <curve x1="21.4" x2="21.4" x3="21.66" y1="13.55" y2="13.21" y3="12.92"/>
+ <curve x1="21.66" x2="21.66" x3="24.37" y1="12.92" y2="12.92" y3="10.36"/>
+ <curve x1="24.45" x2="24.45" x3="24.51" y1="10.29" y2="10.29" y3="10.22"/>
+ <curve x1="24.65" x2="24.79" x3="25" y1="10.15" y2="10.01" y3="10.01"/>
+ <curve x1="25" x2="25" x3="25.14" y1="10.01" y2="10.01" y3="10.01"/>
+ <curve x1="25.34" x2="25.48" x3="25.62" y1="10.01" y2="10.15" y3="10.29"/>
+ <curve x1="25.62" x2="25.7" x3="25.7" y1="10.29" y2="10.29" y3="10.36"/>
+ <curve x1="25.7" x2="25.7" x3="28.41" y1="10.36" y2="10.36" y3="12.92"/>
+ <curve x1="28.68" x2="28.68" x3="28.41" y1="13.21" y2="13.55" y3="13.83"/>
+ <curve x1="28.41" x2="28.41" x3="28.33" y1="13.83" y2="13.83" y3="13.9"/>
+ <curve x1="28.05" x2="27.64" x3="27.36" y1="14.18" y2="14.18" y3="13.9"/>
+ <curve x1="27.36" x2="27.36" x3="25.83" y1="13.9" y2="13.9" y3="12.44"/>
+ <curve x1="25.83" x2="25.83" x3="25.83" y1="12.44" y2="12.44" y3="16.68"/>
+ <curve x1="28.33" x2="30.9" x3="32.43" y1="14.6" y2="13" y3="13"/>
+ <curve x1="32.92" x2="33.2" x3="33.4" y1="13" y2="13.21" y3="13.35"/>
+ <curve x1="34.09" x2="33.83" x3="32.36" y1="14.04" y2="15.37" y3="17.45"/>
+ <curve x1="31.81" x2="30.98" x3="30.07" y1="18.42" y2="19.39" y3="20.44"/>
+ <curve x1="30.07" x2="30.07" x3="34.23" y1="20.44" y2="20.44" y3="20.44"/>
+ <curve x1="34.23" x2="34.23" x3="32.64" y1="20.44" y2="20.44" y3="18.98"/>
+ <curve x1="32.36" x2="32.36" x3="32.64" y1="18.7" y2="18.28" y3="18"/>
+ <curve x1="32.64" x2="32.64" x3="32.72" y1="18" y2="18" y3="17.93"/>
+ <curve x1="32.98" x2="33.4" x3="33.69" y1="17.65" y2="17.65" y3="17.93"/>
+ <curve x1="33.69" x2="33.69" x3="36.39" y1="17.93" y2="17.93" y3="20.5"/>
+ <curve x1="36.46" x2="36.54" x3="36.54" y1="20.58" y2="20.64" y3="20.72"/>
+ <close/>
+ <move x="40" y="6.67"/>
+ <line x="40" y="6.67"/>
+ <line x="41.11" y="6.67"/>
+ <line x="41.11" y="63.4"/>
+ <line x="40" y="63.4"/>
+ <line x="40" y="6.67"/>
+ <close/>
+ <move x="64.45" y="40.17"/>
+ <line x="64.45" y="40.17"/>
+ <line x="64.45" y="37.81"/>
+ <line x="68.9" y="42.27"/>
+ <line x="68.9" y="42.27"/>
+ <line x="64.45" y="46.72"/>
+ <line x="64.45" y="44.42"/>
+ <line x="56.67" y="44.42"/>
+ <line x="56.67" y="40.17"/>
+ <line x="64.45" y="40.17"/>
+ <close/>
+ <move x="64.45" y="36.71"/>
+ <line x="64.45" y="36.71"/>
+ <line x="64.45" y="34.34"/>
+ <line x="56.67" y="34.34"/>
+ <line x="56.67" y="29.33"/>
+ <line x="64.45" y="29.33"/>
+ <line x="64.45" y="26.69"/>
+ <line x="68.9" y="31.7"/>
+ <line x="68.9" y="31.7"/>
+ <line x="64.45" y="36.71"/>
+ <close/>
+ <move x="47.78" y="32.25"/>
+ <line x="47.78" y="32.25"/>
+ <line x="47.78" y="34.61"/>
+ <line x="55.56" y="34.61"/>
+ <line x="55.56" y="38.86"/>
+ <line x="47.78" y="38.86"/>
+ <line x="47.78" y="41.16"/>
+ <line x="43.34" y="36.71"/>
+ <line x="43.34" y="36.71"/>
+ <line x="47.78" y="32.25"/>
+ <close/>
+ <move x="47.78" y="22.24"/>
+ <line x="47.78" y="22.24"/>
+ <line x="47.78" y="24.46"/>
+ <line x="55.56" y="24.46"/>
+ <line x="55.56" y="28.99"/>
+ <line x="47.78" y="28.99"/>
+ <line x="47.78" y="31.15"/>
+ <line x="43.34" y="26.83"/>
+ <line x="43.34" y="26.62"/>
+ <line x="47.78" y="22.24"/>
+ <close/>
+ <move x="31.74" y="55.34"/>
+ <line x="31.74" y="42.61"/>
+ <curve x1="31.74" x2="31.74" x3="18.33" y1="42.61" y2="42.61" y3="42.61"/>
+ <curve x1="18.33" x2="18.33" x3="18.33" y1="42.61" y2="42.61" y3="55.34"/>
+ <curve x1="18.33" x2="18.33" x3="31.74" y1="55.34" y2="55.34" y3="55.34"/>
+ <close/>
+ <move x="35.56" y="44.63"/>
+ <line x="33.55" y="44.63"/>
+ <curve x1="33.55" x2="33.55" x3="33.55" y1="44.63" y2="44.63" y3="48.17"/>
+ <curve x1="33.55" x2="33.55" x3="35.56" y1="48.17" y2="48.17" y3="48.17"/>
+ <curve x1="35.56" x2="35.56" x3="35.56" y1="48.17" y2="48.17" y3="49.84"/>
+ <curve x1="35.56" x2="35.56" x3="33.55" y1="49.84" y2="49.84" y3="49.84"/>
+ <curve x1="33.55" x2="33.55" x3="33.55" y1="49.84" y2="49.84" y3="53.32"/>
+ <curve x1="33.55" x2="33.55" x3="35.56" y1="53.32" y2="53.32" y3="53.32"/>
+ <curve x1="35.56" x2="35.56" x3="35.56" y1="53.32" y2="53.32" y3="54.99"/>
+ <curve x1="35.56" x2="35.56" x3="33.55" y1="54.99" y2="54.99" y3="54.99"/>
+ <curve x1="33.55" x2="33.55" x3="33.55" y1="54.99" y2="54.99" y3="56.17"/>
+ <curve x1="33.55" x2="33.12" x3="32.64" y1="56.65" y2="57" y3="57"/>
+ <curve x1="32.64" x2="32.64" x3="31.38" y1="57" y2="57" y3="57"/>
+ <curve x1="31.38" x2="31.38" x3="31.38" y1="57" y2="57" y3="58.95"/>
+ <curve x1="31.38" x2="31.38" x3="29.58" y1="58.95" y2="58.95" y3="58.95"/>
+ <curve x1="29.58" x2="29.58" x3="29.58" y1="58.95" y2="58.95" y3="57"/>
+ <curve x1="29.58" x2="29.58" x3="25.91" y1="57" y2="57" y3="57"/>
+ <curve x1="25.91" x2="25.91" x3="25.91" y1="57" y2="57" y3="58.95"/>
+ <curve x1="25.91" x2="25.91" x3="24.17" y1="58.95" y2="58.95" y3="58.95"/>
+ <curve x1="24.17" x2="24.17" x3="24.17" y1="58.95" y2="58.95" y3="57"/>
+ <curve x1="24.17" x2="24.17" x3="20.49" y1="57" y2="57" y3="57"/>
+ <curve x1="20.49" x2="20.49" x3="20.49" y1="57" y2="57" y3="58.95"/>
+ <curve x1="20.49" x2="20.49" x3="18.75" y1="58.95" y2="58.95" y3="58.95"/>
+ <curve x1="18.75" x2="18.75" x3="18.75" y1="58.95" y2="58.95" y3="57"/>
+ <curve x1="18.75" x2="18.75" x3="17.44" y1="57" y2="57" y3="57"/>
+ <curve x1="16.95" x2="16.61" x3="16.61" y1="57" y2="56.65" y3="56.17"/>
+ <curve x1="16.61" x2="16.61" x3="16.61" y1="56.17" y2="56.17" y3="54.99"/>
+ <curve x1="16.61" x2="16.61" x3="14.45" y1="54.99" y2="54.99" y3="54.99"/>
+ <curve x1="14.45" x2="14.45" x3="14.45" y1="54.99" y2="54.99" y3="53.32"/>
+ <curve x1="14.45" x2="14.45" x3="16.61" y1="53.32" y2="53.32" y3="53.32"/>
+ <curve x1="16.61" x2="16.61" x3="16.61" y1="53.32" y2="53.32" y3="49.84"/>
+ <curve x1="16.61" x2="16.61" x3="14.45" y1="49.84" y2="49.84" y3="49.84"/>
+ <curve x1="14.45" x2="14.45" x3="14.45" y1="49.84" y2="49.84" y3="48.17"/>
+ <curve x1="14.45" x2="14.45" x3="16.61" y1="48.17" y2="48.17" y3="48.17"/>
+ <curve x1="16.61" x2="16.61" x3="16.61" y1="48.17" y2="48.17" y3="44.63"/>
+ <curve x1="16.61" x2="16.61" x3="14.45" y1="44.63" y2="44.63" y3="44.63"/>
+ <curve x1="14.45" x2="14.45" x3="14.45" y1="44.63" y2="44.63" y3="42.95"/>
+ <curve x1="14.45" x2="14.45" x3="16.61" y1="42.95" y2="42.95" y3="42.95"/>
+ <curve x1="16.61" x2="16.61" x3="16.61" y1="42.95" y2="42.95" y3="41.78"/>
+ <curve x1="16.61" x2="16.95" x3="17.44" y1="41.29" y2="40.95" y3="40.95"/>
+ <curve x1="17.44" x2="17.44" x3="18.75" y1="40.95" y2="40.95" y3="40.95"/>
+ <curve x1="18.75" x2="18.75" x3="18.75" y1="40.95" y2="40.95" y3="38.93"/>
+ <curve x1="18.75" x2="18.75" x3="20.49" y1="38.93" y2="38.93" y3="38.93"/>
+ <curve x1="20.49" x2="20.49" x3="20.49" y1="38.93" y2="38.93" y3="40.95"/>
+ <curve x1="20.49" x2="20.49" x3="24.17" y1="40.95" y2="40.95" y3="40.95"/>
+ <curve x1="24.17" x2="24.17" x3="24.17" y1="40.95" y2="40.95" y3="38.93"/>
+ <curve x1="24.17" x2="24.17" x3="25.91" y1="38.93" y2="38.93" y3="38.93"/>
+ <curve x1="25.91" x2="25.91" x3="25.91" y1="38.93" y2="38.93" y3="40.95"/>
+ <curve x1="25.91" x2="25.91" x3="29.58" y1="40.95" y2="40.95" y3="40.95"/>
+ <curve x1="29.58" x2="29.58" x3="29.58" y1="40.95" y2="40.95" y3="38.93"/>
+ <curve x1="29.58" x2="29.58" x3="31.38" y1="38.93" y2="38.93" y3="38.93"/>
+ <curve x1="31.38" x2="31.38" x3="31.38" y1="38.93" y2="38.93" y3="40.95"/>
+ <curve x1="31.38" x2="31.38" x3="32.64" y1="40.95" y2="40.95" y3="40.95"/>
+ <curve x1="33.12" x2="33.55" x3="33.55" y1="40.95" y2="41.29" y3="41.78"/>
+ <curve x1="33.55" x2="33.55" x3="33.55" y1="41.78" y2="41.78" y3="42.95"/>
+ <curve x1="33.55" x2="33.55" x3="35.56" y1="42.95" y2="42.95" y3="42.95"/>
+ <curve x1="35.56" x2="35.56" x3="35.56" y1="42.95" y2="42.95" y3="44.63"/>
+ <close/>
+ <move x="26.67" y="44.5"/>
+ <line x="26.67" y="44.5"/>
+ <line x="28.89" y="44.5"/>
+ <line x="28.89" y="47.83"/>
+ <line x="26.67" y="47.83"/>
+ <line x="26.67" y="44.5"/>
+ <close/>
+ <move x="21.11" y="50.06"/>
+ <line x="21.11" y="50.06"/>
+ <line x="23.34" y="50.06"/>
+ <line x="23.34" y="53.39"/>
+ <line x="21.11" y="53.39"/>
+ <line x="21.11" y="50.06"/>
+ <close/>
+ <move x="21.11" y="44.5"/>
+ <line x="21.11" y="44.5"/>
+ <line x="23.34" y="44.5"/>
+ <line x="23.34" y="47.83"/>
+ <line x="21.11" y="47.83"/>
+ <line x="21.11" y="44.5"/>
+ <close/>
+ <move x="26.67" y="50.06"/>
+ <line x="26.67" y="50.06"/>
+ <line x="28.89" y="50.06"/>
+ <line x="28.89" y="53.39"/>
+ <line x="26.67" y="53.39"/>
+ <line x="26.67" y="50.06"/>
+ <close/>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="nexus switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="47.91" y="60.19"/>
+ <curve x1="48.13" x2="46.94" x3="44.09" y1="59.65" y2="57.08" y3="53.6"/>
+ <curve x1="43.69" x2="42.78" x3="41.6" y1="54.78" y2="55.75" y3="56.17"/>
+ <curve x1="44.52" x2="46.8" x3="47.79" y1="58.82" y2="60.19" y3="60.19"/>
+ <curve x1="47.79" x2="47.85" x3="47.91" y1="60.19" y2="60.19" y3="60.19"/>
+ <close/>
+ <move x="47.79" y="43.72"/>
+ <curve x1="46.8" x2="44.52" x3="41.6" y1="43.72" y2="45.04" y3="47.68"/>
+ <curve x1="42.78" x2="43.69" x3="44.09" y1="48.17" y2="49.08" y3="50.25"/>
+ <curve x1="46.94" x2="48.13" x3="47.91" y1="46.78" y2="44.29" y3="43.72"/>
+ <curve x1="47.85" x2="47.79" x3="47.79" y1="43.72" y2="43.72" y3="43.72"/>
+ <close/>
+ <move x="35.9" y="50.25"/>
+ <curve x1="36.39" x2="37.3" x3="38.41" y1="49.08" y2="48.17" y3="47.68"/>
+ <curve x1="35.56" x2="33.26" x3="32.29" y1="45.04" y2="43.72" y3="43.72"/>
+ <curve x1="32.23" x2="32.15" x3="32.15" y1="43.72" y2="43.72" y3="43.72"/>
+ <curve x1="31.94" x2="33.13" x3="35.9" y1="44.29" y2="46.78" y3="50.25"/>
+ <close/>
+ <move x="32.29" y="60.19"/>
+ <curve x1="33.26" x2="35.56" x3="38.41" y1="60.19" y2="58.82" y3="56.17"/>
+ <curve x1="37.3" x2="36.39" x3="35.9" y1="55.75" y2="54.78" y3="53.6"/>
+ <curve x1="33.13" x2="31.94" x3="32.15" y1="57.08" y2="59.65" y3="60.19"/>
+ <curve x1="32.15" x2="32.23" x3="32.29" y1="60.19" y2="60.19" y3="60.19"/>
+ <close/>
+ <move x="52.09" y="51.16"/>
+ <curve x1="52.16" x2="52.22" x3="52.22" y1="51.3" y2="51.5" y3="51.65"/>
+ <curve x1="52.22" x2="52.22" x3="52.22" y1="51.65" y2="51.65" y3="51.86"/>
+ <curve x1="52.22" x2="52.16" x3="52.01" y1="52.07" y2="52.27" y3="52.41"/>
+ <curve x1="52.01" x2="52.01" x3="51.95" y1="52.41" y2="52.41" y3="52.49"/>
+ <curve x1="51.95" x2="51.95" x3="49.1" y1="52.49" y2="52.49" y3="55.47"/>
+ <curve x1="48.82" x2="48.41" x3="48.13" y1="55.75" y2="55.75" y3="55.47"/>
+ <curve x1="48.13" x2="48.13" x3="47.99" y1="55.47" y2="55.47" y3="55.34"/>
+ <curve x1="47.71" x2="47.71" x3="47.99" y1="55.06" y2="54.57" y3="54.29"/>
+ <curve x1="47.99" x2="47.99" x3="49.65" y1="54.29" y2="54.29" y3="52.62"/>
+ <curve x1="49.65" x2="49.65" x3="45" y1="52.62" y2="52.62" y3="52.62"/>
+ <curve x1="46.11" x2="47.02" x3="47.71" y1="53.95" y2="55.2" y3="56.37"/>
+ <curve x1="49.24" x2="49.59" x3="48.82" y1="58.74" y2="60.33" y3="61.1"/>
+ <curve x1="48.62" x2="48.34" x3="47.79" y1="61.3" y2="61.52" y3="61.52"/>
+ <curve x1="46.19" x2="43.54" x3="40.84" y1="61.52" y2="59.71" y3="57.34"/>
+ <curve x1="40.84" x2="40.84" x3="40.84" y1="57.34" y2="57.34" y3="61.81"/>
+ <curve x1="40.84" x2="40.84" x3="42.5" y1="61.81" y2="61.81" y3="60.07"/>
+ <curve x1="42.78" x2="43.2" x3="43.48" y1="59.79" y2="59.79" y3="60.07"/>
+ <curve x1="43.48" x2="43.48" x3="43.61" y1="60.07" y2="60.07" y3="60.19"/>
+ <curve x1="43.89" x2="43.89" x3="43.61" y1="60.47" y2="60.96" y3="61.24"/>
+ <curve x1="43.61" x2="43.61" x3="40.7" y1="61.24" y2="61.24" y3="64.23"/>
+ <curve x1="40.7" x2="40.7" x3="40.7" y1="64.23" y2="64.23" y3="64.23"/>
+ <curve x1="40.55" x2="40.35" x3="40.15" y1="64.44" y2="64.51" y3="64.51"/>
+ <curve x1="40.15" x2="40.15" x3="40.01" y1="64.51" y2="64.51" y3="64.51"/>
+ <curve x1="39.79" x2="39.66" x3="39.52" y1="64.51" y2="64.44" y3="64.37"/>
+ <curve x1="39.44" x2="39.44" x3="39.38" y1="64.29" y2="64.23" y3="64.23"/>
+ <curve x1="39.38" x2="39.38" x3="36.53" y1="64.23" y2="64.23" y3="61.24"/>
+ <curve x1="36.25" x2="36.25" x3="36.53" y1="60.96" y2="60.47" y3="60.19"/>
+ <curve x1="36.53" x2="36.53" x3="36.59" y1="60.19" y2="60.19" y3="60.07"/>
+ <curve x1="36.88" x2="37.3" x3="37.64" y1="59.79" y2="59.79" y3="60.07"/>
+ <curve x1="37.64" x2="37.64" x3="39.24" y1="60.07" y2="60.07" y3="61.81"/>
+ <curve x1="39.24" x2="39.24" x3="39.24" y1="61.81" y2="61.81" y3="57.2"/>
+ <curve x1="36.59" x2="33.89" x3="32.29" y1="59.65" y2="61.52" y3="61.52"/>
+ <curve x1="32.29" x2="32.29" x3="32.29" y1="61.52" y2="61.52" y3="61.52"/>
+ <curve x1="31.74" x2="31.4" x3="31.26" y1="61.52" y2="61.3" y3="61.1"/>
+ <curve x1="30.49" x2="30.83" x3="32.29" y1="60.33" y2="58.74" y3="56.37"/>
+ <curve x1="33.06" x2="33.96" x3="35.08" y1="55.2" y2="53.95" y3="52.62"/>
+ <curve x1="35.08" x2="35.08" x3="30.49" y1="52.62" y2="52.62" y3="52.62"/>
+ <curve x1="30.49" x2="30.49" x3="32.08" y1="52.62" y2="52.62" y3="54.29"/>
+ <curve x1="32.37" x2="32.37" x3="32.08" y1="54.57" y2="55.06" y3="55.34"/>
+ <curve x1="32.08" x2="32.08" x3="32.02" y1="55.34" y2="55.34" y3="55.47"/>
+ <curve x1="31.74" x2="31.26" x3="30.97" y1="55.75" y2="55.75" y3="55.47"/>
+ <curve x1="30.97" x2="30.97" x3="28.12" y1="55.47" y2="55.47" y3="52.49"/>
+ <curve x1="28.12" x2="28.12" x3="28.06" y1="52.41" y2="52.41" y3="52.41"/>
+ <curve x1="27.92" x2="27.78" x3="27.78" y1="52.27" y2="52.07" y3="51.86"/>
+ <curve x1="27.78" x2="27.78" x3="27.78" y1="51.86" y2="51.86" y3="51.65"/>
+ <curve x1="27.78" x2="27.92" x3="27.98" y1="51.5" y2="51.3" y3="51.16"/>
+ <curve x1="28.06" x2="28.06" x3="28.12" y1="51.1" y2="51.1" y3="51.02"/>
+ <curve x1="28.12" x2="28.12" x3="30.97" y1="51.02" y2="51.02" y3="48.03"/>
+ <curve x1="31.26" x2="31.74" x3="32.02" y1="47.76" y2="47.76" y3="48.03"/>
+ <curve x1="32.02" x2="32.02" x3="32.08" y1="48.03" y2="48.03" y3="48.17"/>
+ <curve x1="32.37" x2="32.37" x3="32.08" y1="48.45" y2="48.94" y3="49.22"/>
+ <curve x1="32.08" x2="32.08" x3="30.43" y1="49.22" y2="49.22" y3="50.96"/>
+ <curve x1="30.43" x2="30.43" x3="34.79" y1="50.96" y2="50.96" y3="50.96"/>
+ <curve x1="33.82" x2="32.91" x3="32.29" y1="49.77" y2="48.59" y3="47.48"/>
+ <curve x1="30.83" x2="30.49" x3="31.26" y1="45.12" y2="43.52" y3="42.75"/>
+ <curve x1="31.4" x2="31.74" x3="32.29" y1="42.55" y2="42.33" y3="42.33"/>
+ <curve x1="33.89" x2="36.59" x3="39.24" y1="42.33" y2="44.21" y3="46.65"/>
+ <curve x1="39.24" x2="39.24" x3="39.24" y1="46.65" y2="46.65" y3="41.7"/>
+ <curve x1="39.24" x2="39.24" x3="37.64" y1="41.7" y2="41.7" y3="43.38"/>
+ <curve x1="37.3" x2="36.88" x3="36.59" y1="43.72" y2="43.72" y3="43.38"/>
+ <curve x1="36.59" x2="36.59" x3="36.53" y1="43.38" y2="43.38" y3="43.3"/>
+ <curve x1="36.25" x2="36.25" x3="36.53" y1="43.03" y2="42.55" y3="42.27"/>
+ <curve x1="36.53" x2="36.53" x3="39.38" y1="42.27" y2="42.27" y3="39.28"/>
+ <curve x1="39.44" x2="39.44" x3="39.52" y1="39.28" y2="39.2" y3="39.14"/>
+ <curve x1="39.66" x2="39.79" x3="40.01" y1="39.07" y2="38.93" y3="38.93"/>
+ <curve x1="40.01" x2="40.01" x3="40.15" y1="38.93" y2="38.93" y3="38.93"/>
+ <curve x1="40.35" x2="40.55" x3="40.7" y1="38.93" y2="39.07" y3="39.28"/>
+ <curve x1="40.7" x2="40.7" x3="40.7" y1="39.28" y2="39.28" y3="39.28"/>
+ <curve x1="40.7" x2="40.7" x3="43.61" y1="39.28" y2="39.28" y3="42.27"/>
+ <curve x1="43.89" x2="43.89" x3="43.61" y1="42.55" y2="43.03" y3="43.3"/>
+ <curve x1="43.61" x2="43.61" x3="43.48" y1="43.3" y2="43.3" y3="43.38"/>
+ <curve x1="43.2" x2="42.78" x3="42.5" y1="43.72" y2="43.72" y3="43.38"/>
+ <curve x1="42.5" x2="42.5" x3="40.84" y1="43.38" y2="43.38" y3="41.7"/>
+ <curve x1="40.84" x2="40.84" x3="40.84" y1="41.7" y2="41.7" y3="46.51"/>
+ <curve x1="43.54" x2="46.19" x3="47.79" y1="44.15" y2="42.33" y3="42.33"/>
+ <curve x1="48.34" x2="48.62" x3="48.82" y1="42.33" y2="42.55" y3="42.75"/>
+ <curve x1="49.59" x2="49.24" x3="47.71" y1="43.52" y2="45.12" y3="47.48"/>
+ <curve x1="47.08" x2="46.25" x3="45.28" y1="48.59" y2="49.77" y3="50.96"/>
+ <curve x1="45.28" x2="45.28" x3="49.73" y1="50.96" y2="50.96" y3="50.96"/>
+ <curve x1="49.73" x2="49.73" x3="47.99" y1="50.96" y2="50.96" y3="49.22"/>
+ <curve x1="47.71" x2="47.71" x3="47.99" y1="48.94" y2="48.45" y3="48.17"/>
+ <curve x1="47.99" x2="47.99" x3="48.13" y1="48.17" y2="48.17" y3="48.03"/>
+ <curve x1="48.41" x2="48.82" x3="49.1" y1="47.76" y2="47.76" y3="48.03"/>
+ <curve x1="49.1" x2="49.1" x3="51.95" y1="48.03" y2="48.03" y3="51.02"/>
+ <curve x1="52.01" x2="52.01" x3="52.09" y1="51.1" y2="51.1" y3="51.16"/>
+ <close/>
+ <move x="49.3" y="23.71"/>
+ <line x="49.3" y="23.71"/>
+ <line x="49.3" y="21.13"/>
+ <line x="54.45" y="26.28"/>
+ <line x="54.45" y="26.28"/>
+ <line x="49.3" y="31.15"/>
+ <line x="49.3" y="28.64"/>
+ <line x="40" y="28.64"/>
+ <line x="40" y="23.71"/>
+ <line x="49.3" y="23.71"/>
+ <close/>
+ <move x="49.3" y="20.02"/>
+ <line x="49.3" y="20.02"/>
+ <line x="49.3" y="17.52"/>
+ <line x="40" y="17.52"/>
+ <line x="40" y="12.45"/>
+ <line x="49.3" y="12.45"/>
+ <line x="49.3" y="10.01"/>
+ <line x="54.45" y="14.95"/>
+ <line x="54.45" y="15.16"/>
+ <line x="49.3" y="20.02"/>
+ <close/>
+ <move x="30.77" y="15.57"/>
+ <line x="30.77" y="15.57"/>
+ <line x="30.77" y="18.01"/>
+ <line x="40.01" y="18.01"/>
+ <line x="40.01" y="23.22"/>
+ <line x="30.77" y="23.22"/>
+ <line x="30.77" y="25.59"/>
+ <line x="25.56" y="20.58"/>
+ <line x="25.56" y="20.58"/>
+ <line x="30.77" y="15.57"/>
+ <close/>
+ <move x="30.77" y="4.44"/>
+ <line x="30.77" y="4.44"/>
+ <line x="30.77" y="7.03"/>
+ <line x="40.01" y="7.03"/>
+ <line x="40.01" y="11.96"/>
+ <line x="30.77" y="11.96"/>
+ <line x="30.77" y="14.46"/>
+ <line x="25.56" y="9.59"/>
+ <line x="25.56" y="9.39"/>
+ <line x="30.77" y="4.44"/>
+ <close/>
+ <move x="7.78" y="34.48"/>
+ <line x="7.78" y="34.48"/>
+ <line x="71.12" y="34.48"/>
+ <line x="71.12" y="35.6"/>
+ <line x="7.78" y="35.6"/>
+ <line x="7.78" y="34.48"/>
+ <close/>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.47"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.47"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="phone" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="60.97" y="20.72"/>
+ <curve x1="60.97" x2="60.14" x3="59.1" y1="19.75" y2="18.9" y3="18.9"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="18.9" y2="18.9" y3="18.9"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="18.9" y2="18.9" y3="18.9"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="18.9" y2="18.9" y3="18.9"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="18.9" y2="18.9" y3="18.9"/>
+ <curve x1="53.76" x2="52.93" x3="52.93" y1="18.9" y2="19.67" y3="20.72"/>
+ <curve x1="52.93" x2="53.76" x3="54.87" y1="21.83" y2="22.6" y3="22.6"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="22.6" y2="22.6" y3="22.6"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="22.6" y2="22.6" y3="22.6"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="22.6" y2="22.6" y3="22.6"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="22.6" y2="22.6" y3="22.6"/>
+ <curve x1="60.14" x2="60.97" x3="60.97" y1="22.6" y2="21.75" y3="20.72"/>
+ <close/>
+ <move x="60.97" y="27.33"/>
+ <curve x1="60.97" x2="60.14" x3="59.1" y1="26.28" y2="25.45" y3="25.45"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="25.45" y2="25.45" y3="25.45"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="25.45" y2="25.45" y3="25.45"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="25.45" y2="25.45" y3="25.45"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="25.45" y2="25.45" y3="25.45"/>
+ <curve x1="53.76" x2="52.93" x3="52.93" y1="25.45" y2="26.28" y3="27.33"/>
+ <curve x1="52.93" x2="53.76" x3="54.87" y1="28.36" y2="29.19" y3="29.19"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="29.19" y2="29.19" y3="29.19"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="29.19" y2="29.19" y3="29.19"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="29.19" y2="29.19" y3="29.19"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="29.19" y2="29.19" y3="29.19"/>
+ <curve x1="60.14" x2="60.97" x3="60.97" y1="29.13" y2="28.3" y3="27.33"/>
+ <close/>
+ <move x="60.97" y="33.85"/>
+ <curve x1="60.97" x2="60.14" x3="59.1" y1="32.88" y2="32.05" y3="31.97"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="31.97" y2="31.97" y3="31.97"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="31.97" y2="31.97" y3="31.97"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="31.97" y2="31.97" y3="31.97"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="31.97" y2="31.97" y3="31.97"/>
+ <curve x1="53.76" x2="52.93" x3="52.93" y1="31.97" y2="32.8" y3="33.85"/>
+ <curve x1="52.93" x2="53.76" x3="54.87" y1="34.9" y2="35.73" y3="35.73"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="35.73" y2="35.73" y3="35.73"/>
+ <curve x1="54.87" x2="54.87" x3="54.87" y1="35.73" y2="35.73" y3="35.73"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="35.73" y2="35.73" y3="35.73"/>
+ <curve x1="59.1" x2="59.1" x3="59.1" y1="35.73" y2="35.73" y3="35.73"/>
+ <curve x1="60.14" x2="60.97" x3="60.97" y1="35.73" y2="34.9" y3="33.85"/>
+ <close/>
+ <move x="49.17" y="19.33"/>
+ <curve x1="30.41" x2="30.41" x3="30.41" y1="19.33" y2="19.33" y3="19.33"/>
+ <curve x1="30.41" x2="30.41" x3="30.41" y1="36.15" y2="36.15" y3="36.15"/>
+ <curve x1="49.17" x2="49.17" x3="49.17" y1="36.15" y2="36.15" y3="36.15"/>
+ <line x="49.17" y="19.33"/>
+ <close/>
+ <move x="45.41" y="42.4"/>
+ <curve x1="45.41" x2="44.52" x3="43.47" y1="41.37" y2="40.46" y3="40.46"/>
+ <curve x1="42.36" x2="41.53" x3="41.53" y1="40.46" y2="41.37" y3="42.4"/>
+ <curve x1="41.53" x2="42.36" x3="43.47" y1="43.51" y2="44.34" y3="44.34"/>
+ <curve x1="44.52" x2="45.41" x3="45.41" y1="44.34" y2="43.51" y3="42.4"/>
+ <close/>
+ <move x="39.59" y="42.4"/>
+ <curve x1="39.59" x2="38.68" x3="37.57" y1="41.37" y2="40.46" y3="40.46"/>
+ <curve x1="36.54" x2="35.63" x3="35.63" y1="40.46" y2="41.37" y3="42.4"/>
+ <curve x1="35.63" x2="36.54" x3="37.57" y1="43.51" y2="44.34" y3="44.34"/>
+ <curve x1="38.68" x2="39.59" x3="39.59" y1="44.34" y2="43.51" y3="42.4"/>
+ <close/>
+ <move x="33.69" y="42.4"/>
+ <curve x1="33.69" x2="32.86" x3="31.75" y1="41.37" y2="40.46" y3="40.46"/>
+ <curve x1="30.7" x2="29.79" x3="29.79" y1="40.46" y2="41.37" y3="42.4"/>
+ <curve x1="29.79" x2="30.7" x3="31.75" y1="43.51" y2="44.34" y3="44.34"/>
+ <curve x1="32.86" x2="33.69" x3="33.69" y1="44.34" y2="43.51" y3="42.4"/>
+ <close/>
+ <move x="64.45" y="18.56"/>
+ <curve x1="64.45" x2="64.45" x3="64.45" y1="50.46" y2="50.46" y3="50.46"/>
+ <curve x1="64.45" x2="63.14" x3="61.54" y1="52.06" y2="53.39" y3="53.39"/>
+ <curve x1="29.3" x2="29.3" x3="29.3" y1="53.39" y2="53.39" y3="53.39"/>
+ <curve x1="27.71" x2="26.39" x3="26.39" y1="53.39" y2="52.06" y3="50.46"/>
+ <curve x1="26.39" x2="26.39" x3="26.39" y1="18.56" y2="18.56" y3="18.56"/>
+ <curve x1="26.39" x2="27.71" x3="29.3" y1="16.9" y2="15.57" y3="15.57"/>
+ <curve x1="61.54" x2="61.54" x3="61.54" y1="15.57" y2="15.57" y3="15.57"/>
+ <curve x1="63.14" x2="64.45" x3="64.45" y1="15.57" y2="16.9" y3="18.56"/>
+ <close/>
+ <move x="24.51" y="21.34"/>
+ <curve x1="24.51" x2="24.51" x3="24.51" y1="47.47" y2="47.47" y3="47.47"/>
+ <curve x1="24.51" x2="21.88" x3="18.61" y1="50.75" y2="53.31" y3="53.31"/>
+ <curve x1="18.13" x2="18.13" x3="18.13" y1="53.31" y2="53.31" y3="53.31"/>
+ <curve x1="14.87" x2="12.22" x3="12.22" y1="53.31" y2="50.75" y3="47.47"/>
+ <curve x1="12.22" x2="12.22" x3="12.22" y1="21.34" y2="21.34" y3="21.34"/>
+ <curve x1="12.22" x2="14.16" x3="16.73" y1="18.56" y2="16.27" y3="15.71"/>
+ <curve x1="16.73" x2="16.73" x3="16.73" y1="23.43" y2="23.43" y3="23.43"/>
+ <curve x1="16.73" x2="17.44" x3="18.27" y1="24.26" y2="24.96" y3="24.96"/>
+ <curve x1="18.47" x2="18.47" x3="18.47" y1="24.96" y2="24.96" y3="24.96"/>
+ <curve x1="19.3" x2="20" x3="20" y1="24.96" y2="24.26" y3="23.43"/>
+ <curve x1="20" x2="20" x3="20" y1="15.71" y2="15.71" y3="15.71"/>
+ <curve x1="22.57" x2="24.51" x3="24.51" y1="16.27" y2="18.56" y3="21.34"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="86.34" name="radware" strokewidth="inherit" w="100">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="74.36" y="35.53"/>
+ <curve x1="79.13" x2="82.01" x3="82.01" y1="35.53" y2="31.51" y3="27.93"/>
+ <curve x1="82.01" x2="77.66" x3="74.42" y1="22.82" y2="20.13" y3="20.13"/>
+ <curve x1="69.81" x2="66.67" x3="66.67" y1="20.13" y2="23.9" y3="27.99"/>
+ <curve x1="66.67" x2="70.08" x3="74.36" y1="31.98" y2="35.53" y3="35.53"/>
+ <close/>
+ <move x="58.37" y="35.53"/>
+ <curve x1="63.14" x2="66.02" x3="66.02" y1="35.53" y2="31.51" y3="27.93"/>
+ <curve x1="66.02" x2="61.67" x3="58.43" y1="22.82" y2="20.13" y3="20.13"/>
+ <curve x1="53.82" x2="50.68" x3="50.68" y1="20.13" y2="23.9" y3="27.99"/>
+ <curve x1="50.68" x2="54.09" x3="58.37" y1="31.98" y2="35.53" y3="35.53"/>
+ <close/>
+ <move x="58.37" y="51.52"/>
+ <curve x1="63.14" x2="66.02" x3="66.02" y1="51.52" y2="47.5" y3="43.92"/>
+ <curve x1="66.02" x2="61.67" x3="58.43" y1="38.82" y2="36.13" y3="36.13"/>
+ <curve x1="53.82" x2="50.68" x3="50.68" y1="36.13" y2="39.9" y3="43.98"/>
+ <curve x1="50.68" x2="54.09" x3="58.37" y1="47.97" y2="51.52" y3="51.52"/>
+ <close/>
+ <move x="26.14" y="34.08"/>
+ <curve x1="22.28" x2="19.99" x3="19.99" y1="34.08" y2="30.64" y3="27.78"/>
+ <curve x1="19.99" x2="23.19" x3="26.23" y1="24.13" y2="21.62" y3="21.62"/>
+ <curve x1="28.43" x2="32.45" x3="32.45" y1="21.62" y2="23.52" y3="28"/>
+ <curve x1="32.45" x2="29.98" x3="26.14" y1="30.75" y2="34.08" y3="34.08"/>
+ <close/>
+ <move x="26.22" y="35.53"/>
+ <curve x1="30.99" x2="33.87" x3="33.87" y1="35.53" y2="31.51" y3="27.93"/>
+ <curve x1="33.87" x2="29.52" x3="26.28" y1="22.82" y2="20.13" y3="20.13"/>
+ <curve x1="21.67" x2="18.53" x3="18.53" y1="20.13" y2="23.9" y3="27.99"/>
+ <curve x1="18.53" x2="21.94" x3="26.22" y1="31.98" y2="35.53" y3="35.53"/>
+ <close/>
+ <move x="42.31" y="34.08"/>
+ <curve x1="38.45" x2="36.16" x3="36.16" y1="34.08" y2="30.64" y3="27.78"/>
+ <curve x1="36.16" x2="39.36" x3="42.4" y1="24.13" y2="21.62" y3="21.62"/>
+ <curve x1="44.6" x2="48.62" x3="48.62" y1="21.62" y2="23.52" y3="28"/>
+ <curve x1="48.62" x2="46.15" x3="42.31" y1="30.75" y2="34.08" y3="34.08"/>
+ <close/>
+ <move x="42.39" y="35.53"/>
+ <curve x1="47.16" x2="50.04" x3="50.04" y1="35.53" y2="31.51" y3="27.93"/>
+ <curve x1="50.04" x2="45.69" x3="42.45" y1="22.82" y2="20.13" y3="20.13"/>
+ <curve x1="37.84" x2="34.7" x3="34.7" y1="20.13" y2="23.9" y3="27.99"/>
+ <curve x1="34.7" x2="38.11" x3="42.39" y1="31.98" y2="35.53" y3="35.53"/>
+ <close/>
+ <move x="74.29" y="50.08"/>
+ <curve x1="70.42" x2="68.14" x3="68.14" y1="50.08" y2="46.63" y3="43.77"/>
+ <curve x1="68.14" x2="71.33" x3="74.37" y1="40.12" y2="37.62" y3="37.62"/>
+ <curve x1="76.58" x2="80.6" x3="80.6" y1="37.62" y2="39.52" y3="43.99"/>
+ <curve x1="80.6" x2="78.13" x3="74.29" y1="46.74" y2="50.08" y3="50.08"/>
+ <close/>
+ <move x="74.36" y="51.52"/>
+ <curve x1="79.13" x2="82.01" x3="82.01" y1="51.52" y2="47.5" y3="43.92"/>
+ <curve x1="82.01" x2="77.66" x3="74.42" y1="38.82" y2="36.13" y3="36.13"/>
+ <curve x1="69.81" x2="66.67" x3="66.67" y1="36.13" y2="39.9" y3="43.98"/>
+ <curve x1="66.67" x2="70.08" x3="74.36" y1="47.97" y2="51.52" y3="51.52"/>
+ <close/>
+ <move x="58.37" y="67.41"/>
+ <curve x1="63.14" x2="66.02" x3="66.02" y1="67.41" y2="63.38" y3="59.8"/>
+ <curve x1="66.02" x2="61.67" x3="58.43" y1="54.7" y2="52.01" y3="52.01"/>
+ <curve x1="53.82" x2="50.68" x3="50.68" y1="52.01" y2="55.78" y3="59.86"/>
+ <curve x1="50.68" x2="54.09" x3="58.37" y1="63.86" y2="67.41" y3="67.41"/>
+ <close/>
+ <move x="42.31" y="65.96"/>
+ <curve x1="38.45" x2="36.16" x3="36.16" y1="65.96" y2="62.51" y3="59.65"/>
+ <curve x1="36.16" x2="39.36" x3="42.4" y1="56" y2="53.5" y3="53.5"/>
+ <curve x1="44.6" x2="48.62" x3="48.62" y1="53.5" y2="55.4" y3="59.87"/>
+ <curve x1="48.62" x2="46.15" x3="42.31" y1="62.62" y2="65.96" y3="65.96"/>
+ <close/>
+ <move x="42.39" y="67.41"/>
+ <curve x1="47.16" x2="50.04" x3="50.04" y1="67.41" y2="63.38" y3="59.8"/>
+ <curve x1="50.04" x2="45.69" x3="42.45" y1="54.7" y2="52.01" y3="52.01"/>
+ <curve x1="37.84" x2="34.7" x3="34.7" y1="52.01" y2="55.78" y3="59.86"/>
+ <curve x1="34.7" x2="38.11" x3="42.39" y1="63.86" y2="67.41" y3="67.41"/>
+ <close/>
+ <move x="24.74" y="86.34"/>
+ <line x="0" y="43"/>
+ <line x="24.66" y="0"/>
+ <line x="75.28" y="0"/>
+ <line x="100" y="43"/>
+ <line x="75.27" y="86.34"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="router" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.96"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.96"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ <move x="35.63" y="17.93"/>
+ <line x="35.97" y="17.93"/>
+ <curve x1="36.94" x2="37.77" x3="37.77" y1="17.93" y2="18.76" y3="19.81"/>
+ <curve x1="37.77" x2="37.77" x3="37.77" y1="19.81" y2="19.81" y3="30.79"/>
+ <curve x1="37.77" x2="37.77" x3="37.77" y1="30.87" y2="30.93" y3="31.01"/>
+ <curve x1="37.77" x2="37.65" x3="37.23" y1="31.55" y2="32.12" y3="32.53"/>
+ <curve x1="37.23" x2="37.23" x3="37.02" y1="32.53" y2="32.53" y3="32.74"/>
+ <curve x1="36.66" x2="36.18" x3="35.77" y1="33.15" y2="33.29" y3="33.37"/>
+ <curve x1="35.63" x2="35.49" x3="35.35" y1="33.37" y2="33.37" y3="33.37"/>
+ <curve x1="35.35" x2="35.35" x3="25" y1="33.37" y2="33.37" y3="33.37"/>
+ <curve x1="24.03" x2="23.2" x3="23.2" y1="33.37" y2="32.53" y3="31.49"/>
+ <curve x1="23.2" x2="23.2" x3="23.2" y1="31.49" y2="31.49" y3="31.07"/>
+ <curve x1="23.2" x2="24.03" x3="25" y1="30.04" y2="29.19" y3="29.19"/>
+ <curve x1="25" x2="25" x3="31.04" y1="29.19" y2="29.19" y3="29.19"/>
+ <curve x1="31.04" x2="31.04" x3="20.77" y1="29.19" y2="29.19" y3="18.28"/>
+ <curve x1="20" x2="20" x3="20.77" y1="17.51" y2="16.26" y3="15.51"/>
+ <curve x1="20.77" x2="20.77" x3="20.98" y1="15.51" y2="15.51" y3="15.23"/>
+ <curve x1="21.74" x2="22.85" x3="23.54" y1="14.46" y2="14.46" y3="15.23"/>
+ <curve x1="23.54" x2="23.54" x3="33.83" y1="15.23" y2="15.23" y3="26.14"/>
+ <curve x1="33.83" x2="33.83" x3="33.83" y1="26.14" y2="26.14" y3="19.81"/>
+ <curve x1="33.83" x2="34.58" x3="35.63" y1="18.76" y2="17.93" y3="17.93"/>
+ <close/>
+ <move x="57.71" y="40.04"/>
+ <curve x1="57.71" x2="56.88" x3="55.77" y1="41.09" y2="41.85" y3="41.85"/>
+ <curve x1="49.52" x2="49.52" x3="49.52" y1="41.85" y2="41.85" y3="41.85"/>
+ <curve x1="60.42" x2="60.42" x3="60.42" y1="52.14" y2="52.14" y3="52.14"/>
+ <curve x1="61.12" x2="61.12" x3="60.42" y1="52.83" y2="54.02" y3="54.71"/>
+ <curve x1="60.15" x2="60.15" x3="60.15" y1="54.91" y2="54.91" y3="54.91"/>
+ <curve x1="59.38" x2="58.13" x3="57.36" y1="55.61" y2="55.61" y3="54.91"/>
+ <curve x1="46.47" x2="46.47" x3="46.47" y1="44.62" y2="44.62" y3="44.62"/>
+ <curve x1="46.47" x2="46.47" x3="46.47" y1="50.68" y2="50.68" y3="50.68"/>
+ <curve x1="46.47" x2="45.56" x3="44.59" y1="51.65" y2="52.48" y3="52.48"/>
+ <curve x1="44.17" x2="44.17" x3="44.17" y1="52.48" y2="52.48" y3="52.48"/>
+ <curve x1="43.05" x2="42.22" x3="42.22" y1="52.48" y2="51.65" y3="50.68"/>
+ <curve x1="42.22" x2="42.22" x3="42.22" y1="40.38" y2="40.38" y3="40.38"/>
+ <curve x1="42.22" x2="42.22" x3="42.29" y1="40.18" y2="40.04" y3="39.9"/>
+ <curve x1="42.37" x2="42.51" x3="42.85" y1="39.49" y2="39" y3="38.64"/>
+ <curve x1="43.13" x2="43.13" x3="43.13" y1="38.44" y2="38.44" y3="38.44"/>
+ <curve x1="43.54" x2="44.1" x3="44.65" y1="38.02" y2="37.81" y3="37.89"/>
+ <curve x1="44.73" x2="44.79" x3="44.87" y1="37.89" y2="37.89" y3="37.89"/>
+ <curve x1="55.77" x2="55.77" x3="55.77" y1="37.89" y2="37.89" y3="37.89"/>
+ <curve x1="56.88" x2="57.71" x3="57.71" y1="37.89" y2="38.72" y3="39.69"/>
+ <line x="57.71" y="40.04"/>
+ <close/>
+ <move x="34.37" y="53.45"/>
+ <line x="34.37" y="53.8"/>
+ <curve x1="34.37" x2="33.54" x3="32.43" y1="54.85" y2="55.62" y3="55.62"/>
+ <curve x1="32.43" x2="32.43" x3="21.54" y1="55.62" y2="55.62" y3="55.62"/>
+ <curve x1="21.54" x2="21.4" x3="21.4" y1="55.62" y2="55.62" y3="55.62"/>
+ <curve x1="20.83" x2="20.21" x3="19.86" y1="55.62" y2="55.47" y3="55.05"/>
+ <curve x1="19.86" x2="19.86" x3="19.58" y1="55.05" y2="55.05" y3="54.85"/>
+ <curve x1="19.17" x2="19.03" x3="19.03" y1="54.5" y2="54.02" y3="53.6"/>
+ <curve x1="18.95" x2="18.89" x3="18.89" y1="53.45" y2="53.31" y3="53.11"/>
+ <curve x1="18.89" x2="18.89" x3="18.89" y1="53.11" y2="53.11" y3="42.82"/>
+ <curve x1="18.89" x2="19.8" x3="20.83" y1="41.78" y2="41.01" y3="41.01"/>
+ <curve x1="20.83" x2="20.83" x3="21.25" y1="41.01" y2="41.01" y3="41.01"/>
+ <curve x1="22.29" x2="23.13" x3="23.13" y1="41.01" y2="41.78" y3="42.82"/>
+ <curve x1="23.13" x2="23.13" x3="23.13" y1="42.82" y2="42.82" y3="48.87"/>
+ <curve x1="23.13" x2="23.13" x3="34.09" y1="48.87" y2="48.87" y3="38.58"/>
+ <curve x1="34.86" x2="36.05" x3="36.82" y1="37.82" y2="37.82" y3="38.58"/>
+ <curve x1="36.82" x2="36.82" x3="37.08" y1="38.58" y2="38.58" y3="38.79"/>
+ <curve x1="37.79" x2="37.79" x3="37.08" y1="39.55" y2="40.66" y3="41.35"/>
+ <curve x1="37.08" x2="37.08" x3="26.19" y1="41.35" y2="41.35" y3="51.65"/>
+ <curve x1="26.19" x2="26.19" x3="32.43" y1="51.65" y2="51.65" y3="51.65"/>
+ <curve x1="33.54" x2="34.37" x3="34.37" y1="51.65" y2="52.48" y3="53.45"/>
+ <close/>
+ <move x="58.76" y="29.06"/>
+ <curve x1="57.71" x2="56.88" x3="56.88" y1="29.06" y2="28.3" y3="27.25"/>
+ <curve x1="56.88" x2="56.88" x3="56.88" y1="21.35" y2="21.35" y3="21.35"/>
+ <curve x1="45.97" x2="45.97" x3="45.97" y1="31.55" y2="31.55" y3="31.55"/>
+ <curve x1="45.22" x2="44.03" x3="43.26" y1="32.26" y2="32.26" y3="31.55"/>
+ <curve x1="43" x2="43" x3="43" y1="31.35" y2="31.35" y3="31.35"/>
+ <curve x1="42.23" x2="42.23" x3="43" y1="30.58" y2="29.47" y3="28.78"/>
+ <curve x1="53.95" x2="53.95" x3="53.95" y1="18.42" y2="18.42" y3="18.42"/>
+ <curve x1="47.5" x2="47.5" x3="47.5" y1="18.42" y2="18.42" y3="18.42"/>
+ <curve x1="46.46" x2="45.63" x3="45.63" y1="18.42" y2="17.65" y3="16.68"/>
+ <curve x1="45.63" x2="45.63" x3="45.63" y1="16.27" y2="16.27" y3="16.27"/>
+ <curve x1="45.63" x2="46.46" x3="47.5" y1="15.29" y2="14.46" y3="14.46"/>
+ <curve x1="58.48" x2="58.48" x3="58.48" y1="14.46" y2="14.46" y3="14.46"/>
+ <curve x1="58.68" x2="58.82" x3="58.96" y1="14.46" y2="14.54" y3="14.6"/>
+ <curve x1="59.45" x2="59.87" x3="60.22" y1="14.6" y2="14.74" y3="15.08"/>
+ <curve x1="60.48" x2="60.48" x3="60.48" y1="15.36" y2="15.36" y3="15.36"/>
+ <curve x1="60.98" x2="61.11" x3="61.05" y1="15.71" y2="16.27" y3="16.82"/>
+ <curve x1="61.05" x2="61.11" x3="61.11" y1="16.82" y2="16.9" y3="16.96"/>
+ <curve x1="61.11" x2="61.11" x3="61.11" y1="27.25" y2="27.25" y3="27.25"/>
+ <curve x1="61.11" x2="60.22" x3="59.17" y1="28.3" y2="29.06" y3="29.06"/>
+ <line x="58.76" y="29.06"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.47" name="server 1" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.33" y="47.88"/>
+ <curve x1="39.85" x2="39.54" x3="39.54" y1="47.88" y2="48.15" y3="48.63"/>
+ <line x="39.54" y="49.26"/>
+ <line x="39.54" y="49.57"/>
+ <line x="39.54" y="49.88"/>
+ <line x="39.54" y="50.47"/>
+ <curve x1="39.54" x2="39.85" x3="40.33" y1="50.78" y2="51.1" y3="51.1"/>
+ <curve x1="40.64" x2="40.95" x3="40.95" y1="51.1" y2="50.78" y3="50.47"/>
+ <line x="40.95" y="49.57"/>
+ <line x="40.95" y="49.26"/>
+ <line x="40.95" y="48.63"/>
+ <curve x1="40.95" x2="40.95" x3="40.79" y1="48.47" y2="48.3" y3="48.15"/>
+ <curve x1="40.64" x2="40.48" x3="40.33" y1="47.98" y2="47.88" y3="47.88"/>
+ <close/>
+ <move x="40.33" y="39.95"/>
+ <curve x1="38.79" x2="37.52" x3="37.52" y1="39.95" y2="41.21" y3="42.74"/>
+ <line x="37.52" y="44.91"/>
+ <line x="43.13" y="44.91"/>
+ <line x="43.13" y="42.74"/>
+ <curve x1="43.13" x2="41.86" x3="40.33" y1="41.21" y2="39.95" y3="39.95"/>
+ <close/>
+ <move x="40.33" y="38.57"/>
+ <curve x1="42.64" x2="44.5" x3="44.5" y1="38.57" y2="40.59" y3="42.74"/>
+ <line x="44.5" y="44.6"/>
+ <line x="44.5" y="44.91"/>
+ <line x="45.57" y="44.91"/>
+ <curve x1="45.74" x2="45.88" x3="45.88" y1="44.91" y2="44.91" y3="45.08"/>
+ <line x="45.88" y="45.39"/>
+ <line x="45.88" y="47.08"/>
+ <line x="45.88" y="47.56"/>
+ <line x="45.88" y="48.63"/>
+ <line x="45.88" y="49.57"/>
+ <line x="45.88" y="52.48"/>
+ <line x="45.88" y="53.27"/>
+ <line x="45.88" y="53.89"/>
+ <curve x1="45.88" x2="45.74" x3="45.57" y1="54.06" y2="54.17" y3="54.17"/>
+ <line x="41.4" y="54.17"/>
+ <line x="41.07" y="54.17"/>
+ <line x="37.2" y="54.17"/>
+ <line x="36.14" y="54.17"/>
+ <line x="34.87" y="54.17"/>
+ <curve x1="34.7" x2="34.7" x3="34.7" y1="54.17" y2="54.06" y3="53.89"/>
+ <line x="34.7" y="45.08"/>
+ <curve x1="34.7" x2="34.7" x3="34.87" y1="44.91" y2="44.91" y3="44.91"/>
+ <line x="36.14" y="44.91"/>
+ <line x="36.14" y="42.74"/>
+ <curve x1="36.14" x2="38" x3="40.33" y1="40.59" y2="38.57" y3="38.57"/>
+ <close/>
+ <move x="39.12" y="27.08"/>
+ <line x="39.12" y="30.32"/>
+ <line x="41.53" y="30.32"/>
+ <line x="41.53" y="27.08"/>
+ <curve x1="42.87" x2="43.82" x3="43.82" y1="27.54" y2="28.78" y3="30.21"/>
+ <curve x1="43.82" x2="42.26" x3="40.33" y1="32.05" y2="33.56" y3="33.56"/>
+ <curve x1="38.35" x2="36.76" x3="36.76" y1="33.56" y2="32.05" y3="30.21"/>
+ <curve x1="36.76" x2="37.74" x3="39.12" y1="28.78" y2="27.54" y3="27.08"/>
+ <close/>
+ <move x="25" y="21.78"/>
+ <line x="25" y="59.47"/>
+ <curve x1="25" x2="26.05" x3="27.37" y1="60.78" y2="61.82" y3="61.82"/>
+ <line x="53.24" y="61.82"/>
+ <curve x1="54.55" x2="55.59" x3="55.59" y1="61.82" y2="60.78" y3="59.47"/>
+ <line x="55.59" y="21.78"/>
+ <line x="25" y="21.78"/>
+ <close/>
+ <move x="27.37" y="7.65"/>
+ <curve x1="26.06" x2="25" x3="25" y1="7.65" y2="8.72" y3="10.03"/>
+ <line x="25" y="21.2"/>
+ <line x="55.59" y="21.2"/>
+ <line x="55.59" y="10.03"/>
+ <curve x1="55.59" x2="54.55" x3="53.24" y1="8.71" y2="7.65" y3="7.65"/>
+ <line x="27.37" y="7.65"/>
+ <close/>
+ <move x="27.37" y="7.06"/>
+ <line x="53.24" y="7.06"/>
+ <curve x1="54.87" x2="56.18" x3="56.18" y1="7.06" y2="8.4" y3="10.03"/>
+ <line x="56.18" y="21.4"/>
+ <arc large-arc-flag="0" rx="0.29" ry="0.29" sweep-flag="1" x="56.18" x-axis-rotation="0" y="21.57"/>
+ <line x="56.18" y="59.47"/>
+ <curve x1="56.18" x2="54.96" x3="53.45" y1="61.01" y2="62.2" y3="62.32"/>
+ <arc large-arc-flag="0" rx="0.29" ry="0.29" sweep-flag="1" x="53.24" x-axis-rotation="0" y="62.41"/>
+ <line x="27.37" y="62.41"/>
+ <curve x1="25.74" x2="24.41" x3="24.41" y1="62.41" y2="61.1" y3="59.47"/>
+ <line x="24.41" y="21.78"/>
+ <arc large-arc-flag="1" rx="0.29" ry="0.29" sweep-flag="1" x="24.38" x-axis-rotation="0" y="21.2"/>
+ <arc large-arc-flag="0" rx="0.29" ry="0.29" sweep-flag="1" x="24.41" x-axis-rotation="0" y="21.2"/>
+ <line x="24.41" y="10.03"/>
+ <curve x1="24.41" x2="25.74" x3="27.37" y1="8.4" y2="7.06" y3="7.06"/>
+ <close/>
+ <move x="59.96" y="69.47"/>
+ <line x="80" y="34.65"/>
+ <line x="59.96" y="0"/>
+ <line x="20.06" y="0"/>
+ <line x="0" y="34.65"/>
+ <line x="20.06" y="69.47"/>
+ <line x="59.96" y="69.47"/>
+ <line x="59.96" y="69.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.48" name="server 2" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="39.11" y="27.08"/>
+ <line x="39.11" y="30.32"/>
+ <line x="41.53" y="30.32"/>
+ <line x="41.53" y="27.08"/>
+ <curve x1="42.86" x2="43.83" x3="43.83" y1="27.54" y2="28.78" y3="30.21"/>
+ <curve x1="43.83" x2="42.26" x3="40.34" y1="32.05" y2="33.56" y3="33.56"/>
+ <curve x1="38.35" x2="36.77" x3="36.77" y1="33.56" y2="32.05" y3="30.21"/>
+ <curve x1="36.77" x2="37.73" x3="39.11" y1="28.78" y2="27.54" y3="27.08"/>
+ <close/>
+ <move x="25.83" y="22.62"/>
+ <line x="25.83" y="59.46"/>
+ <curve x1="25.83" x2="26.49" x3="27.37" y1="60.33" y2="60.99" y3="60.99"/>
+ <line x="53.23" y="60.99"/>
+ <curve x1="54.11" x2="54.75" x3="54.75" y1="60.99" y2="60.34" y3="59.46"/>
+ <line x="54.75" y="22.62"/>
+ <line x="25.83" y="22.62"/>
+ <close/>
+ <move x="27.37" y="8.48"/>
+ <curve x1="26.51" x2="25.83" x3="25.83" y1="8.48" y2="9.17" y3="10.02"/>
+ <line x="25.83" y="20.36"/>
+ <line x="54.75" y="20.36"/>
+ <line x="54.75" y="10.02"/>
+ <curve x1="54.75" x2="54.09" x3="53.23" y1="9.16" y2="8.48" y3="8.48"/>
+ <line x="27.37" y="8.48"/>
+ <close/>
+ <move x="27.37" y="6.23"/>
+ <line x="53.23" y="6.23"/>
+ <curve x1="55.32" x2="57.01" x3="57.01" y1="6.23" y2="7.96" y3="10.02"/>
+ <line x="57.01" y="21.24"/>
+ <arc large-arc-flag="0" rx="1.13" ry="1.13" sweep-flag="1" x="57.01" x-axis-rotation="0" y="21.74"/>
+ <line x="57.01" y="59.46"/>
+ <curve x1="57.01" x2="55.68" x3="54.06" y1="61.22" y2="62.48" y3="62.9"/>
+ <arc large-arc-flag="0" rx="1.13" ry="1.13" sweep-flag="1" x="53.23" x-axis-rotation="0" y="63.24"/>
+ <line x="27.37" y="63.24"/>
+ <curve x1="25.3" x2="23.58" x3="23.58" y1="63.24" y2="61.55" y3="59.46"/>
+ <line x="23.58" y="10.02"/>
+ <curve x1="23.58" x2="25.28" x3="27.37" y1="7.95" y2="6.23" y3="6.23"/>
+ <close/>
+ <move x="59.97" y="69.48"/>
+ <line x="80" y="34.65"/>
+ <line x="59.97" y="0"/>
+ <line x="20.05" y="0"/>
+ <line x="0" y="34.65"/>
+ <line x="20.05" y="69.48"/>
+ <line x="59.97" y="69.48"/>
+ <line x="59.97" y="69.48"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="storage" strokewidth="inherit" w="80.14">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <curve x1="20.37" x2="19.85" x3="19.56" y1="0" y2="0.3" y3="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <curve x1="0" x2="0" x3="0.29" y1="34.33" y2="34.94" y3="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <curve x1="19.84" x2="20.37" x3="20.94" y1="69.1" y2="69.4" y3="69.41"/>
+ <line x="59.02" y="69.41"/>
+ <curve x1="59.38" x2="59.74" x3="60.05" y1="69.46" y2="69.39" y3="69.22"/>
+ <curve x1="60.09" x2="60.12" x3="60.16" y1="69.2" y2="69.18" y3="69.16"/>
+ <curve x1="60.45" x2="60.67" x3="60.8" y1="68.97" y2="68.7" y3="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <curve x1="80.14" x2="80.14" x3="79.86" y1="34.94" y2="34.33" y3="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <curve x1="60.38" x2="59.85" x3="59.28" y1="0.3" y2="0" y3="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="40.07" y="13.88"/>
+ <curve x1="30.27" x2="20.34" x3="20.34" y1="13.88" y2="16.15" y3="20.42"/>
+ <line x="20.34" y="28.82"/>
+ <line x="20.34" y="47.98"/>
+ <curve x1="20.34" x2="30.27" x3="40.07" y1="52.25" y2="54.46" y3="54.46"/>
+ <curve x1="49.87" x2="59.81" x3="59.81" y1="54.46" y2="52.25" y3="47.98"/>
+ <line x="59.81" y="28.82"/>
+ <line x="59.81" y="20.42"/>
+ <curve x1="59.81" x2="49.87" x3="40.07" y1="16.15" y2="13.88" y3="13.88"/>
+ <close/>
+ <move x="40.07" y="16.48"/>
+ <curve x1="50.61" x2="57.01" x3="57.01" y1="16.48" y2="19.02" y3="20.42"/>
+ <curve x1="57.01" x2="51.01" x3="40.07" y1="21.81" y2="24.43" y3="24.43"/>
+ <curve x1="29.15" x2="23.21" x3="23.21" y1="24.43" y2="21.81" y3="20.42"/>
+ <curve x1="23.21" x2="29.61" x3="40.07" y1="19.02" y2="16.48" y3="16.48"/>
+ <close/>
+ <move x="23.21" y="23.96"/>
+ <curve x1="26.8" x2="33.48" x3="40.07" y1="25.96" y2="26.95" y3="26.95"/>
+ <curve x1="46.75" x2="53.4" x3="57.01" y1="26.95" y2="25.96" y3="23.96"/>
+ <line x="57.01" y="28.82"/>
+ <curve x1="57.01" x2="51.01" x3="40.07" y1="30.16" y2="32.76" y3="32.76"/>
+ <curve x1="29.15" x2="23.21" x3="23.21" y1="32.76" y2="30.16" y3="28.82"/>
+ <line x="23.21" y="23.96"/>
+ <close/>
+ <move x="57.01" y="32.3"/>
+ <line x="57.01" y="38.43"/>
+ <curve x1="57.01" x2="51.01" x3="40.07" y1="39.77" y2="42.37" y3="42.37"/>
+ <curve x1="29.15" x2="23.21" x3="23.21" y1="42.37" y2="39.77" y3="38.43"/>
+ <line x="23.21" y="32.34"/>
+ <curve x1="26.86" x2="33.49" x3="40.07" y1="34.27" y2="35.24" y3="35.24"/>
+ <curve x1="46.7" x2="53.37" x3="57.01" y1="35.24" y2="34.26" y3="32.3"/>
+ <close/>
+ <move x="57.01" y="41.91"/>
+ <line x="57.01" y="47.98"/>
+ <curve x1="57.01" x2="51.01" x3="40.07" y1="49.24" y2="51.86" y3="51.86"/>
+ <curve x1="29.15" x2="23.21" x3="23.21" y1="51.86" y2="49.24" y3="47.98"/>
+ <line x="23.21" y="41.95"/>
+ <curve x1="26.86" x2="33.49" x3="40.07" y1="43.88" y2="44.85" y3="44.85"/>
+ <curve x1="46.7" x2="53.37" x3="57.01" y1="44.85" y2="43.87" y3="41.91"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="79.81" name="user" strokewidth="inherit" w="79.95">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40.53" y="28.81"/>
+ <curve x1="36.93" x2="33.89" x3="33.89" y1="28.81" y2="26.14" y3="21.87"/>
+ <curve x1="33.89" x2="36.72" x3="40.56" y1="18.21" y2="15.33" y3="15.33"/>
+ <curve x1="44.39" x2="46.97" x3="46.96" y1="15.33" y2="18.77" y3="22.27"/>
+ <curve x1="46.96" x2="43.99" x3="40.53" y1="26" y2="28.81" y3="28.81"/>
+ <close/>
+ <move x="32.15" y="65.89"/>
+ <line x="32.15" y="40.76"/>
+ <line x="30.82" y="40.78"/>
+ <line x="30.79" y="59.97"/>
+ <curve x1="30.79" x2="29.79" x3="27.9" y1="61.18" y2="62.6" y3="62.6"/>
+ <curve x1="26.43" x2="25.26" x3="25.29" y1="62.6" y2="61.56" y3="59.96"/>
+ <line x="25.29" y="37.82"/>
+ <curve x1="25.29" x2="29.44" x3="32.77" y1="33.84" y2="30.28" y3="30.28"/>
+ <line x="47.64" y="30.28"/>
+ <curve x1="51.59" x2="55.56" x3="55.56" y1="30.28" y2="33.86" y3="39.12"/>
+ <line x="55.47" y="59.55"/>
+ <curve x1="55.47" x2="54.51" x3="52.8" y1="61.49" y2="62.67" y3="62.67"/>
+ <curve x1="51.22" x2="50.06" x3="50.06" y1="62.67" y2="61.63" y3="59.66"/>
+ <line x="49.91" y="40.81"/>
+ <line x="48.6" y="40.8"/>
+ <line x="48.62" y="65.89"/>
+ <line x="41.06" y="65.9"/>
+ <line x="41.08" y="62.47"/>
+ <line x="39.75" y="62.44"/>
+ <line x="39.72" y="65.9"/>
+ <close/>
+ <move x="39.78" y="75.03"/>
+ <curve x1="60.69" x2="75.08" x3="75.08" y1="75.03" y2="58" y3="39.86"/>
+ <curve x1="75.08" x2="59.69" x3="39.77" y1="20.92" y2="4.83" y3="4.83"/>
+ <curve x1="21.37" x2="4.88" x3="4.88" y1="4.83" y2="19.89" y3="39.94"/>
+ <curve x1="4.88" x2="21.47" x3="39.78" y1="60.07" y2="75.03" y3="75.03"/>
+ <close/>
+ <move x="39.81" y="79.81"/>
+ <curve x1="19.67" x2="0" x3="0" y1="79.81" y2="63.82" y3="39.72"/>
+ <curve x1="0" x2="16.28" x3="39.72" y1="19.91" y2="0" y3="0"/>
+ <curve x1="62.77" x2="79.95" x3="79.95" y1="0" y2="18.43" y3="39.94"/>
+ <curve x1="79.95" x2="63.25" x3="39.81" y1="60.94" y2="79.81" y3="79.81"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="users" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="40" y="0"/>
+ <curve x1="18.09" x2="0.26" x3="0.04" y1="0" y2="17.75" y3="39.61"/>
+ <arc large-arc-flag="0" rx="1.88" ry="1.87" sweep-flag="0" x="0" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="1.88" ry="1.87" sweep-flag="0" x="0.04" x-axis-rotation="0" y="40.42"/>
+ <curve x1="0.28" x2="18.11" x3="40" y1="62.33" y2="80" y3="80"/>
+ <curve x1="62.11" x2="80" x3="80" y1="80" y2="62.1" y3="40"/>
+ <curve x1="80" x2="62.11" x3="40" y1="17.96" y2="0" y3="0"/>
+ <close/>
+ <move x="40" y="3.75"/>
+ <curve x1="60.08" x2="76.25" x3="76.25" y1="3.75" y2="19.98" y3="40"/>
+ <curve x1="76.25" x2="60.09" x3="40" y1="60.09" y2="76.25" y3="76.25"/>
+ <curve x1="19.99" x2="3.75" x3="3.75" y1="76.25" y2="60.08" y3="40"/>
+ <curve x1="3.75" x2="19.99" x3="40" y1="19.99" y2="3.75" y3="3.75"/>
+ <close/>
+ <move x="29.3" y="51.01"/>
+ <curve x1="31.48" x2="34.21" x3="37.19" y1="49.6" y2="48.44" y3="47.8"/>
+ <curve x1="36.64" x2="36.1" x3="35.62" y1="47.03" y2="46.24" y3="45.39"/>
+ <curve x1="34.37" x2="33.76" x3="33.76" y1="43.12" y2="40.7" y3="38.29"/>
+ <curve x1="33.76" x2="33.76" x3="35.01" y1="34.77" y2="31.48" y3="28.75"/>
+ <curve x1="36.17" x2="38.28" x3="41.26" y1="26.16" y2="24.53" y3="23.91"/>
+ <curve x1="40.62" x2="38.83" x3="34.05" y1="20.85" y2="18.76" y3="18.76"/>
+ <curve x1="26.48" x2="26.48" x3="26.48" y1="18.76" y2="23.98" y3="30.47"/>
+ <curve x1="26.48" x2="28.75" x3="31.55" y1="34.45" y2="38.51" y3="40.08"/>
+ <line x="31.55" y="42.26"/>
+ <curve x1="22.89" x2="16.25" x3="16.25" y1="42.97" y2="47.35" y3="52.5"/>
+ <line x="27.35" y="52.5"/>
+ <curve x1="27.96" x2="28.6" x3="29.3" y1="52.03" y2="51.48" y3="51.01"/>
+ <close/>
+ <move x="47.03" y="49.76"/>
+ <line x="47.03" y="47.58"/>
+ <curve x1="49.85" x2="52.19" x3="52.19" y1="46.01" y2="41.95" y3="37.97"/>
+ <curve x1="52.19" x2="52.19" x3="44.37" y1="31.48" y2="26.26" y3="26.26"/>
+ <curve x1="36.64" x2="36.64" x3="36.64" y1="26.26" y2="31.48" y3="37.97"/>
+ <curve x1="36.64" x2="38.98" x3="41.8" y1="41.95" y2="46.01" y3="47.58"/>
+ <line x="41.8" y="49.76"/>
+ <curve x1="33.05" x2="26.25" x3="26.25" y1="50.47" y2="54.85" y3="60"/>
+ <line x="62.49" y="60"/>
+ <curve x1="62.49" x2="55.78" x3="47.03" y1="54.85" y2="50.47" y3="49.76"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="virtual secure server" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <curve x1="20.37" x2="19.85" x3="19.56" y1="0" y2="0.3" y3="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <curve x1="0" x2="0" x3="0.29" y1="34.33" y2="34.94" y3="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <curve x1="19.84" x2="20.37" x3="20.94" y1="69.1" y2="69.4" y3="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <curve x1="59.38" x2="59.74" x3="60.05" y1="69.46" y2="69.39" y3="69.22"/>
+ <curve x1="60.09" x2="60.12" x3="60.16" y1="69.2" y2="69.18" y3="69.16"/>
+ <curve x1="60.45" x2="60.67" x3="60.8" y1="68.97" y2="68.7" y3="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <curve x1="80.15" x2="80.14" x3="79.86" y1="34.94" y2="34.33" y3="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <curve x1="60.38" x2="59.85" x3="59.28" y1="0.3" y2="0" y3="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <close/>
+ <move x="27.21" y="7.48"/>
+ <curve x1="25.2" x2="23.54" x3="23.54" y1="7.48" y2="9.14" y3="11.15"/>
+ <line x="23.54" y="58.32"/>
+ <curve x1="23.54" x2="25.23" x3="27.21" y1="60.33" y2="61.93" y3="61.93"/>
+ <line x="51.87" y="61.93"/>
+ <curve x1="54.06" x2="55.54" x3="55.54" y1="61.93" y2="60.38" y3="58.32"/>
+ <line x="55.54" y="11.15"/>
+ <curve x1="55.54" x2="53.96" x3="51.95" y1="9.18" y2="7.48" y3="7.48"/>
+ <close/>
+ <move x="27.21" y="9.61"/>
+ <line x="51.95" y="9.61"/>
+ <curve x1="52.73" x2="53.4" x3="53.4" y1="9.61" y2="10.32" y3="11.15"/>
+ <line x="53.4" y="20.29"/>
+ <line x="25.68" y="20.29"/>
+ <line x="25.68" y="11.15"/>
+ <curve x1="25.68" x2="26.42" x3="27.21" y1="10.36" y2="9.61" y3="9.61"/>
+ <close/>
+ <move x="25.68" y="22.43"/>
+ <line x="53.4" y="22.43"/>
+ <line x="53.4" y="58.32"/>
+ <curve x1="53.4" x2="52.76" x3="51.95" y1="59.15" y2="59.8" y3="59.8"/>
+ <line x="27.21" y="59.8"/>
+ <curve x1="26.39" x2="25.68" x3="25.68" y1="59.8" y2="59.11" y3="58.32"/>
+ <close/>
+ <move x="41.19" y="26.68"/>
+ <curve x1="41.14" x2="41.09" x3="41.04" y1="26.68" y2="26.69" y3="26.71"/>
+ <curve x1="41.02" x2="41" x3="40.99" y1="26.71" y2="26.72" y3="26.72"/>
+ <line x="40.99" y="26.73"/>
+ <curve x1="40.97" x2="40.96" x3="40.94" y1="26.73" y2="26.74" y3="26.75"/>
+ <line x="40.94" y="26.75"/>
+ <line x="40.92" y="26.76"/>
+ <curve x1="40.88" x2="40.85" x3="40.81" y1="26.78" y2="26.81" y3="26.85"/>
+ <curve x1="40.8" x2="40.79" x3="40.78" y1="26.86" y2="26.87" y3="26.89"/>
+ <line x="40.78" y="26.89"/>
+ <curve x1="40.69" x2="40.65" x3="40.67" y1="27" y2="27.15" y3="27.29"/>
+ <line x="40.67" y="29.9"/>
+ <line x="39.54" y="29.9"/>
+ <line x="39.54" y="27.22"/>
+ <curve x1="39.54" x2="39.16" x3="38.81" y1="26.84" y2="26.58" y3="26.72"/>
+ <curve x1="37.41" x2="36.34" x3="36.34" y1="27.28" y2="28.66" y3="30.36"/>
+ <curve x1="36.34" x2="38.05" x3="40.14" y1="32.46" y2="34.17" y3="34.17"/>
+ <curve x1="42.18" x2="43.81" x3="43.81" y1="34.17" y2="32.44" y3="30.36"/>
+ <curve x1="43.81" x2="42.79" x3="41.69" y1="28.8" y2="27.53" y3="26.9"/>
+ <curve x1="41.5" x2="41.28" x3="41.19" y1="26.75" y2="26.68" y3="26.68"/>
+ <close/>
+ <move x="38.48" y="28.29"/>
+ <line x="38.48" y="30.43"/>
+ <curve x1="38.48" x2="38.71" x3="39.01" y1="30.73" y2="30.97" y3="30.97"/>
+ <line x="41.2" y="30.97"/>
+ <curve x1="41.5" x2="41.74" x3="41.74" y1="30.97" y2="30.73" y3="30.43"/>
+ <line x="41.74" y="28.3"/>
+ <curve x1="42.31" x2="42.74" x3="42.74" y1="28.81" y2="29.47" y3="30.36"/>
+ <curve x1="42.74" x2="41.58" x3="40.14" y1="31.89" y2="33.1" y3="33.1"/>
+ <curve x1="38.64" x2="37.41" x3="37.41" y1="33.1" y2="31.87" y3="30.36"/>
+ <curve x1="37.41" x2="37.88" x3="38.48" y1="29.47" y2="28.8" y3="28.29"/>
+ <close/>
+ <move x="40.14" y="37.37"/>
+ <curve x1="37.56" x2="35.6" x3="35.6" y1="37.37" y2="39.55" y3="41.92"/>
+ <line x="35.6" y="43.51"/>
+ <line x="34.93" y="43.51"/>
+ <curve x1="34.84" x2="34.78" x3="34.49" y1="43.51" y2="43.43" y3="43.61"/>
+ <curve x1="34.34" x2="34.24" x3="34.22" y1="43.7" y2="43.91" y3="44.01"/>
+ <curve x1="34.2" x2="34.21" x3="34.21" y1="44.1" y2="44.14" y3="44.17"/>
+ <line x="34.21" y="52.65"/>
+ <curve x1="34.21" x2="34.16" x3="34.32" y1="52.72" y2="52.87" y3="53.11"/>
+ <curve x1="34.41" x2="34.54" x3="34.65" y1="53.22" y2="53.31" y3="53.35"/>
+ <curve x1="34.76" x2="34.85" x3="34.93" y1="53.38" y2="53.39" y3="53.39"/>
+ <line x="36.14" y="53.39"/>
+ <line x="37.15" y="53.39"/>
+ <line x="40.81" y="53.39"/>
+ <line x="41.14" y="53.39"/>
+ <line x="45.14" y="53.39"/>
+ <curve x1="45.31" x2="45.47" x3="45.64" y1="53.39" y2="53.35" y3="53.24"/>
+ <curve x1="45.8" x2="45.95" x3="45.95" y1="53.13" y2="52.89" y3="52.65"/>
+ <line x="45.95" y="51.98"/>
+ <line x="45.95" y="51.25"/>
+ <line x="45.95" y="48.45"/>
+ <line x="45.95" y="47.58"/>
+ <line x="45.95" y="46.51"/>
+ <line x="45.95" y="46.11"/>
+ <line x="45.95" y="44.44"/>
+ <line x="45.95" y="44.17"/>
+ <curve x1="45.95" x2="45.89" x3="45.79" y1="44.04" y2="43.87" y3="43.75"/>
+ <curve x1="45.69" x2="45.57" x3="45.48" y1="43.63" y2="43.58" y3="43.55"/>
+ <curve x1="45.3" x2="45.21" x3="45.14" y1="43.5" y2="43.51" y3="43.51"/>
+ <line x="44.67" y="43.51"/>
+ <line x="44.67" y="41.92"/>
+ <curve x1="44.67" x2="42.39" x3="40.14" y1="39.34" y2="37.37" y3="37.37"/>
+ <close/>
+ <move x="40.14" y="38.44"/>
+ <curve x1="42.03" x2="43.6" x3="43.6" y1="38.44" y2="40.15" y3="41.92"/>
+ <line x="43.6" y="43.7"/>
+ <line x="43.6" y="44.05"/>
+ <curve x1="43.6" x2="43.84" x3="44.14" y1="44.34" y2="44.58" y3="44.58"/>
+ <line x="44.88" y="44.58"/>
+ <line x="44.88" y="46.11"/>
+ <line x="44.88" y="46.51"/>
+ <line x="44.88" y="47.58"/>
+ <line x="44.88" y="48.45"/>
+ <line x="44.88" y="51.25"/>
+ <line x="44.88" y="51.98"/>
+ <line x="44.88" y="52.32"/>
+ <line x="41.14" y="52.32"/>
+ <line x="40.81" y="52.32"/>
+ <line x="37.15" y="52.32"/>
+ <line x="36.14" y="52.32"/>
+ <line x="35.28" y="52.32"/>
+ <line x="35.28" y="44.58"/>
+ <line x="36.14" y="44.58"/>
+ <curve x1="36.43" x2="36.67" x3="36.67" y1="44.58" y2="44.34" y3="44.05"/>
+ <line x="36.67" y="41.92"/>
+ <curve x1="36.67" x2="38.17" x3="40.14" y1="40.14" y2="38.44" y3="38.44"/>
+ <close/>
+ <move x="40.14" y="38.71"/>
+ <curve x1="38.38" x2="36.94" x3="36.94" y1="38.71" y2="40.15" y3="41.92"/>
+ <line x="36.94" y="44.05"/>
+ <curve x1="36.94" x2="37.18" x3="37.48" y1="44.34" y2="44.58" y3="44.58"/>
+ <line x="42.73" y="44.58"/>
+ <curve x1="42.87" x2="43" x3="43.11" y1="44.6" y2="44.57" y3="44.49"/>
+ <line x="43.12" y="44.49"/>
+ <curve x1="43.13" x2="43.15" x3="43.16" y1="44.48" y2="44.47" y3="44.46"/>
+ <line x="43.16" y="44.46"/>
+ <curve x1="43.17" x2="43.18" x3="43.2" y1="44.45" y2="44.44" y3="44.43"/>
+ <line x="43.2" y="44.42"/>
+ <curve x1="43.21" x2="43.22" x3="43.23" y1="44.41" y2="44.4" y3="44.39"/>
+ <line x="43.23" y="44.38"/>
+ <curve x1="43.24" x2="43.25" x3="43.25" y1="44.37" y2="44.36" y3="44.35"/>
+ <line x="43.27" y="44.34"/>
+ <line x="43.27" y="44.33"/>
+ <curve x1="43.34" x2="43.36" x3="43.35" y1="44.23" y2="44.1" y3="43.97"/>
+ <line x="43.35" y="41.92"/>
+ <curve x1="43.35" x2="41.9" x3="40.14" y1="40.15" y2="38.71" y3="38.71"/>
+ <close/>
+ <move x="40.14" y="39.77"/>
+ <curve x1="41.32" x2="42.28" x3="42.28" y1="39.77" y2="40.73" y3="41.92"/>
+ <line x="42.28" y="43.51"/>
+ <line x="38.01" y="43.51"/>
+ <line x="38.01" y="41.92"/>
+ <curve x1="38.01" x2="38.97" x3="40.14" y1="40.73" y2="39.77" y3="39.77"/>
+ <close/>
+ <move x="40.14" y="46.31"/>
+ <curve x1="39.8" x2="39.46" x3="39.21" y1="46.31" y2="46.41" y3="46.64"/>
+ <curve x1="38.95" x2="38.81" x3="38.81" y1="46.87" y2="47.22" y3="47.58"/>
+ <line x="38.81" y="48.18"/>
+ <line x="38.81" y="48.45"/>
+ <line x="38.81" y="48.78"/>
+ <line x="38.81" y="49.31"/>
+ <curve x1="38.81" x2="38.99" x3="39.24" y1="49.65" y2="49.97" y3="50.16"/>
+ <curve x1="39.49" x2="39.81" x3="40.14" y1="50.35" y2="50.44" y3="50.44"/>
+ <curve x1="40.44" x2="40.69" x3="40.9" y1="50.44" y2="50.32" y3="50.13"/>
+ <curve x1="41.11" x2="41.27" x3="41.27" y1="49.94" y2="49.65" y3="49.31"/>
+ <line x="41.27" y="48.45"/>
+ <line x="41.27" y="48.22"/>
+ <curve x1="41.27" x2="41.27" x3="41.27" y1="48.21" y2="48.19" y3="48.18"/>
+ <curve x1="41.27" x2="41.27" x3="41.27" y1="48.16" y2="48.15" y3="48.13"/>
+ <line x="41.27" y="47.58"/>
+ <curve x1="41.27" x2="41.28" x3="41.24" y1="47.48" y2="47.36" y3="47.21"/>
+ <curve x1="41.22" x2="41.16" x3="41.12" y1="47.14" y2="47.07" y3="47"/>
+ <curve x1="41.12" x2="41.12" x3="41.12" y1="47" y2="46.99" y3="46.99"/>
+ <curve x1="41.1" x2="41.05" x3="40.98" y1="46.9" y2="46.81" y3="46.74"/>
+ <curve x1="40.96" x2="40.93" x3="40.91" y1="46.71" y2="46.69" y3="46.68"/>
+ <curve x1="40.83" x2="40.75" x3="40.65" y1="46.62" y2="46.56" y3="46.49"/>
+ <curve x1="40.54" x2="40.38" x3="40.14" y1="46.42" y2="46.31" y3="46.31"/>
+ <close/>
+ <move x="40.08" y="47.39"/>
+ <curve x1="40.1" x2="40.16" x3="40.2" y1="47.41" y2="47.45" y3="47.48"/>
+ <curve x1="40.2" x2="40.2" x3="40.2" y1="47.5" y2="47.51" y3="47.58"/>
+ <line x="40.2" y="48.14"/>
+ <line x="40.2" y="48.18"/>
+ <line x="40.2" y="48.45"/>
+ <line x="40.2" y="49.31"/>
+ <curve x1="40.2" x2="40.2" x3="40.18" y1="49.31" y2="49.32" y3="49.35"/>
+ <curve x1="40.15" x2="40.1" x3="40.14" y1="49.37" y2="49.38" y3="49.38"/>
+ <curve x1="40" x2="39.92" x3="39.89" y1="49.38" y2="49.34" y3="49.32"/>
+ <curve x1="39.86" x2="39.87" x3="39.87" y1="49.29" y2="49.31" y3="49.31"/>
+ <line x="39.87" y="48.78"/>
+ <line x="39.87" y="48.45"/>
+ <line x="39.87" y="48.18"/>
+ <line x="39.87" y="47.58"/>
+ <curve x1="39.87" x2="39.89" x3="39.92" y1="47.47" y2="47.46" y3="47.44"/>
+ <curve x1="39.94" x2="40.01" x3="40.08" y1="47.42" y2="47.4" y3="47.39"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="vload balancer" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="20.94" x-axis-rotation="0" y="69.4"/>
+ <line x="59.02" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.05" x-axis-rotation="0" y="69.22"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.16" x-axis-rotation="0" y="69.15"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="60.8" x-axis-rotation="0" y="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <arc large-arc-flag="0" rx="1.6" ry="1.6" sweep-flag="0" x="59.28" x-axis-rotation="0" y="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="64.08" y="46.38"/>
+ <curve x1="62.41" x2="62.41" x3="62.41" y1="40.31" y2="40.31" y3="40.31"/>
+ <curve x1="60.88" x2="60.88" x3="60.88" y1="42.84" y2="42.84" y3="42.84"/>
+ <curve x1="52.87" x2="52.87" x3="52.87" y1="38.43" y2="38.43" y3="38.43"/>
+ <curve x1="52.54" x2="51.94" x3="51.28" y1="39.36" y2="40.24" y3="41.11"/>
+ <curve x1="59.27" x2="59.27" x3="59.27" y1="45.57" y2="45.57" y3="45.57"/>
+ <curve x1="57.81" x2="57.81" x3="57.81" y1="48.05" y2="48.05" y3="48.05"/>
+ <line x="64.08" y="46.38"/>
+ <close/>
+ <move x="66.21" y="34.23"/>
+ <curve x1="61.81" x2="61.81" x3="61.81" y1="29.89" y2="29.89" y3="29.89"/>
+ <curve x1="61.81" x2="61.81" x3="61.81" y1="32.76" y2="32.76" y3="32.76"/>
+ <curve x1="53.41" x2="53.41" x3="53.41" y1="32.76" y2="32.76" y3="32.76"/>
+ <curve x1="53.54" x2="53.54" x3="53.54" y1="33.17" y2="33.69" y3="34.17"/>
+ <curve x1="53.54" x2="53.54" x3="53.41" y1="34.7" y2="35.24" y3="35.63"/>
+ <curve x1="61.81" x2="61.81" x3="61.81" y1="35.63" y2="35.63" y3="35.63"/>
+ <curve x1="61.81" x2="61.81" x3="61.81" y1="38.44" y2="38.44" y3="38.44"/>
+ <line x="66.21" y="34.23"/>
+ <close/>
+ <move x="57.81" y="20.28"/>
+ <curve x1="59.27" x2="59.27" x3="59.27" y1="22.88" y2="22.88" y3="22.88"/>
+ <curve x1="51.28" x2="51.28" x3="51.28" y1="27.3" y2="27.3" y3="27.3"/>
+ <curve x1="51.94" x2="52.54" x3="52.87" y1="28.1" y2="29.03" y3="29.9"/>
+ <curve x1="60.88" x2="60.88" x3="60.88" y1="25.5" y2="25.5" y3="25.5"/>
+ <curve x1="62.41" x2="62.41" x3="62.41" y1="28.02" y2="28.02" y3="28.02"/>
+ <curve x1="64.08" x2="64.08" x3="64.08" y1="21.95" y2="21.95" y3="21.95"/>
+ <line x="57.81" y="20.28"/>
+ <close/>
+ <move x="39.55" y="25.96"/>
+ <curve x1="34.48" x2="30.35" x3="30.35" y1="25.96" y2="29.89" y3="34.7"/>
+ <curve x1="30.35" x2="34.48" x3="39.55" y1="39.57" y2="43.44" y3="43.44"/>
+ <curve x1="44.61" x2="48.74" x3="48.74" y1="43.44" y2="39.57" y3="34.7"/>
+ <curve x1="48.74" x2="44.61" x3="39.55" y1="29.89" y2="25.96" y3="25.96"/>
+ <close/>
+ <move x="39.55" y="45.92"/>
+ <curve x1="33.07" x2="27.81" x3="27.81" y1="45.92" y2="40.91" y3="34.7"/>
+ <curve x1="27.81" x2="33.07" x3="39.55" y1="28.56" y2="23.49" y3="23.49"/>
+ <curve x1="46.01" x2="51.27" x3="51.27" y1="23.49" y2="28.56" y3="34.7"/>
+ <curve x1="51.27" x2="46.01" x3="39.55" y1="40.91" y2="45.92" y3="45.92"/>
+ <close/>
+ <move x="11.81" y="32.9"/>
+ <line x="11.81" y="35.9"/>
+ <line x="21.34" y="35.9"/>
+ <line x="21.34" y="38.44"/>
+ <line x="25.68" y="34.17"/>
+ <line x="21.34" y="29.89"/>
+ <line x="21.34" y="32.9"/>
+ <line x="11.81" y="32.9"/>
+ <line x="11.81" y="32.9"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.63" name="vwaf security" strokewidth="inherit" w="80.14">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.93" y="0"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="19.56" x-axis-rotation="0" y="0.79"/>
+ <line x="0.29" y="33.91"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="0.29" x-axis-rotation="0" y="35.51"/>
+ <line x="19.55" y="68.79"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="20.93" x-axis-rotation="0" y="69.58"/>
+ <line x="58.98" y="69.58"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="60" x-axis-rotation="0" y="69.4"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="60.01" x-axis-rotation="0" y="69.39"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="60.1" x-axis-rotation="0" y="69.33"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="60.73" x-axis-rotation="0" y="68.57"/>
+ <line x="79.86" y="35.51"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="79.86" x-axis-rotation="0" y="33.91"/>
+ <line x="60.6" y="0.79"/>
+ <arc large-arc-flag="0" rx="1.59" ry="1.59" sweep-flag="0" x="59.23" x-axis-rotation="0" y="0"/>
+ <line x="20.93" y="0"/>
+ <close/>
+ <move x="21.85" y="3.18"/>
+ <line x="58.31" y="3.18"/>
+ <line x="76.65" y="34.71"/>
+ <line x="58.31" y="66.4"/>
+ <line x="21.85" y="66.4"/>
+ <line x="3.5" y="34.71"/>
+ <line x="21.85" y="3.18"/>
+ <close/>
+ <move x="42.98" y="45.52"/>
+ <line x="42.98" y="47.61"/>
+ <line x="47.4" y="47.61"/>
+ <line x="47.4" y="45.52"/>
+ <line x="42.98" y="45.52"/>
+ <line x="42.98" y="45.52"/>
+ <close/>
+ <move x="13.88" y="45.52"/>
+ <line x="13.88" y="47.61"/>
+ <line x="18.3" y="47.61"/>
+ <line x="18.3" y="45.52"/>
+ <line x="13.88" y="45.52"/>
+ <line x="13.88" y="45.52"/>
+ <close/>
+ <move x="31.34" y="45.52"/>
+ <line x="31.34" y="47.61"/>
+ <line x="41.58" y="47.61"/>
+ <line x="41.58" y="45.52"/>
+ <line x="31.34" y="45.52"/>
+ <line x="31.34" y="45.52"/>
+ <close/>
+ <move x="19.47" y="45.52"/>
+ <line x="19.47" y="47.61"/>
+ <line x="29.95" y="47.61"/>
+ <line x="29.95" y="45.52"/>
+ <line x="19.47" y="45.52"/>
+ <line x="19.47" y="45.52"/>
+ <close/>
+ <move x="37.39" y="41.55"/>
+ <line x="37.39" y="43.64"/>
+ <line x="47.41" y="43.64"/>
+ <line x="47.41" y="41.55"/>
+ <line x="37.39" y="41.55"/>
+ <line x="37.39" y="41.55"/>
+ <close/>
+ <move x="25.75" y="41.55"/>
+ <line x="25.75" y="43.64"/>
+ <line x="35.99" y="43.64"/>
+ <line x="35.99" y="41.55"/>
+ <line x="25.75" y="41.55"/>
+ <line x="25.75" y="41.55"/>
+ <close/>
+ <move x="13.88" y="41.55"/>
+ <line x="13.88" y="43.64"/>
+ <line x="24.36" y="43.64"/>
+ <line x="24.36" y="41.55"/>
+ <line x="13.88" y="41.55"/>
+ <line x="13.88" y="41.55"/>
+ <close/>
+ <move x="42.98" y="38.06"/>
+ <line x="42.98" y="40.15"/>
+ <line x="47.4" y="40.15"/>
+ <line x="47.4" y="38.06"/>
+ <line x="42.98" y="38.06"/>
+ <line x="42.98" y="38.06"/>
+ <close/>
+ <move x="13.88" y="38.06"/>
+ <line x="13.88" y="40.15"/>
+ <line x="18.3" y="40.15"/>
+ <line x="18.3" y="38.06"/>
+ <line x="13.88" y="38.06"/>
+ <line x="13.88" y="38.06"/>
+ <close/>
+ <move x="31.34" y="38.06"/>
+ <line x="31.34" y="40.15"/>
+ <line x="41.58" y="40.15"/>
+ <line x="41.58" y="38.06"/>
+ <line x="31.34" y="38.06"/>
+ <line x="31.34" y="38.06"/>
+ <close/>
+ <move x="19.47" y="38.06"/>
+ <line x="19.47" y="40.15"/>
+ <line x="29.95" y="40.15"/>
+ <line x="29.95" y="38.06"/>
+ <line x="19.47" y="38.06"/>
+ <line x="19.47" y="38.06"/>
+ <close/>
+ <move x="37.39" y="34.09"/>
+ <line x="37.39" y="36.65"/>
+ <line x="47.41" y="36.65"/>
+ <line x="47.41" y="34.09"/>
+ <line x="37.39" y="34.09"/>
+ <line x="37.39" y="34.09"/>
+ <close/>
+ <move x="25.75" y="34.09"/>
+ <line x="25.75" y="36.65"/>
+ <line x="35.99" y="36.65"/>
+ <line x="35.99" y="34.09"/>
+ <line x="25.75" y="34.09"/>
+ <line x="25.75" y="34.09"/>
+ <close/>
+ <move x="13.88" y="34.09"/>
+ <line x="13.88" y="36.65"/>
+ <line x="24.36" y="36.65"/>
+ <line x="24.36" y="34.09"/>
+ <line x="13.88" y="34.09"/>
+ <line x="13.88" y="34.09"/>
+ <close/>
+ <move x="42.98" y="30.6"/>
+ <line x="42.98" y="32.93"/>
+ <line x="47.4" y="32.93"/>
+ <line x="47.4" y="30.6"/>
+ <line x="42.98" y="30.6"/>
+ <line x="42.98" y="30.6"/>
+ <close/>
+ <move x="13.88" y="30.6"/>
+ <line x="13.88" y="32.93"/>
+ <line x="18.3" y="32.93"/>
+ <line x="18.3" y="30.6"/>
+ <line x="13.88" y="30.6"/>
+ <line x="13.88" y="30.6"/>
+ <close/>
+ <move x="31.34" y="30.6"/>
+ <line x="31.34" y="32.93"/>
+ <line x="41.58" y="32.93"/>
+ <line x="41.58" y="30.6"/>
+ <line x="31.34" y="30.6"/>
+ <line x="31.34" y="30.6"/>
+ <close/>
+ <move x="19.47" y="30.6"/>
+ <line x="19.47" y="32.93"/>
+ <line x="29.95" y="32.93"/>
+ <line x="29.95" y="30.6"/>
+ <line x="19.47" y="30.6"/>
+ <line x="19.47" y="30.6"/>
+ <close/>
+ <move x="37.39" y="26.88"/>
+ <line x="37.39" y="28.97"/>
+ <line x="47.41" y="28.97"/>
+ <line x="47.41" y="26.88"/>
+ <line x="37.39" y="26.88"/>
+ <line x="37.39" y="26.88"/>
+ <close/>
+ <move x="25.75" y="26.88"/>
+ <line x="25.75" y="28.97"/>
+ <line x="35.99" y="28.97"/>
+ <line x="35.99" y="26.88"/>
+ <line x="25.75" y="26.88"/>
+ <line x="25.75" y="26.88"/>
+ <close/>
+ <move x="13.88" y="26.88"/>
+ <line x="13.88" y="28.97"/>
+ <line x="24.36" y="28.97"/>
+ <line x="24.36" y="26.88"/>
+ <line x="13.88" y="26.88"/>
+ <line x="13.88" y="26.88"/>
+ <close/>
+ <move x="57.61" y="17.55"/>
+ <curve x1="57.44" x2="57.17" x3="57.06" y1="17.64" y2="17.74" y3="17.74"/>
+ <curve x1="56.97" x2="56.79" x3="56.7" y1="17.74" y2="17.55" y3="17.36"/>
+ <curve x1="56.7" x2="56.88" x3="56.97" y1="17.09" y2="17.09" y3="16.8"/>
+ <curve x1="56.88" x2="56.79" x3="56.61" y1="16.71" y2="16.71" y3="16.63"/>
+ <curve x1="56.51" x2="56.32" x3="56.24" y1="16.54" y2="16.34" y3="16.25"/>
+ <curve x1="56.79" x2="57.35" x3="57.91" y1="16.63" y2="17" y3="17.36"/>
+ <curve x1="57.81" x2="57.72" x3="57.61" y1="17.46" y2="17.55" y3="17.55"/>
+ <close/>
+ <move x="56.05" y="16.15"/>
+ <curve x1="55.96" x2="55.76" x3="55.67" y1="16.15" y2="16.25" y3="16.25"/>
+ <curve x1="55.49" x2="55.32" x3="55.12" y1="16.34" y2="16.15" y3="16.15"/>
+ <curve x1="54.94" x2="54.94" x3="54.75" y1="16.15" y2="16.06" y3="16.15"/>
+ <curve x1="54.57" x2="54.48" x3="54.48" y1="16.15" y2="16.34" y3="16.54"/>
+ <curve x1="54.39" x2="54.3" x3="54.2" y1="16.63" y2="16.71" y3="16.71"/>
+ <curve x1="54.3" x2="53.93" x3="53.93" y1="16.89" y2="17.18" y3="17.27"/>
+ <curve x1="53.93" x2="53.93" x3="53.93" y1="17.36" y2="17.55" y3="17.64"/>
+ <curve x1="54.02" x2="53.09" x3="52.08" y1="18.76" y2="19.22" y3="19.22"/>
+ <curve x1="51.88" x2="51.88" x3="51.79" y1="19.42" y2="19.77" y3="20.07"/>
+ <curve x1="51.61" x2="51.33" x3="51.06" y1="20.34" y2="20.63" y3="20.54"/>
+ <curve x1="50.97" x2="50.78" x3="50.78" y1="20.54" y2="20.24" y3="20.16"/>
+ <curve x1="50.78" x2="51.06" x3="50.87" y1="19.97" y2="19.77" y3="19.61"/>
+ <curve x1="50.87" x2="51.24" x3="51.24" y1="19.42" y2="19.42" y3="19.13"/>
+ <curve x1="51.14" x2="50.78" x3="50.42" y1="18.86" y2="19.03" y3="19.03"/>
+ <curve x1="50.23" x2="49.94" x3="49.76" y1="18.95" y2="18.76" y3="18.67"/>
+ <curve x1="49.48" x2="49.21" x3="48.93" y1="18.57" y2="18.21" y3="18.21"/>
+ <curve x1="48.75" x2="48.55" x3="48.38" y1="18.21" y2="18.3" y3="18.21"/>
+ <curve x1="48.38" x2="48.47" x3="48.47" y1="18.01" y2="17.83" y3="17.74"/>
+ <curve x1="48.47" x2="48.18" x3="48.18" y1="17.64" y2="17.55" y3="17.46"/>
+ <curve x1="48.18" x2="48.38" x3="48.55" y1="17.36" y2="17.09" y3="16.89"/>
+ <curve x1="48.75" x2="49.02" x3="49.3" y1="16.8" y2="16.63" y3="16.54"/>
+ <curve x1="49.57" x2="49.94" x3="50.23" y1="16.34" y2="16.15" y3="16.06"/>
+ <curve x1="50.32" x2="50.42" x3="50.58" y1="16.06" y2="16.06" y3="15.97"/>
+ <curve x1="50.87" x2="51.06" x3="51.33" y1="15.88" y2="15.69" y3="15.6"/>
+ <curve x1="51.44" x2="51.61" x3="51.79" y1="15.6" y2="15.6" y3="15.49"/>
+ <curve x1="51.99" x2="52.08" x3="52.26" y1="15.49" y2="15.42" y3="15.33"/>
+ <curve x1="52.35" x2="52.44" x3="52.63" y1="15.33" y2="15.22" y3="15.22"/>
+ <curve x1="52.63" x2="52.73" x3="52.81" y1="15.13" y2="15.13" y3="15.13"/>
+ <curve x1="52.73" x2="52.44" x3="52.35" y1="15.42" y2="15.42" y3="15.69"/>
+ <curve x1="52.63" x2="53.09" x3="53.45" y1="16.25" y2="15.6" y3="15.6"/>
+ <curve x1="53.73" x2="54.02" x3="54.2" y1="15.6" y2="15.97" y3="15.6"/>
+ <curve x1="54.11" x2="53.93" x3="53.73" y1="15.42" y2="15.33" y3="15.13"/>
+ <curve x1="53.55" x2="53.29" x3="53.29" y1="15.03" y2="14.94" y3="14.76"/>
+ <curve x1="54.3" x2="55.21" x3="56.15" y1="15.13" y2="15.6" y3="16.15"/>
+ <line x="56.05" y="16.15"/>
+ <close/>
+ <move x="48.11" y="13.64"/>
+ <curve x1="48.38" x2="48.75" x3="49.21" y1="13.64" y2="13.82" y3="13.82"/>
+ <curve x1="49.3" x2="49.39" x3="49.48" y1="13.82" y2="13.64" y3="13.64"/>
+ <curve x1="49.76" x2="50.03" x3="50.23" y1="13.64" y2="13.64" y3="13.73"/>
+ <curve x1="50.23" x2="50.23" x3="50.14" y1="13.82" y2="14.01" y3="14.12"/>
+ <curve x1="49.94" x2="49.57" x3="49.39" y1="14.21" y2="14.12" y3="14.12"/>
+ <curve x1="48.93" x2="48.66" x3="48.38" y1="14.12" y2="14.21" y3="14.01"/>
+ <curve x1="48.27" x2="48" x3="48.11" y1="13.92" y2="13.82" y3="13.64"/>
+ <close/>
+ <move x="50.97" y="13.92"/>
+ <curve x1="51.06" x2="51.14" x3="51.24" y1="14.01" y2="14.01" y3="14.12"/>
+ <curve x1="51.14" x2="51.06" x3="50.87" y1="14.12" y2="14.12" y3="14.12"/>
+ <curve x1="50.87" x2="50.97" x3="50.97" y1="14.01" y2="14.01" y3="13.92"/>
+ <close/>
+ <move x="45.14" y="13.46"/>
+ <curve x1="45.05" x2="45.14" x3="45.05" y1="13.55" y2="13.64" y3="13.64"/>
+ <curve x1="44.69" x2="44.12" x3="43.66" y1="13.92" y2="13.55" y3="13.46"/>
+ <curve x1="43.48" x2="43.29" x3="43" y1="13.46" y2="13.55" y3="13.55"/>
+ <curve x1="42.93" x2="42.82" x3="42.64" y1="13.55" y2="13.46" y3="13.46"/>
+ <curve x1="43.48" x2="44.39" x3="45.32" y1="13.36" y2="13.27" y3="13.27"/>
+ <curve x1="45.24" x2="45.24" x3="45.14" y1="13.27" y2="13.36" y3="13.46"/>
+ <close/>
+ <move x="42.45" y="13.55"/>
+ <curve x1="42.38" x2="42.38" x3="42.38" y1="13.46" y2="13.46" y3="13.46"/>
+ <curve x1="42.54" x2="42.54" x3="42.54" y1="13.46" y2="13.46" y3="13.46"/>
+ <curve x1="42.45" x2="42.45" x3="42.45" y1="13.46" y2="13.46" y3="13.55"/>
+ <close/>
+ <move x="60.67" y="18.21"/>
+ <curve x1="56.7" x2="51.44" x3="45.69" y1="14.21" y2="11.95" y3="11.95"/>
+ <curve x1="40.06" x2="34.69" x3="30.72" y1="11.95" y2="14.21" y3="18.21"/>
+ <curve x1="28.67" x2="27.11" x3="25.99" y1="20.24" y2="22.67" y3="25.28"/>
+ <curve x1="27.39" x2="27.39" x3="27.39" y1="25.28" y2="25.28" y3="25.28"/>
+ <curve x1="28.5" x2="29.78" x3="31.63" y1="22.95" y2="20.89" y3="19.13"/>
+ <curve x1="32.09" x2="32.75" x3="33.39" y1="18.57" y2="18.01" y3="17.55"/>
+ <curve x1="33.48" x2="33.58" x3="33.58" y1="17.74" y2="17.83" y3="17.92"/>
+ <curve x1="33.67" x2="33.48" x3="33.48" y1="18.01" y2="18.21" y3="18.3"/>
+ <curve x1="33.39" x2="33.48" x3="33.48" y1="18.4" y2="18.48" y3="18.57"/>
+ <curve x1="33.48" x2="33.3" x3="33.48" y1="18.76" y2="18.95" y3="19.03"/>
+ <curve x1="33.58" x2="33.94" x3="34.03" y1="19.22" y2="18.86" y3="19.13"/>
+ <curve x1="34.23" x2="33.94" x3="33.85" y1="19.33" y2="19.42" y3="19.61"/>
+ <curve x1="33.76" x2="33.94" x3="33.94" y1="19.77" y2="20.07" y3="20.24"/>
+ <curve x1="33.94" x2="33.94" x3="33.85" y1="20.43" y2="20.63" y3="20.71"/>
+ <curve x1="33.76" x2="33.58" x3="33.58" y1="20.82" y2="20.82" y3="21.09"/>
+ <curve x1="33.58" x2="33.94" x3="33.94" y1="21.28" y2="21.46" y3="21.64"/>
+ <curve x1="33.94" x2="33.85" x3="33.76" y1="21.94" y2="22.1" y3="22.3"/>
+ <curve x1="33.58" x2="33.39" x3="33.12" y1="22.67" y2="22.95" y3="23.31"/>
+ <curve x1="32.84" x2="32.57" x3="32.38" y1="23.51" y2="23.88" y3="24.16"/>
+ <curve x1="32.29" x2="32.18" x3="32.09" y1="24.36" y2="24.54" y3="24.63"/>
+ <curve x1="32.02" x2="31.82" x3="31.73" y1="24.91" y2="25" y3="25.18"/>
+ <curve x1="31.73" x2="31.73" x3="31.73" y1="25.28" y2="25.28" y3="25.28"/>
+ <curve x1="35.51" x2="35.51" x3="35.51" y1="25.28" y2="25.28" y3="25.28"/>
+ <curve x1="37.27" x2="37.27" x3="37.27" y1="25.28" y2="25.28" y3="25.28"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="25.28" y2="25.28" y3="25.28"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="27.7" y2="27.7" y3="27.7"/>
+ <curve x1="49.21" x2="49.48" x3="49.76" y1="27.51" y2="27.42" y3="27.24"/>
+ <curve x1="49.85" x2="49.76" x3="49.76" y1="26.85" y2="26.49" y3="26.21"/>
+ <curve x1="49.85" x2="50.03" x3="50.14" y1="26.12" y2="26.21" y3="26.21"/>
+ <curve x1="50.32" x2="50.32" x3="50.42" y1="26.21" y2="25.83" y3="25.74"/>
+ <curve x1="50.49" x2="50.69" x3="50.78" y1="25.64" y2="25.64" y3="25.57"/>
+ <curve x1="51.06" x2="51.06" x3="51.24" y1="25.37" y2="25.18" y3="25.09"/>
+ <curve x1="51.33" x2="51.44" x3="51.61" y1="25.09" y2="25.09" y3="25"/>
+ <curve x1="51.7" x2="51.88" x3="52.08" y1="25" y2="24.82" y3="24.71"/>
+ <curve x1="52.26" x2="52.63" x3="52.63" y1="24.71" y2="24.71" y3="24.63"/>
+ <curve x1="52.73" x2="52.63" x3="52.63" y1="24.54" y2="24.36" y3="24.25"/>
+ <curve x1="52.81" x2="53.55" x3="54.02" y1="23.7" y2="23.7" y3="23.51"/>
+ <curve x1="54.3" x2="54.66" x3="55.03" y1="23.31" y2="23.15" y3="23.22"/>
+ <curve x1="54.94" x2="54.66" x3="54.75" y1="23.42" y2="23.31" y3="23.7"/>
+ <curve x1="54.75" x2="55.32" x3="55.49" y1="24.07" y2="23.51" y3="23.51"/>
+ <curve x1="55.76" x2="56.24" x3="56.61" y1="23.31" y2="23.31" y3="23.15"/>
+ <curve x1="56.88" x2="57.44" x3="57.17" y1="23.04" y2="22.85" y3="22.49"/>
+ <curve x1="56.97" x2="56.79" x3="56.61" y1="22.49" y2="22.76" y3="22.95"/>
+ <curve x1="56.42" x2="56.42" x3="56.32" y1="22.95" y2="22.76" y3="22.67"/>
+ <curve x1="56.15" x2="56.15" x3="55.96" y1="22.67" y2="22.85" y3="22.85"/>
+ <curve x1="55.87" x2="55.76" x3="55.67" y1="22.76" y2="22.58" y3="22.49"/>
+ <curve x1="55.67" x2="55.96" x3="56.15" y1="22.1" y2="21.94" y3="21.64"/>
+ <curve x1="56.05" x2="55.6" x3="55.32" y1="21.28" y2="21.55" y3="21.46"/>
+ <curve x1="55.32" x2="55.49" x3="55.76" y1="21.28" y2="21.09" y3="21.09"/>
+ <curve x1="55.96" x2="56.42" x3="56.61" y1="21" y2="21.09" y3="21.09"/>
+ <curve x1="56.61" x2="56.61" x3="56.61" y1="21.18" y2="21.28" y3="21.46"/>
+ <curve x1="56.79" x2="56.88" x3="57.06" y1="21.55" y2="21.46" y3="21.46"/>
+ <curve x1="57.17" x2="56.79" x3="56.79" y1="21.28" y2="21.28" y3="21.09"/>
+ <curve x1="57.06" x2="57.61" x3="57.99" y1="20.89" y2="21.09" y3="21.09"/>
+ <curve x1="58.18" x2="58.46" x3="58.63" y1="21" y2="20.82" y3="20.71"/>
+ <curve x1="58.82" x2="59.02" x3="59.2" y1="20.63" y2="20.43" y3="20.63"/>
+ <curve x1="59.2" x2="59.02" x3="58.91" y1="20.82" y2="20.82" y3="21"/>
+ <curve x1="58.63" x2="58.18" x3="57.99" y1="21.28" y2="21.64" y3="22.03"/>
+ <curve x1="58.18" x2="58.46" x3="58.73" y1="22.1" y2="22.1" y3="22.1"/>
+ <curve x1="58.82" x2="59.02" x3="59.02" y1="22.1" y2="22.1" y3="22.21"/>
+ <curve x1="59.48" x2="59.48" x3="59.48" y1="22.21" y2="22.21" y3="22.21"/>
+ <curve x1="59.66" x2="59.66" x3="59.84" y1="22.3" y2="22.49" y3="22.49"/>
+ <curve x1="60.21" x2="60.21" x3="60.03" y1="22.49" y2="22.1" y3="21.94"/>
+ <curve x1="60.03" x2="60.21" x3="60.12" y1="21.64" y2="21.64" y3="21.46"/>
+ <curve x1="59.93" x2="59.48" x3="59.48" y1="21.18" y2="21.46" y3="21.09"/>
+ <curve x1="59.48" x2="59.66" x3="59.66" y1="20.82" y2="20.82" y3="20.63"/>
+ <curve x1="59.66" x2="60.03" x3="60.03" y1="20.24" y2="20.24" y3="19.77"/>
+ <curve x1="60.03" x2="59.84" x3="59.75" y1="19.61" y2="19.61" y3="19.51"/>
+ <curve x1="59.66" x2="59.66" x3="59.57" y1="19.42" y2="19.22" y3="19.22"/>
+ <curve x1="59.38" x2="58.82" x3="58.82" y1="19.03" y2="19.03" y3="18.67"/>
+ <curve x1="58.82" x2="58.82" x3="58.82" y1="18.48" y2="18.4" y3="18.21"/>
+ <curve x1="59.2" x2="59.48" x3="59.84" y1="18.48" y2="18.76" y3="19.13"/>
+ <curve x1="63.54" x2="65.66" x3="65.66" y1="22.95" y2="27.98" y3="33.28"/>
+ <curve x1="65.66" x2="64.66" x3="62.7" y1="37.1" y2="40.64" y3="43.7"/>
+ <curve x1="62.61" x2="62.52" x3="62.35" y1="43.61" y2="43.54" y3="43.54"/>
+ <curve x1="62.24" x2="62.15" x3="61.97" y1="43.54" y2="43.61" y3="43.61"/>
+ <curve x1="61.69" x2="61.42" x3="61.14" y1="43.61" y2="43.43" y3="43.43"/>
+ <curve x1="61.05" x2="60.78" x3="60.67" y1="43.43" y2="43.54" y3="43.43"/>
+ <curve x1="60.58" x2="60.58" x3="60.49" y1="43.34" y2="43.06" y3="43.06"/>
+ <curve x1="60.3" x2="60.12" x3="60.03" y1="42.97" y2="42.88" y3="42.88"/>
+ <curve x1="59.84" x2="59.66" x3="59.38" y1="42.79" y2="42.68" y3="42.68"/>
+ <curve x1="59.29" x2="59.2" x3="59.02" y1="42.68" y2="42.68" y3="42.68"/>
+ <curve x1="58.91" x2="58.82" x3="58.63" y1="42.68" y2="42.4" y3="42.4"/>
+ <curve x1="58.54" x2="58.36" x3="58.27" y1="42.33" y2="42.22" y3="42.13"/>
+ <curve x1="58.46" x2="57.99" x3="57.99" y1="41.67" y2="41.48" y3="41.19"/>
+ <curve x1="57.91" x2="57.91" x3="57.81" y1="41.01" y2="40.92" y3="40.82"/>
+ <curve x1="57.81" x2="57.61" x3="57.44" y1="40.64" y2="40.55" y3="40.36"/>
+ <curve x1="57.17" x2="56.79" x3="56.32" y1="40.07" y2="39.89" y3="39.8"/>
+ <curve x1="56.15" x2="55.96" x3="55.67" y1="39.8" y2="39.89" y3="39.8"/>
+ <curve x1="55.41" x2="55.12" x3="54.94" y1="39.8" y2="39.61" y3="39.34"/>
+ <curve x1="54.75" x2="54.57" x3="54.48" y1="39.15" y2="38.95" y3="38.86"/>
+ <curve x1="54.3" x2="54.11" x3="53.93" y1="38.77" y2="38.77" y3="38.6"/>
+ <curve x1="53.93" x2="53.93" x3="53.93" y1="38.6" y2="38.49" y3="38.4"/>
+ <curve x1="53.73" x2="53.64" x3="53.73" y1="38.21" y2="38.13" y3="37.94"/>
+ <curve x1="53.55" x2="53.55" x3="53.36" y1="37.85" y2="38.13" y3="38.13"/>
+ <curve x1="53.18" x2="53.09" x3="52.63" y1="37.85" y2="37.74" y3="37.74"/>
+ <curve x1="52.44" x2="52.35" x3="52.08" y1="37.85" y2="38.04" y3="38.04"/>
+ <curve x1="51.99" x2="51.79" x3="51.61" y1="38.13" y2="37.85" y3="37.85"/>
+ <curve x1="51.44" x2="51.24" x3="51.06" y1="37.74" y2="37.94" y3="37.85"/>
+ <curve x1="50.87" x2="50.78" x3="50.58" y1="37.85" y2="37.65" y3="37.48"/>
+ <curve x1="50.49" x2="50.23" x3="50.23" y1="37.48" y2="37.28" y3="37.28"/>
+ <curve x1="49.94" x2="49.76" x3="49.48" y1="37.28" y2="37.74" y3="37.65"/>
+ <curve x1="49.3" x2="49.76" x3="49.57" y1="37.48" y2="37.28" y3="37.1"/>
+ <curve x1="49.39" x2="49.3" x3="49.21" y1="37" y2="37.19" y3="37.28"/>
+ <curve x1="49.02" x2="48.93" x3="48.84" y1="37.28" y2="37.39" y3="37.48"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="38.04" y2="38.04" y3="38.04"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="40.07" y2="40.07" y3="40.07"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="41.67" y2="41.67" y3="41.67"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="43.89" y2="43.89" y3="43.89"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="45.48" y2="45.48" y3="45.48"/>
+ <curve x1="48.84" x2="48.84" x3="48.84" y1="49.21" y2="49.21" y3="49.21"/>
+ <curve x1="48.66" x2="48.66" x3="48.66" y1="49.21" y2="49.21" y3="49.21"/>
+ <curve x1="48.75" x2="48.84" x3="48.93" y1="49.3" y2="49.3" y3="49.39"/>
+ <curve x1="49.12" x2="49.3" x3="49.39" y1="49.49" y2="49.49" y3="49.57"/>
+ <curve x1="49.67" x2="50.23" x3="50.32" y1="49.67" y2="50.04" y3="50.22"/>
+ <curve x1="50.42" x2="50.42" x3="50.49" y1="50.51" y2="50.88" y3="51.25"/>
+ <curve x1="50.58" x2="50.49" x3="50.58" y1="51.71" y2="51.91" y3="52.37"/>
+ <curve x1="50.58" x2="50.58" x3="50.58" y1="52.74" y2="52.74" y3="52.74"/>
+ <curve x1="49.02" x2="47.36" x3="45.69" y1="53.12" y2="53.39" y3="53.39"/>
+ <curve x1="41.26" x2="37.09" x3="33.58" y1="53.39" y2="51.91" y3="49.21"/>
+ <curve x1="31.63" x2="31.63" x3="31.63" y1="49.21" y2="49.21" y3="49.21"/>
+ <curve x1="35.51" x2="40.42" x3="45.69" y1="52.74" y2="54.59" y3="54.59"/>
+ <curve x1="51.44" x2="56.7" x3="60.67" y1="54.59" y2="52.46" y3="48.46"/>
+ <curve x1="64.75" x2="66.96" x3="66.96" y1="44.36" y2="38.95" y3="33.28"/>
+ <curve x1="66.96" x2="64.75" x3="60.67" y1="27.6" y2="22.3" y3="18.21"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.4" name="vweb security" strokewidth="inherit" w="80.14">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.63" y="27.79"/>
+ <curve x1="66.5" x2="66.36" x3="66.22" y1="27.4" y2="26.91" y3="26.38"/>
+ <curve x1="66.16" x2="66.09" x3="65.95" y1="26.04" y2="25.71" y3="25.43"/>
+ <curve x1="64.67" x2="62.31" x3="59.06" y1="21.17" y2="17.25" y3="14.07"/>
+ <curve x1="58.73" x2="58.32" x3="57.85" y1="13.66" y2="13.26" y3="12.91"/>
+ <curve x1="57.78" x2="57.78" x3="57.78" y1="12.99" y2="13.13" y3="13.26"/>
+ <curve x1="57.85" x2="58.52" x3="58.87" y1="13.8" y2="13.8" y3="14.07"/>
+ <curve x1="58.99" x2="58.99" x3="59.12" y1="14.13" y2="14.34" y3="14.41"/>
+ <curve x1="59.26" x2="59.48" x3="59.48" y1="14.68" y2="14.68" y3="14.95"/>
+ <curve x1="59.54" x2="58.99" x3="58.99" y1="15.49" y2="15.49" y3="16.1"/>
+ <curve x1="58.93" x2="58.65" x3="58.65" y1="16.37" y2="16.29" y3="16.64"/>
+ <curve x1="58.65" x2="58.87" x3="59.06" y1="16.84" y2="16.84" y3="16.98"/>
+ <line x="59.26" y="16.98"/>
+ <curve x1="59.4" x2="59.54" x3="59.6" y1="16.98" y2="16.98" y3="17.12"/>
+ <curve x1="59.73" x2="59.6" x3="59.48" y1="17.38" y2="17.51" y3="17.79"/>
+ <curve x1="59.73" x2="59.73" x3="59.26" y1="18.06" y2="18.53" y3="18.53"/>
+ <line x="59.26" y="18.53"/>
+ <curve x1="58.93" x2="58.87" x3="58.65" y1="18.53" y2="18.26" y3="18.2"/>
+ <curve x1="58.45" x2="58.32" x3="58.18" y1="18.2" y2="18.2" y3="18.12"/>
+ <line x="58.12" y="18.12"/>
+ <curve x1="57.92" x2="57.78" x3="57.65" y1="18.12" y2="18.06" y3="18.06"/>
+ <curve x1="57.43" x2="57.17" x3="57.04" y1="17.98" y2="17.98" y3="17.98"/>
+ <curve x1="56.84" x2="56.63" x3="56.57" y1="17.98" y2="17.98" y3="17.92"/>
+ <curve x1="56.9" x2="57.37" x3="57.85" y1="17.38" y2="16.84" y3="16.43"/>
+ <curve x1="58.04" x2="58.32" x3="58.32" y1="16.37" y2="16.23" y3="15.96"/>
+ <curve x1="58.18" x2="58.18" x3="58.12" y1="15.9" y2="15.9" y3="15.9"/>
+ <curve x1="57.92" x2="57.65" x3="57.51" y1="15.9" y2="16.04" y3="16.16"/>
+ <curve x1="57.17" x2="56.9" x3="56.63" y1="16.29" y2="16.51" y3="16.57"/>
+ <curve x1="56.09" x2="55.41" x3="54.94" y1="16.64" y2="16.43" y3="16.71"/>
+ <curve x1="54.87" x2="55.48" x3="55.35" y1="16.98" y2="16.84" y3="17.18"/>
+ <curve x1="55.21" x2="55.07" x3="55.01" y1="17.25" y2="17.25" y3="17.18"/>
+ <curve x1="54.94" x2="54.8" x3="54.68" y1="17.18" y2="17.18" y3="17.04"/>
+ <curve x1="54.54" x2="54.68" x3="54.54" y1="16.98" y2="16.77" y3="16.71"/>
+ <curve x1="54.46" x2="54.33" x3="54.13" y1="16.64" y2="16.57" y3="16.57"/>
+ <curve x1="53.93" x2="53.72" x3="53.6" y1="16.51" y2="16.51" y3="16.57"/>
+ <curve x1="53.24" x2="52.91" x3="52.91" y1="16.64" y2="16.84" y3="17.12"/>
+ <line x="53.18" y="17.12"/>
+ <curve x1="53.46" x2="53.66" x3="53.85" y1="17.12" y2="17.04" y3="17.18"/>
+ <curve x1="53.99" x2="54.13" x3="54.13" y1="17.18" y2="17.25" y3="17.38"/>
+ <curve x1="53.93" x2="53.38" x3="53.46" y1="17.79" y2="17.98" y3="18.53"/>
+ <curve x1="53.46" x2="53.66" x3="53.85" y1="18.73" y2="19.01" y3="19.01"/>
+ <curve x1="53.99" x2="54.13" x3="54.27" y1="19.01" y2="18.87" y3="18.87"/>
+ <line x="54.33" y="18.87"/>
+ <curve x1="54.54" x2="54.54" x3="54.68" y1="18.87" y2="19.01" y3="19.07"/>
+ <curve x1="54.94" x2="55.07" x3="55.48" y1="18.87" y2="18.53" y3="18.53"/>
+ <line x="55.55" y="18.53"/>
+ <curve x1="55.96" x2="55.21" x3="54.68" y1="19.07" y2="19.34" y3="19.55"/>
+ <curve x1="54.2" x2="53.52" x3="53.12" y1="19.68" y2="19.75" y3="19.95"/>
+ <curve x1="52.91" x2="52.44" x3="52.24" y1="19.95" y2="20.5" y3="20.28"/>
+ <curve x1="52.1" x2="52.04" x3="52.04" y1="20.28" y2="20.28" y3="20.15"/>
+ <curve x1="51.9" x2="52.38" x3="52.38" y1="19.75" y2="19.89" y3="19.55"/>
+ <curve x1="52.04" x2="51.57" x3="51.16" y1="19.55" y2="19.75" y3="19.95"/>
+ <curve x1="50.49" x2="49.41" x3="49.27" y1="20.15" y2="20.28" y3="21.03"/>
+ <line x="49.27" y="21.58"/>
+ <curve x1="49.06" x2="48.72" x3="48.45" y1="21.58" y2="21.64" y3="21.72"/>
+ <curve x1="48.19" x2="47.91" x3="47.72" y1="21.78" y2="21.98" y3="22.05"/>
+ <curve x1="47.5" x2="47.37" x3="47.24" y1="22.11" y2="22.11" y3="22.11"/>
+ <curve x1="47.17" x2="46.97" x3="46.97" y1="22.19" y2="22.33" y3="22.45"/>
+ <line x="42.37" y="21.37"/>
+ <line x="39.54" y="20.83"/>
+ <line x="36.82" y="21.44"/>
+ <curve x1="36.82" x2="27.5" x3="27.37" y1="21.44" y2="23.47" y3="23.53"/>
+ <line x="27.37" y="30.9"/>
+ <curve x1="27.37" x2="27.64" x3="28.05" y1="32.53" y2="34.09" y3="35.64"/>
+ <curve x1="27.91" x2="27.84" x3="27.72" y1="35.5" y2="35.5" y3="35.38"/>
+ <curve x1="27.5" x2="27.3" x3="27.17" y1="35.3" y2="35.3" y3="35.24"/>
+ <curve x1="26.97" x2="26.76" x3="26.5" y1="35.17" y2="34.97" y3="34.77"/>
+ <curve x1="26.28" x2="25.95" x3="25.95" y1="34.63" y2="34.36" y3="34.16"/>
+ <curve x1="25.95" x2="26.22" x3="26.22" y1="33.89" y2="33.69" y3="33.48"/>
+ <curve x1="26.36" x2="25.75" x3="25.42" y1="32.73" y2="32.12" y3="31.72"/>
+ <curve x1="25.14" x2="24.87" x3="24.61" y1="31.31" y2="31.12" y3="30.84"/>
+ <line x="24.61" y="30.37"/>
+ <curve x1="24.39" x2="24.26" x3="24" y1="30.17" y2="29.82" y3="29.56"/>
+ <curve x1="23.86" x2="23.45" x3="23.39" y1="29.29" y2="29.01" y3="28.81"/>
+ <curve x1="23.31" x2="23.53" x3="23.39" y1="28.4" y2="28.07" y3="27.79"/>
+ <curve x1="23.18" x2="22.37" x3="22.51" y1="27.19" y2="27.46" y3="28.21"/>
+ <curve x1="22.51" x2="22.78" x3="22.84" y1="28.4" y2="28.68" y3="28.88"/>
+ <curve x1="22.98" x2="22.98" x3="23.05" y1="29.09" y2="29.42" y3="29.62"/>
+ <curve x1="23.12" x2="23.39" x3="23.45" y1="29.82" y2="30.09" y3="30.37"/>
+ <curve x1="23.59" x2="23.59" x3="23.72" y1="30.78" y2="31.25" y3="31.51"/>
+ <curve x1="23.86" x2="24.26" x3="24" y1="31.79" y2="32" y3="32.33"/>
+ <curve x1="23.72" x2="23.59" x3="23.39" y1="32.39" y2="32.06" y3="31.86"/>
+ <curve x1="23.31" x2="22.92" x3="22.84" y1="31.79" y2="31.59" y3="31.31"/>
+ <curve x1="22.78" x2="22.98" x3="22.92" y1="31.18" y2="30.9" y3="30.7"/>
+ <curve x1="22.78" x2="21.9" x3="21.9" y1="30.23" y2="30.23" y3="29.82"/>
+ <curve x1="21.9" x2="22.31" x3="22.31" y1="29.49" y2="29.42" y3="29.15"/>
+ <curve x1="22.31" x2="21.84" x3="21.76" y1="28.88" y2="28.6" y3="28.34"/>
+ <curve x1="21.62" x2="21.62" x3="21.62" y1="28.13" y2="27.73" y3="27.46"/>
+ <line x="21.62" y="26.51"/>
+ <curve x1="21.56" x2="21.23" x3="21.01" y1="26.32" y2="25.97" y3="25.91"/>
+ <curve x1="20.68" x2="20.48" x3="20.34" y1="25.71" y2="25.77" y3="25.49"/>
+ <curve x1="20.21" x2="20.15" x3="20.07" y1="25.36" y2="24.88" y3="24.75"/>
+ <curve x1="20.01" x2="20.07" x3="20.07" y1="24.35" y2="23.94" y3="23.47"/>
+ <curve x1="20.01" x2="20.01" x3="20.07" y1="23.13" y2="22.8" y3="22.33"/>
+ <line x="20.01" y="22.33"/>
+ <line x="20.01" y="22.33"/>
+ <curve x1="20.15" x2="20.48" x3="20.54" y1="21.91" y2="21.84" y3="21.58"/>
+ <curve x1="20.68" x2="20.75" x3="20.89" y1="21.31" y2="21.03" y3="20.83"/>
+ <curve x1="21.09" x2="21.62" x3="21.97" y1="20.42" y2="20.03" y3="19.61"/>
+ <curve x1="22.31" x2="22.64" x3="22.84" y1="19.2" y2="18.81" y3="18.26"/>
+ <curve x1="22.92" x2="23.18" x3="23.12" y1="18.06" y2="17.73" y3="17.51"/>
+ <curve x1="23.12" x2="22.51" x3="22.57" y1="17.18" y2="16.98" y3="16.51"/>
+ <curve x1="22.57" x2="22.92" x3="22.98" y1="16.37" y2="16.37" y3="16.1"/>
+ <curve x1="23.05" x2="23.12" x3="23.12" y1="15.96" y2="15.68" y3="15.49"/>
+ <curve x1="23.12" x2="22.92" x3="22.98" y1="15.21" y2="14.95" y3="14.6"/>
+ <curve x1="23.05" x2="23.45" x3="23.31" y1="14.34" y2="14.21" y3="13.87"/>
+ <curve x1="23.18" x2="23.18" x3="23.12" y1="13.87" y2="13.87" y3="13.8"/>
+ <curve x1="22.98" x2="22.78" x3="22.64" y1="13.87" y2="13.87" y3="13.87"/>
+ <line x="22.45" y="13.87"/>
+ <curve x1="22.17" x2="22.45" x3="22.51" y1="13.66" y2="13.52" y3="13.13"/>
+ <curve x1="22.51" x2="22.37" x3="22.45" y1="12.99" y2="12.78" y3="12.78"/>
+ <curve x1="22.45" x2="22.78" x3="22.64" y1="12.58" y2="12.38" y3="12.3"/>
+ <curve x1="22.57" x2="22.51" x3="22.45" y1="12.18" y2="12.04" y3="11.91"/>
+ <curve x1="22.17" x2="22.03" x3="21.76" y1="12.11" y2="12.24" y3="12.38"/>
+ <curve x1="15.82" x2="11.97" x3="11.97" y1="17.38" y2="24.88" y3="33.28"/>
+ <curve x1="11.97" x2="24.39" x3="39.6" y1="48.36" y2="60.6" y3="60.6"/>
+ <curve x1="41.9" x2="44.06" x3="46.22" y1="60.6" y2="60.39" y3="59.86"/>
+ <curve x1="46.22" x2="46.16" x3="46.16" y1="59.72" y2="59.72" y3="59.72"/>
+ <curve x1="46.16" x2="46.22" x3="46.16" y1="59.11" y2="58.7" y3="58.09"/>
+ <curve x1="46.09" x2="46.02" x3="45.89" y1="57.7" y2="57.09" y3="56.75"/>
+ <curve x1="45.69" x2="45" x3="44.67" y1="56.48" y2="56" y3="55.79"/>
+ <curve x1="44.47" x2="44.2" x3="44" y1="55.67" y2="55.67" y3="55.53"/>
+ <curve x1="43.86" x2="43.72" x3="43.59" y1="55.46" y2="55.4" y3="55.32"/>
+ <line x="43.45" y="55.18"/>
+ <line x="42.17" y="53.84"/>
+ <line x="42.17" y="53.77"/>
+ <curve x1="41.97" x2="41.7" x3="41.5" y1="53.43" y2="53.16" y3="52.9"/>
+ <curve x1="41.09" x2="40.82" x3="40.34" y1="52.29" y2="51.47" y3="50.86"/>
+ <curve x1="40.15" x2="40.01" x3="39.81" y1="50.52" y2="50.19" y3="49.91"/>
+ <curve x1="39.6" x2="39.26" x3="39.12" y1="49.77" y2="49.64" y3="49.44"/>
+ <curve x1="39.12" x2="38.87" x3="38.93" y1="49.17" y2="48.69" y3="48.5"/>
+ <line x="38.99" y="48.42"/>
+ <curve x1="39.12" x2="39.34" x3="39.6" y1="48.56" y2="48.69" y3="48.69"/>
+ <curve x1="43.86" x2="47.5" x3="49.6" y1="46.94" y2="43.7" y3="39.57"/>
+ <curve x1="49.6" x2="49.74" x3="49.74" y1="39.63" y2="39.63" y3="39.63"/>
+ <curve x1="49.94" x2="50.08" x3="50.21" y1="39.71" y2="39.84" y3="39.97"/>
+ <curve x1="50.35" x2="50.41" x3="50.69" y1="39.97" y2="39.71" y3="39.84"/>
+ <line x="50.75" y="39.84"/>
+ <curve x1="50.61" x2="50.82" x3="50.88" y1="40.1" y2="40.24" y3="40.45"/>
+ <curve x1="50.96" x2="50.96" x3="51.02" y1="40.57" y2="40.71" y3="40.79"/>
+ <curve x1="51.22" x2="51.43" x3="51.69" y1="40.99" y2="40.99" y3="41.05"/>
+ <curve x1="51.9" x2="52.04" x3="52.38" y1="41.18" y2="41.46" y3="41.73"/>
+ <curve x1="52.57" x2="52.99" x3="53.46" y1="42.07" y2="42.34" y3="42.4"/>
+ <curve x1="53.72" x2="53.99" x3="54.27" y1="42.4" y2="42.27" y3="42.34"/>
+ <line x="54.33" y="42.34"/>
+ <line x="54.4" y="42.34"/>
+ <curve x1="55.01" x2="55.48" x3="55.88" y1="42.48" y2="42.81" y3="43.15"/>
+ <curve x1="56.23" x2="56.43" x3="56.49" y1="43.35" y2="43.48" y3="43.76"/>
+ <curve x1="56.57" x2="56.49" x3="56.63" y1="43.89" y2="44.09" y3="44.31"/>
+ <curve x1="56.76" x2="57.31" x3="57.1" y1="44.7" y2="44.84" y3="45.52"/>
+ <curve x1="57.17" x2="57.37" x3="57.65" y1="45.78" y2="45.78" y3="45.92"/>
+ <curve x1="57.78" x2="57.92" x3="58.12" y1="46.06" y2="46.26" y3="46.33"/>
+ <line x="58.45" y="46.33"/>
+ <line x="58.59" y="46.33"/>
+ <curve x1="58.93" x2="59.2" x3="59.48" y1="46.33" y2="46.47" y3="46.61"/>
+ <curve x1="59.67" x2="59.95" x3="60.07" y1="46.67" y2="46.67" y3="46.8"/>
+ <curve x1="60.21" x2="60.28" x3="60.42" y1="46.87" y2="47.22" y3="47.28"/>
+ <curve x1="60.56" x2="60.82" x3="60.95" y1="47.41" y2="47.28" y3="47.28"/>
+ <line x="61.03" y="47.41"/>
+ <line x="61.09" y="47.41"/>
+ <curve x1="61.23" x2="61.5" x3="61.62" y1="47.41" y2="47.41" y3="47.47"/>
+ <curve x1="61.84" x2="61.97" x3="62.11" y1="47.55" y2="47.61" y3="47.61"/>
+ <curve x1="62.31" x2="62.37" x3="62.58" y1="47.61" y2="47.47" y3="47.55"/>
+ <line x="62.64" y="47.55"/>
+ <line x="62.7" y="47.55"/>
+ <curve x1="62.78" x2="62.92" x3="62.92" y1="47.55" y2="47.61" y3="47.61"/>
+ <curve x1="65.55" x2="67.11" x3="67.11" y1="43.42" y2="38.55" y3="33.28"/>
+ <curve x1="67.11" x2="66.97" x3="66.63" y1="31.45" y2="29.56" y3="27.79"/>
+ <close/>
+ <move x="49.33" y="32.26"/>
+ <curve x1="49.33" x2="45.28" x3="39.54" y1="38.82" y2="44.5" y3="46.8"/>
+ <curve x1="33.79" x2="29.74" x3="29.74" y1="44.5" y2="38.82" y3="32.26"/>
+ <line x="29.74" y="25.22"/>
+ <line x="33.32" y="24.49"/>
+ <line x="33.32" y="25.77"/>
+ <line x="37.31" y="24.82"/>
+ <line x="37.31" y="23.47"/>
+ <line x="39.54" y="22.94"/>
+ <line x="41.76" y="23.47"/>
+ <line x="41.76" y="24.82"/>
+ <line x="45.69" y="25.77"/>
+ <line x="45.69" y="24.49"/>
+ <line x="49.33" y="25.22"/>
+ <close/>
+ <move x="32.51" y="28.82"/>
+ <line x="32.51" y="32.4"/>
+ <curve x1="32.51" x2="32.57" x3="32.84" y1="33.42" y2="34.23" y3="35.11"/>
+ <curve x1="33.12" x2="33.86" x3="34.81" y1="36.92" y2="38.55" y3="40.04"/>
+ <line x="45.49" y="28.6"/>
+ <curve x1="44.74" x2="43.05" x3="39.39" y1="28.41" y2="27.93" y3="27.05"/>
+ <close/>
+ <move x="39.53" y="43.29"/>
+ <curve x1="42.99" x2="45.54" x3="46.23" y1="41.6" y2="38.48" y3="34.9"/>
+ <curve x1="46.49" x2="46.57" x3="46.57" y1="34.09" y2="33.28" y3="32.4"/>
+ <line x="46.57" y="30.3"/>
+ <line x="35.75" y="40.58"/>
+ <curve x1="36.83" x2="38.11" x3="39.53" y1="41.74" y2="42.6" y3="43.29"/>
+ <close/>
+ <move x="55.21" y="11.44"/>
+ <curve x1="55.21" x2="55.41" x3="55.49" y1="11.16" y2="11.09" y3="10.83"/>
+ <curve x1="55.74" x2="56.09" x3="56.29" y1="11.09" y2="11.36" y3="11.57"/>
+ <curve x1="56.29" x2="56.23" x3="56.16" y1="11.63" y2="11.69" y3="11.77"/>
+ <curve x1="56.02" x2="55.74" x3="55.62" y1="11.83" y2="11.91" y3="11.91"/>
+ <curve x1="55.49" x2="55.27" x3="55.21" y1="11.83" y2="11.69" y3="11.44"/>
+ <close/>
+ <move x="46.7" y="9.06"/>
+ <curve x1="47.17" x2="47.37" x3="47.78" y1="8.92" y2="8.65" y3="8.53"/>
+ <curve x1="47.98" x2="48.18" x3="48.45" y1="8.45" y2="8.53" y3="8.45"/>
+ <curve x1="48.65" x2="48.92" x3="49.14" y1="8.39" y2="8.25" y3="8.18"/>
+ <curve x1="49.26" x2="49.4" x3="49.61" y1="8.12" y2="8.04" y3="8.04"/>
+ <curve x1="49.61" x2="49.67" x3="49.67" y1="7.92" y2="7.92" y3="7.92"/>
+ <curve x1="49.61" x2="49.2" x3="49.14" y1="8.25" y2="8.39" y3="8.65"/>
+ <curve x1="49.2" x2="49.34" x3="49.47" y1="8.86" y2="8.92" y3="8.92"/>
+ <curve x1="49.87" x2="50.34" x3="50.69" y1="9" y2="8.53" y3="8.53"/>
+ <curve x1="51.03" x2="51.29" x3="51.56" y1="8.59" y2="8.79" y3="8.79"/>
+ <curve x1="51.64" x2="51.7" x3="51.83" y1="8.79" y2="8.73" y3="8.53"/>
+ <curve x1="51.7" x2="51.42" x3="51.16" y1="8.25" y2="8.12" y3="7.92"/>
+ <curve x1="51.03" x2="50.81" x3="50.69" y1="7.84" y2="7.71" y3="7.57"/>
+ <curve x1="51.89" x2="53.05" x3="54.13" y1="8.04" y2="8.65" y3="9.26"/>
+ <curve x1="54.06" x2="53.92" x3="53.8" y1="9.34" y2="9.4" y3="9.4"/>
+ <curve x1="53.59" x2="53.25" x3="53.11" y1="9.4" y2="9.26" y3="9.2"/>
+ <line x="52.98" y="9.2"/>
+ <line x="52.58" y="9.2"/>
+ <line x="52.5" y="9.2"/>
+ <curve x1="52.31" x2="52.17" x3="52.03" y1="9.26" y2="9.53" y3="9.73"/>
+ <curve x1="52.03" x2="51.89" x3="51.7" y1="9.87" y2="9.94" y3="10.08"/>
+ <curve x1="51.77" x2="51.36" x3="51.36" y1="10.34" y2="10.55" y3="10.83"/>
+ <curve x1="51.29" x2="51.36" x3="51.36" y1="10.95" y2="11.16" y3="11.3"/>
+ <curve x1="51.42" x2="50.2" x3="48.65" y1="12.78" y2="13.52" y3="13.39"/>
+ <curve x1="48.45" x2="48.45" x3="48.31" y1="13.72" y2="14.13" y3="14.61"/>
+ <curve x1="48.18" x2="47.78" x3="47.37" y1="14.88" y2="15.15" y3="15.15"/>
+ <curve x1="47.23" x2="46.97" x3="46.97" y1="15.08" y2="14.82" y3="14.68"/>
+ <curve x1="46.97" x2="47.37" x3="47.1" y1="14.33" y2="14.27" y3="13.94"/>
+ <curve x1="47.17" x2="47.64" x3="47.57" y1="13.72" y2="13.6" y3="13.33"/>
+ <curve x1="47.51" x2="47.37" x3="47.17" y1="13.13" y2="13.05" y3="13.05"/>
+ <line x="46.56" y="13.05"/>
+ <curve x1="46.23" x2="45.82" x3="45.54" y1="12.99" y2="12.85" y3="12.72"/>
+ <curve x1="45.15" x2="44.87" x3="44.34" y1="12.52" y2="12.03" y3="12.03"/>
+ <line x="44.26" y="12.03"/>
+ <line x="43.93" y="12.03"/>
+ <curve x1="43.79" x2="43.73" x3="43.65" y1="12.03" y2="12.03" y3="11.97"/>
+ <curve x1="43.52" x2="43.73" x3="43.73" y1="11.83" y2="11.56" y3="11.44"/>
+ <curve x1="43.73" x2="43.32" x3="43.32" y1="11.3" y2="11.22" y3="11.03"/>
+ <curve x1="43.32" x2="43.73" x3="43.79" y1="10.89" y2="10.48" y3="10.34"/>
+ <curve x1="44.06" x2="44.54" x3="45.01" y1="10.14" y2="9.94" y3="9.73"/>
+ <curve x1="45.34" x2="45.82" x3="46.23" y1="9.53" y2="9.26" y3="9.2"/>
+ <curve x1="46.36" x2="46.56" x3="46.7" y1="9.14" y2="9.14" y3="9.06"/>
+ <close/>
+ <move x="20.95" y="0"/>
+ <curve x1="20.37" x2="19.83" x3="19.54" y1="0" y2="0.31" y3="0.81"/>
+ <line x="0.29" y="34.29"/>
+ <curve x1="0" x2="0" x3="0.29" y1="34.79" y2="35.41" y3="35.91"/>
+ <line x="19.54" y="69.53"/>
+ <curve x1="19.83" x2="20.37" x3="20.95" y1="70.03" y2="70.34" y3="70.34"/>
+ <line x="59.01" y="70.34"/>
+ <curve x1="59.37" x2="59.74" x3="60.05" y1="70.4" y2="70.33" y3="70.16"/>
+ <curve x1="60.09" x2="60.13" x3="60.17" y1="70.13" y2="70.11" y3="70.08"/>
+ <line x="60.19" y="70.07"/>
+ <curve x1="60.47" x2="60.69" x3="60.81" y1="69.89" y2="69.62" y3="69.3"/>
+ <line x="79.86" y="35.91"/>
+ <curve x1="80.14" x2="80.14" x3="79.86" y1="35.41" y2="34.8" y3="34.3"/>
+ <line x="60.68" y="0.82"/>
+ <curve x1="60.39" x2="59.85" x3="59.27" y1="0.31" y2="0" y3="0"/>
+ <close/>
+ <move x="21.89" y="3.25"/>
+ <line x="58.33" y="3.25"/>
+ <line x="76.58" y="35.11"/>
+ <line x="58.33" y="67.1"/>
+ <line x="21.89" y="67.1"/>
+ <line x="3.56" y="35.11"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.46" name="vwlan controller" strokewidth="inherit" w="80.14">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.94" y="0"/>
+ <curve x1="20.37" x2="19.85" x3="19.56" y1="0" y2="0.3" y3="0.79"/>
+ <line x="0.29" y="33.83"/>
+ <curve x1="0" x2="0" x3="0.29" y1="34.33" y2="34.94" y3="35.44"/>
+ <line x="19.56" y="68.61"/>
+ <curve x1="19.84" x2="20.37" x3="20.94" y1="69.1" y2="69.4" y3="69.41"/>
+ <line x="59.02" y="69.41"/>
+ <curve x1="59.38" x2="59.74" x3="60.05" y1="69.46" y2="69.39" y3="69.22"/>
+ <curve x1="60.09" x2="60.12" x3="60.16" y1="69.2" y2="69.18" y3="69.16"/>
+ <curve x1="60.45" x2="60.67" x3="60.8" y1="68.97" y2="68.7" y3="68.37"/>
+ <line x="79.86" y="35.44"/>
+ <curve x1="80.14" x2="80.14" x3="79.86" y1="34.94" y2="34.33" y3="33.83"/>
+ <line x="60.66" y="0.8"/>
+ <curve x1="60.38" x2="59.85" x3="59.28" y1="0.3" y2="0" y3="0"/>
+ <line x="20.94" y="0"/>
+ <close/>
+ <move x="21.86" y="3.2"/>
+ <line x="58.36" y="3.2"/>
+ <line x="76.62" y="34.64"/>
+ <line x="58.36" y="66.2"/>
+ <line x="21.86" y="66.2"/>
+ <line x="18.75" y="60.84"/>
+ <curve x1="20.67" x2="21.71" x3="22.61" y1="60.73" y2="59.06" y3="57.32"/>
+ <curve x1="23.54" x2="24.6" x3="26.47" y1="59.06" y2="60.53" y3="60.53"/>
+ <curve x1="28.35" x2="29.41" x3="30.4" y1="60.53" y2="58.99" y3="57.32"/>
+ <curve x1="31.34" x2="32.48" x3="34.54" y1="59.12" y2="60.86" y3="60.86"/>
+ <curve x1="36.54" x2="37.68" x3="38.54" y1="60.86" y2="59.12" y3="57.32"/>
+ <curve x1="39.47" x2="40.61" x3="42.47" y1="59.06" y2="60.53" y3="60.53"/>
+ <curve x1="44.2" x2="45.27" x3="46.2" y1="60.53" y2="58.99" y3="57.26"/>
+ <curve x1="47.21" x2="48.47" x3="50.47" y1="59.12" y2="60.86" y3="60.86"/>
+ <curve x1="52.47" x2="53.67" x3="54.54" y1="60.86" y2="59.12" y3="57.32"/>
+ <curve x1="55.47" x2="56.54" x3="58.48" y1="59.06" y2="60.53" y3="60.53"/>
+ <curve x1="60.54" x2="61.68" x3="62.4" y1="60.53" y2="58.46" y3="56.72"/>
+ <line x="62.48" y="56.72"/>
+ <curve x1="62.87" x2="63" x3="62.94" y1="56.52" y2="56.11" y3="55.72"/>
+ <curve x1="62.15" x2="60.94" x3="58.48" y1="53.85" y2="51.25" y3="51.25"/>
+ <curve x1="56.27" x2="55.07" x3="54.14" y1="51.25" y2="52.99" y3="54.85"/>
+ <curve x1="53.28" x2="52.27" x3="50.47" y1="53.18" y2="51.65" y3="51.65"/>
+ <curve x1="48.74" x2="47.61" x3="46.68" y1="51.65" y2="53.18" y3="54.93"/>
+ <curve x1="45.61" x2="44.47" x3="42.47" y1="52.99" y2="51.25" y3="51.25"/>
+ <curve x1="40.34" x2="39.08" x3="38.14" y1="51.25" y2="52.99" y3="54.85"/>
+ <curve x1="37.27" x2="36.28" x3="34.54" y1="53.18" y2="51.65" y3="51.65"/>
+ <curve x1="32.73" x2="31.74" x3="30.81" y1="51.65" y2="53.18" y3="54.85"/>
+ <curve x1="29.8" x2="28.6" x3="26.47" y1="53.05" y2="51.25" y3="51.25"/>
+ <curve x1="24.33" x2="23.15" x3="22.21" y1="51.25" y2="52.99" y3="54.85"/>
+ <curve x1="21.27" x2="20.34" x3="18.55" y1="53.18" y2="51.65" y3="51.65"/>
+ <curve x1="16.74" x2="15.62" x3="15.02" y1="51.65" y2="53.19" y3="54.43"/>
+ <line x="3.52" y="34.64"/>
+ <line x="21.86" y="3.2"/>
+ <close/>
+ <move x="39.14" y="3.21"/>
+ <line x="28.87" y="18.82"/>
+ <line x="35.74" y="18.82"/>
+ <line x="35.74" y="27.76"/>
+ <line x="42.54" y="27.76"/>
+ <line x="42.54" y="18.82"/>
+ <line x="49.15" y="18.82"/>
+ <line x="39.14" y="3.21"/>
+ <close/>
+ <move x="33.15" y="29.89"/>
+ <line x="21.27" y="30.9"/>
+ <line x="23.21" y="33.91"/>
+ <line x="17.14" y="37.63"/>
+ <line x="19.27" y="40.58"/>
+ <line x="25.54" y="36.84"/>
+ <line x="27.48" y="39.77"/>
+ <line x="33.15" y="29.89"/>
+ <close/>
+ <move x="43.81" y="29.89"/>
+ <line x="49.47" y="39.77"/>
+ <line x="51.61" y="36.84"/>
+ <line x="57.54" y="40.58"/>
+ <line x="59.82" y="37.63"/>
+ <line x="53.68" y="33.91"/>
+ <line x="55.8" y="30.9"/>
+ <line x="43.81" y="29.89"/>
+ <close/>
+ <move x="39" y="30.96"/>
+ <line x="33.14" y="41.58"/>
+ <line x="37" y="41.58"/>
+ <line x="37" y="49.12"/>
+ <line x="41.08" y="49.12"/>
+ <line x="41.08" y="41.58"/>
+ <line x="44.88" y="41.58"/>
+ <line x="39" y="30.96"/>
+ <close/>
+ <move x="18.55" y="52.45"/>
+ <curve x1="20.08" x2="20.88" x3="21.73" y1="52.45" y2="53.92" y3="55.65"/>
+ <curve x1="21.73" x2="21.67" x3="21.67" y1="55.72" y2="55.78" y3="55.92"/>
+ <curve x1="20.61" x2="19.87" x3="18.55" y1="58.05" y2="59.39" y3="59.39"/>
+ <curve x1="18.29" x2="18.05" x3="17.82" y1="59.39" y2="59.34" y3="59.25"/>
+ <line x="15.49" y="55.24"/>
+ <curve x1="15.92" x2="16.92" x3="18.55" y1="54.16" y2="52.45" y3="52.45"/>
+ <close/>
+ <move x="34.54" y="52.45"/>
+ <curve x1="36.01" x2="36.87" x3="37.74" y1="52.45" y2="53.92" y3="55.65"/>
+ <curve x1="37.68" x2="37.68" x3="37.68" y1="55.72" y2="55.78" y3="55.92"/>
+ <curve x1="36.61" x2="35.8" x3="34.54" y1="58.05" y2="59.39" y3="59.39"/>
+ <curve x1="33.08" x2="32.21" x3="31.34" y1="59.39" y2="57.66" y3="55.78"/>
+ <curve x1="31.28" x2="31.28" x3="31.2" y1="55.78" y2="55.72" y3="55.72"/>
+ <curve x1="32.13" x2="33" x3="34.54" y1="53.92" y2="52.45" y3="52.45"/>
+ <close/>
+ <move x="50.47" y="52.45"/>
+ <curve x1="52" x2="52.87" x3="53.74" y1="52.45" y2="53.92" y3="55.65"/>
+ <curve x1="53.67" x2="53.67" x3="53.61" y1="55.72" y2="55.78" y3="55.92"/>
+ <curve x1="52.54" x2="51.81" x3="50.47" y1="58.05" y2="59.39" y3="59.39"/>
+ <curve x1="49.01" x2="48.08" x3="47.07" y1="59.39" y2="57.59" y3="55.72"/>
+ <curve x1="48" x2="49.01" x3="50.47" y1="53.92" y2="52.45" y3="52.45"/>
+ <close/>
+ <move x="26.47" y="52.78"/>
+ <curve x1="28.07" x2="29.01" x3="29.94" y1="52.78" y2="54.58" y3="56.52"/>
+ <curve x1="29.07" x2="28.07" x3="26.47" y1="58.26" y2="59.72" y3="59.72"/>
+ <curve x1="24.81" x2="23.87" x3="23.01" y1="59.72" y2="58.26" y3="56.52"/>
+ <curve x1="23.94" x2="24.87" x3="26.47" y1="54.58" y2="52.78" y3="52.78"/>
+ <close/>
+ <move x="42.47" y="52.78"/>
+ <curve x1="43.81" x2="44.8" x3="45.73" y1="52.78" y2="54.58" y3="56.39"/>
+ <line x="45.81" y="56.46"/>
+ <curve x1="44.88" x2="43.95" x3="42.47" y1="58.26" y2="59.72" y3="59.72"/>
+ <curve x1="40.8" x2="39.87" x3="39" y1="59.72" y2="58.26" y3="56.52"/>
+ <curve x1="39.93" x2="40.8" x3="42.47" y1="54.58" y2="52.78" y3="52.78"/>
+ <close/>
+ <move x="58.48" y="52.78"/>
+ <curve x1="59.61" x2="60.61" x3="61.55" y1="52.78" y2="53.92" y3="56.25"/>
+ <curve x1="61.55" x2="61.61" x3="61.68" y1="56.39" y2="56.46" y3="56.52"/>
+ <curve x1="60.75" x2="59.74" x3="58.48" y1="58.73" y2="59.72" y3="59.72"/>
+ <curve x1="56.81" x2="55.88" x3="55.01" y1="59.72" y2="58.26" y3="56.52"/>
+ <curve x1="55.88" x2="56.81" x3="58.48" y1="54.58" y2="52.78" y3="52.78"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.15" name="web security" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.05" y="69.15"/>
+ <line x="0" y="34.47"/>
+ <line x="20.05" y="0"/>
+ <line x="59.86" y="0"/>
+ <line x="80" y="34.46"/>
+ <line x="59.95" y="69.15"/>
+ <close/>
+ <move x="48.09" y="31.04"/>
+ <line x="36.96" y="42.18"/>
+ <curve x1="38.18" x2="39.39" x3="40.96" y1="43.24" y2="44.26" y3="44.96"/>
+ <curve x1="44.45" x2="47.04" x3="47.74" y1="43.24" y2="39.75" y3="35.91"/>
+ <curve x1="48.1" x2="48.09" x3="48.09" y1="35.2" y2="34.34" y3="33.32"/>
+ <close/>
+ <move x="38.88" y="25.47"/>
+ <line x="31.39" y="27.39"/>
+ <line x="31.39" y="31.2"/>
+ <curve x1="31.39" x2="31.55" x3="31.75" y1="32.41" y2="33.31" y3="34.17"/>
+ <curve x1="32.1" x2="32.96" x3="33.82" y1="36.25" y2="37.82" y3="39.39"/>
+ <line x="45.31" y="27.2"/>
+ <curve x1="44.45" x2="42.69" x3="38.88" y1="26.84" y2="26.53" y3="25.47"/>
+ <close/>
+ <move x="39.75" y="23.02"/>
+ <line x="41.98" y="23.56"/>
+ <line x="41.98" y="24.93"/>
+ <line x="45.98" y="25.99"/>
+ <line x="45.98" y="24.59"/>
+ <line x="49.67" y="25.29"/>
+ <line x="49.67" y="32.62"/>
+ <curve x1="49.67" x2="45.67" x3="39.75" y1="39.41" y2="45.13" y3="47.56"/>
+ <curve x1="33.99" x2="29.99" x3="29.99" y1="45.13" y2="39.41" y3="32.62"/>
+ <line x="29.99" y="25.29"/>
+ <line x="33.48" y="24.59"/>
+ <line x="33.48" y="25.99"/>
+ <line x="37.48" y="24.93"/>
+ <line x="37.48" y="23.56"/>
+ <close/>
+ <move x="22.54" y="11.52"/>
+ <curve x1="22.34" x2="21.99" x3="21.83" y1="11.88" y2="12.08" y3="12.08"/>
+ <curve x1="15.76" x2="11.92" x3="11.92" y1="17.29" y2="24.94" y3="33.64"/>
+ <curve x1="11.92" x2="24.42" x3="39.75" y1="49.13" y2="61.67" y3="61.67"/>
+ <curve x1="41.99" x2="44.26" x3="46.54" y1="61.67" y2="61.52" y3="60.97"/>
+ <line x="46.54" y="60.81"/>
+ <line x="46.54" y="59.24"/>
+ <curve x1="46.34" x2="46.34" x3="46.18" y1="58.73" y2="58.19" y3="57.83"/>
+ <curve x1="45.98" x2="45.12" x3="44.97" y1="57.52" y2="56.97" y3="56.81"/>
+ <curve x1="44.77" x2="44.46" x3="44.26" y1="56.81" y2="56.62" y3="56.46"/>
+ <curve x1="44.11" x2="44.1" x3="43.91" y1="56.46" y2="56.46" y3="56.27"/>
+ <line x="43.75" y="56.11"/>
+ <line x="42.34" y="54.7"/>
+ <curve x1="42.34" x2="41.83" x3="41.83" y1="54.38" y2="54.03" y3="53.83"/>
+ <curve x1="41.32" x2="40.96" x3="40.61" y1="53.17" y2="52.46" y3="51.76"/>
+ <curve x1="40.46" x2="40.26" x3="40.1" y1="51.4" y2="51.05" y3="50.7"/>
+ <curve x1="39.75" x2="39.4" x3="39.4" y1="50.7" y2="50.34" y3="50.19"/>
+ <curve x1="39.4" x2="39.05" x3="39.2" y1="50.03" y2="49.48" y3="49.32"/>
+ <curve x1="39.4" x2="39.56" x3="39.75" y1="49.32" y2="49.48" y3="49.48"/>
+ <curve x1="44.11" x2="47.75" x3="49.83" y1="47.76" y2="44.27" y3="40.07"/>
+ <line x="49.99" y="40.27"/>
+ <curve x1="50.18" x2="50.34" x3="50.54" y1="40.27" y2="40.42" y3="40.42"/>
+ <curve x1="50.69" x2="50.89" x3="51.05" y1="40.42" y2="40.27" y3="40.42"/>
+ <curve x1="51.05" x2="51.05" x3="51.24" y1="40.62" y2="40.78" y3="40.97"/>
+ <curve x1="51.24" x2="51.24" x3="51.39" y1="41.13" y2="41.32" y3="41.32"/>
+ <curve x1="51.55" x2="51.75" x3="52.11" y1="41.48" y2="41.48" y3="41.64"/>
+ <curve x1="52.26" x2="52.46" x3="52.61" y1="41.84" y2="41.99" y3="42.35"/>
+ <curve x1="52.97" x2="53.32" x3="53.83" y1="42.7" y2="42.89" y3="43.05"/>
+ <curve x1="54.18" x2="54.34" x3="54.69" y1="43.05" y2="42.89" y3="42.89"/>
+ <curve x1="55.4" x2="55.91" x3="56.26" y1="43.2" y2="43.4" y3="43.76"/>
+ <curve x1="56.61" x2="56.81" x3="56.81" y1="43.91" y2="44.11" y3="44.46"/>
+ <curve x1="56.97" x2="56.81" x3="56.96" y1="44.46" y2="44.78" y3="44.97"/>
+ <curve x1="57.12" x2="57.82" x3="57.47" y1="45.48" y2="45.68" y3="46.19"/>
+ <curve x1="57.67" x2="57.83" x3="58.02" y1="46.54" y2="46.54" y3="46.7"/>
+ <curve x1="58.18" x2="58.34" x3="58.53" y1="46.7" y2="47.05" y3="47.05"/>
+ <line x="58.89" y="47.05"/>
+ <line x="59.04" y="47.05"/>
+ <curve x1="59.39" x2="59.55" x3="59.9" y1="47.05" y2="47.24" y3="47.4"/>
+ <line x="60.46" y="47.4"/>
+ <curve x1="60.61" x2="60.61" x3="60.96" y1="47.75" y2="47.91" y3="48.11"/>
+ <line x="61.32" y="48.11"/>
+ <line x="61.47" y="48.11"/>
+ <line x="61.67" y="48.11"/>
+ <curve x1="61.67" x2="61.83" x3="62.02" y1="48.11" y2="48.11" y3="48.26"/>
+ <curve x1="62.18" x2="62.34" x3="62.53" y1="48.26" y2="48.46" y3="48.46"/>
+ <curve x1="62.69" x2="62.88" x3="63.04" y1="48.46" y2="48.26" y3="48.26"/>
+ <line x="63.24" y="48.26"/>
+ <line x="63.4" y="48.46"/>
+ <curve x1="66.02" x2="67.59" x3="67.59" y1="44.11" y2="39.05" y3="33.64"/>
+ <curve x1="67.59" x2="67.39" x3="67.24" y1="31.72" y2="29.84" y3="28.07"/>
+ <curve x1="67.04" x2="66.88" x3="66.69" y1="27.56" y2="27.01" y3="26.5"/>
+ <curve x1="66.69" x2="66.53" x3="66.53" y1="26.15" y2="25.8" y3="25.49"/>
+ <curve x1="65.12" x2="62.69" x3="59.55" y1="21.13" y2="17.1" y3="13.8"/>
+ <curve x1="59.05" x2="58.69" x3="58.18" y1="13.45" y2="12.94" y3="12.58"/>
+ <line x="58.18" y="12.94"/>
+ <curve x1="58.18" x2="58.89" x3="59.4" y1="13.64" y2="13.65" y3="13.8"/>
+ <curve x1="59.4" x2="59.4" x3="59.55" y1="13.8" y2="14.15" y3="14.31"/>
+ <curve x1="59.75" x2="59.9" x3="59.9" y1="14.51" y2="14.5" y3="14.86"/>
+ <curve x1="60.1" x2="59.4" x3="59.4" y1="15.21" y2="15.21" y3="15.88"/>
+ <curve x1="59.4" x2="59.04" x3="59.04" y1="16.23" y2="16.07" y3="16.58"/>
+ <curve x1="59.04" x2="59.24" x3="59.55" y1="16.78" y2="16.78" y3="16.78"/>
+ <line x="59.75" y="16.78"/>
+ <curve x1="59.75" x2="60.1" x3="60.1" y1="16.78" y2="16.78" y3="17.09"/>
+ <curve x1="60.1" x2="60.1" x3="59.9" y1="17.29" y2="17.29" y3="17.64"/>
+ <curve x1="60.26" x2="60.26" x3="59.75" y1="18" y2="18.51" y3="18.51"/>
+ <curve x1="59.4" x2="59.39" x3="59.04" y1="18.51" y2="18.15" y3="18.15"/>
+ <curve x1="58.88" x2="58.69" x3="58.53" y1="18.15" y2="18.15" y3="17.99"/>
+ <line x="58.02" y="17.99"/>
+ <line x="57.47" y="17.99"/>
+ <curve x1="57.31" x2="57.12" x3="56.96" y1="17.99" y2="17.99" y3="17.8"/>
+ <curve x1="57.32" x2="57.83" x3="58.18" y1="17.29" y2="16.78" y3="16.42"/>
+ <curve x1="58.54" x2="58.69" x3="58.69" y1="16.23" y2="16.08" y3="15.88"/>
+ <curve x1="58.69" x2="58.53" x3="58.53" y1="15.72" y2="15.72" y3="15.72"/>
+ <curve x1="58.34" x2="58.02" x3="58.02" y1="15.72" y2="15.88" y3="16.08"/>
+ <curve x1="57.67" x2="57.32" x3="56.96" y1="16.08" y2="16.42" y3="16.42"/>
+ <curve x1="56.45" x2="55.75" x3="55.24" y1="16.58" y2="16.23" y3="16.58"/>
+ <curve x1="55.24" x2="55.91" x3="55.75" y1="16.78" y2="16.58" y3="17.09"/>
+ <line x="55.39" y="17.09"/>
+ <curve x1="55.24" x2="55.24" x3="55.05" y1="17.09" y2="17.1" y3="16.94"/>
+ <curve x1="54.89" x2="55.04" x3="54.89" y1="16.78" y2="16.58" y3="16.58"/>
+ <curve x1="54.89" x2="54.69" x3="54.53" y1="16.58" y2="16.42" y3="16.42"/>
+ <line x="54.02" y="16.42"/>
+ <curve x1="53.67" x2="53.32" x3="53.32" y1="16.58" y2="16.58" y3="17.09"/>
+ <line x="53.48" y="17.09"/>
+ <curve x1="53.83" x2="54.03" x3="54.18" y1="17.09" y2="16.94" y3="17.09"/>
+ <curve x1="54.34" x2="54.34" x3="54.53" y1="17.09" y2="17.09" y3="17.29"/>
+ <curve x1="54.34" x2="53.67" x3="53.83" y1="17.64" y2="18" y3="18.51"/>
+ <curve x1="53.83" x2="54.03" x3="54.18" y1="18.66" y2="18.86" y3="19.02"/>
+ <curve x1="54.34" x2="54.34" x3="54.69" y1="19.02" y2="18.86" y3="18.86"/>
+ <curve x1="54.89" x2="54.89" x3="55.05" y1="18.86" y2="19.02" y3="19.02"/>
+ <curve x1="55.24" x2="55.55" x3="55.9" y1="18.86" y2="18.51" y3="18.51"/>
+ <curve x1="56.45" x2="55.56" x3="55.05" y1="19.02" y2="19.37" y3="19.37"/>
+ <curve x1="54.69" x2="54.03" x3="53.48" y1="19.56" y2="19.72" y3="19.88"/>
+ <curve x1="53.32" x2="52.77" x3="52.61" y1="19.88" y2="20.43" y3="20.23"/>
+ <curve x1="52.46" x2="52.45" x3="52.45" y1="20.23" y2="20.23" y3="20.08"/>
+ <curve x1="52.26" x2="52.61" x3="52.77" y1="19.72" y2="19.72" y3="19.56"/>
+ <curve x1="52.45" x2="51.91" x3="51.55" y1="19.37" y2="19.72" y3="19.88"/>
+ <curve x1="50.89" x2="49.67" x3="49.48" y1="20.08" y2="20.23" y3="21.13"/>
+ <curve x1="49.48" x2="49.67" x3="49.48" y1="21.13" y2="21.29" y3="21.64"/>
+ <line x="48.77" y="21.64"/>
+ <curve x1="48.46" x2="48.26" x3="48.1" y1="21.8" y2="21.99" y3="21.99"/>
+ <curve x1="47.91" x2="47.75" x3="47.55" y1="22.15" y2="22.15" y3="22.15"/>
+ <curve x1="47.4" x2="47.24" x3="47.24" y1="22.15" y2="22.35" y3="22.5"/>
+ <line x="42.54" y="21.29"/>
+ <line x="39.75" y="20.93"/>
+ <line x="36.97" y="21.45"/>
+ <curve x1="36.97" x2="27.76" x3="27.4" y1="21.45" y2="23.56" y3="23.56"/>
+ <line x="27.4" y="31.21"/>
+ <curve x1="27.4" x2="27.75" x3="28.11" y1="32.93" y2="34.5" y3="36.07"/>
+ <curve x1="28.11" x2="27.91" x3="27.91" y1="35.92" y2="35.91" y3="35.91"/>
+ <curve x1="27.75" x2="27.4" x3="27.21" y1="35.72" y2="35.72" y3="35.72"/>
+ <curve x1="27.05" x2="26.89" x3="26.54" y1="35.56" y2="35.4" y3="35.21"/>
+ <curve x1="26.34" x2="26.18" x3="26.18" y1="35.05" y2="34.7" y3="34.5"/>
+ <curve x1="26.18" x2="26.34" x3="26.34" y1="34.35" y2="33.99" y3="33.84"/>
+ <curve x1="26.34" x2="25.83" x3="25.48" y1="33.13" y2="32.42" y3="32.07"/>
+ <curve x1="25.32" x2="24.97" x3="24.62" y1="31.56" y2="31.36" y3="31.21"/>
+ <line x="24.62" y="30.7"/>
+ <curve x1="24.42" x2="24.26" x3="24.11" y1="30.5" y2="30.15" y3="29.84"/>
+ <curve x1="23.91" x2="23.56" x3="23.4" y1="29.48" y2="29.29" y3="29.13"/>
+ <curve x1="23.4" x2="23.56" x3="23.4" y1="28.58" y2="28.27" y3="27.92"/>
+ <curve x1="23.21" x2="22.54" x3="22.54" y1="27.37" y2="27.56" y3="28.43"/>
+ <curve x1="22.54" x2="22.85" x3="23.05" y1="28.58" y2="28.78" y3="29.13"/>
+ <line x="23.05" y="29.84"/>
+ <curve x1="23.2" x2="23.4" x3="23.56" y1="30.15" y2="30.35" y3="30.7"/>
+ <curve x1="23.75" x2="23.75" x3="23.75" y1="31.05" y2="31.56" y3="31.72"/>
+ <curve x1="23.91" x2="24.26" x3="24.11" y1="32.07" y2="32.27" y3="32.62"/>
+ <curve x1="23.75" x2="23.76" x3="23.4" y1="32.78" y2="32.42" y3="32.27"/>
+ <curve x1="23.4" x2="23.05" x3="23.05" y1="32.07" y2="31.92" y3="31.56"/>
+ <curve x1="22.85" x2="23.05" x3="23.05" y1="31.37" y2="31.21" y3="30.86"/>
+ <curve x1="22.85" x2="21.99" x3="21.99" y1="30.51" y2="30.5" y3="30"/>
+ <curve x1="21.99" x2="22.34" x3="22.34" y1="29.84" y2="29.64" y3="29.29"/>
+ <curve x1="22.34" x2="21.83" x3="21.83" y1="29.13" y2="28.78" y3="28.58"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="28.42" y2="27.92" y3="27.56"/>
+ <line x="21.64" y="26.5"/>
+ <curve x1="21.64" x2="21.13" x3="20.97" y1="26.35" y2="26.15" y3="25.99"/>
+ <curve x1="20.77" x2="20.42" x3="20.42" y1="25.8" y2="25.99" y3="25.64"/>
+ <curve x1="20.26" x2="20.27" x3="20.07" y1="25.48" y2="24.94" y3="24.78"/>
+ <line x="20.07" y="23.56"/>
+ <line x="20.07" y="22.35"/>
+ <curve x1="20.27" x2="20.42" x3="20.62" y1="22" y2="21.8" y3="21.64"/>
+ <curve x1="20.77" x2="20.77" x3="20.97" y1="21.29" y2="21.13" y3="20.78"/>
+ <curve x1="21.13" x2="21.63" x3="21.99" y1="20.43" y2="20.07" y3="19.56"/>
+ <curve x1="22.34" x2="22.69" x3="23.05" y1="19.01" y2="18.66" y3="18.15"/>
+ <curve x1="23.05" x2="23.21" x3="23.21" y1="18" y2="17.64" y3="17.29"/>
+ <curve x1="23.21" x2="22.54" x3="22.54" y1="17.09" y2="16.78" y3="16.42"/>
+ <curve x1="22.54" x2="23.05" x3="23.05" y1="16.23" y2="16.23" y3="15.88"/>
+ <curve x1="23.05" x2="23.21" x3="23.21" y1="15.88" y2="15.53" y3="15.37"/>
+ <curve x1="23.21" x2="23.05" x3="23.05" y1="15.02" y2="14.86" y3="14.31"/>
+ <curve x1="23.05" x2="23.56" x3="23.4" y1="14.15" y2="13.96" y3="13.64"/>
+ <line x="23.21" y="13.64"/>
+ <line x="22.7" y="13.64"/>
+ <line x="22.54" y="13.64"/>
+ <curve x1="22.34" x2="22.54" x3="22.54" y1="13.45" y2="13.29" y3="12.94"/>
+ <line x="22.54" y="12.58"/>
+ <curve x1="22.54" x2="22.7" x3="22.7" y1="12.23" y2="12.08" y3="12.08"/>
+ <curve x1="22.54" x2="22.54" x3="22.54" y1="11.88" y2="11.88" y3="11.52"/>
+ <close/>
+ <move x="57.3" y="8.75"/>
+ <curve x1="57.14" x2="56.44" x3="56.44" y1="9.45" y2="9.46" y3="10.16"/>
+ <curve x1="56.8" x2="57.3" x3="57.5" y1="11.18" y2="11.38" y3="11.54"/>
+ <curve x1="58.01" x2="58.52" x3="58.87" y1="11.54" y2="11.38" y3="11.18"/>
+ <curve x1="59.06" x2="59.22" x3="59.22" y1="11.18" y2="10.83" y3="10.67"/>
+ <curve x1="58.71" x2="58.01" x3="57.3" y1="9.97" y2="9.45" y3="8.75"/>
+ <close/>
+ <move x="50.17" y="5.97"/>
+ <curve x1="50.17" x2="50.53" x3="50.68" y1="6.12" y2="6.32" y3="6.32"/>
+ <curve x1="50.88" x2="51.04" x3="51.39" y1="6.48" y2="6.83" y3="7.03"/>
+ <curve x1="51.04" x2="51.03" x3="51.03" y1="7.18" y2="7.34" y3="7.34"/>
+ <curve x1="50.68" x2="50.37" x3="50.17" y1="7.34" y2="7.03" y3="7.03"/>
+ <curve x1="49.82" x2="49.31" x3="48.96" y1="7.03" y2="7.54" y3="7.54"/>
+ <curve x1="48.8" x2="48.6" x3="48.45" y1="7.54" y2="7.34" y3="7.19"/>
+ <curve x1="48.6" x2="48.96" x3="49.15" y1="6.83" y2="6.83" y3="6.32"/>
+ <curve x1="48.96" x2="48.96" x3="48.96" y1="6.32" y2="6.32" y3="6.48"/>
+ <curve x1="48.8" x2="48.8" x3="48.45" y1="6.48" y2="6.48" y3="6.68"/>
+ <curve x1="48.25" x2="48.09" x3="47.74" y1="6.83" y2="6.83" y3="7.03"/>
+ <line x="47.03" y="7.03"/>
+ <curve x1="46.68" x2="46.52" x3="46.17" y1="7.18" y2="7.54" y3="7.54"/>
+ <curve x1="45.82" x2="45.66" x3="45.46" y1="7.69" y2="7.69" y3="7.69"/>
+ <curve x1="45.15" x2="44.6" x3="44.25" y1="7.89" y2="8.05" y3="8.4"/>
+ <curve x1="43.74" x2="43.38" x3="43.03" y1="8.6" y2="8.75" y3="9.1"/>
+ <curve x1="43.03" x2="42.52" x3="42.52" y1="9.26" y2="9.62" y3="9.81"/>
+ <curve x1="42.52" x2="43.03" x3="43.03" y1="9.97" y2="10.17" y3="10.32"/>
+ <curve x1="43.03" x2="42.88" x3="42.88" y1="10.32" y2="10.67" y3="10.83"/>
+ <line x="43.23" y="10.83"/>
+ <line x="43.58" y="10.83"/>
+ <curve x1="44.25" x2="44.44" x3="44.8" y1="11.03" y2="11.38" y3="11.54"/>
+ <curve x1="45.15" x2="45.47" x3="45.82" y1="11.89" y2="12.04" y3="12.04"/>
+ <line x="46.52" y="12.04"/>
+ <curve x1="46.68" x2="46.88" x3="46.88" y1="12.04" y2="12.05" y3="12.4"/>
+ <curve x1="47.04" x2="46.52" x3="46.36" y1="12.6" y2="12.76" y3="12.95"/>
+ <curve x1="46.68" x2="46.36" x3="46.36" y1="13.46" y2="13.46" y3="13.81"/>
+ <curve x1="46.36" x2="46.68" x3="46.68" y1="13.97" y2="14.32" y3="14.32"/>
+ <curve x1="47.04" x2="47.58" x3="47.74" y1="14.32" y2="13.97" y3="13.61"/>
+ <curve x1="47.93" x2="47.74" x3="48.09" y1="13.26" y2="12.75" y3="12.4"/>
+ <curve x1="49.66" x2="50.88" x3="50.88" y1="12.4" y2="11.69" y3="10.16"/>
+ <curve x1="50.88" x2="50.68" x3="50.88" y1="9.97" y2="9.81" y3="9.62"/>
+ <curve x1="50.88" x2="51.23" x3="51.03" y1="9.27" y2="9.11" y3="8.75"/>
+ <curve x1="51.39" x2="51.39" x3="51.58" y1="8.6" y2="8.6" y3="8.4"/>
+ <curve x1="51.58" x2="51.93" x3="51.93" y1="8.05" y2="7.89" y3="7.89"/>
+ <curve x1="52.09" x2="52.09" x3="52.09" y1="7.89" y2="7.69" y3="7.69"/>
+ <curve x1="52.09" x2="52.25" x3="52.45" y1="7.69" y2="7.69" y3="7.89"/>
+ <line x="52.6" y="7.89"/>
+ <curve x1="52.8" x2="52.95" x3="53.31" y1="7.89" y2="8.05" y3="8.05"/>
+ <curve x1="53.46" x2="53.47" x3="53.66" y1="8.05" y2="7.89" y3="7.89"/>
+ <curve x1="52.6" x2="51.38" x3="50.17" y1="7.19" y2="6.48" y3="5.97"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="68.96" name="wireless corporate device" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.01" y="68.96"/>
+ <line x="80" y="34.41"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.41"/>
+ <line x="20.07" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <line x="60.01" y="68.96"/>
+ <close/>
+ <move x="24.75" y="10.16"/>
+ <curve x1="25.02" x2="25.3" x3="25.56" y1="10.18" y2="10.22" y3="10.29"/>
+ <curve x1="26.25" x2="26.53" x3="26.94" y1="10.49" y2="11.12" y3="11.34"/>
+ <curve x1="27.16" x2="27.44" x3="27.5" y1="11.46" y2="11.34" y3="12.09"/>
+ <curve x1="27.64" x2="27.57" x3="27.5" y1="13" y2="15.22" y3="15.92"/>
+ <curve x1="27.44" x2="26.25" x3="24.73" y1="18.35" y2="20.51" y3="21.4"/>
+ <curve x1="24.93" x2="25" x3="25.14" y1="21.55" y2="21.62" y3="21.83"/>
+ <curve x1="25.42" x2="25.7" x3="25.91" y1="21.97" y2="22.11" y3="22.25"/>
+ <curve x1="26.53" x2="27.3" x3="28.13" y1="22.8" y2="23.08" y3="23.22"/>
+ <curve x1="29.52" x2="30.7" x3="31.53" y1="23.5" y2="24.33" y3="25.44"/>
+ <line x="45.49" y="25.44"/>
+ <line x="56.53" y="25.44"/>
+ <curve x1="57.23" x2="57.78" x3="57.78" y1="25.44" y2="25.93" y3="26.56"/>
+ <line x="57.78" y="47.83"/>
+ <line x="56.67" y="47.83"/>
+ <line x="56.67" y="26.56"/>
+ <line x="56.53" y="26.56"/>
+ <line x="45.49" y="26.56"/>
+ <line x="32.15" y="26.56"/>
+ <curve x1="32.43" x2="32.58" x3="32.58" y1="27.12" y2="27.67" y3="28.36"/>
+ <line x="33.06" y="34.68"/>
+ <curve x1="33.06" x2="31.6" x3="29.24" y1="34.68" y2="35.1" y3="35.38"/>
+ <line x="29.24" y="38.86"/>
+ <line x="29.24" y="47.83"/>
+ <line x="28.13" y="47.83"/>
+ <line x="28.13" y="38.86"/>
+ <line x="28.13" y="35.53"/>
+ <curve x1="26.67" x2="25" x3="23.2" y1="35.67" y2="35.81" y3="35.81"/>
+ <curve x1="17.5" x2="13.33" x3="13.33" y1="35.81" y2="34.68" y3="34.68"/>
+ <line x="13.82" y="28.36"/>
+ <curve x1="13.96" x2="15.9" x3="18.27" y1="25.79" y2="23.99" y3="23.22"/>
+ <curve x1="19.17" x2="19.86" x3="20.49" y1="23.02" y2="22.74" y3="22.17"/>
+ <curve x1="20.69" x2="20.91" x3="21.12" y1="22.03" y2="21.83" y3="21.62"/>
+ <curve x1="21.26" x2="21.4" x3="21.52" y1="21.55" y2="21.4" y3="21.28"/>
+ <curve x1="20.14" x2="19.1" x3="18.89" y1="20.43" y2="18.56" y3="16.27"/>
+ <curve x1="18.89" x2="18.55" x3="18.81" y1="15.99" y2="13.2" y3="12.23"/>
+ <curve x1="19.1" x2="19.86" x3="20.35" y1="11.2" y2="10.63" y3="10.49"/>
+ <line x="21.12" y="10.49"/>
+ <curve x1="21.74" x2="21.94" x3="22.57" y1="10.49" y2="10.57" y3="10.43"/>
+ <curve x1="23.09" x2="23.92" x3="24.75" y1="10.28" y2="10.12" y3="10.16"/>
+ <close/>
+ <move x="40.65" y="29.61"/>
+ <curve x1="43.12" x2="45.65" x3="47.78" y1="29.72" y2="30.59" y3="32.11"/>
+ <curve x1="50.7" x2="52.78" x3="53.26" y1="34.21" y2="37.54" y3="41.02"/>
+ <curve x1="53.34" x2="52.92" x3="52.37" y1="41.64" y2="42.19" y3="42.27"/>
+ <line x="52.23" y="42.27"/>
+ <curve x1="51.74" x2="51.26" x3="51.18" y1="42.27" y2="41.91" y3="41.36"/>
+ <curve x1="50.84" x2="49.44" x3="46.53" y1="39.14" y2="36.01" y3="33.93"/>
+ <curve x1="43.34" x2="39.52" x3="37.09" y1="31.56" y2="31.36" y3="32.25"/>
+ <curve x1="36.61" x2="35.98" x3="35.76" y1="32.47" y2="32.19" y3="31.62"/>
+ <curve x1="35.56" x2="35.84" x3="36.39" y1="31.08" y2="30.45" y3="30.25"/>
+ <curve x1="37.72" x2="39.17" x3="40.65" y1="29.75" y2="29.54" y3="29.61"/>
+ <close/>
+ <move x="39.89" y="33.25"/>
+ <curve x1="44.47" x2="48.71" x3="49.8" y1="33.1" y2="36.16" y3="40.67"/>
+ <line x="49.86" y="40.95"/>
+ <line x="49.93" y="41.01"/>
+ <curve x1="50" x2="49.66" x3="49.03" y1="41.57" y2="42.12" y3="42.2"/>
+ <curve x1="48.47" x2="47.92" x3="47.78" y1="42.26" y2="41.92" y3="41.36"/>
+ <line x="47.78" y="41.29"/>
+ <line x="47.78" y="41.15"/>
+ <curve x1="46.73" x2="42.57" x3="38.41" y1="37.05" y2="34.55" y3="35.52"/>
+ <line x="38.26" y="35.52"/>
+ <line x="38.2" y="35.52"/>
+ <curve x1="37.57" x2="37.01" x3="36.87" y1="35.66" y2="35.31" y3="34.76"/>
+ <curve x1="36.67" x2="37.09" x3="37.64" y1="34.2" y2="33.65" y3="33.51"/>
+ <line x="37.72" y="33.51"/>
+ <line x="37.92" y="33.51"/>
+ <curve x1="38.58" x2="39.24" x3="39.89" y1="33.35" y2="33.27" y3="33.25"/>
+ <close/>
+ <move x="40.01" y="37.32"/>
+ <curve x1="43.08" x2="45.93" x3="46.59" y1="37.26" y2="39.29" y3="42.26"/>
+ <curve x1="46.67" x2="46.39" x3="45.84" y1="42.75" y2="43.23" y3="43.31"/>
+ <curve x1="45.62" x2="45.36" x3="45.14" y1="43.37" y2="43.31" y3="43.23"/>
+ <curve x1="45" x2="44.79" x3="44.79" y1="43.11" y2="42.89" y3="42.68"/>
+ <curve x1="44.17" x2="41.6" x3="39.03" y1="40.26" y2="38.72" y3="39.21"/>
+ <curve x1="38.55" x2="38.06" x3="37.92" y1="39.35" y2="39.07" y3="38.58"/>
+ <curve x1="37.78" x2="38.12" x3="38.69" y1="38.1" y2="37.61" y3="37.47"/>
+ <curve x1="39.13" x2="39.57" x3="40.01" y1="37.37" y2="37.32" y3="37.32"/>
+ <close/>
+ <move x="39.96" y="41.42"/>
+ <curve x1="40.32" x2="40.7" x3="41.04" y1="41.41" y2="41.5" y3="41.71"/>
+ <curve x1="42.01" x2="42.23" x3="41.67" y1="42.33" y2="43.59" y3="44.49"/>
+ <curve x1="41.12" x2="39.87" x3="38.96" y1="45.39" y2="45.61" y3="45.04"/>
+ <curve x1="38.05" x2="37.79" x3="38.41" y1="44.49" y2="43.24" y3="42.33"/>
+ <curve x1="38.75" x2="39.34" x3="39.96" y1="41.76" y2="41.45" y3="41.42"/>
+ <close/>
+ <move x="26.04" y="47.83"/>
+ <line x="27.98" y="47.83"/>
+ <line x="29.17" y="47.83"/>
+ <line x="29.32" y="47.83"/>
+ <line x="57.43" y="47.83"/>
+ <line x="57.57" y="47.83"/>
+ <line x="58.75" y="47.83"/>
+ <line x="60.63" y="47.83"/>
+ <curve x1="61.68" x2="62.22" x3="62.22" y1="47.83" y2="48.44" y3="49.43"/>
+ <line x="62.22" y="50.4"/>
+ <curve x1="62.22" x2="61.68" x3="60.63" y1="51.37" y2="52.28" y3="52.28"/>
+ <line x="26.04" y="52.28"/>
+ <curve x1="25.07" x2="24.45" x3="24.45" y1="52.28" y2="51.37" y3="50.4"/>
+ <line x="24.45" y="49.43"/>
+ <curve x1="24.45" x2="25.07" x3="26.04" y1="48.44" y2="47.83" y3="47.83"/>
+ <close/>
+ <move x="51.81" y="49.01"/>
+ <line x="51.81" y="50.68"/>
+ <line x="58.75" y="50.68"/>
+ <line x="58.75" y="49.01"/>
+ <line x="57.51" y="49.01"/>
+ <line x="51.81" y="49.01"/>
+ <close/>
+ <move x="40.9" y="49.15"/>
+ <curve x1="40.41" x2="40.01" x3="40.01" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="40.01" x2="40.41" x3="40.9" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="41.32" x2="41.6" x3="41.6" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="41.6" x2="41.32" x3="40.9" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="43.34" y="49.15"/>
+ <curve x1="42.92" x2="42.5" x3="42.5" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="42.5" x2="42.92" x3="43.34" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="43.83" x2="44.09" x3="44.09" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="44.09" x2="43.83" x3="43.34" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ <move x="45.83" y="49.15"/>
+ <curve x1="45.42" x2="44.94" x3="44.94" y1="49.15" y2="49.49" y3="49.98"/>
+ <curve x1="44.94" x2="45.42" x3="45.83" y1="50.4" y2="50.68" y3="50.68"/>
+ <curve x1="46.25" x2="46.6" x3="46.6" y1="50.68" y2="50.4" y3="49.98"/>
+ <curve x1="46.6" x2="46.25" x3="45.83" y1="49.49" y2="49.15" y3="49.15"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="71.06" name="wireless switch" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="61.77" y="28.06"/>
+ <curve x1="61.91" x2="61.97" x3="61.97" y1="28.2" y2="28.49" y3="28.76"/>
+ <curve x1="61.97" x2="61.97" x3="61.97" y1="28.76" y2="28.76" y3="28.9"/>
+ <curve x1="61.97" x2="61.91" x3="61.63" y1="29.18" y2="29.47" y3="29.68"/>
+ <curve x1="61.63" x2="61.63" x3="61.63" y1="29.68" y2="29.76" y3="29.76"/>
+ <curve x1="61.63" x2="61.63" x3="57.67" y1="29.76" y2="29.76" y3="33.63"/>
+ <curve x1="57.32" x2="56.69" x3="56.34" y1="34.04" y2="34.04" y3="33.63"/>
+ <curve x1="56.34" x2="56.34" x3="56.2" y1="33.63" y2="33.63" y3="33.49"/>
+ <curve x1="55.78" x2="55.78" x3="56.2" y1="33.14" y2="32.5" y3="32.15"/>
+ <curve x1="56.2" x2="56.2" x3="58.45" y1="32.15" y2="32.15" y3="29.88"/>
+ <curve x1="58.45" x2="58.45" x3="51.48" y1="29.88" y2="29.88" y3="29.88"/>
+ <curve x1="51.19" x2="50.29" x3="48.88" y1="32.28" y2="34.41" y3="36.17"/>
+ <curve x1="48.88" x2="48.88" x3="53.81" y1="36.17" y2="36.17" y3="41.09"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="41.09" y2="41.09" y3="37.85"/>
+ <curve x1="53.81" x2="54.31" x3="54.8" y1="37.36" y2="36.87" y3="36.87"/>
+ <curve x1="54.8" x2="54.8" x3="55.01" y1="36.87" y2="36.87" y3="36.87"/>
+ <curve x1="55.56" x2="55.99" x3="55.99" y1="36.87" y2="37.36" y3="37.85"/>
+ <curve x1="55.99" x2="55.99" x3="55.99" y1="37.85" y2="37.85" y3="43.42"/>
+ <curve x1="55.99" x2="55.93" x3="55.93" y1="43.49" y2="43.57" y3="43.63"/>
+ <curve x1="55.93" x2="55.78" x3="55.64" y1="43.85" y2="44.12" y3="44.35"/>
+ <curve x1="55.64" x2="55.64" x3="55.5" y1="44.35" y2="44.35" y3="44.41"/>
+ <curve x1="55.29" x2="55.01" x3="54.72" y1="44.62" y2="44.76" y3="44.69"/>
+ <curve x1="54.72" x2="54.66" x3="54.66" y1="44.69" y2="44.69" y3="44.69"/>
+ <curve x1="54.66" x2="54.66" x3="49.08" y1="44.69" y2="44.69" y3="44.69"/>
+ <curve x1="48.59" x2="48.18" x3="48.18" y1="44.69" y2="44.27" y3="43.77"/>
+ <curve x1="48.18" x2="48.18" x3="48.18" y1="43.77" y2="43.77" y3="43.57"/>
+ <curve x1="48.18" x2="48.59" x3="49.08" y1="43" y2="42.58" y3="42.58"/>
+ <curve x1="49.08" x2="49.08" x3="52.26" y1="42.58" y2="42.58" y3="42.58"/>
+ <curve x1="52.26" x2="52.26" x3="47.32" y1="42.58" y2="42.58" y3="37.65"/>
+ <curve x1="45.64" x2="43.45" x3="41.13" y1="39.06" y2="39.96" y3="40.25"/>
+ <curve x1="41.13" x2="41.13" x3="41.13" y1="40.25" y2="40.25" y3="47.24"/>
+ <curve x1="41.13" x2="41.13" x3="43.38" y1="47.24" y2="47.24" y3="44.98"/>
+ <curve x1="43.73" x2="44.37" x3="44.72" y1="44.62" y2="44.62" y3="44.98"/>
+ <curve x1="44.72" x2="44.72" x3="44.86" y1="44.98" y2="44.98" y3="45.12"/>
+ <curve x1="45.29" x2="45.29" x3="44.86" y1="45.47" y2="46.11" y3="46.46"/>
+ <curve x1="44.86" x2="44.86" x3="40.99" y1="46.46" y2="46.46" y3="50.41"/>
+ <curve x1="40.92" x2="40.92" x3="40.92" y1="50.41" y2="50.41" y3="50.41"/>
+ <curve x1="40.7" x2="40.49" x3="40.14" y1="50.68" y2="50.76" y3="50.76"/>
+ <curve x1="40.14" x2="40.14" x3="39.94" y1="50.76" y2="50.76" y3="50.76"/>
+ <curve x1="39.72" x2="39.51" x3="39.3" y1="50.76" y2="50.68" y3="50.54"/>
+ <curve x1="39.22" x2="39.16" x3="39.08" y1="50.47" y2="50.41" y3="50.41"/>
+ <curve x1="39.08" x2="39.08" x3="35.21" y1="50.41" y2="50.41" y3="46.46"/>
+ <curve x1="34.79" x2="34.79" x3="35.21" y1="46.11" y2="45.47" y3="45.12"/>
+ <curve x1="35.21" x2="35.21" x3="35.35" y1="45.12" y2="45.12" y3="44.98"/>
+ <curve x1="35.7" x2="36.33" x3="36.7" y1="44.62" y2="44.62" y3="44.98"/>
+ <curve x1="36.7" x2="36.7" x3="38.95" y1="44.98" y2="44.98" y3="47.24"/>
+ <curve x1="38.95" x2="38.95" x3="38.95" y1="47.24" y2="47.24" y3="40.25"/>
+ <curve x1="36.62" x2="34.45" x3="32.75" y1="39.96" y2="39.12" y3="37.65"/>
+ <curve x1="32.75" x2="32.75" x3="27.83" y1="37.65" y2="37.65" y3="42.58"/>
+ <curve x1="27.83" x2="27.83" x3="30.98" y1="42.58" y2="42.58" y3="42.58"/>
+ <curve x1="31.48" x2="31.91" x3="31.91" y1="42.58" y2="43" y3="43.57"/>
+ <curve x1="31.91" x2="31.91" x3="31.91" y1="43.57" y2="43.57" y3="43.77"/>
+ <curve x1="31.91" x2="31.48" x3="30.98" y1="44.27" y2="44.69" y3="44.69"/>
+ <curve x1="30.98" x2="30.98" x3="25.43" y1="44.69" y2="44.69" y3="44.69"/>
+ <curve x1="25.43" x2="25.35" x3="25.35" y1="44.69" y2="44.69" y3="44.69"/>
+ <curve x1="25.08" x2="24.79" x3="24.59" y1="44.76" y2="44.62" y3="44.41"/>
+ <curve x1="24.59" x2="24.59" x3="24.44" y1="44.41" y2="44.41" y3="44.35"/>
+ <curve x1="24.22" x2="24.16" x3="24.16" y1="44.12" y2="43.85" y3="43.63"/>
+ <curve x1="24.16" x2="24.09" x3="24.09" y1="43.57" y2="43.49" y3="43.42"/>
+ <curve x1="24.09" x2="24.09" x3="24.09" y1="43.42" y2="43.42" y3="37.85"/>
+ <curve x1="24.09" x2="24.51" x3="25.08" y1="37.36" y2="36.87" y3="36.87"/>
+ <curve x1="25.08" x2="25.08" x3="25.28" y1="36.87" y2="36.87" y3="36.87"/>
+ <curve x1="25.84" x2="26.27" x3="26.27" y1="36.87" y2="37.36" y3="37.85"/>
+ <curve x1="26.27" x2="26.27" x3="26.27" y1="37.85" y2="37.85" y3="41.09"/>
+ <curve x1="26.27" x2="26.27" x3="31.21" y1="41.09" y2="41.09" y3="36.17"/>
+ <curve x1="29.79" x2="28.87" x3="28.59" y1="34.41" y2="32.28" y3="29.88"/>
+ <curve x1="28.59" x2="28.59" x3="21.62" y1="29.88" y2="29.88" y3="29.88"/>
+ <curve x1="21.62" x2="21.62" x3="23.87" y1="29.88" y2="29.88" y3="32.15"/>
+ <curve x1="24.22" x2="24.22" x3="23.87" y1="32.5" y2="33.14" y3="33.49"/>
+ <curve x1="23.87" x2="23.87" x3="23.73" y1="33.49" y2="33.49" y3="33.63"/>
+ <curve x1="23.38" x2="22.74" x3="22.4" y1="34.04" y2="34.04" y3="33.63"/>
+ <curve x1="22.4" x2="22.4" x3="18.46" y1="33.63" y2="33.63" y3="29.76"/>
+ <curve x1="18.46" x2="18.38" x3="18.38" y1="29.76" y2="29.68" y3="29.68"/>
+ <curve x1="18.17" x2="18.03" x3="18.03" y1="29.47" y2="29.18" y3="28.9"/>
+ <curve x1="18.03" x2="18.03" x3="18.03" y1="28.9" y2="28.9" y3="28.76"/>
+ <curve x1="18.03" x2="18.17" x3="18.32" y1="28.49" y2="28.2" y3="28.06"/>
+ <curve x1="18.32" x2="18.38" x3="18.46" y1="27.99" y2="27.91" y3="27.85"/>
+ <curve x1="18.46" x2="18.46" x3="22.4" y1="27.85" y2="27.85" y3="23.96"/>
+ <curve x1="22.74" x2="23.38" x3="23.73" y1="23.61" y2="23.61" y3="23.96"/>
+ <curve x1="23.73" x2="23.73" x3="23.87" y1="23.96" y2="23.96" y3="24.1"/>
+ <curve x1="24.22" x2="24.22" x3="23.87" y1="24.53" y2="25.09" y3="25.45"/>
+ <curve x1="23.87" x2="23.87" x3="21.62" y1="25.45" y2="25.45" y3="27.77"/>
+ <curve x1="21.62" x2="21.62" x3="28.59" y1="27.77" y2="27.77" y3="27.77"/>
+ <curve x1="28.81" x2="29.71" x3="31.21" y1="25.37" y2="23.26" y3="21.5"/>
+ <curve x1="31.21" x2="31.21" x3="26.27" y1="21.5" y2="21.5" y3="16.56"/>
+ <curve x1="26.27" x2="26.27" x3="26.27" y1="16.56" y2="16.56" y3="19.74"/>
+ <curve x1="26.27" x2="25.84" x3="25.28" y1="20.23" y2="20.72" y3="20.72"/>
+ <curve x1="25.28" x2="25.28" x3="25.08" y1="20.72" y2="20.72" y3="20.72"/>
+ <curve x1="24.51" x2="24.09" x3="24.09" y1="20.72" y2="20.23" y3="19.74"/>
+ <curve x1="24.09" x2="24.09" x3="24.09" y1="19.74" y2="19.74" y3="14.24"/>
+ <curve x1="24.09" x2="24.09" x3="24.16" y1="14.17" y2="14.17" y3="14.1"/>
+ <curve x1="24.09" x2="24.16" x3="24.44" y1="13.82" y2="13.53" y3="13.32"/>
+ <curve x1="24.44" x2="24.44" x3="24.51" y1="13.32" y2="13.32" y3="13.18"/>
+ <curve x1="24.71" x2="25" x3="25.21" y1="12.97" y2="12.89" y3="12.89"/>
+ <curve x1="25.28" x2="25.35" x3="25.43" y1="12.89" y2="12.89" y3="12.89"/>
+ <curve x1="25.43" x2="25.43" x3="30.98" y1="12.89" y2="12.89" y3="12.89"/>
+ <curve x1="31.48" x2="31.91" x3="31.91" y1="12.89" y2="13.32" y3="13.9"/>
+ <curve x1="31.91" x2="31.91" x3="31.91" y1="13.9" y2="13.9" y3="14.02"/>
+ <curve x1="31.91" x2="31.48" x3="30.98" y1="14.59" y2="15.02" y3="15.02"/>
+ <curve x1="30.98" x2="30.98" x3="27.75" y1="15.02" y2="15.02" y3="15.02"/>
+ <curve x1="27.75" x2="27.75" x3="32.68" y1="15.02" y2="15.02" y3="20.02"/>
+ <curve x1="34.45" x2="36.62" x3="38.95" y1="18.55" y2="17.63" y3="17.42"/>
+ <curve x1="38.95" x2="38.95" x3="38.95" y1="17.42" y2="17.42" y3="10.35"/>
+ <curve x1="38.95" x2="38.95" x3="36.7" y1="10.35" y2="10.35" y3="12.63"/>
+ <curve x1="36.33" x2="35.7" x3="35.35" y1="12.97" y2="12.97" y3="12.63"/>
+ <curve x1="35.35" x2="35.35" x3="35.21" y1="12.63" y2="12.63" y3="12.48"/>
+ <curve x1="34.79" x2="34.79" x3="35.21" y1="12.12" y2="11.5" y3="11.13"/>
+ <curve x1="35.21" x2="35.21" x3="39.08" y1="11.13" y2="11.13" y3="7.26"/>
+ <curve x1="39.16" x2="39.22" x3="39.3" y1="7.12" y2="7.12" y3="7.05"/>
+ <curve x1="39.51" x2="39.72" x3="39.94" y1="6.91" y2="6.77" y3="6.77"/>
+ <curve x1="39.94" x2="39.94" x3="40.14" y1="6.77" y2="6.77" y3="6.77"/>
+ <curve x1="40.49" x2="40.7" x3="40.92" y1="6.77" y2="6.97" y3="7.12"/>
+ <curve x1="40.92" x2="40.92" x3="40.99" y1="7.2" y2="7.2" y3="7.26"/>
+ <curve x1="40.99" x2="40.99" x3="44.86" y1="7.26" y2="7.26" y3="11.13"/>
+ <curve x1="45.29" x2="45.29" x3="44.86" y1="11.5" y2="12.12" y3="12.48"/>
+ <curve x1="44.86" x2="44.86" x3="44.72" y1="12.48" y2="12.48" y3="12.63"/>
+ <curve x1="44.37" x2="43.73" x3="43.38" y1="12.97" y2="12.97" y3="12.63"/>
+ <curve x1="43.38" x2="43.38" x3="41.13" y1="12.63" y2="12.63" y3="10.35"/>
+ <curve x1="41.13" x2="41.13" x3="41.13" y1="10.35" y2="10.35" y3="17.42"/>
+ <curve x1="43.45" x2="45.64" x3="47.4" y1="17.63" y2="18.55" y3="20.02"/>
+ <curve x1="47.4" x2="47.4" x3="52.32" y1="20.02" y2="20.02" y3="15.02"/>
+ <curve x1="52.32" x2="52.32" x3="49.08" y1="15.02" y2="15.02" y3="15.02"/>
+ <curve x1="48.59" x2="48.18" x3="48.18" y1="15.02" y2="14.59" y3="14.02"/>
+ <curve x1="48.18" x2="48.18" x3="48.18" y1="14.02" y2="14.02" y3="13.9"/>
+ <curve x1="48.18" x2="48.59" x3="49.08" y1="13.32" y2="12.89" y3="12.89"/>
+ <curve x1="49.08" x2="49.08" x3="54.66" y1="12.89" y2="12.89" y3="12.89"/>
+ <curve x1="54.72" x2="54.8" x3="54.86" y1="12.89" y2="12.89" y3="12.89"/>
+ <curve x1="55.07" x2="55.35" x3="55.56" y1="12.89" y2="12.97" y3="13.18"/>
+ <curve x1="55.56" x2="55.56" x3="55.64" y1="13.18" y2="13.18" y3="13.32"/>
+ <curve x1="55.93" x2="55.99" x3="55.99" y1="13.53" y2="13.82" y3="14.1"/>
+ <curve x1="55.99" x2="55.99" x3="55.99" y1="14.17" y2="14.17" y3="14.24"/>
+ <curve x1="55.99" x2="55.99" x3="55.99" y1="14.24" y2="14.24" y3="19.74"/>
+ <curve x1="55.99" x2="55.56" x3="55.01" y1="20.23" y2="20.72" y3="20.72"/>
+ <curve x1="55.01" x2="55.01" x3="54.8" y1="20.72" y2="20.72" y3="20.72"/>
+ <curve x1="54.31" x2="53.81" x3="53.81" y1="20.72" y2="20.23" y3="19.74"/>
+ <curve x1="53.81" x2="53.81" x3="53.81" y1="19.74" y2="19.74" y3="16.56"/>
+ <curve x1="53.81" x2="53.81" x3="48.88" y1="16.56" y2="16.56" y3="21.5"/>
+ <curve x1="50.29" x2="51.27" x3="51.48" y1="23.26" y2="25.37" y3="27.77"/>
+ <curve x1="51.48" x2="51.48" x3="58.45" y1="27.77" y2="27.77" y3="27.77"/>
+ <curve x1="58.45" x2="58.45" x3="56.2" y1="27.77" y2="27.77" y3="25.45"/>
+ <curve x1="55.78" x2="55.78" x3="56.2" y1="25.09" y2="24.53" y3="24.1"/>
+ <curve x1="56.2" x2="56.2" x3="56.34" y1="24.1" y2="24.1" y3="23.96"/>
+ <curve x1="56.69" x2="57.32" x3="57.67" y1="23.61" y2="23.61" y3="23.96"/>
+ <curve x1="57.67" x2="57.67" x3="61.63" y1="23.96" y2="23.96" y3="27.85"/>
+ <curve x1="61.69" x2="61.77" x3="61.77" y1="27.91" y2="27.99" y3="28.06"/>
+ <close/>
+ <move x="65.22" y="59.99"/>
+ <curve x1="65.35" x2="65.22" x3="64.79" y1="60.41" y2="60.83" y3="61.04"/>
+ <curve x1="64.79" x2="64.72" x3="64.65" y1="61.04" y2="61.04" y3="61.04"/>
+ <curve x1="63.95" x2="62.75" x3="60.64" y1="62.88" y2="65.07" y3="65.07"/>
+ <curve x1="58.67" x2="57.54" x3="56.62" y1="65.07" y2="63.52" y3="61.68"/>
+ <curve x1="55.63" x2="54.51" x3="52.4" y1="63.58" y2="65.42" y3="65.42"/>
+ <curve x1="50.36" x2="49.09" x3="48.03" y1="65.42" y2="63.58" y3="61.68"/>
+ <curve x1="47.05" x2="45.92" x3="44.16" y1="63.44" y2="65.07" y3="65.07"/>
+ <curve x1="42.19" x2="41.06" x3="40.14" y1="65.07" y2="63.52" y3="61.68"/>
+ <curve x1="39.15" x2="38.03" x3="35.92" y1="63.58" y2="65.42" y3="65.42"/>
+ <curve x1="33.87" x2="32.61" x3="31.63" y1="65.42" y2="63.58" y3="61.68"/>
+ <curve x1="30.71" x2="29.58" x3="27.68" y1="63.44" y2="65.07" y3="65.07"/>
+ <curve x1="25.71" x2="24.5" x3="23.66" y1="65.07" y2="63.52" y3="61.68"/>
+ <curve x1="22.68" x2="21.48" x3="19.44" y1="63.58" y2="65.42" y3="65.42"/>
+ <curve x1="16.13" x2="14.86" x3="14.78" y1="65.42" y2="60.83" y3="60.63"/>
+ <curve x1="14.64" x2="14.93" x3="15.36" y1="60.2" y2="59.79" y3="59.64"/>
+ <curve x1="15.36" x2="15.36" x3="15.36" y1="59.64" y2="59.64" y3="59.64"/>
+ <curve x1="15.77" x2="17.04" x3="19.44" y1="58.44" y2="55.69" y3="55.69"/>
+ <curve x1="21.2" x2="22.33" x3="23.17" y1="55.69" y2="57.31" y3="59.07"/>
+ <curve x1="24.15" x2="25.42" x3="27.68" y1="57.1" y2="55.26" y3="55.26"/>
+ <curve x1="29.79" x2="31.06" x3="32.04" y1="55.26" y2="57.17" y3="59.07"/>
+ <curve x1="33.03" x2="34.09" x3="35.92" y1="57.31" y2="55.69" y3="55.69"/>
+ <curve x1="37.74" x2="38.81" x3="39.65" y1="55.69" y2="57.31" y3="59.07"/>
+ <curve x1="40.63" x2="41.9" x3="44.16" y1="57.1" y2="55.26" y3="55.26"/>
+ <curve x1="46.2" x2="47.39" x3="48.46" y1="55.26" y2="57.1" y3="59.15"/>
+ <curve x1="49.44" x2="50.63" x3="52.4" y1="57.31" y2="55.69" y3="55.69"/>
+ <curve x1="54.22" x2="55.29" x3="56.13" y1="55.69" y2="57.31" y3="59.07"/>
+ <curve x1="57.11" x2="58.38" x3="60.64" y1="57.1" y2="55.26" y3="55.26"/>
+ <curve x1="63.18" x2="64.51" x3="65.22" y1="55.26" y2="58.02" y3="59.99"/>
+ <close/>
+ <move x="19.44" y="63.87"/>
+ <curve x1="20.77" x2="21.55" x3="22.68" y1="63.87" y2="62.45" y3="60.2"/>
+ <curve x1="22.68" x2="22.68" x3="22.75" y1="60.06" y2="59.99" y3="59.91"/>
+ <curve x1="21.83" x2="20.91" x3="19.44" y1="58.09" y2="56.53" y3="56.53"/>
+ <curve x1="17.53" x2="16.48" x3="16.13" y1="56.53" y2="58.79" y3="59.85"/>
+ <curve x1="16.2" x2="16.26" x3="16.26" y1="59.99" y2="60.06" y3="60.2"/>
+ <curve x1="16.26" x2="17.26" x3="19.44" y1="60.28" y2="63.87" y3="63.87"/>
+ <close/>
+ <move x="27.68" y="64.22"/>
+ <curve x1="29.3" x2="30.28" x3="31.2" y1="64.22" y2="62.68" y3="60.83"/>
+ <curve x1="30.22" x2="29.3" x3="27.68" y1="58.79" y2="56.88" y3="56.88"/>
+ <curve x1="25.99" x2="25.01" x3="24.01" y1="56.88" y2="58.79" y3="60.83"/>
+ <curve x1="25.01" x2="25.91" x3="27.68" y1="62.68" y2="64.22" y3="64.22"/>
+ <close/>
+ <move x="35.92" y="63.87"/>
+ <curve x1="37.25" x2="38.03" x3="39.15" y1="63.87" y2="62.45" y3="60.2"/>
+ <curve x1="39.15" x2="39.23" x3="39.23" y1="60.06" y2="59.99" y3="59.91"/>
+ <curve x1="38.31" x2="37.47" x3="35.92" y1="58.09" y2="56.53" y3="56.53"/>
+ <curve x1="34.38" x2="33.46" x3="32.53" y1="56.53" y2="58.09" y3="59.99"/>
+ <curve x1="32.53" x2="32.61" x3="32.61" y1="59.99" y2="60.06" y3="60.06"/>
+ <curve x1="33.6" x2="34.5" x3="35.92" y1="62.04" y2="63.87" y3="63.87"/>
+ <close/>
+ <move x="44.16" y="64.22"/>
+ <curve x1="45.63" x2="46.62" x3="47.54" y1="64.22" y2="62.68" y3="60.77"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="60.77" y2="60.77" y3="60.69"/>
+ <curve x1="46.49" x2="45.57" x3="44.16" y1="58.79" y2="56.88" y3="56.88"/>
+ <curve x1="42.47" x2="41.55" x3="40.57" y1="56.88" y2="58.79" y3="60.83"/>
+ <curve x1="41.49" x2="42.47" x3="44.16" y1="62.68" y2="64.22" y3="64.22"/>
+ <close/>
+ <move x="52.4" y="63.87"/>
+ <curve x1="53.73" x2="54.59" x3="55.63" y1="63.87" y2="62.45" y3="60.2"/>
+ <curve x1="55.63" x2="55.71" x3="55.71" y1="60.06" y2="59.99" y3="59.91"/>
+ <curve x1="54.86" x2="53.95" x3="52.4" y1="58.09" y2="56.53" y3="56.53"/>
+ <curve x1="50.86" x2="49.86" x3="48.87" y1="56.53" y2="58.09" y3="59.99"/>
+ <curve x1="49.93" x2="50.92" x3="52.4" y1="61.96" y2="63.87" y3="63.87"/>
+ <close/>
+ <move x="60.64" y="64.22"/>
+ <curve x1="61.97" x2="62.97" x3="63.95" y1="64.22" y2="63.17" y3="60.83"/>
+ <curve x1="63.87" x2="63.87" x3="63.81" y1="60.77" y2="60.69" y3="60.55"/>
+ <curve x1="62.89" x2="61.84" x3="60.64" y1="58.09" y2="56.88" y3="56.88"/>
+ <curve x1="58.95" x2="58.03" x3="57.05" y1="56.88" y2="58.79" y3="60.83"/>
+ <curve x1="57.97" x2="58.95" x3="60.64" y1="62.68" y2="64.22" y3="64.22"/>
+ <close/>
+ <move x="60.01" y="71.06"/>
+ <line x="80" y="35.53"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="35.53"/>
+ <line x="20.07" y="71.06"/>
+ <line x="60.01" y="71.06"/>
+ <line x="60.01" y="71.06"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70.07" name="wlan controller" strokewidth="inherit" w="80">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="43.12" y="27.81"/>
+ <line x="43.12" y="27.81"/>
+ <line x="36.05" y="27.81"/>
+ <line x="36.05" y="18.9"/>
+ <line x="28.89" y="18.9"/>
+ <line x="39.58" y="3.34"/>
+ <line x="50.01" y="18.9"/>
+ <line x="43.12" y="18.9"/>
+ <line x="43.12" y="27.81"/>
+ <close/>
+ <move x="62.23" y="38.93"/>
+ <line x="62.23" y="38.93"/>
+ <line x="59.87" y="42.27"/>
+ <line x="53.68" y="37.95"/>
+ <line x="51.46" y="41.36"/>
+ <line x="45.56" y="30.03"/>
+ <line x="58.05" y="31.22"/>
+ <line x="55.84" y="34.55"/>
+ <line x="62.23" y="38.93"/>
+ <close/>
+ <move x="41.95" y="51.17"/>
+ <line x="41.95" y="51.17"/>
+ <line x="38.13" y="51.17"/>
+ <line x="38.13" y="43.31"/>
+ <line x="34.45" y="43.31"/>
+ <line x="40" y="32.25"/>
+ <line x="45.56" y="43.31"/>
+ <line x="41.95" y="43.31"/>
+ <line x="41.95" y="51.17"/>
+ <close/>
+ <move x="65.49" y="58.05"/>
+ <curve x1="65.55" x2="65.41" x3="65.01" y1="58.45" y2="58.88" y3="59.08"/>
+ <curve x1="65.01" x2="64.93" x3="64.93" y1="59.08" y2="59.08" y3="59.08"/>
+ <curve x1="64.18" x2="62.99" x3="60.84" y1="60.9" y2="63.06" y3="63.06"/>
+ <curve x1="58.82" x2="57.71" x3="56.74" y1="63.06" y2="61.52" y3="59.71"/>
+ <curve x1="55.83" x2="54.58" x3="52.5" y1="61.58" y2="63.4" y3="63.4"/>
+ <curve x1="50.42" x2="49.1" x3="48.05" y1="63.4" y2="61.58" y3="59.64"/>
+ <curve x1="47.08" x2="45.97" x3="44.17" y1="61.44" y2="63.06" y3="63.06"/>
+ <curve x1="42.23" x2="41.04" x3="40.07" y1="63.06" y2="61.52" y3="59.71"/>
+ <curve x1="39.17" x2="37.98" x3="35.9" y1="61.58" y2="63.4" y3="63.4"/>
+ <curve x1="33.76" x2="32.57" x3="31.6" y1="63.4" y2="61.58" y3="59.71"/>
+ <curve x1="30.56" x2="29.45" x3="27.5" y1="61.44" y2="63.06" y3="63.06"/>
+ <curve x1="25.55" x2="24.44" x3="23.47" y1="63.06" y2="61.52" y3="59.71"/>
+ <curve x1="22.5" x2="21.39" x3="19.24" y1="61.58" y2="63.4" y3="63.4"/>
+ <curve x1="15.91" x2="14.66" x3="14.58" y1="63.4" y2="58.88" y3="58.67"/>
+ <curve x1="14.44" x2="14.72" x3="15.14" y1="58.25" y2="57.84" y3="57.7"/>
+ <curve x1="15.14" x2="15.14" x3="15.14" y1="57.7" y2="57.7" y3="57.7"/>
+ <curve x1="15.55" x2="16.8" x3="19.24" y1="56.51" y2="53.8" y3="53.8"/>
+ <curve x1="21.11" x2="22.08" x3="23.06" y1="53.8" y2="55.4" y3="57.14"/>
+ <curve x1="24.04" x2="25.27" x3="27.5" y1="55.2" y2="53.38" y3="53.38"/>
+ <curve x1="29.72" x2="30.97" x3="32.02" y1="53.38" y2="55.26" y3="57.14"/>
+ <curve x1="32.99" x2="34.02" x3="35.9" y1="55.4" y2="53.8" y3="53.8"/>
+ <curve x1="37.72" x2="38.75" x3="39.66" y1="53.8" y2="55.4" y3="57.14"/>
+ <curve x1="40.63" x2="41.95" x3="44.17" y1="55.2" y2="53.38" y3="53.38"/>
+ <curve x1="46.25" x2="47.44" x3="48.55" y1="53.38" y2="55.2" y3="57.22"/>
+ <curve x1="49.52" x2="50.7" x3="52.5" y1="55.4" y2="53.8" y3="53.8"/>
+ <curve x1="54.38" x2="55.42" x3="56.32" y1="53.8" y2="55.4" y3="57.14"/>
+ <curve x1="57.29" x2="58.54" x3="60.84" y1="55.2" y2="53.38" y3="53.38"/>
+ <curve x1="63.41" x2="64.66" x3="65.49" y1="53.38" y2="56.11" y3="58.05"/>
+ <close/>
+ <move x="19.24" y="61.87"/>
+ <curve x1="20.62" x2="21.39" x3="22.5" y1="61.87" y2="60.47" y3="58.25"/>
+ <curve x1="22.5" x2="22.56" x3="22.56" y1="58.11" y2="58.05" y3="57.97"/>
+ <curve x1="21.67" x2="20.84" x3="19.24" y1="56.17" y2="54.63" y3="54.63"/>
+ <curve x1="17.37" x2="16.25" x3="15.91" y1="54.63" y2="56.86" y3="57.91"/>
+ <curve x1="15.97" x2="16.04" x3="16.04" y1="58.05" y2="58.11" y3="58.25"/>
+ <curve x1="16.04" x2="17.08" x3="19.24" y1="58.33" y2="61.87" y3="61.87"/>
+ <close/>
+ <move x="27.5" y="62.21"/>
+ <curve x1="29.17" x2="30.2" x3="31.11" y1="62.21" y2="60.69" y3="58.88"/>
+ <curve x1="30.14" x2="29.17" x3="27.5" y1="56.86" y2="54.98" y3="54.98"/>
+ <curve x1="25.84" x2="24.87" x3="23.89" y1="54.98" y2="56.86" y3="58.88"/>
+ <curve x1="24.79" x2="25.77" x3="27.5" y1="60.69" y2="62.21" y3="62.21"/>
+ <close/>
+ <move x="35.9" y="61.87"/>
+ <curve x1="37.22" x2="38.06" x3="39.17" y1="61.87" y2="60.47" y3="58.25"/>
+ <curve x1="39.17" x2="39.17" x3="39.24" y1="58.11" y2="58.05" y3="57.97"/>
+ <curve x1="38.33" x2="37.44" x3="35.9" y1="56.17" y2="54.63" y3="54.63"/>
+ <curve x1="34.31" x2="33.4" x3="32.43" y1="54.63" y2="56.17" y3="58.05"/>
+ <curve x1="32.51" x2="32.51" x3="32.57" y1="58.05" y2="58.11" y3="58.11"/>
+ <curve x1="33.48" x2="34.38" x3="35.9" y1="60.07" y2="61.87" y3="61.87"/>
+ <close/>
+ <move x="44.17" y="62.21"/>
+ <curve x1="45.7" x2="46.67" x3="47.64" y1="62.21" y2="60.69" y3="58.81"/>
+ <curve x1="47.64" x2="47.64" x3="47.57" y1="58.81" y2="58.81" y3="58.74"/>
+ <curve x1="46.6" x2="45.56" x3="44.17" y1="56.86" y2="54.98" y3="54.98"/>
+ <curve x1="42.43" x2="41.52" x3="40.55" y1="54.98" y2="56.86" y3="58.88"/>
+ <curve x1="41.46" x2="42.43" x3="44.17" y1="60.69" y2="62.21" y3="62.21"/>
+ <close/>
+ <move x="52.5" y="61.87"/>
+ <curve x1="53.89" x2="54.66" x3="55.77" y1="61.87" y2="60.47" y3="58.25"/>
+ <curve x1="55.83" x2="55.83" x3="55.91" y1="58.11" y2="58.05" y3="57.97"/>
+ <curve x1="55" x2="54.09" x3="52.5" y1="56.17" y2="54.63" y3="54.63"/>
+ <curve x1="50.98" x2="49.93" x3="48.96" y1="54.63" y2="56.17" y3="58.05"/>
+ <curve x1="50.01" x2="50.98" x3="52.5" y1="59.99" y2="61.87" y3="61.87"/>
+ <close/>
+ <move x="60.84" y="62.21"/>
+ <curve x1="62.16" x2="63.21" x3="64.18" y1="62.21" y2="61.18" y3="58.88"/>
+ <curve x1="64.1" x2="64.04" x3="64.04" y1="58.81" y2="58.74" y3="58.59"/>
+ <curve x1="63.06" x2="62.02" x3="60.84" y1="56.17" y2="54.98" y3="54.98"/>
+ <curve x1="59.1" x2="58.13" x3="57.23" y1="54.98" y2="56.86" y3="58.88"/>
+ <curve x1="58.13" x2="59.1" x3="60.84" y1="60.69" y2="62.21" y3="62.21"/>
+ <close/>
+ <move x="17.78" y="38.93"/>
+ <line x="24.1" y="34.55"/>
+ <line x="22.08" y="31.22"/>
+ <line x="34.45" y="30.03"/>
+ <line x="28.55" y="41.36"/>
+ <line x="26.53" y="37.95"/>
+ <line x="20" y="42.27"/>
+ <line x="17.78" y="38.93"/>
+ <line x="17.78" y="38.93"/>
+ <close/>
+ <move x="60.01" y="70.07"/>
+ <line x="80" y="34.96"/>
+ <line x="60.01" y="0"/>
+ <line x="20.07" y="0"/>
+ <line x="0" y="34.96"/>
+ <line x="20.07" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <line x="60.01" y="70.07"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/src/main/webapp/stencils/cisco_safe/threat.xml b/src/main/webapp/stencils/cisco_safe/threat.xml
new file mode 100644
index 00000000..5c6ed1e5
--- /dev/null
+++ b/src/main/webapp/stencils/cisco_safe/threat.xml
@@ -0,0 +1,9524 @@
+<shapes name="mxGraph.cisco_safe.threat">
+<shape aspect="variable" h="80" name="threat a1" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.82" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.7" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.52" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.7" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.81" x2="64.41" x3="62.59" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.59" y2="23" y3="22.41"/>
+ <curve x1="63.76" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.17"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.17" y2="15.64" y3="18.18"/>
+ <curve x1="56.3" x2="55.31" x3="54.25" y1="17.41" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.76" y3="13.23"/>
+ <curve x1="46.66" x2="45.13" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.79" x3="44.96" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="44.96" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.26" x2="37.32" x3="36.32" y1="12" y2="12.05" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.39" y1="5.64" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.33" x2="20.81" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="16.98" x3="21.34" y1="7.88" y2="13.64" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.93" x3="14.4" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.05" x2="4.65" x3="2.24" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.24" x2="0" x3="13.29" y1="26.23" y2="36.59" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.88"/>
+ <curve x1="10.93" x2="2.82" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.88" x3="13.22" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.75" x3="14.23" y1="43.24" y2="44.82" y3="46.41"/>
+ <curve x1="13.29" x2="10.35" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.94" x2="6.65" x3="16.11" y1="46.52" y2="52.59" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.82"/>
+ <curve x1="15.22" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.53" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.27" y1="56.58" y2="57.64" y3="58.58"/>
+ <curve x1="22.1" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.57" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.22" x2="31.62" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.56" x2="34.26" x3="34.97" y1="64.36" y2="64.46" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.85" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.85" x2="36.55" x3="37.73" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.91" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.73" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.72" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.2" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.25" x2="46.66" x3="46.37" y1="66.77" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.31" x3="47.78" y1="64.17" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.83" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.83" x3="56.83" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57.07" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.41" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.77" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.82" x3="63.35" y1="53.35" y2="52.47" y3="51.58"/>
+ <curve x1="68.29" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.64" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.46" y3="39.46"/>
+ <curve x1="72.29" x2="68.41" x3="66.82" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="55.48" y="40.58"/>
+ <curve x1="55.48" x2="55.46" x3="55.24" y1="40.22" y2="39.83" y3="39.52"/>
+ <curve x1="54.88" x2="54.21" x3="53.64" y1="39.05" y2="38.88" y3="39.01"/>
+ <curve x1="53.24" x2="52.9" x3="52.73" y1="39.07" y2="39.36" y3="39.71"/>
+ <curve x1="52.51" x2="52.51" x3="52.74" y1="40.21" y2="40.82" y3="41.31"/>
+ <curve x1="53.06" x2="53.88" x3="54.53" y1="41.94" y2="42.21" y3="41.98"/>
+ <curve x1="55.11" x2="55.57" x3="55.48" y1="41.8" y2="41.2" y3="40.58"/>
+ <close/>
+ <move x="61" y="39.47"/>
+ <curve x1="61.04" x2="61.07" x3="61.1" y1="39.52" y2="39.56" y3="39.61"/>
+ <curve x1="61.16" x2="61.11" x3="61.12" y1="40.04" y2="40.5" y3="40.94"/>
+ <curve x1="61.08" x2="61.23" x3="61" y1="41.14" y2="41.53" y3="41.54"/>
+ <curve x1="61.12" x2="60.77" x3="60.65" y1="41.9" y2="41.74" y3="42"/>
+ <curve x1="60.23" x2="59.82" x3="59.41" y1="42" y2="42" y3="42"/>
+ <curve x1="59.15" x2="58.83" x3="58.95" y1="41.99" y2="41.92" y3="42.29"/>
+ <curve x1="58.78" x2="58.74" x3="58.53" y1="42.53" y2="42.85" y3="43.06"/>
+ <curve x1="58.44" x2="58.85" x3="58.95" y1="43.23" y2="43.41" y3="43.59"/>
+ <curve x1="59.22" x2="59.71" x3="59.71" y1="43.93" y2="44.18" y3="44.66"/>
+ <curve x1="59.78" x2="59.6" x3="59.59" y1="44.91" y2="45.09" y3="45.31"/>
+ <curve x1="59.42" x2="59.13" x3="58.91" y1="45.57" y2="45.78" y3="46.03"/>
+ <curve x1="58.64" x2="58.42" x3="58.01" y1="46.26" y2="46.68" y3="46.58"/>
+ <curve x1="57.75" x2="57.6" x3="57.36" y1="46.67" y2="46.44" y3="46.47"/>
+ <curve x1="57.05" x2="56.73" x3="56.42" y1="46.09" y2="45.72" y3="45.35"/>
+ <curve x1="56.18" x2="55.78" x3="55.48" y1="45.64" y2="45.61" y3="45.82"/>
+ <curve x1="55.48" x2="55.48" x3="55.48" y1="46.19" y2="46.57" y3="46.94"/>
+ <curve x1="55.43" x2="55.6" x3="55.36" y1="47.13" y2="47.54" y3="47.53"/>
+ <curve x1="55.44" x2="55.29" x3="55.04" y1="47.86" y2="47.88" y3="47.98"/>
+ <curve x1="54.39" x2="53.71" x3="53.04" y1="48.03" y2="47.99" y3="48"/>
+ <curve x1="52.9" x2="52.88" x3="52.66" y1="47.92" y2="47.7" y3="47.7"/>
+ <curve x1="52.66" x2="52.66" x3="52.66" y1="47.15" y2="46.61" y3="46.06"/>
+ <curve x1="52.75" x2="52.47" x3="52.24" y1="45.8" y2="45.64" y3="45.64"/>
+ <curve x1="51.98" x2="51.86" x3="51.6" y1="45.68" y2="45.37" y3="45.35"/>
+ <curve x1="51.32" x2="51.04" x3="50.76" y1="45.68" y2="46.01" y3="46.34"/>
+ <curve x1="50.63" x2="50.38" x3="50.17" y1="46.5" y2="46.52" y3="46.58"/>
+ <curve x1="49.91" x2="49.78" x3="49.55" y1="46.67" y2="46.45" y3="46.47"/>
+ <curve x1="49.21" x2="48.89" x3="48.54" y1="46.08" y2="45.67" y3="45.29"/>
+ <curve x1="48.39" x2="48.34" x3="48.31" y1="45.13" y2="44.91" y3="44.7"/>
+ <curve x1="48.42" x2="48.33" x3="48.56" y1="44.57" y2="44.25" y3="44.24"/>
+ <curve x1="48.82" x2="49" x3="49.23" y1="44.06" y2="43.73" y3="43.49"/>
+ <curve x1="49.36" x2="49.71" x3="49.36" y1="43.3" y2="43.1" y3="42.94"/>
+ <curve x1="49.39" x2="49.27" x3="49.07" y1="42.6" y2="42.27" y3="42"/>
+ <curve x1="48.52" x2="47.97" x3="47.41" y1="42" y2="42" y3="42"/>
+ <curve x1="47.36" x2="47.23" x3="47.02" y1="41.83" y2="41.73" y3="41.71"/>
+ <curve x1="47.02" x2="47.02" x3="47.02" y1="40.92" y2="40.13" y3="39.34"/>
+ <curve x1="47.12" x2="47.4" x3="47.37" y1="39.21" y2="39.26" y3="38.99"/>
+ <curve x1="47.86" x2="48.34" x3="48.82" y1="38.99" y2="38.99" y3="38.99"/>
+ <curve x1="49.13" x2="49.19" x3="49.29" y1="39.09" y2="38.75" y3="38.54"/>
+ <curve x1="49.38" x2="49.35" x3="49.55" y1="38.31" y2="38.07" y3="37.88"/>
+ <curve x1="49.14" x2="48.75" x3="48.31" y1="37.41" y2="36.91" y3="36.46"/>
+ <curve x1="48.24" x2="48.43" x3="48.42" y1="36.21" y2="36.06" y3="35.83"/>
+ <curve x1="48.79" x2="49.1" x3="49.44" y1="35.46" y2="35.04" y3="34.66"/>
+ <curve x1="49.59" x2="49.8" x3="50.01" y1="34.51" y2="34.44" y3="34.41"/>
+ <curve x1="50.26" x2="50.42" x3="50.66" y1="34.33" y2="34.56" y3="34.53"/>
+ <curve x1="50.92" x2="51.18" x3="51.44" y1="34.84" y2="35.15" y3="35.45"/>
+ <curve x1="51.55" x2="51.86" x3="52.02" y1="35.75" y2="35.57" y3="35.41"/>
+ <curve x1="52.21" x2="52.48" x3="52.66" y1="35.3" y2="35.38" y3="35.18"/>
+ <curve x1="52.66" x2="52.66" x3="52.66" y1="34.62" y2="34.07" y3="33.51"/>
+ <curve x1="52.59" x2="52.86" x3="53" y1="33.25" y2="33.11" y3="32.94"/>
+ <curve x1="53.55" x2="54.09" x3="54.63" y1="32.94" y2="32.94" y3="32.94"/>
+ <curve x1="54.8" x2="55.22" x3="55.19" y1="33" y2="32.81" y3="33.07"/>
+ <curve x1="55.47" x2="55.24" x3="55.48" y1="33.02" y2="33.48" y3="33.47"/>
+ <curve x1="55.48" x2="55.48" x3="55.48" y1="34.04" y2="34.61" y3="35.18"/>
+ <curve x1="55.78" x2="56.18" x3="56.42" y1="35.38" y2="35.35" y3="35.64"/>
+ <curve x1="56.61" x2="56.8" x3="56.99" y1="35.42" y2="35.19" y3="34.97"/>
+ <curve x1="57.17" x2="57.26" x3="57.53" y1="34.83" y2="34.47" y3="34.53"/>
+ <curve x1="57.74" x2="58.04" x3="58.3" y1="34.32" y2="34.44" y3="34.41"/>
+ <curve x1="58.75" x2="59.09" x3="59.5" y1="34.74" y2="35.18" y3="35.55"/>
+ <curve x1="59.6" x2="59.68" x3="59.71" y1="35.73" y2="35.95" y3="36.17"/>
+ <curve x1="59.78" x2="59.6" x3="59.59" y1="36.48" y2="36.54" y3="36.77"/>
+ <curve x1="59.27" x2="58.96" x3="58.65" y1="37.08" y2="37.39" y3="37.71"/>
+ <curve x1="58.34" x2="58.6" x3="58.72" y1="37.85" y2="38.09" y3="38.28"/>
+ <curve x1="58.88" x2="59.01" x3="58.95" y1="38.49" y2="38.72" y3="38.99"/>
+ <curve x1="59.5" x2="60.05" x3="60.61" y1="38.99" y2="38.99" y3="38.99"/>
+ <curve x1="60.73" x2="61.06" x3="61" y1="39.13" y2="39.23" y3="39.47"/>
+ <close/>
+ <move x="46.96" y="42.71"/>
+ <line x="46.98" y="42.74"/>
+ <curve x1="47.2" x2="47.01" x3="47.08" y1="43.35" y2="44.09" y3="44.75"/>
+ <curve x1="47.02" x2="47.26" x3="46.79" y1="45.2" y2="45.95" y3="45.99"/>
+ <curve x1="46.99" x2="46.18" x3="46.19" y1="46.6" y2="46.19" y3="46.59"/>
+ <curve x1="45.61" x2="45.03" x3="44.45" y1="46.59" y2="46.59" y3="46.59"/>
+ <curve x1="43.79" x2="43.65" x3="43.52" y1="46.37" y2="46.97" y3="47.48"/>
+ <curve x1="43.17" x2="43.34" x3="43.81" y1="48.02" y2="48.37" y3="48.78"/>
+ <curve x1="44.1" x2="44.62" x3="44.78" y1="49.21" y2="49.57" y3="49.99"/>
+ <curve x1="45.32" x2="45.04" x3="44.78" y1="50.27" y2="50.98" y3="51.32"/>
+ <curve x1="44.47" x2="44.1" x3="43.8" y1="51.5" y2="52.02" y3="52.38"/>
+ <curve x1="43.47" x2="43.19" x3="42.84" y1="52.79" y2="53.13" y3="53.3"/>
+ <curve x1="42.36" x2="41.93" x3="41.55" y1="53.65" y2="53.17" y3="53.05"/>
+ <curve x1="41.12" x2="40.68" x3="40.25" y1="52.55" y2="52.05" y3="51.54"/>
+ <curve x1="39.96" x2="39.38" x3="38.93" y1="51.46" y2="51.93" y3="52.05"/>
+ <curve x1="38.31" x2="38.73" x3="38.61" y1="52.16" y2="52.97" y3="53.42"/>
+ <curve x1="38.53" x2="38.77" x3="38.49" y1="53.82" y2="54.56" y3="54.76"/>
+ <curve x1="38.49" x2="38.21" x3="37.84" y1="55.19" y2="55.35" y3="55.41"/>
+ <curve x1="37.63" x2="36.92" x3="36.5" y1="55.68" y2="55.46" y3="55.53"/>
+ <curve x1="36.08" x2="35.31" x3="35.09" y1="55.45" y2="55.7" y3="55.41"/>
+ <curve x1="34.68" x2="34.59" x3="34.32" y1="55.41" y2="55.08" y3="54.93"/>
+ <curve x1="34.32" x2="34.32" x3="34.32" y1="54.02" y2="53.1" y3="52.18"/>
+ <curve x1="33.82" x2="33.21" x3="32.73" y1="51.86" y2="51.78" y3="51.41"/>
+ <curve x1="32.22" x2="31.68" x3="31.18" y1="51.97" y2="52.52" y3="53.09"/>
+ <curve x1="30.87" x2="30.33" x3="29.94" y1="53.49" y2="53.45" y3="53.24"/>
+ <curve x1="29.71" x2="29.3" x3="29" y1="53.07" y2="52.63" y3="52.26"/>
+ <curve x1="28.68" x2="28.24" x3="28.03" y1="51.83" y2="51.49" y3="51.12"/>
+ <curve x1="27.81" x2="27.86" x3="28.15" y1="50.69" y2="50.28" y3="49.91"/>
+ <curve x1="28.43" x2="29" x3="29.39" y1="49.41" y2="49.04" y3="48.59"/>
+ <curve x1="28.16" x2="26.92" x3="25.68" y1="48.59" y2="48.59" y3="48.59"/>
+ <curve x1="24.91" x2="24.05" x3="23.47" y1="48.55" y2="48.51" y3="47.93"/>
+ <curve x1="22.97" x2="22.69" x3="22.34" y1="47.68" y2="47.22" y3="46.82"/>
+ <curve x1="22.02" x2="21.88" x3="21.63" y1="46.32" y2="45.72" y3="45.17"/>
+ <curve x1="21.63" x2="21.63" x3="21.63" y1="39.08" y2="32.99" y3="26.9"/>
+ <curve x1="21.53" x2="21.75" x3="21.8" y1="26.37" y2="25.91" y3="25.41"/>
+ <curve x1="21.96" x2="22.17" x3="22.48" y1="25.05" y2="24.57" y3="24.25"/>
+ <curve x1="22.68" x2="23.29" x3="23.68" y1="23.86" y2="23.8" y3="23.53"/>
+ <curve x1="31.78" x2="39.87" x3="47.96" y1="23.53" y2="23.53" y3="23.53"/>
+ <curve x1="48.75" x2="49.57" x3="50.05" y1="23.44" y2="23.72" y3="24.37"/>
+ <curve x1="50.47" x2="50.64" x3="50.74" y1="24.67" y2="25.14" y3="25.62"/>
+ <curve x1="50.82" x2="50.75" x3="50.77" y1="26.95" y2="28.31" y3="29.66"/>
+ <curve x1="50.83" x2="50.79" x3="50.36" y1="30.19" y2="30.64" y3="31"/>
+ <curve x1="41.31" x2="32.27" x3="23.22" y1="31" y2="31" y3="31"/>
+ <curve x1="23.22" x2="23.22" x3="23.22" y1="35.23" y2="39.47" y3="43.71"/>
+ <curve x1="23.13" x2="23.35" x3="23.34" y1="44.28" y2="44.8" y3="45.36"/>
+ <curve x1="23.75" x2="23.79" x3="24.2" y1="45.61" y2="46.11" y3="46.36"/>
+ <curve x1="24.51" x2="25.02" x3="25.44" y1="46.72" y2="46.73" y3="46.83"/>
+ <curve x1="26.67" x2="27.95" x3="29.21" y1="46.94" y2="46.85" y3="46.88"/>
+ <curve x1="29" x2="28.25" x3="27.78" y1="46.32" y2="46.7" y3="46.59"/>
+ <curve x1="27.22" x2="26.79" x3="26.45" y1="46.64" y2="46.57" y3="46.4"/>
+ <curve x1="26.08" x2="26.06" x3="25.86" y1="46.34" y2="46.06" y3="45.71"/>
+ <curve x1="25.72" x2="25.84" x3="25.8" y1="45.2" y2="44.58" y3="44.04"/>
+ <curve x1="25.89" x2="25.61" x3="25.97" y1="43.61" y2="42.83" y3="42.67"/>
+ <curve x1="26.01" x2="26.29" x3="26.57" y1="42.26" y2="42.24" y3="41.94"/>
+ <curve x1="27.3" x2="28.04" x3="28.77" y1="41.94" y2="41.94" y3="41.94"/>
+ <curve x1="29.3" x2="29.24" x3="29.5" y1="41.94" y2="41.09" y3="40.71"/>
+ <curve x1="29.95" x2="29.27" x3="28.97" y1="40.17" y2="39.86" y3="39.47"/>
+ <curve x1="28.68" x2="28.23" x3="28.05" y1="39.08" y2="38.78" y3="38.46"/>
+ <curve x1="27.75" x2="27.92" x3="28.15" y1="38.04" y2="37.61" y3="37.17"/>
+ <curve x1="28.61" x2="29.18" x3="29.68" y1="36.57" y2="36.05" y3="35.47"/>
+ <curve x1="29.92" x2="30.41" x3="30.91" y1="35.23" y2="35.08" y3="35.17"/>
+ <curve x1="31.51" x2="32.12" x3="32.73" y1="35.77" y2="36.4" y3="37"/>
+ <curve x1="33.27" x2="33.78" x3="34.32" y1="36.83" y2="36.58" y3="36.41"/>
+ <curve x1="34.32" x2="34.32" x3="34.32" y1="35.74" y2="35.07" y3="34.4"/>
+ <curve x1="34.22" x2="34.44" x3="34.92" y1="33.84" y2="33.32" y3="33"/>
+ <curve x1="35.94" x2="37.06" x3="38.03" y1="33.02" y2="32.95" y3="33.03"/>
+ <curve x1="38.22" x2="38.44" x3="38.61" y1="33.28" y2="33.49" y3="33.77"/>
+ <curve x1="38.61" x2="38.61" x3="38.61" y1="34.56" y2="35.36" y3="36.16"/>
+ <curve x1="38.63" x2="39.45" x3="39.84" y1="36.62" y2="36.63" y3="36.83"/>
+ <curve x1="40.31" x2="40.59" x3="40.96" y1="37.26" y2="36.32" y3="36.11"/>
+ <curve x1="41.28" x2="41.66" x3="42.03" y1="35.68" y2="35.47" y3="35.17"/>
+ <curve x1="42.52" x2="43.06" x3="43.25" y1="35.12" y2="35.16" y3="35.47"/>
+ <curve x1="43.84" x2="44.54" x3="45.03" y1="36.18" y2="36.84" y3="37.58"/>
+ <curve x1="45.24" x2="44.91" x3="44.69" y1="37.99" y2="38.53" y3="38.71"/>
+ <curve x1="44.15" x2="43.74" x3="43.25" y1="39.08" y2="39.75" y3="40.23"/>
+ <curve x1="43.46" x2="43.73" x3="43.84" y1="40.8" y2="41.34" y3="41.94"/>
+ <curve x1="44.45" x2="45.06" x3="45.67" y1="41.94" y2="41.94" y3="41.94"/>
+ <curve x1="46.19" x2="47.03" x3="46.96" y1="41.85" y2="42.05" y3="42.71"/>
+ <close/>
+ <move x="45.54" y="25.88"/>
+ <curve x1="45.54" x2="45.54" x3="45.54" y1="26.9" y2="27.92" y3="28.94"/>
+ <curve x1="46.42" x2="47.31" x3="48.19" y1="28.94" y2="28.94" y3="28.94"/>
+ <curve x1="48.19" x2="48.19" x3="48.19" y1="27.92" y2="26.9" y3="25.88"/>
+ <curve x1="47.31" x2="46.42" x3="45.54" y1="25.88" y2="25.88" y3="25.88"/>
+ <close/>
+ <move x="40.96" y="25.88"/>
+ <curve x1="40.96" x2="40.96" x3="40.96" y1="26.9" y2="27.92" y3="28.94"/>
+ <curve x1="41.88" x2="42.8" x3="43.73" y1="28.94" y2="28.94" y3="28.94"/>
+ <curve x1="43.73" x2="43.73" x3="43.73" y1="27.92" y2="26.9" y3="25.88"/>
+ <curve x1="42.8" x2="41.88" x3="40.96" y1="25.88" y2="25.88" y3="25.88"/>
+ <close/>
+ <move x="38.78" y="44.4"/>
+ <curve x1="38.76" x2="38.88" x3="38.61" y1="44.17" y2="43.91" y3="43.81"/>
+ <curve x1="38.61" x2="38.38" x3="37.97" y1="43.32" y2="42.86" y3="42.53"/>
+ <curve x1="37.68" x2="37.17" x3="36.79" y1="42.09" y2="42.05" y3="41.82"/>
+ <curve x1="36.25" x2="35.87" x3="35.38" y1="41.72" y2="42.01" y3="42.11"/>
+ <curve x1="34.99" x2="34.58" x3="34.32" y1="42.48" y2="42.87" y3="43.36"/>
+ <curve x1="34.46" x2="34.02" x3="34.32" y1="43.79" y2="44.22" y3="44.5"/>
+ <curve x1="34.21" x2="34.46" x3="34.8" y1="45.04" y2="45.43" y3="45.82"/>
+ <curve x1="35.05" x2="35.47" x3="35.91" y1="46.25" y2="46.39" y3="46.46"/>
+ <curve x1="36.19" x2="36.84" x3="37.09" y1="46.66" y2="46.71" y3="46.4"/>
+ <curve x1="37.58" x2="37.99" x3="38.23" y1="46.44" y2="46.09" y3="45.68"/>
+ <curve x1="38.6" x2="38.52" x3="38.78" y1="45.34" y2="44.82" y3="44.4"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a2" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.65" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.46" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.65" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.76" x2="64.36" x3="62.65" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.59" y2="23" y3="22.41"/>
+ <curve x1="63.71" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.24"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.24" y2="15.64" y3="18.18"/>
+ <curve x1="56.25" x2="55.31" x3="54.18" y1="17.41" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.76" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.72" x3="45.01" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.32" x2="37.32" x3="36.38" y1="12" y2="12.05" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.44" y1="5.64" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.39" x2="20.75" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="17.05" x3="21.34" y1="7.88" y2="13.71" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.98" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.11" x2="4.65" x3="2.29" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.29" x2="0" x3="13.29" y1="26.23" y2="36.59" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.88"/>
+ <curve x1="10.93" x2="2.89" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.93" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.82" x3="14.28" y1="43.24" y2="44.82" y3="46.41"/>
+ <curve x1="13.29" x2="10.4" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.99" x2="6.65" x3="16.16" y1="46.52" y2="52.59" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.82"/>
+ <curve x1="15.29" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.53" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.33" y1="56.58" y2="57.64" y3="58.58"/>
+ <curve x1="22.16" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.63" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.15" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.62" x2="34.26" x3="34.97" y1="64.36" y2="64.46" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.91" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.91" x2="36.5" x3="37.68" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.84" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.67" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.13" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.77" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.37" x3="47.84" y1="64.17" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.88" x3="56.88" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.47" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.88" x3="63.35" y1="53.35" y2="52.47" y3="51.58"/>
+ <curve x1="68.34" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.59" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.46" y3="39.46"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="58.3" y="37.17"/>
+ <curve x1="58.3" x2="57.36" x3="56" y1="38.64" y2="40.11" y3="41.46"/>
+ <curve x1="55.77" x2="55.65" x3="55.71" y1="41.7" y2="41.99" y3="42.35"/>
+ <curve x1="55.77" x2="55.71" x3="55.59" y1="42.64" y2="42.93" y3="43.29"/>
+ <curve x1="55.13" x2="54" x3="53.18" y1="44.23" y2="44.59" y3="44.11"/>
+ <curve x1="53.01" x2="52.89" x3="52.72" y1="43.94" y2="43.94" y3="43.77"/>
+ <curve x1="51.78" x2="50.65" x3="49.49" y1="44.3" y2="44.76" y3="45.17"/>
+ <curve x1="49.13" x2="48.84" x3="48.77" y1="45.29" y2="45.65" y3="46.06"/>
+ <curve x1="48.55" x2="48.02" x3="47.42" y1="48.18" y2="50.18" y3="51.82"/>
+ <curve x1="47.42" x2="47.42" x3="47.42" y1="51.82" y2="51.82" y3="51.88"/>
+ <curve x1="46.31" x2="44.67" x3="42.49" y1="54.41" y2="56.17" y3="56.47"/>
+ <curve x1="42.49" x2="42.49" x3="41.96" y1="56.47" y2="56.47" y3="56.47"/>
+ <curve x1="40.08" x2="38.37" x3="36.85" y1="56.47" y2="55.29" y3="53.41"/>
+ <curve x1="36.56" x2="36.08" x3="35.67" y1="53.05" y2="52.93" y3="53.12"/>
+ <curve x1="34.61" x2="33.44" x3="32.39" y1="53.53" y2="53.76" y3="53.76"/>
+ <curve x1="31.27" x2="30.15" x3="29.33" y1="53.76" y2="53.46" y3="52.82"/>
+ <curve x1="28.04" x2="27.56" x3="27.56" y1="51.65" y2="50.06" y3="48.11"/>
+ <curve x1="27.56" x2="27.56" x3="27.74" y1="47.29" y2="46.47" y3="45.7"/>
+ <curve x1="27.56" x2="27.39" x3="27.27" y1="45.7" y2="45.7" y3="45.53"/>
+ <curve x1="24.86" x2="22.93" x3="22.74" y1="44.59" y2="42.83" y3="40.71"/>
+ <curve x1="22.57" x2="22.57" x3="22.57" y1="40.52" y2="40.35" y3="40.23"/>
+ <curve x1="22.74" x2="24.69" x3="27.68" y1="37.65" y2="35.58" y3="33.82"/>
+ <curve x1="27.74" x2="27.74" x3="27.74" y1="33.82" y2="33.77" y3="33.77"/>
+ <curve x1="28.86" x2="30.09" x3="31.5" y1="33.17" y2="32.64" y3="32.06"/>
+ <curve x1="31.79" x2="32.03" x3="32.09" y1="31.94" y2="31.58" y3="31.24"/>
+ <curve x1="32.32" x2="32.92" x3="33.44" y1="29.06" y2="27.06" y3="25.41"/>
+ <curve x1="33.5" x2="33.5" x3="33.5" y1="25.41" y2="25.35" y3="25.35"/>
+ <curve x1="34.61" x2="36.27" x3="38.44" y1="22.76" y2="21.06" y3="20.7"/>
+ <curve x1="38.44" x2="38.44" x3="38.9" y1="20.7" y2="20.7" y3="20.7"/>
+ <curve x1="40.78" x2="42.55" x3="44.02" y1="20.7" y2="21.88" y3="23.88"/>
+ <curve x1="44.31" x2="44.84" x3="45.2" y1="24.23" y2="24.41" y3="24.23"/>
+ <curve x1="45.54" x2="45.84" x3="46.14" y1="24.12" y2="24" y3="23.94"/>
+ <curve x1="46.14" x2="46.14" x3="46.31" y1="23.76" y2="23.65" y3="23.47"/>
+ <curve x1="46.78" x2="47.9" x3="48.72" y1="22.47" y2="22.17" y3="22.65"/>
+ <curve x1="49.01" x2="49.3" x3="49.49" y1="22.76" y2="23.06" y3="23.35"/>
+ <curve x1="49.66" x2="49.83" x3="50.07" y1="23.53" y2="23.65" y3="23.7"/>
+ <curve x1="50.55" x2="51.06" x3="51.59" y1="23.94" y2="24.18" y3="24.59"/>
+ <curve x1="52.89" x2="53.47" x3="53.47" y1="25.53" y2="27.29" y3="29.24"/>
+ <curve x1="53.47" x2="53.3" x3="53.18" y1="29.88" y2="30.71" y3="31.53"/>
+ <curve x1="53.3" x2="53.47" x3="53.66" y1="31.53" y2="31.7" y3="31.7"/>
+ <curve x1="56.24" x2="58.01" x3="58.18" y1="32.76" y2="34.42" y3="36.71"/>
+ <curve x1="58.3" x2="58.3" x3="58.3" y1="36.83" y2="37" y3="37.17"/>
+ <close/>
+ <move x="47.42" y="23.47"/>
+ <curve x1="47.25" x2="46.96" x3="46.96" y1="23.47" y2="23.65" y3="23.94"/>
+ <curve x1="46.96" x2="47.25" x3="47.42" y1="24.23" y2="24.41" y3="24.41"/>
+ <curve x1="47.73" x2="48.07" x3="48.07" y1="24.41" y2="24.23" y3="23.94"/>
+ <curve x1="48.07" x2="47.73" x3="47.42" y1="23.65" y2="23.47" y3="23.47"/>
+ <close/>
+ <move x="45.2" y="25.7"/>
+ <line x="45.2" y="25.88"/>
+ <curve x1="45.9" x2="46.48" x3="46.9" y1="26.82" y2="28.23" y3="29.59"/>
+ <curve x1="47.01" x2="47.37" x3="47.78" y1="30" y2="30.23" y3="30.3"/>
+ <curve x1="48.84" x2="49.83" x3="50.77" y1="30.41" y2="30.59" y3="30.83"/>
+ <curve x1="51.37" x2="51.95" x3="52" y1="30.88" y2="30.53" y3="29.94"/>
+ <curve x1="52" x2="52.07" x3="52.07" y1="29.7" y2="29.47" y3="29.24"/>
+ <curve x1="52.07" x2="51.59" x3="50.77" y1="27.47" y2="26.35" y3="25.7"/>
+ <curve x1="50.6" x2="50.43" x3="50.31" y1="25.59" y2="25.53" y3="25.41"/>
+ <curve x1="49.9" x2="49.42" x3="49.13" y1="25.17" y2="25.29" y3="25.59"/>
+ <curve x1="48.55" x2="47.73" x3="47.08" y1="26.12" y2="26.23" y3="25.88"/>
+ <curve x1="47.01" x2="46.9" x3="46.78" y1="25.82" y2="25.76" y3="25.7"/>
+ <curve x1="46.55" x2="46.14" x3="45.78" y1="25.47" y2="25.35" y3="25.53"/>
+ <curve x1="45.61" x2="45.37" x3="45.2" y1="25.59" y2="25.65" y3="25.7"/>
+ <close/>
+ <move x="44.02" y="26.53"/>
+ <curve x1="44.02" x2="44.02" x3="43.9" y1="26.53" y2="26.35" y3="26.35"/>
+ <curve x1="42.32" x2="40.37" x3="38.44" y1="27.29" y2="28.64" y3="30.41"/>
+ <curve x1="38.78" x2="39.26" x3="39.6" y1="30.41" y2="30.23" y3="30.23"/>
+ <curve x1="41.02" x2="42.49" x3="43.9" y1="30.06" y2="30.06" y3="30.06"/>
+ <curve x1="43.9" x2="43.9" x3="44.14" y1="30.06" y2="30.06" y3="30.06"/>
+ <curve x1="44.9" x2="45.37" x3="45.08" y1="30.06" y2="29.29" y3="28.64"/>
+ <curve x1="44.72" x2="44.37" x3="44.02" y1="27.82" y2="27.12" y3="26.53"/>
+ <close/>
+ <move x="34.92" y="25.88"/>
+ <curve x1="34.44" x2="34.08" x3="33.74" y1="27.06" y2="28.35" y3="29.88"/>
+ <curve x1="33.62" x2="34.32" x3="35.02" y1="30.59" y2="31.24" y3="31.06"/>
+ <curve x1="35.33" x2="35.62" x3="35.96" y1="31" y2="30.88" y3="30.76"/>
+ <curve x1="36.15" x2="36.27" x3="36.37" y1="30.76" y2="30.64" y3="30.53"/>
+ <curve x1="38.25" x2="40.2" x3="42.2" y1="28.53" y2="26.94" y3="25.76"/>
+ <curve x1="42.78" x2="42.9" x3="42.49" y1="25.47" y2="24.71" y3="24.23"/>
+ <curve x1="41.26" x2="39.96" x3="38.9" y1="22.82" y2="22.17" y3="22.17"/>
+ <curve x1="38.9" x2="38.9" x3="38.61" y1="22.17" y2="22.17" y3="22.17"/>
+ <curve x1="37.21" x2="35.91" x3="34.92" y1="22.35" y2="23.65" y3="25.88"/>
+ <close/>
+ <move x="33.33" y="33.77"/>
+ <line x="33.33" y="34.11"/>
+ <curve x1="33.5" x2="33.67" x3="33.97" y1="33.94" y2="33.58" y3="33.47"/>
+ <curve x1="34.15" x2="34.32" x3="34.44" y1="33.12" y2="32.76" y3="32.64"/>
+ <curve x1="34.32" x2="34.2" x3="34.08" y1="32.71" y2="32.71" y3="32.76"/>
+ <curve x1="33.67" x2="33.33" x3="33.33" y1="32.88" y2="33.29" y3="33.77"/>
+ <close/>
+ <move x="33.14" y="42.83"/>
+ <curve x1="33.14" x2="33.03" x3="32.68" y1="42.47" y2="42.18" y3="42.18"/>
+ <curve x1="32.39" x2="32.21" x3="32.21" y1="42.18" y2="42.47" y3="42.83"/>
+ <curve x1="32.21" x2="32.39" x3="32.68" y1="42.93" y2="43.29" y3="43.29"/>
+ <curve x1="33.03" x2="33.14" x3="33.14" y1="43.29" y2="42.93" y3="42.83"/>
+ <close/>
+ <move x="32.27" y="40.71"/>
+ <curve x1="32.21" x2="32.15" x3="32.09" y1="40.35" y2="40.06" y3="39.65"/>
+ <curve x1="32.03" x2="32.03" x3="32.03" y1="39.58" y2="39.53" y3="39.46"/>
+ <curve x1="32.03" x2="32.03" x3="32.03" y1="39.46" y2="39.46" y3="38.59"/>
+ <curve x1="31.03" x2="30.15" x3="29.62" y1="40.47" y2="42.23" y3="43.82"/>
+ <curve x1="29.44" x2="29.8" x3="30.33" y1="44.4" y2="45" y3="45.17"/>
+ <curve x1="31.33" x2="32.27" x3="33.33" y1="45.41" y2="45.58" y3="45.7"/>
+ <curve x1="33.14" x2="33.14" x3="33.03" y1="45.41" y2="45.05" y3="44.76"/>
+ <curve x1="32.85" x2="32.68" x3="32.5" y1="44.59" y2="44.59" y3="44.4"/>
+ <curve x1="31.56" x2="31.27" x3="31.74" y1="44.11" y2="42.93" y3="41.99"/>
+ <curve x1="31.79" x2="31.86" x3="31.97" y1="41.82" y2="41.7" y3="41.65"/>
+ <curve x1="32.21" x2="32.27" x3="32.27" y1="41.41" y2="41.05" y3="40.71"/>
+ <close/>
+ <move x="27.92" y="44.23"/>
+ <line x="28.04" y="44.4"/>
+ <curve x1="28.68" x2="29.85" x3="31.74" y1="41.94" y2="39.12" y3="36.47"/>
+ <curve x1="31.79" x2="31.86" x3="31.86" y1="36.3" y2="36.06" y3="35.89"/>
+ <curve x1="31.86" x2="31.86" x3="31.86" y1="35.89" y2="35.89" y3="35.24"/>
+ <curve x1="31.86" x2="31.86" x3="31.86" y1="35.24" y2="35.24" y3="34.95"/>
+ <curve x1="31.86" x2="31.15" x3="30.5" y1="34.23" y2="33.7" y3="34.06"/>
+ <curve x1="29.74" x2="29.09" x3="28.38" y1="34.35" y2="34.64" y3="35.05"/>
+ <curve x1="25.63" x2="24.04" x3="24.04" y1="36.71" y2="38.59" y3="40.23"/>
+ <curve x1="24.04" x2="24.04" x3="24.04" y1="40.23" y2="40.23" y3="40.52"/>
+ <curve x1="24.21" x2="25.51" x3="27.92" y1="41.99" y2="43.29" y3="44.23"/>
+ <close/>
+ <move x="32.39" y="52.29"/>
+ <curve x1="33.03" x2="33.74" x3="34.56" y1="52.29" y2="52.18" y3="51.94"/>
+ <curve x1="35.14" x2="35.43" x3="35.14" y1="51.7" y2="51" y3="50.47"/>
+ <curve x1="34.68" x2="34.32" x3="33.97" y1="49.65" y2="48.76" y3="47.82"/>
+ <curve x1="33.91" x2="33.56" x3="33.14" y1="47.41" y2="47.12" y3="47.12"/>
+ <curve x1="32.09" x2="31.09" x3="30.15" y1="46.93" y2="46.76" y3="46.52"/>
+ <curve x1="29.56" x2="28.98" x3="28.91" y1="46.35" y2="46.76" y3="47.41"/>
+ <curve x1="28.86" x2="28.86" x3="28.86" y1="47.65" y2="47.87" y3="48.11"/>
+ <curve x1="28.86" x2="29.33" x3="30.15" y1="49.7" y2="51" y3="51.65"/>
+ <curve x1="30.8" x2="31.56" x3="32.39" y1="52.18" y2="52.29" y3="52.29"/>
+ <close/>
+ <move x="37.02" y="50.88"/>
+ <curve x1="38.78" x2="40.55" x3="42.49" y1="50.06" y2="48.59" y3="46.81"/>
+ <curve x1="42.14" x2="41.79" x3="41.31" y1="47" y2="47" y3="47"/>
+ <curve x1="39.91" x2="38.44" x3="37.02" y1="47.17" y2="47.29" y3="47.29"/>
+ <curve x1="36.97" x2="36.85" x3="36.8" y1="47.29" y2="47.29" y3="47.29"/>
+ <curve x1="36.08" x2="35.55" x3="35.86" y1="47.29" y2="48.06" y3="48.76"/>
+ <curve x1="36.2" x2="36.56" x3="36.85" y1="49.53" y2="50.18" y3="50.88"/>
+ <curve x1="36.85" x2="36.85" x3="37.02" y1="50.88" y2="50.88" y3="50.88"/>
+ <close/>
+ <move x="46.14" y="51.24"/>
+ <curve x1="46.55" x2="46.84" x3="47.13" y1="50.18" y2="48.88" y3="47.41"/>
+ <curve x1="47.31" x2="46.6" x3="45.9" y1="46.71" y2="46.06" y3="46.23"/>
+ <curve x1="45.61" x2="45.31" x3="45.02" y1="46.3" y2="46.4" y3="46.47"/>
+ <curve x1="44.84" x2="44.61" x3="44.49" y1="46.47" y2="46.59" y3="46.76"/>
+ <curve x1="42.61" x2="40.66" x3="38.66" y1="48.71" y2="50.35" y3="51.58"/>
+ <curve x1="38.15" x2="38.03" x3="38.44" y1="51.88" y2="52.64" y3="53.12"/>
+ <curve x1="39.67" x2="40.9" x3="41.96" y1="54.47" y2="55.23" y3="55.23"/>
+ <curve x1="42.14" x2="42.32" x3="42.32" y1="55.23" y2="55.23" y3="55.05"/>
+ <curve x1="43.72" x2="44.96" x3="46.07" y1="55.05" y2="53.65" y3="51.41"/>
+ <curve x1="46.14" x2="46.14" x3="46.14" y1="51.35" y2="51.35" y3="51.24"/>
+ <close/>
+ <move x="47.54" y="43.53"/>
+ <line x="47.54" y="43.12"/>
+ <curve x1="47.42" x2="47.25" x3="47.08" y1="43.41" y2="43.58" y3="43.94"/>
+ <curve x1="46.78" x2="46.6" x3="46.48" y1="44.11" y2="44.4" y3="44.59"/>
+ <curve x1="46.55" x2="46.72" x3="46.84" y1="44.59" y2="44.52" y3="44.52"/>
+ <curve x1="47.25" x2="47.54" x3="47.54" y1="44.4" y2="43.99" y3="43.53"/>
+ <close/>
+ <move x="46.02" y="42.93"/>
+ <curve x1="46.37" x2="46.96" x3="47.42" y1="42.4" y2="41.7" y3="40.93"/>
+ <curve x1="47.54" x2="47.54" x3="47.54" y1="40.76" y2="40.59" y3="40.42"/>
+ <curve x1="47.54" x2="47.54" x3="47.42" y1="39.53" y2="38.64" y3="37.77"/>
+ <curve x1="47.13" x2="46.72" x3="46.31" y1="35.82" y2="33.94" y3="32.23"/>
+ <curve x1="46.25" x2="45.84" x3="45.43" y1="31.82" y2="31.53" y3="31.47"/>
+ <curve x1="44.9" x2="44.43" x3="43.9" y1="31.47" y2="31.36" y3="31.36"/>
+ <curve x1="42.49" x2="41.19" x3="39.72" y1="31.36" y2="31.53" y3="31.7"/>
+ <curve x1="39.72" x2="39.72" x3="39.72" y1="31.7" y2="31.7" y3="31.7"/>
+ <curve x1="38.85" x2="38.03" x3="37.21" y1="31.82" y2="31.94" y3="32.11"/>
+ <curve x1="36.97" x2="36.8" x3="36.61" y1="32.18" y2="32.23" y3="32.41"/>
+ <curve x1="36.08" x2="35.55" x3="34.97" y1="32.94" y2="33.53" y3="34.18"/>
+ <curve x1="34.92" x2="34.92" x3="34.92" y1="34.23" y2="34.3" y3="34.3"/>
+ <curve x1="34.5" x2="33.97" x3="33.56" y1="35" y2="35.65" y3="36.23"/>
+ <curve x1="33.38" x2="33.33" x3="33.33" y1="36.42" y2="36.64" y3="36.83"/>
+ <curve x1="33.38" x2="33.5" x3="33.5" y1="37.7" y2="38.47" y3="39.29"/>
+ <curve x1="33.5" x2="33.5" x3="33.5" y1="39.36" y2="39.41" y3="39.53"/>
+ <curve x1="33.67" x2="33.67" x3="33.79" y1="40.11" y2="40.59" y3="41.17"/>
+ <curve x1="33.79" x2="33.97" x3="34.15" y1="41.17" y2="41.17" y3="41.36"/>
+ <curve x1="34.85" x2="35.33" x3="35.02" y1="41.65" y2="42.64" y3="43.58"/>
+ <curve x1="34.97" x2="34.92" x3="34.8" y1="43.7" y2="43.82" y3="43.87"/>
+ <curve x1="34.8" x2="34.8" x3="34.8" y1="43.87" y2="43.87" y3="43.87"/>
+ <curve x1="34.56" x2="34.44" x3="34.5" y1="44.11" y2="44.47" y3="44.76"/>
+ <curve x1="34.5" x2="34.56" x3="34.56" y1="44.88" y2="45" y3="45.05"/>
+ <curve x1="34.68" x2="35.09" x3="35.55" y1="45.53" y2="45.82" y3="45.82"/>
+ <curve x1="35.55" x2="35.55" x3="37.02" y1="45.82" y2="45.82" y3="45.82"/>
+ <curve x1="38.44" x2="39.91" x3="41.14" y1="45.82" y2="45.82" y3="45.7"/>
+ <curve x1="42.2" x2="42.9" x3="43.72" y1="45.53" y2="45.41" y3="45.29"/>
+ <curve x1="43.96" x2="44.14" x3="44.25" y1="45.24" y2="45.17" y3="45"/>
+ <curve x1="44.84" x2="45.43" x3="46.02" y1="44.35" y2="43.65" y3="42.93"/>
+ <close/>
+ <move x="49.13" y="31.94"/>
+ <curve x1="48.43" x2="47.78" x3="47.95" y1="31.77" y2="32.41" y3="33.17"/>
+ <curve x1="48.31" x2="48.6" x3="48.84" y1="34.52" y2="36.06" y3="37.53"/>
+ <curve x1="48.89" x2="48.89" x3="48.89" y1="37.65" y2="37.65" y3="37.7"/>
+ <curve x1="48.89" x2="48.89" x3="48.89" y1="37.7" y2="37.7" y3="38.59"/>
+ <curve x1="49.9" x2="50.77" x3="51.3" y1="36.88" y2="35.17" y3="33.53"/>
+ <curve x1="51.49" x2="51.13" x3="50.55" y1="32.94" y2="32.35" y3="32.23"/>
+ <curve x1="50.07" x2="49.61" x3="49.13" y1="32.11" y2="32" y3="31.94"/>
+ <close/>
+ <move x="53.3" y="42.64"/>
+ <curve x1="53.66" x2="54" x3="54" y1="42.64" y2="42.47" y3="42.18"/>
+ <curve x1="54" x2="53.66" x3="53.3" y1="41.82" y2="41.53" y3="41.53"/>
+ <curve x1="53.18" x2="52.89" x3="52.89" y1="41.53" y2="41.82" y3="42.18"/>
+ <curve x1="52.89" x2="53.18" x3="53.3" y1="42.47" y2="42.64" y3="42.64"/>
+ <close/>
+ <move x="55.06" y="40.35"/>
+ <curve x1="56.24" x2="56.89" x3="56.89" y1="39.29" y2="38.18" y3="37.17"/>
+ <curve x1="56.89" x2="56.89" x3="56.89" y1="37.17" y2="37.17" y3="36.83"/>
+ <curve x1="56.71" x2="55.42" x3="53.01" y1="35.36" y2="33.94" y3="32.94"/>
+ <curve x1="53.01" x2="53.01" x3="52.89" y1="32.94" y2="32.94" y3="32.94"/>
+ <curve x1="52.24" x2="51.01" x3="49.2" y1="35.48" y2="38.11" y3="40.93"/>
+ <curve x1="49.08" x2="49.01" x3="49.01" y1="41.05" y2="41.29" y3="41.46"/>
+ <curve x1="49.01" x2="49.01" x3="49.01" y1="41.46" y2="41.46" y3="41.99"/>
+ <curve x1="49.01" x2="49.01" x3="49.01" y1="41.99" y2="41.99" y3="42.35"/>
+ <curve x1="49.01" x2="49.71" x3="50.43" y1="43.05" y2="43.58" y3="43.29"/>
+ <curve x1="50.84" x2="51.25" x3="51.66" y1="43.12" y2="42.93" y3="42.76"/>
+ <curve x1="51.95" x2="52.19" x3="52.24" y1="42.59" y2="42.35" y3="41.99"/>
+ <curve x1="52.24" x2="52.31" x3="52.43" y1="41.89" y2="41.77" y3="41.65"/>
+ <curve x1="52.77" x2="53.54" x3="54.19" y1="40.88" y2="40.52" y3="40.59"/>
+ <curve x1="54.48" x2="54.83" x3="55.06" y1="40.64" y2="40.52" y3="40.35"/>
+ <close/>
+ <move x="42.72" y="34.82"/>
+ <curve x1="44.37" x2="45.13" x3="44.26" y1="35.76" y2="38.12" y3="39.88"/>
+ <curve x1="43.32" x2="41.03" x3="39.32" y1="41.76" y2="42.36" y3="41.4"/>
+ <curve x1="37.49" x2="36.67" x3="37.56" y1="40.53" y2="38.36" y3="36.46"/>
+ <curve x1="37.61" x2="37.61" x3="37.68" y1="36.41" y2="36.41" y3="36.36"/>
+ <curve x1="38.79" x2="40.84" x3="42.72" y1="34.65" y2="33.88" y3="34.82"/>
+ <close/>
+ <move x="39.61" y="38.65"/>
+ <curve x1="40.09" x2="40.55" x3="40.55" y1="38.65" y2="38.12" y3="37.64"/>
+ <curve x1="40.55" x2="40.09" x3="39.61" y1="37.06" y2="36.7" y3="36.7"/>
+ <curve x1="39.15" x2="38.74" x3="38.74" y1="36.7" y2="37.06" y3="37.64"/>
+ <curve x1="38.74" x2="39.15" x3="39.61" y1="38.12" y2="38.65" y3="38.65"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a3" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="33.21" y="33.41"/>
+ <line x="33.21" y="36.11"/>
+ <curve x1="33.21" x2="33.5" x3="33.91" y1="36.83" y2="37.41" y3="37.7"/>
+ <curve x1="33.91" x2="33.91" x3="35.09" y1="37.7" y2="37.7" y3="37.7"/>
+ <curve x1="35.91" x2="36.61" x3="36.61" y1="37.7" y2="38.42" y3="39.24"/>
+ <curve x1="36.61" x2="36.61" x3="36.61" y1="39.24" y2="39.24" y3="42.23"/>
+ <curve x1="38.78" x2="42.08" x3="44.25" y1="43.41" y2="43.41" y3="42.23"/>
+ <curve x1="44.25" x2="44.25" x3="44.25" y1="42.23" y2="42.23" y3="39.24"/>
+ <curve x1="44.25" x2="44.9" x3="45.78" y1="38.42" y2="37.7" y3="37.7"/>
+ <curve x1="45.78" x2="45.78" x3="46.96" y1="37.7" y2="37.7" y3="37.7"/>
+ <curve x1="47.43" x2="47.72" x3="47.72" y1="37.41" y2="36.83" y3="36.11"/>
+ <curve x1="47.72" x2="47.72" x3="47.72" y1="36.11" y2="36.11" y3="33.41"/>
+ <curve x1="47.72" x2="47.61" x3="47.37" y1="32.88" y2="32.53" y3="32.18"/>
+ <curve x1="45.31" x2="43.07" x3="40.66" y1="32.41" y2="32.47" y3="32.47"/>
+ <curve x1="40.66" x2="40.66" x3="40.49" y1="32.47" y2="32.47" y3="32.47"/>
+ <curve x1="40.49" x2="40.49" x3="40.32" y1="32.47" y2="32.47" y3="32.47"/>
+ <curve x1="40.32" x2="40.32" x3="40.25" y1="32.47" y2="32.47" y3="32.47"/>
+ <curve x1="37.84" x2="35.55" x3="33.5" y1="32.47" y2="32.41" y3="32.18"/>
+ <curve x1="33.26" x2="33.21" x3="33.21" y1="32.53" y2="32.88" y3="33.41"/>
+ <close/>
+ <move x="25.39" y="30.23"/>
+ <curve x1="25.39" x2="28.15" x3="32.26" y1="29.23" y2="28.18" y3="27.76"/>
+ <curve x1="32.26" x2="32.26" x3="34.5" y1="27.76" y2="27.76" y3="20.53"/>
+ <curve x1="34.61" x2="34.97" x3="35.74" y1="20.17" y2="19.76" y3="20"/>
+ <curve x1="38.97" x2="41.91" x3="45.08" y1="20" y2="20" y3="20"/>
+ <curve x1="45.9" x2="46.25" x3="46.43" y1="19.76" y2="20.17" y3="20.53"/>
+ <curve x1="46.43" x2="46.43" x3="48.6" y1="20.53" y2="20.53" y3="27.76"/>
+ <curve x1="52.72" x2="55.42" x3="55.47" y1="28.18" y2="29.23" y3="30.23"/>
+ <curve x1="55.47" x2="53.18" x3="49.61" y1="30.82" y2="31.47" y3="31.94"/>
+ <curve x1="50.02" x2="50.19" x3="50.19" y1="32.82" y2="33.82" y3="34.88"/>
+ <curve x1="50.19" x2="50.02" x3="49.61" y1="35.82" y2="36.83" y3="37.7"/>
+ <curve x1="49.61" x2="49.61" x3="50.02" y1="37.7" y2="37.7" y3="37.7"/>
+ <curve x1="50.84" x2="51.54" x3="51.54" y1="37.7" y2="38.42" y3="39.24"/>
+ <curve x1="51.54" x2="51.54" x3="51.54" y1="39.24" y2="39.24" y3="40.88"/>
+ <curve x1="52.77" x2="53.78" x3="53.78" y1="41" y2="42.11" y3="43.53"/>
+ <curve x1="53.78" x2="53.78" x3="53.78" y1="43.53" y2="43.53" y3="52.88"/>
+ <curve x1="53.78" x2="52.65" x3="51.25" y1="54.35" y2="55.53" y3="55.53"/>
+ <curve x1="51.25" x2="51.25" x3="40.97" y1="55.53" y2="55.53" y3="55.53"/>
+ <curve x1="40.97" x2="40.97" x3="40.97" y1="55.53" y2="55.53" y3="43.53"/>
+ <curve x1="40.97" x2="40.97" x3="39.91" y1="43.53" y2="43.53" y3="43.53"/>
+ <curve x1="39.91" x2="39.91" x3="39.91" y1="43.53" y2="43.53" y3="55.53"/>
+ <curve x1="39.91" x2="39.91" x3="29.62" y1="55.53" y2="55.53" y3="55.53"/>
+ <curve x1="28.21" x2="27.15" x3="27.15" y1="55.53" y2="54.35" y3="52.88"/>
+ <curve x1="27.15" x2="27.15" x3="27.15" y1="52.88" y2="52.88" y3="43.53"/>
+ <curve x1="27.15" x2="28.04" x3="29.32" y1="42.11" y2="41" y3="40.88"/>
+ <curve x1="29.32" x2="29.32" x3="29.32" y1="40.88" y2="40.88" y3="39.24"/>
+ <curve x1="29.32" x2="30.03" x3="30.86" y1="38.42" y2="37.7" y3="37.7"/>
+ <curve x1="30.86" x2="30.86" x3="31.27" y1="37.7" y2="37.7" y3="37.7"/>
+ <curve x1="30.97" x2="30.74" x3="30.74" y1="36.83" y2="35.82" y3="34.88"/>
+ <curve x1="30.74" x2="30.97" x3="31.27" y1="33.82" y2="32.82" y3="31.94"/>
+ <curve x1="27.68" x2="25.39" x3="25.39" y1="31.47" y2="30.82" y3="30.23"/>
+ <close/>
+ <move x="42.31" y="32.95"/>
+ <curve x1="44.73" x2="44.73" x3="44.73" y1="32.95" y2="32.95" y3="32.95"/>
+ <curve x1="44.84" x2="44.84" x3="44.84" y1="32.95" y2="32.95" y3="32.95"/>
+ <curve x1="45.02" x2="45.02" x3="45.02" y1="32.95" y2="32.95" y3="32.95"/>
+ <curve x1="45.07" x2="45.14" x3="45.14" y1="32.95" y2="33.05" y3="33.24"/>
+ <curve x1="45.14" x2="45.14" x3="45.14" y1="35.41" y2="35.41" y3="35.41"/>
+ <curve x1="45.14" x2="44.66" x3="44.02" y1="36.11" y2="36.71" y3="36.71"/>
+ <curve x1="42.55" x2="42.55" x3="42.55" y1="36.71" y2="36.71" y3="36.71"/>
+ <curve x1="41.96" x2="41.37" x3="41.37" y1="36.71" y2="36.11" y3="35.41"/>
+ <curve x1="41.37" x2="41.37" x3="41.37" y1="33.94" y2="33.94" y3="33.94"/>
+ <curve x1="41.37" x2="41.78" x3="42.31" y1="33.41" y2="32.95" y3="32.95"/>
+ <close/>
+ <move x="35.08" y="32.95"/>
+ <curve x1="35.38" x2="35.38" x3="35.38" y1="32.95" y2="32.95" y3="32.95"/>
+ <curve x1="38.44" x2="38.44" x3="38.44" y1="32.95" y2="32.95" y3="32.95"/>
+ <curve x1="39.49" x2="39.32" x3="39.32" y1="32.95" y2="33.24" y3="34.06"/>
+ <curve x1="39.32" x2="39.32" x3="39.32" y1="35.41" y2="35.41" y3="35.41"/>
+ <curve x1="39.26" x2="38.73" x3="37.97" y1="36.11" y2="36.71" y3="36.71"/>
+ <curve x1="36.2" x2="36.2" x3="36.2" y1="36.71" y2="36.71" y3="36.71"/>
+ <curve x1="35.44" x2="34.79" x3="34.79" y1="36.71" y2="36.11" y3="35.41"/>
+ <curve x1="34.79" x2="34.79" x3="34.79" y1="33.24" y2="33.24" y3="33.24"/>
+ <curve x1="34.79" x2="34.91" x3="35.08" y1="33.05" y2="32.95" y3="32.95"/>
+ <close/>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.65" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.46" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.65" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.76" x2="64.36" x3="62.65" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.59" y2="23" y3="22.41"/>
+ <curve x1="63.71" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.17"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.17" y2="15.64" y3="18.18"/>
+ <curve x1="56.25" x2="55.31" x3="54.18" y1="17.35" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.76" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.72" x3="45.01" y1="10.77" y2="6.89" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.32" x2="37.32" x3="36.38" y1="12" y2="12.05" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.44" y1="5.64" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.39" x2="20.75" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="17.05" x3="21.34" y1="7.88" y2="13.64" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.98" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.11" x2="4.65" x3="2.29" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.29" x2="0" x3="13.29" y1="26.23" y2="36.59" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.88"/>
+ <curve x1="10.93" x2="2.89" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.93" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.82" x3="14.28" y1="43.24" y2="44.82" y3="46.35"/>
+ <curve x1="13.29" x2="10.4" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.99" x2="6.65" x3="16.16" y1="46.52" y2="52.59" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.82"/>
+ <curve x1="15.29" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.47" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.33" y1="56.58" y2="57.64" y3="58.58"/>
+ <curve x1="22.16" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.63" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.15" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.62" x2="34.26" x3="34.97" y1="64.36" y2="64.46" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.91" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.91" x2="36.5" x3="37.68" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.84" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.67" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.94" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.13" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.77" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.37" x3="47.84" y1="64.17" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.88" x3="56.88" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.47" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.29" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.88" x3="63.35" y1="53.29" y2="52.47" y3="51.58"/>
+ <curve x1="68.34" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.59" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.46" y3="39.46"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a4" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.7" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.52" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.7" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.81" x2="64.36" x3="62.59" y1="24" y2="24.11" y3="24.23"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.65" y2="23.06" y3="22.41"/>
+ <curve x1="63.76" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.17"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.17" y2="15.64" y3="18.18"/>
+ <curve x1="56.3" x2="55.31" x3="54.18" y1="17.41" y2="16.7" y3="16.06"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.83" y3="13.23"/>
+ <curve x1="46.66" x2="45.13" x3="43.66" y1="12.82" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.79" x3="44.96" y1="10.77" y2="6.94" y3="3.11"/>
+ <curve x1="44.96" x2="39.2" x3="39.26" y1="3.11" y2="4.41" y3="12"/>
+ <curve x1="38.26" x2="37.32" x3="36.32" y1="12.05" y2="12.12" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.39" y1="5.71" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.33" x2="20.81" x3="21.63" y1="15.88" y2="13.29" y3="7.88"/>
+ <curve x1="21.63" x2="16.98" x3="21.34" y1="7.88" y2="13.71" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.12"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.77"/>
+ <curve x1="15.63" x2="14.93" x3="14.4" y1="27.17" y2="28.64" y3="30.23"/>
+ <curve x1="12.05" x2="4.65" x3="2.24" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.24" x2="0" x3="13.29" y1="26.23" y2="36.64" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.35" y3="36.88"/>
+ <curve x1="10.93" x2="2.82" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.88" x3="13.22" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.75" x3="14.23" y1="43.24" y2="44.82" y3="46.35"/>
+ <curve x1="13.29" x2="10.35" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.94" x2="6.65" x3="16.11" y1="46.59" y2="52.64" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.88"/>
+ <curve x1="15.22" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.47" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.27" y1="56.65" y2="57.64" y3="58.53"/>
+ <curve x1="22.1" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.64" y2="61.76" y3="62"/>
+ <curve x1="23.57" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.22" x2="31.62" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.56" x2="34.26" x3="34.97" y1="64.36" y2="64.53" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.85" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.85" x2="36.55" x3="37.73" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.91" x2="39.97" x3="39.97" y1="72.24" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.73" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.72" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.64"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.2" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.77" y2="65.06" y3="64.36"/>
+ <curve x1="46.84" x2="47.31" x3="47.78" y1="64.24" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.83" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.83" x3="56.83" y1="65.35" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.41" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.82" x3="63.35" y1="53.29" y2="52.47" y3="51.58"/>
+ <curve x1="68.29" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.88" y2="48.47" y3="48.06"/>
+ <curve x1="65.35" x2="65.64" x3="65.83" y1="47.29" y2="46.47" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.64" y2="39.53" y3="39.53"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="58.3" y="48.06"/>
+ <curve x1="56.91" x2="54.48" x3="52.77" y1="49.97" y2="51.31" y3="52.55"/>
+ <curve x1="52.08" x2="51.38" x3="50.54" y1="53.02" y2="53.53" y3="53.65"/>
+ <curve x1="50.13" x2="50.2" x3="50.07" y1="53.49" y2="52.87" y3="52.43"/>
+ <line x="50.07" y="50.76"/>
+ <curve x1="47.94" x2="45.81" x3="43.7" y1="50.74" y2="50.8" y3="50.73"/>
+ <curve x1="43.27" x2="42.78" x3="42.55" y1="50.54" y2="50.23" y3="49.82"/>
+ <curve x1="41.49" x2="40.23" x3="39.1" y1="48.11" y2="46.5" y3="44.83"/>
+ <curve x1="38.68" x2="38.39" x3="38.97" y1="44.37" y2="43.91" y3="43.45"/>
+ <line x="41.67" y="39.53"/>
+ <curve x1="42.57" x2="43.67" x3="44.6" y1="41.15" y2="42.67" y3="44.28"/>
+ <curve x1="44.98" x2="45.08" x3="45.65" y1="44.64" y2="45.31" y3="45.17"/>
+ <curve x1="47.13" x2="48.66" x3="50.07" y1="45.54" y2="45.36" y3="45.17"/>
+ <curve x1="49.96" x2="50.31" x3="50.25" y1="44.29" y2="43.46" y3="42.59"/>
+ <curve x1="50.62" x2="51.03" x3="51.54" y1="41.99" y2="42.65" y3="42.7"/>
+ <curve x1="54.16" x2="56.54" x3="58.3" y1="44.19" y2="46.1" y3="47.89"/>
+ <line x="58.3" y="47.98"/>
+ <close/>
+ <move x="25.68" y="31.89"/>
+ <curve x1="25.46" x2="25.19" x3="24.99" y1="31.86" y2="31.95" y3="31.83"/>
+ <curve x1="24.47" x2="24.35" x3="23.93" y1="31.63" y2="31.2" y3="30.83"/>
+ <curve x1="23.65" x2="23.47" x3="23.51" y1="30.4" y2="29.92" y3="29.39"/>
+ <curve x1="23.46" x2="23.52" x3="24.03" y1="28.64" y2="27.88" y3="27.3"/>
+ <curve x1="24.33" x2="24.61" x3="25.1" y1="26.85" y2="26.57" y3="26.35"/>
+ <line x="32.44" y="26.35"/>
+ <curve x1="33.02" x2="33.22" x3="33.67" y1="26.16" y2="26.68" y3="26.88"/>
+ <curve x1="34.98" x2="36.31" x3="37.62" y1="28.96" y2="31.08" y3="33.17"/>
+ <line x="34.73" y="37.65"/>
+ <curve x1="34.02" x2="33.31" x3="32.44" y1="36.34" y2="35.03" y3="33.82"/>
+ <curve x1="32" x2="31.75" x3="31.21" y1="33.2" y2="32.4" y3="31.89"/>
+ <line x="25.68" y="31.89"/>
+ <close/>
+ <move x="45.72" y="31.93"/>
+ <curve x1="44.45" x2="43.33" x3="42.11" y1="33.72" y2="35.63" y3="37.45"/>
+ <curve x1="39.38" x2="36.67" x3="34" y1="41.65" y2="45.89" y3="50.11"/>
+ <curve x1="33.51" x2="33.3" x3="32.68" y1="50.31" y2="50.96" y3="50.83"/>
+ <line x="25.27" y="50.83"/>
+ <curve x1="24.78" x2="24.54" x3="24.16" y1="50.76" y2="50.37" y3="50.06"/>
+ <curve x1="23.84" x2="23.62" x3="23.51" y1="49.62" y2="49.2" y3="48.76"/>
+ <curve x1="23.56" x2="23.37" x3="23.68" y1="48.14" y2="47.45" y3="46.9"/>
+ <curve x1="23.73" x2="24.13" x3="24.5" y1="46.45" y2="46" y3="45.7"/>
+ <curve x1="24.79" x2="25.27" x3="25.75" y1="45.29" y2="45.18" y3="45.17"/>
+ <curve x1="27.51" x2="29.31" x3="31.09" y1="45.49" y2="45.31" y3="45.35"/>
+ <curve x1="31.57" x2="31.76" x3="32.08" y1="45.15" y2="44.67" y3="44.24"/>
+ <curve x1="33.65" x2="34.89" x3="36.31" y1="42.19" y2="39.9" y3="37.74"/>
+ <curve x1="38.48" x2="40.68" x3="42.9" y1="34.28" y2="30.84" y3="27.4"/>
+ <curve x1="43.18" x2="43.45" x3="43.94" y1="27.04" y2="26.61" y3="26.46"/>
+ <line x="50.31" y="26.46"/>
+ <curve x1="50.23" x2="50.41" x3="50.48" y1="25.71" y2="24.99" y3="24.25"/>
+ <curve x1="50.42" x2="50.64" x3="51.16" y1="23.78" y2="23.3" y3="23.57"/>
+ <curve x1="53.94" x2="56.26" x3="58.3" y1="25.31" y2="26.92" y3="29.06"/>
+ <curve x1="58.43" x2="57.64" x3="57.2" y1="29.79" y2="30.18" y3="30.63"/>
+ <curve x1="55.32" x2="53.67" x3="51.65" y1="32.05" y2="33.63" y3="34.6"/>
+ <curve x1="51.5" x2="50.41" x3="50.48" y1="34.97" y2="35.08" y3="34.61"/>
+ <curve x1="50.38" x2="50.23" x3="50.31" y1="34.1" y2="33.61" y3="33.05"/>
+ <curve x1="50.25" x2="50.58" x3="49.76" y1="32.55" y2="31.67" y3="31.93"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a5" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.65" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.46" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.65" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.76" x2="64.36" x3="62.65" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.59" y2="23" y3="22.41"/>
+ <curve x1="63.71" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.24"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.24" y2="15.64" y3="18.18"/>
+ <curve x1="56.25" x2="55.31" x3="54.18" y1="17.41" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.76" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.72" x3="45.01" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.32" x2="37.32" x3="36.38" y1="12" y2="12.05" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.44" y1="5.64" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.39" x2="20.75" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="17.05" x3="21.34" y1="7.88" y2="13.64" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.98" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.11" x2="4.65" x3="2.29" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.29" x2="0" x3="13.29" y1="26.23" y2="36.59" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.88"/>
+ <curve x1="10.93" x2="2.89" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.93" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.82" x3="14.28" y1="43.24" y2="44.82" y3="46.41"/>
+ <curve x1="13.29" x2="10.4" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.99" x2="6.65" x3="16.16" y1="46.52" y2="52.59" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.82"/>
+ <curve x1="15.29" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.53" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.33" y1="56.58" y2="57.64" y3="58.58"/>
+ <curve x1="22.16" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.63" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.15" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.62" x2="34.26" x3="34.97" y1="64.36" y2="64.46" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.91" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.91" x2="36.5" x3="37.68" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.84" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.67" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.13" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.77" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.37" x3="47.84" y1="64.17" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.88" x3="56.88" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.47" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.88" x3="63.35" y1="53.35" y2="52.47" y3="51.58"/>
+ <curve x1="68.34" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.59" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.46" y3="39.46"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="50.6" y="42.11"/>
+ <curve x1="51.25" x2="51.71" x3="51.71" y1="42.11" y2="41.58" y3="40.93"/>
+ <curve x1="51.71" x2="51.25" x3="50.6" y1="40.3" y2="39.77" y3="39.77"/>
+ <curve x1="49.95" x2="49.42" x3="49.42" y1="39.77" y2="40.3" y3="40.93"/>
+ <curve x1="49.42" x2="49.95" x3="50.6" y1="41.58" y2="42.11" y3="42.11"/>
+ <close/>
+ <move x="45.32" y="42.11"/>
+ <curve x1="45.96" x2="46.48" x3="46.48" y1="42.11" y2="41.58" y3="40.93"/>
+ <curve x1="46.48" x2="45.96" x3="45.32" y1="40.3" y2="39.77" y3="39.77"/>
+ <curve x1="44.67" x2="44.19" x3="44.19" y1="39.77" y2="40.3" y3="40.93"/>
+ <curve x1="44.19" x2="44.67" x3="45.32" y1="41.58" y2="42.11" y3="42.11"/>
+ <close/>
+ <move x="27.03" y="38.88"/>
+ <line x="53.13" y="38.88"/>
+ <curve x1="53.3" x2="53.48" x3="53.48" y1="38.88" y2="38.76" y3="38.59"/>
+ <curve x1="53.48" x2="53.3" x3="53.13" y1="38.35" y2="38.18" y3="38.18"/>
+ <curve x1="53.13" x2="53.13" x3="27.03" y1="38.18" y2="38.18" y3="38.18"/>
+ <curve x1="26.86" x2="26.68" x3="26.68" y1="38.18" y2="38.35" y3="38.59"/>
+ <curve x1="26.68" x2="26.86" x3="27.03" y1="38.76" y2="38.88" y3="38.88"/>
+ <close/>
+ <move x="40.08" y="42.11"/>
+ <curve x1="40.67" x2="41.26" x3="41.26" y1="42.11" y2="41.58" y3="40.93"/>
+ <curve x1="41.26" x2="40.67" x3="40.08" y1="40.3" y2="39.77" y3="39.77"/>
+ <curve x1="39.43" x2="38.9" x3="38.9" y1="39.77" y2="40.3" y3="40.93"/>
+ <curve x1="38.9" x2="39.43" x3="40.08" y1="41.58" y2="42.11" y3="42.11"/>
+ <close/>
+ <move x="34.8" y="42.11"/>
+ <curve x1="35.43" x2="35.96" x3="35.96" y1="42.11" y2="41.58" y3="40.93"/>
+ <curve x1="35.96" x2="35.43" x3="34.8" y1="40.3" y2="39.77" y3="39.77"/>
+ <curve x1="34.2" x2="33.62" x3="33.62" y1="39.77" y2="40.3" y3="40.93"/>
+ <curve x1="33.62" x2="34.2" x3="34.8" y1="41.58" y2="42.11" y3="42.11"/>
+ <close/>
+ <move x="29.56" y="42.11"/>
+ <curve x1="30.15" x2="30.68" x3="30.68" y1="42.11" y2="41.58" y3="40.93"/>
+ <curve x1="30.68" x2="30.15" x3="29.56" y1="40.3" y2="39.77" y3="39.77"/>
+ <curve x1="28.92" x2="28.39" x3="28.39" y1="39.77" y2="40.3" y3="40.93"/>
+ <curve x1="28.39" x2="28.92" x3="29.56" y1="41.58" y2="42.11" y3="42.11"/>
+ <close/>
+ <move x="29.56" y="34.71"/>
+ <curve x1="28.92" x2="28.39" x3="28.39" y1="34.71" y2="35.24" y3="35.89"/>
+ <curve x1="28.39" x2="28.92" x3="29.56" y1="36.52" y2="37.05" y3="37.05"/>
+ <curve x1="30.15" x2="30.68" x3="30.68" y1="37.05" y2="36.52" y3="35.89"/>
+ <curve x1="30.68" x2="30.15" x3="29.56" y1="35.24" y2="34.71" y3="34.71"/>
+ <close/>
+ <move x="34.8" y="34.71"/>
+ <curve x1="34.2" x2="33.62" x3="33.62" y1="34.71" y2="35.24" y3="35.89"/>
+ <curve x1="33.62" x2="34.2" x3="34.8" y1="36.52" y2="37.05" y3="37.05"/>
+ <curve x1="35.43" x2="35.96" x3="35.96" y1="37.05" y2="36.52" y3="35.89"/>
+ <curve x1="35.96" x2="35.43" x3="34.8" y1="35.24" y2="34.71" y3="34.71"/>
+ <close/>
+ <move x="40.08" y="34.71"/>
+ <curve x1="39.43" x2="38.9" x3="38.9" y1="34.71" y2="35.24" y3="35.89"/>
+ <curve x1="38.9" x2="39.43" x3="40.08" y1="36.52" y2="37.05" y3="37.05"/>
+ <curve x1="40.67" x2="41.26" x3="41.26" y1="37.05" y2="36.52" y3="35.89"/>
+ <curve x1="41.26" x2="40.67" x3="40.08" y1="35.24" y2="34.71" y3="34.71"/>
+ <close/>
+ <move x="45.32" y="34.71"/>
+ <curve x1="44.67" x2="44.19" x3="44.19" y1="34.71" y2="35.24" y3="35.89"/>
+ <curve x1="44.19" x2="44.67" x3="45.32" y1="36.52" y2="37.05" y3="37.05"/>
+ <curve x1="45.96" x2="46.48" x3="46.48" y1="37.05" y2="36.52" y3="35.89"/>
+ <curve x1="46.48" x2="45.96" x3="45.32" y1="35.24" y2="34.71" y3="34.71"/>
+ <close/>
+ <move x="50.6" y="34.71"/>
+ <curve x1="49.95" x2="49.42" x3="49.42" y1="34.71" y2="35.24" y3="35.89"/>
+ <curve x1="49.42" x2="49.95" x3="50.6" y1="36.52" y2="37.05" y3="37.05"/>
+ <curve x1="51.25" x2="51.71" x3="51.71" y1="37.05" y2="36.52" y3="35.89"/>
+ <curve x1="51.71" x2="51.25" x3="50.6" y1="35.24" y2="34.71" y3="34.71"/>
+ <close/>
+ <move x="55.01" y="40.71"/>
+ <curve x1="54.71" x2="54.01" x3="53.06" y1="42.59" y2="44.35" y3="45.99"/>
+ <curve x1="53.06" x2="53.06" x3="55.77" y1="45.99" y2="45.99" y3="51.64"/>
+ <curve x1="55.77" x2="55.77" x3="49.71" y1="51.64" y2="51.64" y3="49.88"/>
+ <curve x1="48.36" x2="46.84" x3="45.2" y1="50.94" y2="51.82" y3="52.41"/>
+ <curve x1="45.2" x2="45.2" x3="43.55" y1="52.41" y2="52.41" y3="58.35"/>
+ <curve x1="43.55" x2="43.55" x3="40.67" y1="58.35" y2="58.35" y3="53.23"/>
+ <curve x1="40.67" x2="40.67" x3="40.37" y1="53.23" y2="53.23" y3="53.23"/>
+ <curve x1="38.66" x2="37.02" x3="35.5" y1="53.23" y2="52.94" y3="52.41"/>
+ <curve x1="35.5" x2="35.5" x3="28.74" y1="52.41" y2="52.41" y3="57.18"/>
+ <curve x1="28.74" x2="28.74" x3="31.09" y1="57.18" y2="57.18" y3="50"/>
+ <curve x1="29.62" x2="28.39" x3="27.39" y1="48.76" y2="47.29" y3="45.53"/>
+ <curve x1="27.39" x2="27.39" x3="20.81" y1="45.53" y2="45.53" y3="45.41"/>
+ <curve x1="20.81" x2="20.81" x3="25.8" y1="45.41" y2="45.41" y3="41.58"/>
+ <curve x1="25.56" x2="25.44" x3="25.44" y1="40.47" y2="39.24" y3="37.99"/>
+ <curve x1="25.44" x2="25.51" x3="25.75" y1="37.05" y2="36.11" y3="35.17"/>
+ <curve x1="25.75" x2="25.75" x3="20.69" y1="35.17" y2="35.17" y3="31.29"/>
+ <curve x1="20.69" x2="20.69" x3="26.98" y1="31.29" y2="31.29" y3="31.29"/>
+ <curve x1="27.97" x2="29.44" x3="31.15" y1="29.24" y2="27.47" y3="26.06"/>
+ <curve x1="31.15" x2="31.15" x3="30.09" y1="26.06" y2="26.06" y3="20.12"/>
+ <curve x1="30.09" x2="30.09" x3="34.2" y1="20.12" y2="20.12" y3="24.18"/>
+ <curve x1="36.08" x2="38.15" x3="40.32" y1="23.29" y2="22.82" y3="22.82"/>
+ <curve x1="40.32" x2="40.32" x3="41.14" y1="22.82" y2="22.82" y3="22.82"/>
+ <curve x1="41.14" x2="41.14" x3="44.55" y1="22.82" y2="22.82" y3="18.82"/>
+ <curve x1="44.55" x2="44.55" x3="44.9" y1="18.82" y2="18.82" y3="23.53"/>
+ <curve x1="47.13" x2="49.13" x3="50.77" y1="24.3" y2="25.53" y3="27.17"/>
+ <curve x1="50.77" x2="50.77" x3="55.77" y1="27.17" y2="27.17" y3="25.58"/>
+ <curve x1="55.77" x2="55.77" x3="53.06" y1="25.58" y2="25.58" y3="30.11"/>
+ <curve x1="54.19" x2="54.95" x3="55.18" y1="32.06" y2="34.23" y3="36.59"/>
+ <curve x1="55.18" x2="55.18" x3="60.18" y1="36.59" y2="36.59" y3="38.64"/>
+ <curve x1="60.18" x2="60.18" x3="55.01" y1="38.64" y2="38.64" y3="40.71"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a6" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.82" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.7" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.52" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.24" y2="30.3" y3="30.88"/>
+ <curve x1="65.41" x2="65.11" x3="64.7" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.76" x3="71.76" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.81" x2="64.41" x3="62.65" y1="23.94" y2="24.11" y3="24.23"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.65" y2="23" y3="22.41"/>
+ <curve x1="63.76" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.17"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.17" y2="15.59" y3="18.18"/>
+ <curve x1="56.3" x2="55.31" x3="54.25" y1="17.41" y2="16.65" y3="16.06"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.36" x3="48.07" y1="0" y2="7.83" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.41" y3="12.24"/>
+ <curve x1="43.32" x2="42.79" x3="45.01" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.26" x2="37.32" x3="36.32" y1="12.05" y2="12.12" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.39" y1="5.71" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.33" x2="20.81" x3="21.63" y1="15.82" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="16.98" x3="21.34" y1="7.88" y2="13.71" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.77"/>
+ <curve x1="15.63" x2="14.93" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.05" x2="4.65" x3="2.24" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.24" x2="0" x3="13.29" y1="26.23" y2="36.64" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.17" y1="35.89" y2="36.35" y3="36.88"/>
+ <curve x1="10.93" x2="2.82" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.88" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.75" x3="14.28" y1="43.24" y2="44.82" y3="46.35"/>
+ <curve x1="13.29" x2="10.35" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.94" x2="6.65" x3="16.16" y1="46.59" y2="52.64" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.88"/>
+ <curve x1="15.22" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.47" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.27" y1="56.65" y2="57.64" y3="58.53"/>
+ <curve x1="22.1" x2="21.16" x3="15.99" y1="60.47" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.47" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.64" y2="61.76" y3="62"/>
+ <curve x1="23.57" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.22" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.56" x2="34.26" x3="34.97" y1="64.36" y2="64.53" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.85" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.85" x2="36.55" x3="37.73" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.91" x2="39.97" x3="39.97" y1="72.24" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.06"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.06" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.56" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.72" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.64"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.2" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.25" x2="46.72" x3="46.37" y1="66.77" y2="65.06" y3="64.36"/>
+ <curve x1="46.84" x2="47.31" x3="47.84" y1="64.24" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.43" y1="62.05" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.83" x3="56.83" y1="65.35" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57.07" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.77" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.41" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.77" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.88" x3="63.41" y1="53.29" y2="52.47" y3="51.58"/>
+ <curve x1="68.29" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.88" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.64" x3="65.88" y1="47.29" y2="46.47" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.53" y3="39.53"/>
+ <curve x1="72.29" x2="68.41" x3="66.82" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="39.5" y="36.52"/>
+ <curve x1="35.38" x2="32.03" x3="32.03" y1="36.83" y2="40.06" y3="43.99"/>
+ <curve x1="32.03" x2="35.38" x3="39.5" y1="47.94" y2="51.05" y3="51.41"/>
+ <curve x1="39.5" x2="39.5" x3="39.5" y1="55.53" y2="55.53" y3="55.53"/>
+ <curve x1="35.21" x2="31.74" x3="29.97" y1="54.18" y2="51.99" y3="48.3"/>
+ <curve x1="25.56" x2="25.56" x3="25.56" y1="49.99" y2="49.99" y3="49.99"/>
+ <curve x1="25.44" x2="25.27" x3="25.15" y1="49.99" y2="50.18" y3="50.18"/>
+ <curve x1="24.62" x2="24.16" x3="23.87" y1="50.18" y2="49.82" y3="49.46"/>
+ <curve x1="23.56" x2="23.87" x3="24.62" y1="48.81" y2="48.18" y3="47.82"/>
+ <curve x1="29.09" x2="29.09" x3="29.09" y1="45.99" y2="45.99" y3="45.99"/>
+ <curve x1="28.91" x2="28.56" x3="28.56" y1="45.05" y2="43.89" y3="42.59"/>
+ <curve x1="23.87" x2="23.87" x3="23.87" y1="42.59" y2="42.59" y3="42.59"/>
+ <curve x1="23.03" x2="22.57" x3="22.57" y1="42.59" y2="41.99" y3="41.46"/>
+ <curve x1="22.57" x2="23.03" x3="23.87" y1="40.76" y2="40.3" y3="40.3"/>
+ <curve x1="28.56" x2="28.56" x3="28.56" y1="40.3" y2="40.3" y3="40.3"/>
+ <curve x1="28.56" x2="28.91" x3="29.09" y1="39.12" y2="37.94" y3="36.83"/>
+ <curve x1="24.62" x2="24.62" x3="24.62" y1="35.12" y2="35.12" y3="35.12"/>
+ <curve x1="23.97" x2="23.56" x3="23.87" y1="34.83" y2="34.11" y3="33.58"/>
+ <curve x1="24.16" x2="24.86" x3="25.56" y1="32.94" y2="32.76" y3="32.94"/>
+ <curve x1="29.8" x2="29.8" x3="29.8" y1="34.53" y2="34.53" y3="34.53"/>
+ <curve x1="30.09" x2="30.44" x3="31.09" y1="33.65" y2="32.82" y3="32"/>
+ <curve x1="31.27" x2="31.56" x3="31.62" y1="32.11" y2="32.3" y3="32.41"/>
+ <curve x1="33.86" x2="36.49" x3="39.5" y1="33.47" y2="34.11" y3="34.11"/>
+ <line x="39.5" y="36.52"/>
+ <close/>
+ <move x="32.38" y="31.41"/>
+ <curve x1="32.09" x2="32.03" x3="31.91" y1="31.35" y2="31.17" y3="31.06"/>
+ <curve x1="32.5" x2="33.27" x3="34.15" y1="30.23" y2="29.47" y3="28.82"/>
+ <curve x1="30.74" x2="30.74" x3="30.74" y1="25.35" y2="25.35" y3="25.35"/>
+ <curve x1="30.62" x2="30.45" x3="30.33" y1="25.41" y2="25.41" y3="25.41"/>
+ <curve x1="29.1" x2="28.21" x3="28.21" y1="25.41" y2="24.58" y3="23.52"/>
+ <curve x1="28.21" x2="29.1" x3="30.33" y1="22.47" y2="21.64" y3="21.64"/>
+ <curve x1="31.5" x2="32.5" x3="32.5" y1="21.64" y2="22.47" y3="23.52"/>
+ <curve x1="32.5" x2="32.38" x3="32.21" y1="23.76" y2="24.05" y3="24.29"/>
+ <curve x1="35.79" x2="35.79" x3="35.79" y1="27.76" y2="27.76" y3="27.76"/>
+ <curve x1="37.14" x2="38.68" x3="40.15" y1="27.18" y2="26.82" y3="26.82"/>
+ <curve x1="41.72" x2="43.02" x3="44.31" y1="26.82" y2="27.18" y3="27.71"/>
+ <curve x1="47.72" x2="47.72" x3="47.72" y1="24.29" y2="24.29" y3="24.29"/>
+ <curve x1="47.49" x2="47.49" x3="47.49" y1="24.05" y2="23.76" y3="23.52"/>
+ <curve x1="47.49" x2="48.48" x3="49.66" y1="22.47" y2="21.64" y3="21.64"/>
+ <curve x1="50.77" x2="51.71" x3="51.71" y1="21.64" y2="22.47" y3="23.52"/>
+ <curve x1="51.71" x2="50.77" x3="49.66" y1="24.58" y2="25.41" y3="25.41"/>
+ <curve x1="49.54" x2="49.42" x3="49.31" y1="25.41" y2="25.41" y3="25.35"/>
+ <curve x1="45.96" x2="45.96" x3="45.96" y1="28.7" y2="28.7" y3="28.7"/>
+ <curve x1="46.9" x2="47.78" x3="48.48" y1="29.29" y2="30.06" y3="31.06"/>
+ <curve x1="48.25" x2="48.19" x3="47.9" y1="31.17" y2="31.35" y3="31.41"/>
+ <curve x1="45.96" x2="43.14" x3="40.15" y1="32.23" y2="32.94" y3="32.94"/>
+ <curve x1="37.14" x2="34.44" x3="32.38" y1="32.94" y2="32.23" y3="31.41"/>
+ <close/>
+ <move x="56.01" y="42.59"/>
+ <curve x1="51.77" x2="51.77" x3="51.77" y1="42.59" y2="42.59" y3="42.59"/>
+ <curve x1="51.77" x2="51.6" x3="51.19" y1="43.89" y2="45.05" y3="46.23"/>
+ <curve x1="55.42" x2="55.42" x3="55.42" y1="47.82" y2="47.82" y3="47.82"/>
+ <curve x1="56.01" x2="56.3" x3="56.01" y1="48.18" y2="48.81" y3="49.46"/>
+ <curve x1="55.89" x2="55.42" x3="54.95" y1="49.82" y2="50.18" y3="50.18"/>
+ <curve x1="54.83" x2="54.59" x3="54.48" y1="50.18" y2="49.99" y3="49.99"/>
+ <curve x1="50.49" x2="50.49" x3="50.49" y1="48.35" y2="48.35" y3="48.35"/>
+ <curve x1="48.73" x2="45.43" x3="41.37" y1="51.99" y2="54.29" y3="55.53"/>
+ <curve x1="41.37" x2="41.37" x3="41.37" y1="51.41" y2="51.41" y3="51.41"/>
+ <curve x1="45.31" x2="48.42" x3="48.42" y1="51.05" y2="47.82" y3="43.99"/>
+ <curve x1="48.42" x2="45.31" x3="41.37" y1="40.11" y2="36.88" y3="36.52"/>
+ <curve x1="41.37" x2="41.37" x3="41.37" y1="34.11" y2="34.11" y3="34.11"/>
+ <curve x1="44.31" x2="46.85" x3="48.9" y1="34.11" y2="33.47" y3="32.41"/>
+ <curve x1="48.95" x2="49.24" x3="49.55" y1="32.3" y2="32.11" y3="32"/>
+ <curve x1="50.01" x2="50.37" x3="50.54" y1="32.82" y2="33.65" y3="34.47"/>
+ <curve x1="54.48" x2="54.48" x3="54.48" y1="32.94" y2="32.94" y3="32.94"/>
+ <curve x1="55.07" x2="55.77" x3="56.01" y1="32.76" y2="32.94" y3="33.58"/>
+ <curve x1="56.3" x2="56.01" x3="55.42" y1="34.11" y2="34.83" y3="35.12"/>
+ <curve x1="51.31" x2="51.31" x3="51.31" y1="36.83" y2="36.83" y3="36.83"/>
+ <curve x1="51.6" x2="51.77" x3="51.77" y1="37.89" y2="39.05" y3="40.3"/>
+ <curve x1="56.18" x2="56.18" x3="56.18" y1="40.3" y2="40.3" y3="40.3"/>
+ <curve x1="56.71" x2="57.36" x3="57.36" y1="40.3" y2="40.76" y3="41.46"/>
+ <curve x1="57.18" x2="56.71" x3="56.01" y1="41.99" y2="42.59" y3="42.59"/>
+ <close/>
+ <move x="43.49" y="44.24"/>
+ <curve x1="43.72" x2="43.96" x3="44.13" y1="44.24" y2="44.24" y3="44.35"/>
+ <curve x1="44.2" x2="43.26" x3="41.73" y1="45.52" y2="46.58" y3="47.06"/>
+ <curve x1="41.61" x2="41.49" x3="41.37" y1="46.94" y2="46.82" y3="46.65"/>
+ <curve x1="42.73" x2="43.61" x3="43.49" y1="46.35" y2="45.35" y3="44.24"/>
+ <close/>
+ <move x="37.38" y="44.24"/>
+ <curve x1="37.32" x2="38.13" x3="39.45" y1="45.22" y2="46.21" y3="46.63"/>
+ <curve x1="39.47" x2="39.49" x3="39.49" y1="46.56" y2="46.48" y3="46.4"/>
+ <curve x1="39.49" x2="39.43" x3="39.2" y1="45.99" y2="45.65" y3="45.34"/>
+ <line x="39.38" y="45.17"/>
+ <curve x1="39.55" x2="39.79" x3="40.02" y1="45.34" y2="45.46" y3="45.46"/>
+ <curve x1="40.26" x2="40.44" x3="40.61" y1="45.46" y2="45.41" y3="45.24"/>
+ <line x="40.85" y="45.34"/>
+ <curve x1="40.55" x2="40.56" x3="40.56" y1="45.77" y2="45.94" y3="46.4"/>
+ <curve x1="40.73" x2="43.6" x3="44.85" y1="48.11" y2="48.82" y3="47.41"/>
+ <line x="45.14" y="47.53"/>
+ <curve x1="43.91" x2="41.26" x3="40.02" y1="48.93" y2="48.88" y3="47.46"/>
+ <curve x1="39.43" x2="38.49" x3="37.38" y1="48.11" y2="48.59" y3="48.59"/>
+ <curve x1="36.38" x2="35.38" x3="34.79" y1="48.59" y2="48.18" y3="47.53"/>
+ <line x="35.15" y="47.41"/>
+ <curve x1="35.61" x2="36.26" x3="37.08" y1="47.87" y2="48.18" y3="48.18"/>
+ <curve x1="38.18" x2="39.18" x3="39.43" y1="48.18" y2="47.57" y3="46.73"/>
+ <curve x1="39.33" x2="39.24" x3="39.14" y1="46.85" y2="46.96" y3="47.06"/>
+ <curve x1="37.61" x2="36.67" x3="36.79" y1="46.58" y2="45.47" y3="44.29"/>
+ <curve x1="36.97" x2="37.2" x3="37.38" y1="44.24" y2="44.24" y3="44.24"/>
+ <close/>
+ <move x="40.46" y="41.56"/>
+ <curve x1="41.11" x2="41.76" x3="42.31" y1="41.56" y2="41.71" y3="42"/>
+ <curve x1="42.31" x2="42.2" x3="42.08" y1="42.12" y2="42.29" y3="42.35"/>
+ <curve x1="41.14" x2="39.78" x3="38.79" y1="41.82" y2="41.82" y3="42.35"/>
+ <curve x1="38.67" x2="38.61" x3="38.55" y1="42.29" y2="42.24" y3="42"/>
+ <curve x1="39.14" x2="39.8" x3="40.46" y1="41.71" y2="41.56" y3="41.56"/>
+ <close/>
+ <move x="40.25" y="39.52"/>
+ <line x="40.25" y="39.83"/>
+ <curve x1="37.26" x2="37.5" x3="40.43" y1="40" y2="43.59" y3="43.76"/>
+ <curve x1="40.43" x2="40.44" x3="40.44" y1="43.76" y2="43.76" y3="43.76"/>
+ <curve x1="43.43" x2="43.55" x3="40.61" y1="43.59" y2="40.12" y3="39.83"/>
+ <line x="40.61" y="39.52"/>
+ <curve x1="42.9" x2="44.25" x3="43.37" y1="39.76" y2="41.64" y3="43.23"/>
+ <curve x1="45.72" x2="47.02" x3="46.01" y1="43.41" y2="45.47" y3="47.06"/>
+ <line x="45.67" y="46.88"/>
+ <curve x1="46.32" x2="45.14" x3="43.37" y1="45.64" y2="44.17" y3="44.17"/>
+ <curve x1="42.55" x2="41.78" x3="41.32" y1="44.17" y2="44.53" y3="44.99"/>
+ <line x="41.14" y="44.88"/>
+ <line x="41.14" y="44.65"/>
+ <curve x1="41.14" x2="40.85" x3="40.44" y1="44.29" y2="44" y3="43.93"/>
+ <curve x1="40.44" x2="40.43" x3="40.43" y1="43.93" y2="43.93" y3="43.93"/>
+ <curve x1="40.02" x2="39.74" x3="39.74" y1="44" y2="44.29" y3="44.65"/>
+ <curve x1="39.74" x2="39.79" x3="39.79" y1="44.7" y2="44.82" y3="44.88"/>
+ <line x="39.61" y="44.99"/>
+ <curve x1="39.43" x2="39.21" x3="38.9" y1="44.82" y2="44.65" y3="44.46"/>
+ <curve x1="38.9" x2="38.85" x3="38.79" y1="44.46" y2="44.46" y3="44.41"/>
+ <curve x1="38.44" x2="37.96" x3="37.55" y1="44.24" y2="44.17" y3="44.17"/>
+ <curve x1="35.91" x2="34.32" x3="35.26" y1="44.17" y2="45.71" y3="46.88"/>
+ <line x="34.91" y="47.06"/>
+ <curve x1="33.85" x2="35.08" x3="37.5" y1="45.47" y2="43.41" y3="43.23"/>
+ <curve x1="36.61" x2="38.03" x3="40.25" y1="41.64" y2="39.71" y3="39.52"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a7" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.65" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.46" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.88"/>
+ <curve x1="65.41" x2="65.06" x3="64.65" y1="29.94" y2="29" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.76" x2="64.36" x3="62.65" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.59" y2="23" y3="22.41"/>
+ <curve x1="63.71" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.24"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.24" y2="15.64" y3="18.18"/>
+ <curve x1="56.25" x2="55.31" x3="54.18" y1="17.41" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.76" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.72" x3="45.01" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.32" x2="37.32" x3="36.38" y1="12" y2="12.05" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.44" y1="5.64" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.39" x2="20.75" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="17.05" x3="21.34" y1="7.88" y2="13.71" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.12" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.98" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.11" x2="4.65" x3="2.29" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.29" x2="0" x3="13.29" y1="26.23" y2="36.59" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.88"/>
+ <curve x1="10.93" x2="2.89" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.93" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.82" x3="14.28" y1="43.24" y2="44.82" y3="46.41"/>
+ <curve x1="13.29" x2="10.4" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.99" x2="6.65" x3="16.16" y1="46.52" y2="52.59" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.17" y2="51.53" y3="51.82"/>
+ <curve x1="15.29" x2="12.11" x3="13.41" y1="53.12" y2="56.65" y3="62.29"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.29" y2="57.53" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.33" y1="56.58" y2="57.64" y3="58.58"/>
+ <curve x1="22.16" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.63" x2="29.57" x3="29.57" y1="72.24" y2="78.75" y3="78.75"/>
+ <curve x1="28.15" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.62" x2="34.26" x3="34.97" y1="64.36" y2="64.46" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.06"/>
+ <curve x1="35.67" x2="34.2" x3="35.91" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.91" x2="36.5" x3="37.68" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.84" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.3" y2="66" y3="65.11"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.67" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.46" y3="78.46"/>
+ <curve x1="43.25" x2="43.13" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.77" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.37" x3="47.84" y1="64.17" y2="64.05" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.18" y3="75.18"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.88" x3="56.88" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.47" x2="66.41" x3="66.41" y1="65.41" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.35" y2="55.76" y3="54.11"/>
+ <curve x1="62.29" x2="62.88" x3="63.35" y1="53.35" y2="52.47" y3="51.58"/>
+ <curve x1="68.34" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.59" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.46" y3="39.46"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.12" y3="40.11"/>
+ <close/>
+ <move x="56.89" y="43.41"/>
+ <line x="52.42" y="43.41"/>
+ <curve x1="52.42" x2="52.18" x3="51.77" y1="44.81" y2="46.06" y3="47.29"/>
+ <curve x1="51.77" x2="51.77" x3="56.3" y1="47.29" y2="47.29" y3="49.05"/>
+ <curve x1="56.89" x2="57.18" x3="56.89" y1="49.41" y2="50.18" y3="50.82"/>
+ <curve x1="56.77" x2="56.3" x3="55.71" y1="51.17" y2="51.53" y3="51.53"/>
+ <curve x1="55.65" x2="55.36" x3="55.24" y1="51.53" y2="51.47" y3="51.47"/>
+ <curve x1="55.24" x2="55.24" x3="51.02" y1="51.47" y2="51.47" y3="49.7"/>
+ <curve x1="49.07" x2="45.6" x3="41.37" y1="53.58" y2="56.06" y3="57.41"/>
+ <curve x1="41.37" x2="41.37" x3="41.37" y1="57.41" y2="57.41" y3="34.3"/>
+ <curve x1="44.49" x2="47.14" x3="49.31" y1="34.3" y2="33.53" y3="32.42"/>
+ <curve x1="49.48" x2="49.72" x3="49.96" y1="32.23" y2="32.18" y3="32"/>
+ <curve x1="50.49" x2="50.9" x3="51.12" y1="32.88" y2="33.77" y3="34.64"/>
+ <curve x1="51.12" x2="51.12" x3="55.24" y1="34.64" y2="34.64" y3="33.05"/>
+ <curve x1="55.89" x2="56.65" x3="56.89" y1="32.76" y2="33.05" y3="33.65"/>
+ <curve x1="57.18" x2="56.89" x3="56.3" y1="34.3" y2="35" y3="35.29"/>
+ <curve x1="56.3" x2="56.3" x3="51.95" y1="35.29" y2="35.29" y3="37.17"/>
+ <curve x1="52.18" x2="52.42" x3="52.42" y1="38.3" y2="39.53" y3="40.93"/>
+ <curve x1="52.42" x2="52.42" x3="57.01" y1="40.93" y2="40.93" y3="40.93"/>
+ <curve x1="57.65" x2="58.3" x3="58.3" y1="40.93" y2="41.41" y3="42.18"/>
+ <curve x1="58.18" x2="57.65" x3="56.89" y1="42.83" y2="43.41" y3="43.41"/>
+ <close/>
+ <move x="49.31" y="30.82"/>
+ <curve x1="49.19" x2="49.07" x3="48.84" y1="30.94" y2="31.06" y3="31.17"/>
+ <curve x1="46.84" x2="44.08" x3="41.09" y1="32.23" y2="32.94" y3="32.94"/>
+ <curve x1="38.08" x2="35.32" x3="33.32" y1="32.94" y2="32.23" y3="31.17"/>
+ <curve x1="33.09" x2="32.91" x3="32.79" y1="31.06" y2="30.94" y3="30.82"/>
+ <curve x1="33.44" x2="34.21" x3="35.09" y1="29.76" y2="28.88" y3="28.12"/>
+ <curve x1="35.09" x2="35.09" x3="31.68" y1="28.12" y2="28.12" y3="24"/>
+ <curve x1="31.56" x2="31.44" x3="31.32" y1="24.12" y2="24.12" y3="24.12"/>
+ <curve x1="30.04" x2="29.15" x3="29.15" y1="24.12" y2="23.11" y3="21.94"/>
+ <curve x1="29.15" x2="30.04" x3="31.32" y1="20.7" y2="19.76" y3="19.76"/>
+ <curve x1="32.44" x2="33.44" x3="33.44" y1="19.76" y2="20.7" y3="21.94"/>
+ <curve x1="33.44" x2="33.32" x3="33.2" y1="22.24" y2="22.58" y3="22.88"/>
+ <curve x1="33.2" x2="33.2" x3="36.68" y1="22.88" y2="22.88" y3="26.94"/>
+ <curve x1="38.08" x2="39.55" x3="41.09" y1="26.17" y2="25.82" y3="25.82"/>
+ <curve x1="42.54" x2="43.96" x3="45.19" y1="25.82" y2="26.17" y3="26.82"/>
+ <curve x1="45.19" x2="45.19" x3="48.54" y1="26.82" y2="26.82" y3="22.88"/>
+ <curve x1="48.48" x2="48.48" x3="48.48" y1="22.58" y2="22.24" y3="21.94"/>
+ <curve x1="48.48" x2="49.31" x3="50.6" y1="20.7" y2="19.76" y3="19.76"/>
+ <curve x1="51.66" x2="52.65" x3="52.65" y1="19.76" y2="20.7" y3="21.94"/>
+ <curve x1="52.65" x2="51.66" x3="50.6" y1="23.11" y2="24.12" y3="24.12"/>
+ <curve x1="50.48" x2="50.31" x3="50.19" y1="24.12" y2="24.12" y3="24"/>
+ <curve x1="50.19" x2="50.19" x3="46.84" y1="24" y2="24" y3="28"/>
+ <curve x1="47.84" x2="48.72" x3="49.31" y1="28.76" y2="29.65" y3="30.82"/>
+ <close/>
+ <move x="31.44" y="32"/>
+ <curve x1="31.68" x2="31.97" x3="32.09" y1="32.18" y2="32.23" y3="32.42"/>
+ <curve x1="34.15" x2="36.68" x3="39.5" y1="33.53" y2="34.3" y3="34.3"/>
+ <curve x1="39.5" x2="39.5" x3="39.5" y1="34.3" y2="34.3" y3="57.41"/>
+ <curve x1="35.44" x2="32.21" x3="30.5" y1="55.94" y2="53.58" y3="49.58"/>
+ <curve x1="30.5" x2="30.5" x3="26.26" y1="49.58" y2="49.58" y3="51.47"/>
+ <curve x1="26.16" x2="26.04" x3="25.92" y1="51.47" y2="51.53" y3="51.53"/>
+ <curve x1="25.44" x2="24.98" x3="24.74" y1="51.53" y2="51.17" y3="50.82"/>
+ <curve x1="24.5" x2="24.74" x3="25.44" y1="50.18" y2="49.41" y3="49.05"/>
+ <curve x1="25.44" x2="25.44" x3="29.62" y1="49.05" y2="49.05" y3="47.17"/>
+ <curve x1="29.44" x2="29.15" x3="29.15" y1="46.06" y2="44.81" y3="43.41"/>
+ <curve x1="29.15" x2="29.15" x3="24.74" y1="43.41" y2="43.41" y3="43.41"/>
+ <curve x1="24.04" x2="23.51" x3="23.51" y1="43.41" y2="42.83" y3="42.18"/>
+ <curve x1="23.51" x2="24.04" x3="24.74" y1="41.41" y2="40.93" y3="40.93"/>
+ <curve x1="24.74" x2="24.74" x3="29.15" y1="40.93" y2="40.93" y3="40.93"/>
+ <curve x1="29.15" x2="29.44" x3="29.62" y1="39.65" y2="38.4" y3="37.17"/>
+ <curve x1="29.62" x2="29.62" x3="25.44" y1="37.17" y2="37.17" y3="35.29"/>
+ <curve x1="24.86" x2="24.5" x3="24.74" y1="35" y2="34.3" y3="33.65"/>
+ <curve x1="24.98" x2="25.68" x3="26.26" y1="33.05" y2="32.76" y3="33.05"/>
+ <curve x1="26.26" x2="26.26" x3="30.27" y1="33.05" y2="33.05" y3="34.76"/>
+ <curve x1="30.62" x2="30.97" x3="31.44" y1="33.77" y2="32.88" y3="32"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat a8" strokewidth="inherit" w="78.04">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="66.77" y="40.11"/>
+ <curve x1="66.82" x2="66.82" x3="66.82" y1="39.58" y2="39.05" y3="38.52"/>
+ <curve x1="66.82" x2="66.77" x3="66.65" y1="37.53" y2="36.52" y3="35.53"/>
+ <curve x1="71.46" x2="78.04" x3="78.04" y1="32.47" y2="34.06" y3="34.06"/>
+ <curve x1="73.75" x2="67.81" x3="65.71" y1="29.29" y2="30.35" y3="30.95"/>
+ <curve x1="65.41" x2="65.06" x3="64.65" y1="29.94" y2="29.05" y3="28.11"/>
+ <curve x1="67.47" x2="71.69" x3="71.69" y1="26.53" y2="27.17" y3="27.17"/>
+ <curve x1="69.76" x2="64.36" x3="62.65" y1="23.94" y2="24.11" y3="24.3"/>
+ <curve x1="62.24" x2="61.77" x3="61.29" y1="23.65" y2="23" y3="22.41"/>
+ <curve x1="63.71" x2="68.34" x3="66.58" y1="21.17" y2="17.53" y3="8.24"/>
+ <curve x1="66.58" x2="66.05" x3="57.24" y1="8.24" y2="15.64" y3="18.23"/>
+ <curve x1="56.25" x2="55.31" x3="54.18" y1="17.41" y2="16.7" y3="16"/>
+ <curve x1="56.01" x2="58.23" x3="53.31" y1="13" y2="6.82" y3="0"/>
+ <curve x1="53.31" x2="55.31" x3="48.07" y1="0" y2="7.83" y3="13.23"/>
+ <curve x1="46.66" x2="45.2" x3="43.66" y1="12.77" y2="12.47" y3="12.24"/>
+ <curve x1="43.32" x2="42.72" x3="45.01" y1="10.77" y2="6.94" y3="3.06"/>
+ <curve x1="45.01" x2="39.2" x3="39.26" y1="3.06" y2="4.41" y3="12"/>
+ <curve x1="38.32" x2="37.32" x3="36.38" y1="12" y2="12.12" y3="12.24"/>
+ <curve x1="34.73" x2="23.69" x3="23.69" y1="0.99" y2="2.89" y3="2.89"/>
+ <curve x1="30.15" x2="30.51" x3="30.44" y1="5.71" y2="11.53" y3="13.71"/>
+ <curve x1="28.32" x2="26.39" x3="24.56" y1="14.47" y2="15.53" y3="16.76"/>
+ <curve x1="23.39" x2="20.75" x3="21.63" y1="15.88" y2="13.23" y3="7.88"/>
+ <curve x1="21.63" x2="17.05" x3="21.34" y1="7.88" y2="13.71" y3="19.41"/>
+ <curve x1="20.45" x2="19.63" x3="18.86" y1="20.23" y2="21.17" y3="22.06"/>
+ <curve x1="17.1" x2="11.7" x3="6.99" y1="20.76" y2="17.59" y3="23.06"/>
+ <curve x1="6.99" x2="14.28" x3="16.4" y1="23.06" y2="20.23" y3="25.7"/>
+ <curve x1="15.63" x2="14.98" x3="14.45" y1="27.12" y2="28.64" y3="30.18"/>
+ <curve x1="12.11" x2="4.65" x3="2.29" y1="31.29" y2="34.11" y3="26.23"/>
+ <curve x1="2.29" x2="0" x3="13.29" y1="26.23" y2="36.64" y3="35.36"/>
+ <curve x1="13.22" x2="13.17" x3="13.1" y1="35.89" y2="36.4" y3="36.93"/>
+ <curve x1="10.93" x2="2.89" x3="1.59" y1="36.71" y2="36.52" y3="44.29"/>
+ <curve x1="1.59" x2="3.93" x3="13.29" y1="44.29" y2="38.18" y3="41.58"/>
+ <curve x1="13.46" x2="13.82" x3="14.28" y1="43.24" y2="44.88" y3="46.41"/>
+ <curve x1="13.29" x2="10.4" x3="5.18" y1="47.46" y2="49.65" y3="46.71"/>
+ <curve x1="4.99" x2="6.65" x3="16.16" y1="46.59" y2="52.64" y3="50.88"/>
+ <curve x1="16.33" x2="16.52" x3="16.69" y1="51.23" y2="51.53" y3="51.88"/>
+ <curve x1="15.29" x2="12.11" x3="13.41" y1="53.12" y2="56.7" y3="62.35"/>
+ <curve x1="13.41" x2="14.16" x3="19.27" y1="62.35" y2="57.53" y3="55.53"/>
+ <curve x1="20.22" x2="21.22" x3="22.33" y1="56.65" y2="57.64" y3="58.58"/>
+ <curve x1="22.16" x2="21.16" x3="15.99" y1="60.53" y2="64.65" y3="65.83"/>
+ <curve x1="15.99" x2="23.16" x3="26.34" y1="65.83" y2="67.52" y3="61.41"/>
+ <curve x1="26.63" x2="26.97" x3="27.33" y1="61.59" y2="61.82" y3="62"/>
+ <curve x1="23.63" x2="29.57" x3="29.57" y1="72.29" y2="78.75" y3="78.75"/>
+ <curve x1="28.15" x2="31.67" x3="32.91" y1="68.87" y2="65.18" y3="64.17"/>
+ <curve x1="33.62" x2="34.26" x3="34.97" y1="64.36" y2="64.53" y3="64.65"/>
+ <curve x1="35.44" x2="36.38" x3="36.09" y1="65.35" y2="67.06" y3="69.11"/>
+ <curve x1="35.67" x2="34.2" x3="35.91" y1="71.76" y2="76.65" y3="80"/>
+ <curve x1="35.91" x2="36.5" x3="37.68" y1="80" y2="75.23" y3="73.76"/>
+ <curve x1="38.84" x2="39.97" x3="39.97" y1="72.29" y2="70.41" y3="68.53"/>
+ <curve x1="39.97" x2="39.85" x3="39.68" y1="67.35" y2="66" y3="65.11"/>
+ <curve x1="39.78" x2="39.85" x3="39.97" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="40.72" x2="41.49" x3="42.26" y1="65.11" y2="65.06" y3="64.99"/>
+ <curve x1="42.67" x2="42.79" x3="42.91" y1="65.88" y2="66.7" y3="67.71"/>
+ <curve x1="43.08" x2="42.67" x3="42.14" y1="68.99" y2="70.12" y3="73.11"/>
+ <curve x1="41.61" x2="43.49" x3="43.49" y1="76.17" y2="78.53" y3="78.53"/>
+ <curve x1="43.25" x2="43.13" x3="43.32" y1="77.23" y2="76.41" y3="74.7"/>
+ <curve x1="43.49" x2="45.66" x3="46.55" y1="73.06" y2="70.94" y3="68.58"/>
+ <curve x1="47.19" x2="46.66" x3="46.37" y1="66.82" y2="65.11" y3="64.36"/>
+ <curve x1="46.84" x2="47.37" x3="47.84" y1="64.24" y2="64.12" y3="63.94"/>
+ <curve x1="51.66" x2="49.6" x3="49.6" y1="68.53" y2="75.23" y3="75.23"/>
+ <curve x1="53.89" x2="52.3" x3="51.84" y1="70.77" y2="64.05" y3="62.35"/>
+ <curve x1="52.37" x2="52.9" x3="53.36" y1="62.12" y2="61.82" y3="61.52"/>
+ <curve x1="58.18" x2="56.88" x3="56.88" y1="65.41" y2="72.94" y3="72.94"/>
+ <curve x1="61" x2="57.94" x3="57" y1="64.58" y2="60.12" y3="59.06"/>
+ <curve x1="57.41" x2="57.7" x3="58.06" y1="58.76" y2="58.47" y3="58.17"/>
+ <curve x1="60.47" x2="66.41" x3="66.41" y1="65.47" y2="61.76" y3="61.76"/>
+ <curve x1="62.12" x2="61.71" x3="61.71" y1="61.35" y2="55.76" y3="54.17"/>
+ <curve x1="62.29" x2="62.88" x3="63.35" y1="53.35" y2="52.47" y3="51.58"/>
+ <curve x1="68.34" x2="69.11" x3="69.11" y1="51.7" y2="55.64" y3="55.64"/>
+ <curve x1="70.58" x2="66.77" x3="65.06" y1="49.94" y2="48.41" y3="48.06"/>
+ <curve x1="65.35" x2="65.59" x3="65.83" y1="47.29" y2="46.52" y3="45.7"/>
+ <curve x1="74.63" x2="75.87" x3="75.87" y1="46.59" y2="39.53" y3="39.53"/>
+ <curve x1="72.29" x2="68.41" x3="66.77" y1="42.88" y2="41.17" y3="40.11"/>
+ <close/>
+ <move x="49.6" y="50.18"/>
+ <curve x1="49.66" x2="49.78" x3="49.84" y1="50.18" y2="50" y3="49.88"/>
+ <curve x1="49.54" x2="49.31" x3="48.9" y1="50.23" y2="50.52" y3="50.83"/>
+ <curve x1="49.19" x2="49.43" x3="49.6" y1="50.59" y2="50.35" y3="50.18"/>
+ <close/>
+ <move x="31.49" y="50.3"/>
+ <line x="31.97" y="50.83"/>
+ <curve x1="31.61" x2="31.27" x3="31.03" y1="50.47" y2="50.06" y3="49.88"/>
+ <curve x1="31.15" x2="31.27" x3="31.49" y1="50.06" y2="50.3" y3="50.3"/>
+ <close/>
+ <move x="38.32" y="31.06"/>
+ <line x="38.32" y="27.35"/>
+ <curve x1="38.32" x2="38.32" x3="36.67" y1="27.35" y2="27.35" y3="27.35"/>
+ <curve x1="36.67" x2="36.67" x3="36.67" y1="27.35" y2="27.35" y3="26.53"/>
+ <curve x1="37.26" x2="37.67" x3="37.97" y1="26.53" y2="26.41" y3="26.17"/>
+ <curve x1="38.2" x2="38.38" x3="38.5" y1="26.05" y2="25.83" y3="25.4"/>
+ <curve x1="38.5" x2="38.5" x3="39.49" y1="25.4" y2="25.4" y3="25.4"/>
+ <curve x1="39.49" x2="39.49" x3="39.49" y1="25.4" y2="25.4" y3="31.06"/>
+ <curve x1="39.49" x2="39.49" x3="38.32" y1="31.06" y2="31.06" y3="31.06"/>
+ <close/>
+ <move x="31.39" y="35.76"/>
+ <curve x1="31.61" x2="31.8" x3="31.92" y1="35.59" y2="35.29" y3="34.82"/>
+ <curve x1="31.92" x2="31.92" x3="32.91" y1="34.82" y2="34.82" y3="34.82"/>
+ <curve x1="32.91" x2="32.91" x3="32.91" y1="34.82" y2="34.82" y3="41.41"/>
+ <curve x1="32.91" x2="32.91" x3="31.68" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="31.68" x2="31.68" x3="31.68" y1="41.41" y2="41.41" y3="37.06"/>
+ <curve x1="31.68" x2="31.68" x3="30.09" y1="37.06" y2="37.06" y3="37.06"/>
+ <curve x1="30.09" x2="30.09" x3="30.09" y1="37.06" y2="37.06" y3="36.06"/>
+ <curve x1="30.67" x2="31.08" x3="31.39" y1="36.06" y2="36" y3="35.76"/>
+ <close/>
+ <move x="36.96" y="46.06"/>
+ <curve x1="37.26" x2="37.32" x3="37.49" y1="45.88" y2="45.58" y3="45.17"/>
+ <curve x1="37.49" x2="37.49" x3="38.55" y1="45.17" y2="45.17" y3="45.17"/>
+ <curve x1="38.55" x2="38.55" x3="38.55" y1="45.17" y2="45.17" y3="51.77"/>
+ <curve x1="38.55" x2="38.55" x3="37.32" y1="51.77" y2="51.77" y3="51.77"/>
+ <curve x1="37.32" x2="37.32" x3="37.32" y1="51.77" y2="51.77" y3="47.41"/>
+ <curve x1="37.32" x2="37.32" x3="35.73" y1="47.41" y2="47.41" y3="47.41"/>
+ <curve x1="35.73" x2="35.73" x3="35.73" y1="47.41" y2="47.41" y3="46.41"/>
+ <curve x1="36.32" x2="36.73" x3="36.96" y1="46.41" y2="46.3" y3="46.06"/>
+ <close/>
+ <move x="47.37" y="41.59"/>
+ <curve x1="47.43" x2="47.48" x3="47.48" y1="41.47" y2="41.35" y3="41.18"/>
+ <curve x1="47.48" x2="47.43" x3="47.26" y1="40.89" y2="40.7" y3="40.53"/>
+ <curve x1="47.07" x2="46.78" x3="46.37" y1="40.41" y2="40.29" y3="40.17"/>
+ <curve x1="46.37" x2="46.37" x3="46.37" y1="40.17" y2="40.17" y3="42.17"/>
+ <curve x1="46.54" x2="46.66" x3="46.78" y1="42.17" y2="42.12" y3="42.12"/>
+ <curve x1="46.9" x2="47.02" x3="47.14" y1="42.05" y2="42" y3="41.95"/>
+ <curve x1="47.26" x2="47.31" x3="47.37" y1="41.83" y2="41.71" y3="41.59"/>
+ <close/>
+ <move x="45.84" y="38.58"/>
+ <line x="45.84" y="36.88"/>
+ <curve x1="45.67" x2="45.55" x3="45.49" y1="36.88" y2="36.88" y3="36.94"/>
+ <curve x1="45.37" x2="45.25" x3="45.14" y1="36.94" y2="37" y3="37.11"/>
+ <curve x1="45.08" x2="45.02" x3="44.96" y1="37.18" y2="37.23" y3="37.35"/>
+ <curve x1="44.9" x2="44.9" x3="44.9" y1="37.41" y2="37.59" y3="37.71"/>
+ <curve x1="44.9" x2="44.96" x3="45.08" y1="37.94" y2="38.12" y3="38.24"/>
+ <curve x1="45.25" x2="45.49" x3="45.84" y1="38.41" y2="38.47" y3="38.58"/>
+ <close/>
+ <move x="48.9" y="40.65"/>
+ <curve x1="48.9" x2="48.9" x3="48.9" y1="40.89" y2="41.06" y3="41.23"/>
+ <curve x1="48.9" x2="48.9" x3="48.83" y1="41.42" y2="41.59" y3="41.83"/>
+ <curve x1="48.78" x2="48.61" x3="48.42" y1="42" y2="42.29" y3="42.46"/>
+ <curve x1="48.25" x2="47.96" x3="47.67" y1="42.7" y2="42.89" y3="43.06"/>
+ <curve x1="47.31" x2="46.9" x3="46.37" y1="43.23" y2="43.35" y3="43.42"/>
+ <curve x1="46.37" x2="46.37" x3="46.37" y1="43.42" y2="43.42" y3="44.24"/>
+ <curve x1="46.37" x2="46.37" x3="45.84" y1="44.24" y2="44.24" y3="44.24"/>
+ <curve x1="45.84" x2="45.84" x3="45.84" y1="44.24" y2="44.24" y3="43.42"/>
+ <curve x1="45.08" x2="44.43" x3="44.02" y1="43.3" y2="43.06" y3="42.65"/>
+ <curve x1="43.61" x2="43.37" x3="43.25" y1="42.24" y2="41.64" y3="40.82"/>
+ <curve x1="43.25" x2="43.25" x3="44.72" y1="40.82" y2="40.82" y3="40.82"/>
+ <curve x1="44.72" x2="44.84" x3="45.02" y1="41.23" y2="41.52" y3="41.76"/>
+ <curve x1="45.25" x2="45.49" x3="45.84" y1="42" y2="42.12" y3="42.17"/>
+ <curve x1="45.84" x2="45.84" x3="45.84" y1="42.17" y2="42.17" y3="40"/>
+ <curve x1="45.78" x2="45.72" x3="45.67" y1="40" y2="40" y3="39.95"/>
+ <curve x1="45.6" x2="45.55" x3="45.49" y1="39.95" y2="39.95" y3="39.95"/>
+ <curve x1="45.25" x2="45.02" x3="44.72" y1="39.88" y2="39.76" y3="39.71"/>
+ <curve x1="44.49" x2="44.25" x3="44.08" y1="39.59" y2="39.47" y3="39.3"/>
+ <curve x1="43.9" x2="43.78" x3="43.61" y1="39.18" y2="39" y3="38.7"/>
+ <curve x1="43.55" x2="43.43" x3="43.43" y1="38.47" y2="38.24" y3="37.88"/>
+ <curve x1="43.43" x2="43.55" x3="43.67" y1="37.52" y2="37.18" y3="36.94"/>
+ <curve x1="43.78" x2="43.96" x3="44.19" y1="36.65" y2="36.41" y3="36.24"/>
+ <curve x1="44.43" x2="44.66" x3="44.9" y1="36.05" y2="35.94" y3="35.83"/>
+ <curve x1="45.19" x2="45.49" x3="45.84" y1="35.71" y2="35.64" y3="35.64"/>
+ <curve x1="45.84" x2="45.84" x3="45.84" y1="35.64" y2="35.64" y3="34.82"/>
+ <curve x1="45.84" x2="45.84" x3="46.37" y1="34.82" y2="34.82" y3="34.82"/>
+ <curve x1="46.37" x2="46.37" x3="46.37" y1="34.82" y2="34.82" y3="35.64"/>
+ <curve x1="46.73" x2="46.95" x3="47.26" y1="35.71" y2="35.76" y3="35.88"/>
+ <curve x1="47.55" x2="47.78" x3="47.96" y1="36" y2="36.05" y3="36.24"/>
+ <curve x1="48.2" x2="48.37" x3="48.42" y1="36.47" y2="36.65" y3="36.94"/>
+ <curve x1="48.61" x2="48.66" x3="48.66" y1="37.18" y2="37.52" y3="37.88"/>
+ <curve x1="48.66" x2="48.66" x3="47.26" y1="37.88" y2="37.88" y3="37.88"/>
+ <curve x1="47.26" x2="47.14" x3="46.95" y1="37.59" y2="37.35" y3="37.18"/>
+ <curve x1="46.84" x2="46.61" x3="46.37" y1="36.94" y2="36.88" y3="36.88"/>
+ <curve x1="46.37" x2="46.37" x3="46.37" y1="36.88" y2="36.88" y3="38.7"/>
+ <curve x1="46.49" x2="46.54" x3="46.66" y1="38.7" y2="38.7" y3="38.77"/>
+ <curve x1="46.73" x2="46.84" x3="46.9" y1="38.77" y2="38.82" y3="38.82"/>
+ <curve x1="47.43" x2="47.78" x3="48.08" y1="39" y2="39.18" y3="39.35"/>
+ <curve x1="48.37" x2="48.54" x3="48.66" y1="39.52" y2="39.76" y3="40"/>
+ <curve x1="48.78" x2="48.9" x3="48.9" y1="40.17" y2="40.41" y3="40.65"/>
+ <close/>
+ <move x="55.47" y="39.99"/>
+ <curve x1="55.59" x2="55.66" x3="55.66" y1="39.36" y2="38.76" y3="38.11"/>
+ <curve x1="55.66" x2="55.59" x3="55.47" y1="37.53" y2="36.88" y3="36.3"/>
+ <curve x1="55.47" x2="55.47" x3="55.42" y1="36.11" y2="35.89" y3="35.77"/>
+ <curve x1="55.47" x2="55.47" x3="55.47" y1="35.89" y2="36.06" y3="36.3"/>
+ <curve x1="55.47" x2="55.47" x3="55.47" y1="36.3" y2="36.3" y3="36.35"/>
+ <curve x1="55.3" x2="55.18" x3="55.18" y1="36.71" y2="37.29" y3="38.11"/>
+ <curve x1="55.18" x2="55.3" x3="55.47" y1="39" y2="39.58" y3="39.99"/>
+ <close/>
+ <move x="55.18" y="41.94"/>
+ <curve x1="55.18" x2="55.3" x3="55.3" y1="41.7" y2="41.46" y3="41.24"/>
+ <curve x1="55.01" x2="54.77" x3="54.53" y1="41.12" y2="40.88" y3="40.64"/>
+ <curve x1="54.36" x2="54" x3="53.37" y1="41.77" y2="42.88" y3="43.89"/>
+ <curve x1="53.37" x2="53.37" x3="54.12" y1="43.89" y2="43.89" y3="44.71"/>
+ <curve x1="54.6" x2="54.89" x3="55.18" y1="43.82" y2="42.88" y3="41.94"/>
+ <close/>
+ <move x="37.91" y="40.42"/>
+ <curve x1="37.79" x2="38.03" x3="38.56" y1="38.95" y2="37.47" y3="36.11"/>
+ <curve x1="38.37" x2="38.25" x3="38.03" y1="36.06" y2="35.94" y3="35.94"/>
+ <curve x1="37.31" x2="36.97" x3="36.97" y1="35.94" y2="36.71" y3="38.11"/>
+ <curve x1="36.97" x2="37.26" x3="37.91" y1="39.58" y2="40.3" y3="40.42"/>
+ <close/>
+ <move x="46.25" y="31"/>
+ <curve x1="48.36" x2="50.55" x3="52.24" y1="31" y2="31.82" y3="33.47"/>
+ <curve x1="53.06" x2="53.71" x3="54.12" y1="34.35" y2="35.41" y3="36.52"/>
+ <curve x1="54.19" x2="54.3" x3="54.48" y1="36.23" y2="36" y3="35.77"/>
+ <curve x1="54.72" x2="54.94" x3="55.3" y1="35.47" y2="35.24" y3="35.12"/>
+ <curve x1="55.18" x2="55.13" x3="54.94" y1="34.64" y2="34.11" y3="33.65"/>
+ <curve x1="54.65" x2="54.3" x3="53.83" y1="32.71" y2="31.82" y3="30.94"/>
+ <curve x1="53.59" x2="53.37" x3="53.06" y1="30.53" y2="30.12" y3="29.65"/>
+ <curve x1="52.65" x2="52.19" x3="51.66" y1="29.06" y2="28.41" y3="27.82"/>
+ <curve x1="51.66" x2="51.66" x3="51.66" y1="27.82" y2="27.82" y3="31.59"/>
+ <curve x1="51.66" x2="51.66" x3="50.36" y1="31.59" y2="31.59" y3="31.59"/>
+ <curve x1="50.36" x2="50.36" x3="50.36" y1="31.59" y2="31.59" y3="27.41"/>
+ <curve x1="50.36" x2="50.36" x3="48.78" y1="27.41" y2="27.41" y3="27.41"/>
+ <curve x1="48.78" x2="48.78" x3="48.78" y1="27.41" y2="27.41" y3="26.47"/>
+ <curve x1="49.25" x2="49.66" x3="49.9" y1="26.47" y2="26.41" y3="26.23"/>
+ <curve x1="47.37" x2="44.19" x3="40.73" y1="24.23" y2="23.06" y3="23.06"/>
+ <curve x1="37.91" x2="35.33" x3="33.03" y1="23.06" y2="23.82" y3="25.18"/>
+ <curve x1="33.74" x2="34.27" x3="34.61" y1="25.23" y2="25.53" y3="26.06"/>
+ <curve x1="35.02" x2="35.21" x3="35.21" y1="26.59" y2="27.41" y3="28.41"/>
+ <curve x1="35.21" x2="35.02" x3="34.61" y1="29.41" y2="30.18" y3="30.71"/>
+ <curve x1="34.2" x2="33.62" x3="32.85" y1="31.35" y2="31.65" y3="31.65"/>
+ <curve x1="32.03" x2="31.44" x3="31.03" y1="31.65" y2="31.41" y3="30.76"/>
+ <curve x1="30.68" x2="30.44" x3="30.44" y1="30.18" y2="29.41" y3="28.41"/>
+ <curve x1="30.44" x2="30.5" x3="30.62" y1="27.94" y2="27.47" y3="27.06"/>
+ <curve x1="29.74" x2="29.03" x3="28.38" y1="27.82" y2="28.76" y3="29.65"/>
+ <curve x1="28.09" x2="27.85" x3="27.68" y1="30.12" y2="30.47" y3="30.88"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="30.88" y2="30.88" y3="30.88"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="30.88" y2="30.88" y3="30.94"/>
+ <curve x1="27.63" x2="27.63" x3="27.63" y1="30.94" y2="30.94" y3="30.94"/>
+ <curve x1="27.63" x2="27.56" x3="27.56" y1="31" y2="31" y3="31.12"/>
+ <curve x1="27.63" x2="27.63" x3="27.68" y1="31" y2="30.94" y3="30.94"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="30.88" y2="30.88" y3="30.88"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="30.88" y2="30.88" y3="31.59"/>
+ <curve x1="27.68" x2="27.68" x3="27.32" y1="31.59" y2="31.59" y3="31.59"/>
+ <curve x1="26.98" x2="26.74" x3="26.45" y1="32.23" y2="32.94" y3="33.65"/>
+ <curve x1="26.38" x2="26.26" x3="26.16" y1="34.06" y2="34.53" y3="34.88"/>
+ <curve x1="26.16" x2="26.16" x3="26.21" y1="34.88" y2="34.88" y3="34.88"/>
+ <curve x1="26.98" x2="27.56" x3="28.04" y1="34.88" y2="35.17" y3="35.82"/>
+ <curve x1="28.38" x2="28.57" x3="28.57" y1="36.41" y2="37.12" y3="38.11"/>
+ <curve x1="28.57" x2="28.38" x3="28.04" y1="39.12" y2="39.94" y3="40.47"/>
+ <curve x1="27.63" x2="26.98" x3="26.21" y1="41.12" y2="41.41" y3="41.41"/>
+ <curve x1="26.21" x2="26.21" x3="26.16" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="26.16" x2="26.09" x3="26.09" y1="41.29" y2="41.12" y3="40.95"/>
+ <curve x1="26.16" x2="26.16" x3="26.16" y1="41.12" y2="41.24" y3="41.41"/>
+ <curve x1="26.16" x2="26.16" x3="26.16" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="26.21" x2="26.26" x3="26.33" y1="41.58" y2="41.77" y3="41.94"/>
+ <curve x1="26.57" x2="26.91" x3="27.32" y1="42.93" y2="43.89" y3="44.83"/>
+ <curve x1="27.32" x2="27.32" x3="27.85" y1="44.83" y2="44.83" y3="44.83"/>
+ <curve x1="27.85" x2="27.85" x3="27.85" y1="44.83" y2="44.83" y3="45.77"/>
+ <curve x1="28.04" x2="28.21" x3="28.38" y1="46.06" y2="46.35" y3="46.59"/>
+ <curve x1="28.79" x2="29.21" x3="29.68" y1="47.24" y2="47.82" y3="48.35"/>
+ <curve x1="29.85" x2="30.03" x3="30.21" y1="48.52" y2="48.64" y3="48.81"/>
+ <curve x1="30.27" x2="30.44" x3="30.56" y1="49" y2="49.12" y3="49.24"/>
+ <curve x1="30.68" x2="30.8" x3="30.97" y1="49.34" y2="49.46" y3="49.58"/>
+ <curve x1="30.74" x2="30.56" x3="30.38" y1="49.34" y2="49.24" y3="49.05"/>
+ <curve x1="30.27" x2="30.27" x3="30.27" y1="48.64" y2="48.35" y3="47.94"/>
+ <curve x1="30.27" x2="30.5" x3="30.86" y1="46.88" y2="46.11" y3="45.53"/>
+ <curve x1="31.33" x2="31.85" x3="32.68" y1="44.93" y2="44.64" y3="44.64"/>
+ <curve x1="33.44" x2="34.03" x3="34.39" y1="44.64" y2="44.93" y3="45.53"/>
+ <curve x1="34.8" x2="35.02" x3="35.02" y1="46.11" y2="46.88" y3="47.94"/>
+ <curve x1="35.02" x2="34.85" x3="34.5" y1="48.88" y2="49.65" y3="50.23"/>
+ <curve x1="34.08" x2="33.67" x3="33.03" y1="50.76" y2="51" y3="51.12"/>
+ <curve x1="33.44" x2="33.86" x3="34.27" y1="51.34" y2="51.58" y3="51.82"/>
+ <curve x1="34.73" x2="35.14" x3="35.62" y1="51.99" y2="52.23" y3="52.35"/>
+ <curve x1="36.32" x2="37.02" x3="37.74" y1="52.59" y2="52.82" y3="52.93"/>
+ <curve x1="38.25" x2="38.73" x3="39.19" y1="53.05" y2="53.17" y3="53.24"/>
+ <curve x1="39.72" x2="40.2" x3="40.73" y1="53.29" y2="53.29" y3="53.29"/>
+ <curve x1="41.26" x2="41.79" x3="42.25" y1="53.29" y2="53.29" y3="53.24"/>
+ <curve x1="42.73" x2="43.26" x3="43.72" y1="53.17" y2="53.05" y3="52.93"/>
+ <curve x1="44.43" x2="45.13" x3="45.9" y1="52.82" y2="52.59" y3="52.35"/>
+ <curve x1="46.31" x2="46.72" x3="47.2" y1="52.23" y2="51.99" y3="51.82"/>
+ <curve x1="47.9" x2="48.6" x3="49.25" y1="51.41" y2="51" y3="50.52"/>
+ <curve x1="49.25" x2="49.13" x3="49.08" y1="50.47" y2="50.35" y3="50.3"/>
+ <curve x1="48.67" x2="48.48" x3="48.48" y1="49.7" y2="48.88" y3="47.94"/>
+ <curve x1="48.48" x2="48.48" x3="48.48" y1="47.94" y2="47.94" y3="47.58"/>
+ <curve x1="47.84" x2="47.2" x3="46.48" y1="47.77" y2="47.82" y3="47.82"/>
+ <curve x1="46.48" x2="46.48" x3="46.48" y1="47.82" y2="47.82" y3="47.94"/>
+ <curve x1="46.48" x2="46.31" x3="45.9" y1="48.88" y2="49.65" y3="50.23"/>
+ <curve x1="45.49" x2="44.9" x3="44.08" y1="50.81" y2="51.12" y3="51.12"/>
+ <curve x1="43.31" x2="42.73" x3="42.32" y1="51.12" y2="50.88" y3="50.3"/>
+ <curve x1="41.9" x2="41.67" x3="41.67" y1="49.7" y2="48.88" y3="47.94"/>
+ <curve x1="41.67" x2="41.79" x3="41.9" y1="47.41" y2="47" y3="46.59"/>
+ <curve x1="41.38" x2="40.85" x3="40.32" y1="46.3" y2="45.87" y3="45.46"/>
+ <curve x1="39.19" x2="38.44" x3="38.15" y1="44.3" y2="42.88" y3="41.41"/>
+ <curve x1="38.15" x2="38.15" x3="38.03" y1="41.41" y2="41.41" y3="41.41"/>
+ <curve x1="37.26" x2="36.68" x3="36.27" y1="41.41" y2="41.12" y3="40.52"/>
+ <curve x1="35.86" x2="35.67" x3="35.67" y1="39.94" y2="39.17" y3="38.11"/>
+ <curve x1="35.67" x2="35.86" x3="36.27" y1="37.12" y2="36.35" y3="35.77"/>
+ <curve x1="36.68" x2="37.26" x3="38.03" y1="35.17" y2="34.88" y3="34.88"/>
+ <curve x1="38.37" x2="38.73" x3="39.09" y1="34.88" y2="34.94" y3="35.12"/>
+ <curve x1="39.43" x2="39.84" x3="40.32" y1="34.53" y2="34" y3="33.47"/>
+ <curve x1="41.31" x2="42.37" x3="43.55" y1="32.53" y2="31.82" y3="31.41"/>
+ <curve x1="43.26" x2="43.08" x3="42.84" y1="31.29" y2="31.12" y3="30.76"/>
+ <curve x1="42.43" x2="42.2" x3="42.2" y1="30.18" y2="29.41" y3="28.41"/>
+ <curve x1="42.2" x2="42.43" x3="42.84" y1="27.41" y2="26.59" y3="26.06"/>
+ <curve x1="43.26" x2="43.84" x3="44.61" y1="25.47" y2="25.18" y3="25.18"/>
+ <curve x1="45.37" x2="46.02" x3="46.43" y1="25.18" y2="25.47" y3="26.06"/>
+ <curve x1="46.78" x2="47.01" x3="47.01" y1="26.59" y2="27.41" y3="28.41"/>
+ <curve x1="47.01" x2="46.84" x3="46.43" y1="29.41" y2="30.18" y3="30.71"/>
+ <curve x1="46.43" x2="46.31" x3="46.19" y1="30.82" y2="30.88" y3="31"/>
+ <curve x1="46.19" x2="46.19" x3="46.25" y1="31" y2="31" y3="31"/>
+ <close/>
+ <move x="43.55" y="28.41"/>
+ <curve x1="43.55" x2="43.9" x3="44.61" y1="29.88" y2="30.64" y3="30.64"/>
+ <curve x1="45.37" x2="45.66" x3="45.66" y1="30.64" y2="29.88" y3="28.41"/>
+ <curve x1="45.66" x2="45.37" x3="44.61" y1="26.94" y2="26.23" y3="26.23"/>
+ <curve x1="43.9" x2="43.55" x3="43.55" y1="26.23" y2="26.94" y3="28.41"/>
+ <close/>
+ <move x="45.13" y="47.82"/>
+ <curve x1="44.43" x2="43.72" x3="43.08" y1="47.7" y2="47.46" y3="47.24"/>
+ <curve x1="43.02" x2="43.02" x3="43.02" y1="47.41" y2="47.65" y3="47.94"/>
+ <curve x1="43.02" x2="43.37" x3="44.08" y1="49.34" y2="50.11" y3="50.11"/>
+ <curve x1="44.84" x2="45.13" x3="45.13" y1="50.11" y2="49.34" y3="47.94"/>
+ <curve x1="45.13" x2="45.13" x3="45.13" y1="47.94" y2="47.94" y3="47.82"/>
+ <close/>
+ <move x="50.31" y="43.46"/>
+ <curve x1="52.48" x2="52.48" x3="50.31" y1="41.24" y2="37.65" y3="35.41"/>
+ <curve x1="49.2" x2="47.78" x3="46.25" y1="34.3" y2="33.7" y3="33.7"/>
+ <curve x1="44.72" x2="43.31" x3="42.25" y1="33.7" y2="34.3" y3="35.41"/>
+ <curve x1="41.14" x2="40.55" x3="40.55" y1="36.41" y2="37.89" y3="39.48"/>
+ <curve x1="40.55" x2="41.14" x3="42.25" y1="40.95" y2="42.42" y3="43.46"/>
+ <curve x1="43.31" x2="44.72" x3="46.25" y1="44.52" y2="45.17" y3="45.17"/>
+ <curve x1="47.78" x2="49.2" x3="50.31" y1="45.17" y2="44.52" y3="43.46"/>
+ <close/>
+ <move x="31.56" y="47.94"/>
+ <curve x1="31.56" x2="31.91" x3="32.68" y1="49.34" y2="50.11" y3="50.11"/>
+ <curve x1="33.38" x2="33.74" x3="33.74" y1="50.11" y2="49.34" y3="47.94"/>
+ <curve x1="33.74" x2="33.38" x3="32.68" y1="46.4" y2="45.7" y3="45.7"/>
+ <curve x1="31.91" x2="31.56" x3="31.56" y1="45.7" y2="46.4" y3="47.94"/>
+ <close/>
+ <move x="25.85" y="38.11"/>
+ <curve x1="25.85" x2="25.85" x3="26.04" y1="38.95" y2="39.58" y3="40.3"/>
+ <curve x1="26.04" x2="26.16" x3="26.21" y1="40.42" y2="40.42" y3="40.42"/>
+ <curve x1="26.98" x2="27.32" x3="27.32" y1="40.42" y2="39.58" y3="38.11"/>
+ <curve x1="27.32" x2="26.98" x3="26.21" y1="36.71" y2="35.94" y3="35.94"/>
+ <curve x1="26.16" x2="26.04" x3="26.04" y1="35.94" y2="35.94" y3="36"/>
+ <curve x1="25.85" x2="25.85" x3="25.85" y1="36.71" y2="37.41" y3="38.11"/>
+ <close/>
+ <move x="32.85" y="26.23"/>
+ <curve x1="32.09" x2="31.74" x3="31.74" y1="26.23" y2="26.94" y3="28.41"/>
+ <curve x1="31.74" x2="32.09" x3="32.85" y1="29.88" y2="30.64" y3="30.64"/>
+ <curve x1="33.56" x2="33.91" x3="33.91" y1="30.64" y2="29.88" y3="28.41"/>
+ <curve x1="33.91" x2="33.56" x3="32.85" y1="26.94" y2="26.23" y3="26.23"/>
+ <close/>
+ <move x="59.65" y="50.35"/>
+ <curve x1="60.18" x2="60.18" x3="59.65" y1="50.81" y2="51.7" y3="52.29"/>
+ <curve x1="59.65" x2="59.59" x3="59" y1="52.29" y2="52.35" y3="52.93"/>
+ <curve x1="58.47" x2="57.59" x3="57.06" y1="53.53" y2="53.53" y3="52.93"/>
+ <curve x1="57.06" x2="57.06" x3="51.13" y1="52.93" y2="52.93" y3="47.05"/>
+ <curve x1="50.96" x2="50.84" x3="50.65" y1="46.88" y2="46.76" y3="46.59"/>
+ <curve x1="50.43" x2="50.14" x3="49.83" y1="46.76" y2="46.93" y3="47.12"/>
+ <curve x1="49.78" x2="49.78" x3="49.78" y1="47.29" y2="47.58" y3="47.94"/>
+ <curve x1="49.78" x2="49.95" x3="50.19" y1="48.81" y2="49.46" y3="49.82"/>
+ <curve x1="50.55" x2="50.84" x3="51.13" y1="49.58" y2="49.24" y3="49"/>
+ <curve x1="51.71" x2="52.24" x3="52.77" y1="49.58" y2="50.11" y3="50.59"/>
+ <curve x1="49.66" x2="45.43" x3="40.73" y1="53.7" y2="55.53" y3="55.53"/>
+ <curve x1="31.27" x2="23.51" x3="23.51" y1="55.53" y2="47.77" y3="38.11"/>
+ <curve x1="23.51" x2="25.34" x3="28.57" y1="33.53" y2="29.17" y3="25.82"/>
+ <curve x1="31.85" x2="36.15" x3="40.73" y1="22.58" y2="20.7" y3="20.7"/>
+ <curve x1="50.19" x2="57.95" x3="57.95" y1="20.7" y2="28.53" y3="38.11"/>
+ <curve x1="57.95" x2="57.18" x3="55.83" y1="41.17" y2="43.99" y3="46.4"/>
+ <curve x1="56.77" x2="57.95" x3="59.65" y1="47.34" y2="48.64" y3="50.35"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b1" strokewidth="inherit" w="50.07">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="43.09" y="47.03"/>
+ <curve x1="45.18" x2="47.43" x3="47.43" y1="49.34" y2="50.55" y3="50.55"/>
+ <curve x1="44.41" x2="44.57" x3="44.96" y1="46.59" y2="42.04" y3="39.61"/>
+ <curve x1="48.14" x2="50.07" x3="50.07" y1="35.44" y2="30.28" y3="24.67"/>
+ <curve x1="50.07" x2="38.87" x3="25.03" y1="11.1" y2="0" y3="0"/>
+ <curve x1="11.25" x2="0" x3="0" y1="0" y2="11.1" y3="24.67"/>
+ <curve x1="0" x2="1.81" x3="4.83" y1="30.11" y2="35.17" y3="39.23"/>
+ <curve x1="1.15" x2="1.37" x3="1.37" y1="42.31" y2="48.84" y3="48.84"/>
+ <curve x1="2.41" x2="3.79" x3="4.78" y1="44.89" y2="44.23" y3="43.73"/>
+ <curve x1="5" x2="5.32" x3="5.66" y1="43.68" y2="43.52" y3="43.41"/>
+ <curve x1="5.49" x2="5.49" x3="5.99" y1="44.78" y2="46.27" y3="47.58"/>
+ <curve x1="7.3" x2="9.22" x3="8.95" y1="50.93" y2="52.42" y3="55.05"/>
+ <curve x1="8.67" x2="5.99" x3="5.82" y1="57.64" y2="59.62" y3="62.64"/>
+ <curve x1="5.66" x2="7.3" x3="7.85" y1="65.71" y2="67.48" y3="68.18"/>
+ <curve x1="8.34" x2="6.42" x3="7.46" y1="68.85" y2="65.32" y3="62.75"/>
+ <curve x1="8.45" x2="10.54" x3="12.35" y1="60.11" y2="61.1" y3="57.8"/>
+ <curve x1="12.73" x2="13.12" x3="13.39" y1="57.08" y2="56.38" y3="55.66"/>
+ <curve x1="14.11" x2="14.38" x3="14.22" y1="57.86" y2="59.45" y3="61.54"/>
+ <curve x1="14.11" x2="12.84" x3="11.31" y1="64.62" y2="67.42" y3="68.57"/>
+ <curve x1="11.31" x2="16.52" x3="17.78" y1="68.57" y2="66.98" y3="60.93"/>
+ <curve x1="18.83" x2="17.62" x3="18.61" y1="56.27" y2="53.68" y3="50.99"/>
+ <curve x1="19.87" x2="21.57" x3="21.36" y1="52.53" y2="55.12" y3="57.8"/>
+ <curve x1="21.02" x2="17.89" x3="18.88" y1="62.08" y2="67.64" y3="71.6"/>
+ <curve x1="19.87" x2="20.91" x3="20.91" y1="75.55" y2="77.41" y3="77.41"/>
+ <curve x1="20.91" x2="20.48" x3="22.4" y1="77.41" y2="71.92" y3="68.9"/>
+ <curve x1="23.21" x2="24.27" x3="25.26" y1="67.69" y2="66.31" y3="64.89"/>
+ <curve x1="26.68" x2="31.01" x3="32.22" y1="69.44" y2="73.02" y3="74.28"/>
+ <curve x1="33.71" x2="33.37" x3="33.37" y1="75.88" y2="80" y3="80"/>
+ <curve x1="33.37" x2="34.36" x3="34.75" y1="80" y2="78.52" y3="73.9"/>
+ <curve x1="35.13" x2="30.9" x3="30.47" y1="69.28" y2="68.45" y3="61.65"/>
+ <curve x1="30.3" x2="30.74" x3="31.29" y1="59.29" y2="56.97" y3="55"/>
+ <curve x1="32.83" x2="35.08" x3="35.68" y1="58.79" y2="62.26" y3="63.46"/>
+ <curve x1="36.67" x2="36.62" x3="36.62" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="40.07" x2="37.43" x3="37.22" y1="64.67" y2="61.27" y3="55.93"/>
+ <curve x1="37.11" x2="37.43" x3="37.82" y1="53.63" y2="51.43" y3="49.62"/>
+ <curve x1="38.26" x2="38.87" x3="39.63" y1="51.32" y2="53.07" y3="54.13"/>
+ <curve x1="41.39" x2="42.59" x3="42.88" y1="56.59" y2="58.18" y3="60.11"/>
+ <curve x1="43.2" x2="43.47" x3="42.93" y1="62.03" y2="64.94" y3="66.1"/>
+ <curve x1="42.93" x2="45.18" x3="45.02" y1="66.1" y2="64.33" y3="59.17"/>
+ <curve x1="44.84" x2="42.32" x3="42.88" y1="53.95" y2="50.44" y3="48.02"/>
+ <curve x1="42.93" x2="43.04" x3="43.09" y1="47.75" y2="47.42" y3="47.03"/>
+ <close/>
+ <move x="23.5" y="31.82"/>
+ <line x="23.5" y="31.82"/>
+ <line x="23.5" y="31.7"/>
+ <line x="23.5" y="31.37"/>
+ <line x="23.5" y="31.26"/>
+ <line x="23.34" y="30.94"/>
+ <line x="23.34" y="30.83"/>
+ <line x="23.34" y="30.55"/>
+ <line x="23.16" y="30.38"/>
+ <line x="23.05" y="30.22"/>
+ <line x="22.89" y="30.11"/>
+ <line x="22.73" y="29.95"/>
+ <line x="22.56" y="29.77"/>
+ <line x="22.46" y="29.68"/>
+ <line x="22.12" y="29.5"/>
+ <line x="22.01" y="29.5"/>
+ <line x="21.85" y="29.39"/>
+ <line x="21.58" y="29.39"/>
+ <line x="21.41" y="29.39"/>
+ <line x="21.08" y="29.39"/>
+ <line x="20.97" y="29.39"/>
+ <line x="20.64" y="29.5"/>
+ <line x="20.53" y="29.5"/>
+ <line x="20.37" y="29.68"/>
+ <line x="20.09" y="29.77"/>
+ <line x="19.92" y="29.95"/>
+ <line x="19.76" y="30.11"/>
+ <line x="19.65" y="30.22"/>
+ <line x="19.65" y="30.38"/>
+ <line x="19.49" y="30.55"/>
+ <line x="19.33" y="30.83"/>
+ <line x="19.33" y="30.94"/>
+ <line x="19.15" y="31.26"/>
+ <line x="19.15" y="31.37"/>
+ <line x="19.15" y="31.7"/>
+ <line x="19.15" y="31.82"/>
+ <line x="19.15" y="32.14"/>
+ <line x="19.33" y="32.25"/>
+ <line x="19.33" y="32.52"/>
+ <line x="19.49" y="32.69"/>
+ <line x="19.65" y="32.86"/>
+ <line x="19.65" y="33.13"/>
+ <line x="19.76" y="33.3"/>
+ <line x="19.92" y="33.3"/>
+ <line x="20.09" y="33.57"/>
+ <line x="20.37" y="33.57"/>
+ <line x="20.53" y="33.68"/>
+ <line x="20.64" y="33.68"/>
+ <line x="20.97" y="33.85"/>
+ <line x="21.08" y="33.85"/>
+ <line x="21.41" y="33.85"/>
+ <line x="21.58" y="33.85"/>
+ <line x="21.85" y="33.85"/>
+ <line x="22.01" y="33.68"/>
+ <line x="22.12" y="33.68"/>
+ <line x="22.46" y="33.57"/>
+ <line x="22.56" y="33.57"/>
+ <line x="22.73" y="33.3"/>
+ <line x="22.89" y="33.3"/>
+ <line x="23.05" y="33.13"/>
+ <line x="23.16" y="32.86"/>
+ <line x="23.34" y="32.69"/>
+ <line x="23.34" y="32.52"/>
+ <line x="23.34" y="32.25"/>
+ <line x="23.5" y="32.14"/>
+ <line x="23.5" y="31.82"/>
+ <close/>
+ <move x="25.69" y="14.5"/>
+ <line x="25.69" y="14.5"/>
+ <line x="25.69" y="17.36"/>
+ <line x="28.38" y="17.36"/>
+ <line x="28.38" y="14.5"/>
+ <line x="25.69" y="14.5"/>
+ <close/>
+ <move x="29.97" y="14.5"/>
+ <line x="29.97" y="14.5"/>
+ <line x="29.97" y="17.36"/>
+ <line x="32.67" y="17.36"/>
+ <line x="32.67" y="14.5"/>
+ <line x="29.97" y="14.5"/>
+ <close/>
+ <move x="31.45" y="30.11"/>
+ <line x="31.45" y="30.11"/>
+ <line x="31.45" y="30.38"/>
+ <line x="31.61" y="30.55"/>
+ <line x="31.61" y="30.65"/>
+ <line x="31.61" y="32.69"/>
+ <line x="31.61" y="32.69"/>
+ <line x="31.61" y="32.69"/>
+ <line x="31.61" y="32.69"/>
+ <line x="31.61" y="32.86"/>
+ <line x="31.61" y="32.86"/>
+ <line x="31.45" y="32.86"/>
+ <line x="31.45" y="32.86"/>
+ <line x="31.45" y="32.86"/>
+ <line x="31.45" y="32.86"/>
+ <line x="31.45" y="32.97"/>
+ <line x="31.45" y="32.97"/>
+ <line x="31.45" y="32.97"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.13"/>
+ <line x="31.45" y="33.3"/>
+ <line x="31.45" y="33.3"/>
+ <line x="31.45" y="33.3"/>
+ <line x="31.45" y="33.3"/>
+ <line x="31.29" y="33.3"/>
+ <line x="31.29" y="33.3"/>
+ <line x="31.29" y="33.3"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.41"/>
+ <line x="31.29" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.18" y="33.57"/>
+ <line x="31.02" y="33.57"/>
+ <line x="31.02" y="33.57"/>
+ <line x="31.02" y="33.57"/>
+ <line x="31.02" y="33.68"/>
+ <line x="31.02" y="33.68"/>
+ <line x="31.02" y="33.68"/>
+ <line x="31.02" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.85" y="33.68"/>
+ <line x="30.74" y="33.68"/>
+ <line x="30.74" y="33.68"/>
+ <line x="30.74" y="33.68"/>
+ <line x="30.74" y="33.68"/>
+ <line x="30.74" y="33.68"/>
+ <line x="30.57" y="33.68"/>
+ <line x="30.57" y="33.68"/>
+ <line x="30.57" y="33.68"/>
+ <line x="30.57" y="33.68"/>
+ <line x="30.57" y="33.85"/>
+ <line x="30.57" y="33.85"/>
+ <line x="30.41" y="33.85"/>
+ <line x="28.48" y="33.85"/>
+ <line x="28.38" y="34.12"/>
+ <line x="28.21" y="34.56"/>
+ <line x="28.05" y="35"/>
+ <line x="27.89" y="35.27"/>
+ <line x="29.26" y="36.75"/>
+ <line x="29.36" y="36.86"/>
+ <line x="29.36" y="36.86"/>
+ <line x="29.54" y="37.14"/>
+ <line x="29.54" y="37.31"/>
+ <line x="29.54" y="37.58"/>
+ <line x="29.54" y="37.74"/>
+ <line x="29.54" y="38.02"/>
+ <line x="29.36" y="38.19"/>
+ <line x="29.36" y="38.35"/>
+ <line x="29.26" y="38.35"/>
+ <line x="27.89" y="39.79"/>
+ <line x="27.78" y="39.88"/>
+ <line x="27.78" y="39.88"/>
+ <line x="27.44" y="40.06"/>
+ <line x="27.33" y="40.06"/>
+ <line x="27.17" y="40.22"/>
+ <line x="26.9" y="40.06"/>
+ <line x="26.74" y="40.06"/>
+ <line x="26.57" y="39.88"/>
+ <line x="26.4" y="39.88"/>
+ <line x="26.29" y="39.79"/>
+ <line x="24.98" y="38.35"/>
+ <line x="24.49" y="38.46"/>
+ <line x="24.2" y="38.62"/>
+ <line x="23.77" y="38.91"/>
+ <line x="23.5" y="39.07"/>
+ <line x="23.5" y="41.05"/>
+ <line x="23.5" y="41.05"/>
+ <line x="23.5" y="41.05"/>
+ <line x="23.5" y="41.05"/>
+ <line x="23.5" y="41.21"/>
+ <line x="23.5" y="41.21"/>
+ <line x="23.5" y="41.21"/>
+ <line x="23.5" y="41.21"/>
+ <line x="23.5" y="41.21"/>
+ <line x="23.5" y="41.37"/>
+ <line x="23.5" y="41.37"/>
+ <line x="23.34" y="41.37"/>
+ <line x="23.34" y="41.37"/>
+ <line x="23.34" y="41.37"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.48"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.34" y="41.65"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.81"/>
+ <line x="23.16" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="23.05" y="41.93"/>
+ <line x="22.89" y="41.93"/>
+ <line x="22.89" y="41.93"/>
+ <line x="22.89" y="41.93"/>
+ <line x="22.89" y="42.09"/>
+ <line x="22.89" y="42.09"/>
+ <line x="22.89" y="42.09"/>
+ <line x="22.89" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.73" y="42.09"/>
+ <line x="22.56" y="42.09"/>
+ <line x="22.56" y="42.09"/>
+ <line x="22.56" y="42.09"/>
+ <line x="22.56" y="42.09"/>
+ <line x="22.56" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="22.46" y="42.2"/>
+ <line x="20.37" y="42.2"/>
+ <line x="20.37" y="42.2"/>
+ <line x="20.37" y="42.2"/>
+ <line x="20.2" y="42.2"/>
+ <line x="20.2" y="42.2"/>
+ <line x="20.2" y="42.2"/>
+ <line x="20.2" y="42.2"/>
+ <line x="20.2" y="42.09"/>
+ <line x="20.09" y="42.09"/>
+ <line x="20.09" y="42.09"/>
+ <line x="20.09" y="42.09"/>
+ <line x="20.09" y="42.09"/>
+ <line x="20.09" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.92" y="42.09"/>
+ <line x="19.76" y="42.09"/>
+ <line x="19.76" y="41.93"/>
+ <line x="19.76" y="41.93"/>
+ <line x="19.76" y="41.93"/>
+ <line x="19.76" y="41.93"/>
+ <line x="19.76" y="41.93"/>
+ <line x="19.65" y="41.93"/>
+ <line x="19.65" y="41.93"/>
+ <line x="19.65" y="41.93"/>
+ <line x="19.65" y="41.93"/>
+ <line x="19.65" y="41.93"/>
+ <line x="19.65" y="41.81"/>
+ <line x="19.65" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.81"/>
+ <line x="19.49" y="41.65"/>
+ <line x="19.49" y="41.65"/>
+ <line x="19.49" y="41.65"/>
+ <line x="19.49" y="41.65"/>
+ <line x="19.33" y="41.65"/>
+ <line x="19.33" y="41.65"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.48"/>
+ <line x="19.33" y="41.37"/>
+ <line x="19.33" y="41.37"/>
+ <line x="19.33" y="41.37"/>
+ <line x="19.33" y="41.37"/>
+ <line x="19.33" y="41.37"/>
+ <line x="19.33" y="41.21"/>
+ <line x="19.33" y="41.21"/>
+ <line x="19.33" y="41.21"/>
+ <line x="19.33" y="41.21"/>
+ <line x="19.33" y="41.21"/>
+ <line x="19.33" y="41.05"/>
+ <line x="19.33" y="41.05"/>
+ <line x="19.33" y="41.05"/>
+ <line x="19.33" y="41.05"/>
+ <line x="19.33" y="39.07"/>
+ <line x="18.88" y="38.91"/>
+ <line x="18.45" y="38.62"/>
+ <line x="18.18" y="38.46"/>
+ <line x="17.84" y="38.35"/>
+ <line x="16.36" y="39.79"/>
+ <line x="16.25" y="39.88"/>
+ <line x="16.25" y="39.88"/>
+ <line x="16.08" y="40.06"/>
+ <line x="15.75" y="40.06"/>
+ <line x="15.64" y="40.22"/>
+ <line x="15.32" y="40.06"/>
+ <line x="15.21" y="40.06"/>
+ <line x="15.04" y="39.88"/>
+ <line x="14.87" y="39.88"/>
+ <line x="14.87" y="39.79"/>
+ <line x="13.4" y="38.35"/>
+ <line x="13.29" y="38.35"/>
+ <line x="13.29" y="38.19"/>
+ <line x="13.29" y="38.02"/>
+ <line x="13.11" y="37.74"/>
+ <line x="13.11" y="37.58"/>
+ <line x="13.11" y="37.31"/>
+ <line x="13.29" y="37.14"/>
+ <line x="13.29" y="36.86"/>
+ <line x="13.29" y="36.86"/>
+ <line x="13.4" y="36.75"/>
+ <line x="14.44" y="35.71"/>
+ <line x="10.92" y="35.71"/>
+ <line x="10.43" y="35.71"/>
+ <line x="10" y="35.6"/>
+ <line x="9.71" y="35.6"/>
+ <line x="9.44" y="35.44"/>
+ <line x="9.01" y="35.17"/>
+ <line x="8.67" y="35"/>
+ <line x="8.4" y="34.72"/>
+ <line x="8.24" y="34.56"/>
+ <line x="7.95" y="34.29"/>
+ <line x="7.63" y="34.01"/>
+ <line x="7.52" y="33.57"/>
+ <line x="7.36" y="33.3"/>
+ <line x="7.19" y="32.86"/>
+ <line x="7.19" y="32.52"/>
+ <line x="7.03" y="32.14"/>
+ <line x="7.03" y="31.7"/>
+ <line x="7.03" y="15.49"/>
+ <line x="7.03" y="15.05"/>
+ <line x="7.19" y="14.67"/>
+ <line x="7.19" y="14.34"/>
+ <line x="7.36" y="13.9"/>
+ <line x="7.36" y="13.63"/>
+ <line x="7.52" y="13.47"/>
+ <line x="7.63" y="13.19"/>
+ <line x="7.79" y="13.08"/>
+ <line x="8.07" y="12.75"/>
+ <line x="8.24" y="12.64"/>
+ <line x="8.4" y="12.48"/>
+ <line x="8.67" y="12.48"/>
+ <line x="8.83" y="12.3"/>
+ <line x="9.01" y="12.3"/>
+ <line x="9.28" y="12.3"/>
+ <line x="9.44" y="12.3"/>
+ <line x="32.78" y="12.3"/>
+ <line x="33.1" y="12.3"/>
+ <line x="33.21" y="12.3"/>
+ <line x="33.54" y="12.48"/>
+ <line x="33.71" y="12.48"/>
+ <line x="33.98" y="12.64"/>
+ <line x="34.14" y="12.75"/>
+ <line x="34.25" y="12.91"/>
+ <line x="34.58" y="13.08"/>
+ <line x="34.58" y="13.19"/>
+ <line x="34.7" y="13.35"/>
+ <line x="34.86" y="13.63"/>
+ <line x="35.02" y="13.79"/>
+ <line x="35.02" y="14.07"/>
+ <line x="35.13" y="14.34"/>
+ <line x="35.13" y="14.5"/>
+ <line x="35.13" y="14.78"/>
+ <line x="35.13" y="18.51"/>
+ <line x="35.13" y="18.69"/>
+ <line x="35.13" y="18.85"/>
+ <line x="35.02" y="18.96"/>
+ <line x="34.86" y="19.12"/>
+ <line x="34.86" y="19.12"/>
+ <line x="34.7" y="19.28"/>
+ <line x="34.58" y="19.28"/>
+ <line x="34.42" y="19.28"/>
+ <line x="34.42" y="19.28"/>
+ <line x="8.67" y="19.28"/>
+ <line x="8.67" y="31.7"/>
+ <line x="8.67" y="31.98"/>
+ <line x="8.67" y="32.25"/>
+ <line x="8.67" y="32.42"/>
+ <line x="8.83" y="32.69"/>
+ <line x="9.01" y="32.86"/>
+ <line x="9.01" y="32.97"/>
+ <line x="9.12" y="33.3"/>
+ <line x="9.28" y="33.3"/>
+ <line x="9.44" y="33.57"/>
+ <line x="9.55" y="33.68"/>
+ <line x="9.88" y="33.68"/>
+ <line x="10" y="33.85"/>
+ <line x="10.16" y="34.01"/>
+ <line x="10.43" y="34.01"/>
+ <line x="10.59" y="34.01"/>
+ <line x="10.92" y="34.01"/>
+ <line x="14.33" y="34.01"/>
+ <line x="14.33" y="33.85"/>
+ <line x="12.24" y="33.85"/>
+ <line x="12.24" y="33.85"/>
+ <line x="12.24" y="33.85"/>
+ <line x="12.08" y="33.68"/>
+ <line x="12.08" y="33.68"/>
+ <line x="12.08" y="33.68"/>
+ <line x="12.08" y="33.68"/>
+ <line x="12.08" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.91" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.8" y="33.68"/>
+ <line x="11.64" y="33.68"/>
+ <line x="11.64" y="33.57"/>
+ <line x="11.64" y="33.57"/>
+ <line x="11.64" y="33.57"/>
+ <line x="11.64" y="33.57"/>
+ <line x="11.64" y="33.57"/>
+ <line x="11.47" y="33.57"/>
+ <line x="11.47" y="33.57"/>
+ <line x="11.47" y="33.57"/>
+ <line x="11.47" y="33.57"/>
+ <line x="11.47" y="33.57"/>
+ <line x="11.47" y="33.41"/>
+ <line x="11.47" y="33.41"/>
+ <line x="11.36" y="33.41"/>
+ <line x="11.36" y="33.41"/>
+ <line x="11.36" y="33.41"/>
+ <line x="11.36" y="33.41"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.36" y="33.3"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="33.13"/>
+ <line x="11.2" y="32.97"/>
+ <line x="11.2" y="32.97"/>
+ <line x="11.2" y="32.97"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.86"/>
+ <line x="11.2" y="32.69"/>
+ <line x="11.2" y="32.69"/>
+ <line x="11.2" y="32.69"/>
+ <line x="11.2" y="32.69"/>
+ <line x="11.2" y="30.65"/>
+ <line x="11.2" y="30.55"/>
+ <line x="11.2" y="30.55"/>
+ <line x="11.2" y="30.55"/>
+ <line x="11.2" y="30.55"/>
+ <line x="11.2" y="30.38"/>
+ <line x="11.2" y="30.38"/>
+ <line x="11.2" y="30.38"/>
+ <line x="11.2" y="30.38"/>
+ <line x="11.2" y="30.38"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.22"/>
+ <line x="11.2" y="30.11"/>
+ <line x="11.2" y="30.11"/>
+ <line x="11.2" y="30.11"/>
+ <line x="11.2" y="30.11"/>
+ <line x="11.36" y="30.11"/>
+ <line x="11.36" y="30.11"/>
+ <line x="11.36" y="30.11"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.95"/>
+ <line x="11.36" y="29.77"/>
+ <line x="11.36" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.77"/>
+ <line x="11.47" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.64" y="29.68"/>
+ <line x="11.8" y="29.68"/>
+ <line x="11.8" y="29.68"/>
+ <line x="11.8" y="29.5"/>
+ <line x="11.8" y="29.5"/>
+ <line x="11.8" y="29.5"/>
+ <line x="11.8" y="29.5"/>
+ <line x="11.8" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="11.91" y="29.5"/>
+ <line x="12.08" y="29.5"/>
+ <line x="12.08" y="29.5"/>
+ <line x="12.08" y="29.5"/>
+ <line x="12.08" y="29.5"/>
+ <line x="12.08" y="29.5"/>
+ <line x="12.24" y="29.5"/>
+ <line x="12.24" y="29.5"/>
+ <line x="12.24" y="29.5"/>
+ <line x="14.33" y="29.5"/>
+ <line x="14.33" y="29.07"/>
+ <line x="14.44" y="28.62"/>
+ <line x="14.6" y="28.35"/>
+ <line x="14.87" y="27.91"/>
+ <line x="13.4" y="26.48"/>
+ <line x="13.29" y="26.48"/>
+ <line x="13.29" y="26.32"/>
+ <line x="13.29" y="26.05"/>
+ <line x="13.11" y="25.94"/>
+ <line x="13.11" y="25.77"/>
+ <line x="13.11" y="25.49"/>
+ <line x="13.29" y="25.33"/>
+ <line x="13.29" y="25.06"/>
+ <line x="13.29" y="25.06"/>
+ <line x="13.4" y="24.89"/>
+ <line x="14.87" y="23.46"/>
+ <line x="14.87" y="23.46"/>
+ <line x="15.04" y="23.3"/>
+ <line x="15.21" y="23.19"/>
+ <line x="15.32" y="23.19"/>
+ <line x="15.64" y="23.19"/>
+ <line x="15.75" y="23.19"/>
+ <line x="16.08" y="23.19"/>
+ <line x="16.25" y="23.3"/>
+ <line x="16.25" y="23.46"/>
+ <line x="16.36" y="23.46"/>
+ <line x="17.84" y="24.89"/>
+ <line x="18.18" y="24.73"/>
+ <line x="18.45" y="24.61"/>
+ <line x="18.88" y="24.45"/>
+ <line x="19.33" y="24.34"/>
+ <line x="19.33" y="22.14"/>
+ <line x="19.33" y="22.14"/>
+ <line x="19.33" y="22.03"/>
+ <line x="19.33" y="21.87"/>
+ <line x="19.49" y="21.59"/>
+ <line x="19.65" y="21.43"/>
+ <line x="19.76" y="21.26"/>
+ <line x="19.92" y="21.15"/>
+ <line x="20.09" y="21.15"/>
+ <line x="20.2" y="21.15"/>
+ <line x="20.37" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.46" y="21.15"/>
+ <line x="22.56" y="21.15"/>
+ <line x="22.56" y="21.15"/>
+ <line x="22.56" y="21.15"/>
+ <line x="22.56" y="21.15"/>
+ <line x="22.56" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.73" y="21.15"/>
+ <line x="22.89" y="21.15"/>
+ <line x="22.89" y="21.15"/>
+ <line x="22.89" y="21.15"/>
+ <line x="22.89" y="21.26"/>
+ <line x="22.89" y="21.26"/>
+ <line x="22.89" y="21.26"/>
+ <line x="22.89" y="21.26"/>
+ <line x="23.05" y="21.26"/>
+ <line x="23.05" y="21.26"/>
+ <line x="23.05" y="21.26"/>
+ <line x="23.05" y="21.43"/>
+ <line x="23.05" y="21.43"/>
+ <line x="23.05" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.43"/>
+ <line x="23.16" y="21.59"/>
+ <line x="23.16" y="21.59"/>
+ <line x="23.16" y="21.59"/>
+ <line x="23.34" y="21.59"/>
+ <line x="23.34" y="21.59"/>
+ <line x="23.34" y="21.59"/>
+ <line x="23.34" y="21.59"/>
+ <line x="23.34" y="21.71"/>
+ <line x="23.34" y="21.71"/>
+ <line x="23.34" y="21.71"/>
+ <line x="23.34" y="21.71"/>
+ <line x="23.34" y="21.71"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.34" y="21.87"/>
+ <line x="23.5" y="22.03"/>
+ <line x="23.5" y="22.03"/>
+ <line x="23.5" y="22.03"/>
+ <line x="23.5" y="22.03"/>
+ <line x="23.5" y="22.03"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="22.14"/>
+ <line x="23.5" y="24.34"/>
+ <line x="23.77" y="24.45"/>
+ <line x="24.2" y="24.61"/>
+ <line x="24.49" y="24.73"/>
+ <line x="24.98" y="24.89"/>
+ <line x="26.29" y="23.46"/>
+ <line x="26.4" y="23.46"/>
+ <line x="26.57" y="23.3"/>
+ <line x="26.74" y="23.19"/>
+ <line x="26.9" y="23.19"/>
+ <line x="27.17" y="23.19"/>
+ <line x="27.33" y="23.19"/>
+ <line x="27.44" y="23.19"/>
+ <line x="27.78" y="23.3"/>
+ <line x="27.78" y="23.46"/>
+ <line x="27.89" y="23.46"/>
+ <line x="29.26" y="24.89"/>
+ <line x="29.36" y="25.06"/>
+ <line x="29.36" y="25.06"/>
+ <line x="29.54" y="25.33"/>
+ <line x="29.54" y="25.49"/>
+ <line x="29.54" y="25.77"/>
+ <line x="29.54" y="25.94"/>
+ <line x="29.54" y="26.05"/>
+ <line x="29.36" y="26.32"/>
+ <line x="29.36" y="26.48"/>
+ <line x="29.26" y="26.48"/>
+ <line x="27.89" y="27.91"/>
+ <line x="28.05" y="28.35"/>
+ <line x="28.21" y="28.62"/>
+ <line x="28.38" y="29.07"/>
+ <line x="28.48" y="29.5"/>
+ <line x="30.41" y="29.5"/>
+ <line x="30.57" y="29.5"/>
+ <line x="30.74" y="29.5"/>
+ <line x="30.85" y="29.5"/>
+ <line x="31.02" y="29.68"/>
+ <line x="31.29" y="29.77"/>
+ <line x="31.29" y="29.95"/>
+ <line x="31.45" y="30.11"/>
+ <close/>
+ <move x="39.53" y="28.07"/>
+ <line x="39.53" y="28.07"/>
+ <line x="39.53" y="27.91"/>
+ <line x="39.53" y="27.8"/>
+ <line x="39.53" y="27.64"/>
+ <line x="39.53" y="27.64"/>
+ <line x="39.41" y="27.47"/>
+ <line x="39.41" y="27.36"/>
+ <line x="39.25" y="27.2"/>
+ <line x="39.25" y="27.04"/>
+ <line x="39.08" y="27.04"/>
+ <line x="38.97" y="26.92"/>
+ <line x="38.81" y="26.76"/>
+ <line x="38.65" y="26.76"/>
+ <line x="38.65" y="26.76"/>
+ <line x="38.54" y="26.76"/>
+ <line x="38.37" y="26.59"/>
+ <line x="38.2" y="26.59"/>
+ <line x="38.09" y="26.59"/>
+ <line x="37.93" y="26.76"/>
+ <line x="37.77" y="26.76"/>
+ <line x="37.66" y="26.76"/>
+ <line x="37.5" y="26.76"/>
+ <line x="37.32" y="26.92"/>
+ <line x="37.32" y="27.04"/>
+ <line x="37.21" y="27.04"/>
+ <line x="37.05" y="27.2"/>
+ <line x="37.05" y="27.36"/>
+ <line x="36.89" y="27.47"/>
+ <line x="36.89" y="27.64"/>
+ <line x="36.89" y="27.64"/>
+ <line x="36.78" y="27.8"/>
+ <line x="36.78" y="27.91"/>
+ <line x="36.78" y="28.07"/>
+ <line x="36.78" y="28.24"/>
+ <line x="36.78" y="28.52"/>
+ <line x="36.89" y="28.52"/>
+ <line x="36.89" y="28.68"/>
+ <line x="36.89" y="28.84"/>
+ <line x="37.05" y="28.95"/>
+ <line x="37.05" y="29.13"/>
+ <line x="37.21" y="29.13"/>
+ <line x="37.32" y="29.29"/>
+ <line x="37.32" y="29.4"/>
+ <line x="37.5" y="29.4"/>
+ <line x="37.66" y="29.56"/>
+ <line x="37.77" y="29.56"/>
+ <line x="37.93" y="29.56"/>
+ <line x="38.09" y="29.56"/>
+ <line x="38.2" y="29.56"/>
+ <line x="38.37" y="29.56"/>
+ <line x="38.54" y="29.56"/>
+ <line x="38.65" y="29.56"/>
+ <line x="38.65" y="29.56"/>
+ <line x="38.81" y="29.4"/>
+ <line x="38.97" y="29.4"/>
+ <line x="39.08" y="29.29"/>
+ <line x="39.25" y="29.13"/>
+ <line x="39.25" y="29.13"/>
+ <line x="39.41" y="28.95"/>
+ <line x="39.41" y="28.84"/>
+ <line x="39.53" y="28.68"/>
+ <line x="39.53" y="28.52"/>
+ <line x="39.53" y="28.52"/>
+ <line x="39.53" y="28.24"/>
+ <line x="39.53" y="28.07"/>
+ <close/>
+ <move x="44.8" y="27.2"/>
+ <line x="44.8" y="27.2"/>
+ <line x="44.8" y="27.2"/>
+ <line x="44.8" y="27.47"/>
+ <line x="44.8" y="28.84"/>
+ <line x="44.8" y="28.84"/>
+ <line x="44.8" y="28.84"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="28.95"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.8" y="29.13"/>
+ <line x="44.69" y="29.13"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.29"/>
+ <line x="44.69" y="29.4"/>
+ <line x="44.69" y="29.4"/>
+ <line x="44.69" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.51" y="29.4"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.35" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.24" y="29.56"/>
+ <line x="44.08" y="29.56"/>
+ <line x="44.08" y="29.56"/>
+ <line x="44.08" y="29.56"/>
+ <line x="42.77" y="29.56"/>
+ <line x="42.77" y="29.83"/>
+ <line x="42.59" y="30.17"/>
+ <line x="42.48" y="30.33"/>
+ <line x="42.48" y="30.6"/>
+ <line x="43.36" y="31.65"/>
+ <line x="43.36" y="31.65"/>
+ <line x="43.47" y="31.76"/>
+ <line x="43.47" y="31.92"/>
+ <line x="43.47" y="32.08"/>
+ <line x="43.47" y="32.26"/>
+ <line x="43.47" y="32.36"/>
+ <line x="43.36" y="32.53"/>
+ <line x="43.36" y="32.69"/>
+ <line x="42.48" y="33.57"/>
+ <line x="42.32" y="33.73"/>
+ <line x="42.16" y="33.73"/>
+ <line x="42.05" y="33.84"/>
+ <line x="41.89" y="33.84"/>
+ <line x="41.72" y="33.84"/>
+ <line x="41.6" y="33.73"/>
+ <line x="41.44" y="33.73"/>
+ <line x="41.44" y="33.57"/>
+ <line x="40.4" y="32.69"/>
+ <line x="40.29" y="32.8"/>
+ <line x="39.96" y="32.8"/>
+ <line x="39.85" y="32.96"/>
+ <line x="39.53" y="33.14"/>
+ <line x="39.53" y="34.45"/>
+ <line x="39.53" y="34.45"/>
+ <line x="39.53" y="34.45"/>
+ <line x="39.53" y="34.45"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.62"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.53" y="34.72"/>
+ <line x="39.41" y="34.72"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="34.89"/>
+ <line x="39.41" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.25" y="35.05"/>
+ <line x="39.08" y="35.05"/>
+ <line x="39.08" y="35.05"/>
+ <line x="39.08" y="35.17"/>
+ <line x="39.08" y="35.17"/>
+ <line x="39.08" y="35.17"/>
+ <line x="39.08" y="35.17"/>
+ <line x="39.08" y="35.17"/>
+ <line x="39.08" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.97" y="35.17"/>
+ <line x="38.81" y="35.17"/>
+ <line x="38.81" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.5" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.32" y="35.17"/>
+ <line x="37.21" y="35.17"/>
+ <line x="37.21" y="35.17"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.21" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="35.05"/>
+ <line x="37.05" y="34.89"/>
+ <line x="37.05" y="34.89"/>
+ <line x="37.05" y="34.89"/>
+ <line x="37.05" y="34.89"/>
+ <line x="37.05" y="34.89"/>
+ <line x="36.89" y="34.89"/>
+ <line x="36.89" y="34.89"/>
+ <line x="36.89" y="34.89"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.72"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.89" y="34.62"/>
+ <line x="36.78" y="34.62"/>
+ <line x="36.78" y="34.62"/>
+ <line x="36.78" y="34.45"/>
+ <line x="36.78" y="34.45"/>
+ <line x="36.78" y="34.45"/>
+ <line x="36.78" y="34.45"/>
+ <line x="36.78" y="33.14"/>
+ <line x="36.62" y="32.96"/>
+ <line x="36.35" y="32.8"/>
+ <line x="36.17" y="32.8"/>
+ <line x="35.9" y="32.69"/>
+ <line x="35.02" y="33.57"/>
+ <line x="34.86" y="33.73"/>
+ <line x="34.69" y="33.73"/>
+ <line x="34.59" y="33.84"/>
+ <line x="34.42" y="33.84"/>
+ <line x="34.25" y="33.84"/>
+ <line x="34.25" y="33.73"/>
+ <line x="34.14" y="33.73"/>
+ <line x="33.98" y="33.57"/>
+ <line x="33.1" y="32.69"/>
+ <line x="32.93" y="32.53"/>
+ <line x="32.93" y="32.36"/>
+ <line x="32.83" y="32.26"/>
+ <line x="32.83" y="32.08"/>
+ <line x="32.83" y="31.92"/>
+ <line x="32.93" y="31.76"/>
+ <line x="32.93" y="31.65"/>
+ <line x="33.1" y="31.65"/>
+ <line x="33.98" y="30.6"/>
+ <line x="33.81" y="30.33"/>
+ <line x="33.71" y="30.17"/>
+ <line x="33.71" y="29.83"/>
+ <line x="33.54" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.22" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="32.05" y="29.56"/>
+ <line x="31.95" y="29.56"/>
+ <line x="31.95" y="29.56"/>
+ <line x="31.95" y="29.56"/>
+ <line x="31.95" y="29.56"/>
+ <line x="31.95" y="29.56"/>
+ <line x="31.95" y="29.4"/>
+ <line x="31.95" y="29.4"/>
+ <line x="31.95" y="29.4"/>
+ <line x="31.95" y="29.4"/>
+ <line x="31.95" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.4"/>
+ <line x="31.78" y="29.29"/>
+ <line x="31.78" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.29"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="29.13"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.95"/>
+ <line x="31.62" y="28.84"/>
+ <line x="31.62" y="28.84"/>
+ <line x="31.62" y="28.84"/>
+ <line x="31.62" y="27.47"/>
+ <line x="31.62" y="27.47"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.36"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.2"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.62" y="27.04"/>
+ <line x="31.78" y="27.04"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.78" y="26.92"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="31.95" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.05" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="32.22" y="26.76"/>
+ <line x="33.54" y="26.76"/>
+ <line x="33.71" y="26.43"/>
+ <line x="33.71" y="26.16"/>
+ <line x="33.81" y="25.98"/>
+ <line x="33.98" y="25.71"/>
+ <line x="33.1" y="24.67"/>
+ <line x="32.93" y="24.51"/>
+ <line x="32.93" y="24.51"/>
+ <line x="32.83" y="24.4"/>
+ <line x="32.83" y="24.23"/>
+ <line x="32.83" y="24.07"/>
+ <line x="32.93" y="23.95"/>
+ <line x="32.93" y="23.79"/>
+ <line x="33.1" y="23.62"/>
+ <line x="33.98" y="22.58"/>
+ <line x="34.14" y="22.58"/>
+ <line x="34.25" y="22.47"/>
+ <line x="34.25" y="22.47"/>
+ <line x="34.42" y="22.47"/>
+ <line x="34.59" y="22.47"/>
+ <line x="34.69" y="22.47"/>
+ <line x="34.86" y="22.58"/>
+ <line x="35.02" y="22.58"/>
+ <line x="35.9" y="23.62"/>
+ <line x="36.17" y="23.52"/>
+ <line x="36.35" y="23.35"/>
+ <line x="36.62" y="23.35"/>
+ <line x="36.78" y="23.19"/>
+ <line x="36.78" y="21.86"/>
+ <line x="36.89" y="21.7"/>
+ <line x="36.89" y="21.59"/>
+ <line x="36.89" y="21.43"/>
+ <line x="37.05" y="21.27"/>
+ <line x="37.21" y="21.1"/>
+ <line x="37.21" y="21.1"/>
+ <line x="37.32" y="21.1"/>
+ <line x="37.5" y="21.1"/>
+ <line x="38.81" y="21.1"/>
+ <line x="38.81" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="38.97" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.08" y="21.1"/>
+ <line x="39.25" y="21.1"/>
+ <line x="39.25" y="21.1"/>
+ <line x="39.25" y="21.1"/>
+ <line x="39.25" y="21.1"/>
+ <line x="39.25" y="21.1"/>
+ <line x="39.25" y="21.27"/>
+ <line x="39.25" y="21.27"/>
+ <line x="39.25" y="21.27"/>
+ <line x="39.25" y="21.27"/>
+ <line x="39.25" y="21.27"/>
+ <line x="39.41" y="21.27"/>
+ <line x="39.41" y="21.27"/>
+ <line x="39.41" y="21.27"/>
+ <line x="39.41" y="21.27"/>
+ <line x="39.41" y="21.27"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.41" y="21.43"/>
+ <line x="39.53" y="21.43"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.59"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.7"/>
+ <line x="39.53" y="21.86"/>
+ <line x="39.53" y="21.86"/>
+ <line x="39.53" y="23.19"/>
+ <line x="39.85" y="23.35"/>
+ <line x="39.96" y="23.35"/>
+ <line x="40.29" y="23.52"/>
+ <line x="40.4" y="23.62"/>
+ <line x="41.44" y="22.58"/>
+ <line x="41.44" y="22.58"/>
+ <line x="41.6" y="22.47"/>
+ <line x="41.72" y="22.47"/>
+ <line x="41.89" y="22.47"/>
+ <line x="42.05" y="22.47"/>
+ <line x="42.16" y="22.47"/>
+ <line x="42.32" y="22.58"/>
+ <line x="42.48" y="22.58"/>
+ <line x="43.36" y="23.62"/>
+ <line x="43.36" y="23.79"/>
+ <line x="43.47" y="23.95"/>
+ <line x="43.47" y="24.07"/>
+ <line x="43.47" y="24.23"/>
+ <line x="43.47" y="24.4"/>
+ <line x="43.47" y="24.51"/>
+ <line x="43.36" y="24.51"/>
+ <line x="43.36" y="24.67"/>
+ <line x="42.48" y="25.71"/>
+ <line x="42.48" y="25.98"/>
+ <line x="42.59" y="26.16"/>
+ <line x="42.77" y="26.43"/>
+ <line x="42.77" y="26.76"/>
+ <line x="44.08" y="26.76"/>
+ <line x="44.24" y="26.76"/>
+ <line x="44.35" y="26.76"/>
+ <line x="44.51" y="26.76"/>
+ <line x="44.69" y="26.92"/>
+ <line x="44.69" y="27.04"/>
+ <line x="44.8" y="27.2"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b2" strokewidth="inherit" w="49.52">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.62" y="47.01"/>
+ <curve x1="44.69" x2="46.92" x3="46.92" y1="49.35" y2="50.54" y3="50.54"/>
+ <curve x1="43.93" x2="44.09" x3="44.47" y1="46.57" y2="42.01" y3="39.62"/>
+ <curve x1="47.61" x2="49.52" x3="49.52" y1="35.43" y2="30.27" y3="24.68"/>
+ <curve x1="49.52" x2="38.45" x3="24.76" y1="11.09" y2="0" y3="0"/>
+ <curve x1="11.13" x2="0" x3="0" y1="0" y2="11.09" y3="24.68"/>
+ <curve x1="0" x2="1.79" x3="4.77" y1="30.11" y2="35.17" y3="39.24"/>
+ <curve x1="1.14" x2="1.36" x3="1.36" y1="42.28" y2="48.86" y3="48.86"/>
+ <curve x1="2.39" x2="3.81" x3="4.72" y1="44.9" y2="44.24" y3="43.81"/>
+ <curve x1="4.94" x2="5.26" x3="5.59" y1="43.64" y2="43.54" y3="43.43"/>
+ <curve x1="5.43" x2="5.43" x3="5.92" y1="44.72" y2="46.25" y3="47.61"/>
+ <curve x1="7.22" x2="9.12" x3="8.85" y1="50.92" y2="52.45" y3="55.06"/>
+ <curve x1="8.58" x2="5.92" x3="5.75" y1="57.66" y2="59.56" y3="62.67"/>
+ <curve x1="5.64" x2="7.22" x3="7.76" y1="65.7" y2="67.5" y3="68.15"/>
+ <curve x1="8.25" x2="6.4" x3="7.38" y1="68.8" y2="65.32" y3="62.72"/>
+ <curve x1="8.36" x2="10.43" x3="12.22" y1="60.11" y2="61.09" y3="57.77"/>
+ <curve x1="12.59" x2="12.97" x3="13.24" y1="57.12" y2="56.41" y3="55.65"/>
+ <curve x1="13.95" x2="14.22" x3="14.11" y1="57.88" y2="59.46" y3="61.52"/>
+ <curve x1="13.95" x2="12.71" x3="11.19" y1="64.61" y2="67.44" y3="68.53"/>
+ <curve x1="11.19" x2="16.34" x3="17.59" y1="68.53" y2="66.95" y3="60.92"/>
+ <curve x1="18.63" x2="17.48" x3="18.41" y1="56.25" y2="53.7" y3="50.98"/>
+ <curve x1="19.71" x2="21.33" x3="21.13" y1="52.56" y2="55.1" y3="57.77"/>
+ <curve x1="20.8" x2="17.7" x3="18.68" y1="62.12" y2="67.66" y3="71.58"/>
+ <curve x1="19.66" x2="20.69" x3="20.69" y1="75.54" y2="77.39" y3="77.39"/>
+ <curve x1="20.69" x2="20.26" x3="22.2" y1="77.39" y2="71.9" y3="68.91"/>
+ <curve x1="22.96" x2="24" x3="24.98" y1="67.71" y2="66.35" y3="64.9"/>
+ <curve x1="26.39" x2="30.67" x3="31.87" y1="69.46" y2="73.05" y3="74.3"/>
+ <curve x1="33.34" x2="33.01" x3="33.01" y1="75.88" y2="80" y3="80"/>
+ <curve x1="33.01" x2="33.99" x3="34.37" y1="80" y2="78.53" y3="73.92"/>
+ <curve x1="34.75" x2="30.56" x3="30.13" y1="69.29" y2="68.48" y3="61.69"/>
+ <curve x1="29.98" x2="30.4" x3="30.95" y1="59.29" y2="56.95" y3="54.99"/>
+ <curve x1="32.47" x2="34.7" x3="35.29" y1="58.8" y2="62.23" y3="63.48"/>
+ <curve x1="36.27" x2="36.22" x3="36.22" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="39.63" x2="37.03" x3="36.82" y1="64.68" y2="61.25" y3="55.92"/>
+ <curve x1="36.71" x2="37.03" x3="37.41" y1="53.64" y2="51.41" y3="49.62"/>
+ <curve x1="37.85" x2="38.45" x3="39.2" y1="51.31" y2="53.1" y3="54.12"/>
+ <curve x1="40.94" x2="42.13" x3="42.41" y1="56.63" y2="58.15" y3="60.11"/>
+ <curve x1="42.73" x2="43" x3="42.51" y1="62.07" y2="64.94" y3="66.08"/>
+ <curve x1="42.51" x2="44.69" x3="44.53" y1="66.08" y2="64.41" y3="59.13"/>
+ <curve x1="44.36" x2="41.86" x3="42.41" y1="53.92" y2="50.44" y3="48.04"/>
+ <curve x1="42.46" x2="42.57" x3="42.62" y1="47.72" y2="47.39" y3="47.01"/>
+ <close/>
+ <move x="23.56" y="27.01"/>
+ <curve x1="24.05" x2="24.43" x3="24.43" y1="27.01" y2="26.58" y3="26.09"/>
+ <curve x1="24.43" x2="24.05" x3="23.56" y1="25.54" y2="25.27" y3="25.27"/>
+ <curve x1="23.18" x2="22.75" x3="22.75" y1="25.27" y2="25.54" y3="26.09"/>
+ <curve x1="22.75" x2="23.18" x3="23.56" y1="26.58" y2="27.01" y3="27.01"/>
+ <close/>
+ <move x="26.45" y="23.53"/>
+ <curve x1="27.97" x2="28.66" x3="27.86" y1="24.4" y2="26.58" y3="28.15"/>
+ <curve x1="26.99" x2="24.87" x3="23.29" y1="29.89" y2="30.44" y3="29.57"/>
+ <curve x1="21.61" x2="20.85" x3="21.72" y1="28.75" y2="26.68" y3="24.94"/>
+ <curve x1="22.75" x2="24.76" x3="26.45" y1="23.37" y2="22.6" y3="23.53"/>
+ <close/>
+ <move x="38.33" y="28.04"/>
+ <curve x1="39.64" x2="40.4" x3="40.4" y1="27.02" y2="25.82" y3="24.79"/>
+ <curve x1="40.4" x2="40.4" x3="40.4" y1="24.79" y2="24.79" y3="24.46"/>
+ <curve x1="40.23" x2="39.04" x3="36.81" y1="23.15" y2="21.79" y3="20.92"/>
+ <curve x1="36.81" x2="36.81" x3="36.7" y1="20.92" y2="20.92" y3="20.92"/>
+ <curve x1="36.1" x2="34.92" x3="33.12" y1="23.32" y2="25.82" y3="28.48"/>
+ <curve x1="33.12" x2="33.12" x3="33.12" y1="28.48" y2="28.48" y3="29.24"/>
+ <curve x1="33.12" x2="33.12" x3="33.12" y1="29.24" y2="29.24" y3="30.87"/>
+ <curve x1="34.16" x2="35.19" x3="36.1" y1="30.6" y2="30.11" y3="29.67"/>
+ <curve x1="36.1" x2="36.1" x3="36.28" y1="29.4" y2="29.13" y3="28.96"/>
+ <curve x1="36.7" x2="37.57" x3="38.33" y1="28.04" y2="27.71" y3="28.04"/>
+ <close/>
+ <move x="37.13" y="29.84"/>
+ <curve x1="37.41" x2="37.73" x3="37.73" y1="29.84" y2="29.67" y3="29.4"/>
+ <curve x1="37.73" x2="37.41" x3="37.13" y1="29.13" y2="28.8" y3="28.8"/>
+ <curve x1="36.97" x2="36.7" x3="36.7" y1="28.8" y2="29.13" y3="29.4"/>
+ <curve x1="36.7" x2="36.97" x3="37.13" y1="29.67" y2="29.84" y3="29.84"/>
+ <close/>
+ <move x="31.82" y="19.73"/>
+ <curve x1="32.25" x2="32.69" x3="33.01" y1="21.36" y2="23.32" y3="25.22"/>
+ <curve x1="33.01" x2="33.01" x3="33.01" y1="25.22" y2="25.22" y3="26.15"/>
+ <curve x1="34.16" x2="35.08" x3="35.51" y1="24.19" y2="22.23" y3="20.43"/>
+ <curve x1="34.32" x2="33.12" x3="31.82" y1="20.16" y2="19.84" y3="19.73"/>
+ <close/>
+ <move x="30.35" y="30.11"/>
+ <curve x1="30.78" x2="31.33" x3="31.82" y1="29.56" y2="28.8" y3="28.04"/>
+ <curve x1="31.82" x2="31.82" x3="31.65" y1="27.17" y2="26.24" y3="25.38"/>
+ <curve x1="31.33" x2="30.89" x3="30.46" y1="23.32" y2="21.36" y3="19.56"/>
+ <curve x1="29.75" x2="29.15" x3="28.39" y1="19.56" y2="19.4" y3="19.4"/>
+ <curve x1="27.1" x2="25.85" x3="24.54" y1="19.4" y2="19.56" y3="19.73"/>
+ <curve x1="23.67" x2="22.75" x3="21.88" y1="19.84" y2="20" y3="20.16"/>
+ <curve x1="21.28" x2="20.68" x3="20.1" y1="20.76" y2="21.36" y3="22.12"/>
+ <curve x1="19.65" x2="19.12" x3="18.63" y1="22.83" y2="23.59" y3="24.19"/>
+ <curve x1="18.63" x2="18.79" x3="18.79" y1="25.06" y2="25.97" y3="26.84"/>
+ <curve x1="18.94" x2="18.94" x3="19.12" y1="27.44" y2="27.88" y3="28.48"/>
+ <curve x1="19.12" x2="19.23" x3="19.39" y1="28.48" y2="28.48" y3="28.64"/>
+ <curve x1="20.1" x2="20.52" x3="20.1" y1="28.96" y2="30" y3="30.87"/>
+ <curve x1="19.98" x2="19.81" x3="19.65" y1="31.03" y2="31.2" y3="31.36"/>
+ <curve x1="19.65" x2="19.81" x3="19.98" y1="31.79" y2="32.39" y3="32.83"/>
+ <curve x1="19.98" x2="19.98" x3="22.04" y1="32.83" y2="32.83" y3="32.83"/>
+ <curve x1="23.35" x2="24.71" x3="25.85" y1="32.83" y2="32.83" y3="32.66"/>
+ <curve x1="26.94" x2="27.7" x3="28.5" y1="32.5" y2="32.39" y3="32.23"/>
+ <curve x1="29.15" x2="29.75" x3="30.35" y1="31.63" y2="30.87" y3="30.11"/>
+ <close/>
+ <move x="31.82" y="31.36"/>
+ <line x="31.82" y="30.27"/>
+ <curve x1="31.65" x2="31.49" x3="31.33" y1="30.6" y2="30.76" y3="31.03"/>
+ <curve x1="31.06" x2="30.89" x3="30.78" y1="31.2" y2="31.52" y3="31.63"/>
+ <curve x1="31.06" x2="31.49" x3="31.82" y1="31.63" y2="31.52" y3="31.36"/>
+ <close/>
+ <move x="30.46" y="37.88"/>
+ <curve x1="30.89" x2="31.33" x3="31.65" y1="36.57" y2="34.73" y3="32.83"/>
+ <curve x1="30.89" x2="30.02" x3="29.15" y1="32.94" y2="33.26" y3="33.43"/>
+ <curve x1="27.1" x2="24.87" x3="22.64" y1="35.66" y2="37.44" y3="38.64"/>
+ <curve x1="23.95" x2="25.41" x3="26.61" y1="40.38" y2="41.47" y3="41.47"/>
+ <curve x1="26.77" x2="26.94" x3="26.94" y1="41.47" y2="41.47" y3="41.3"/>
+ <curve x1="28.23" x2="29.43" x3="30.46" y1="41.3" y2="39.94" y3="37.88"/>
+ <close/>
+ <move x="22.04" y="37.44"/>
+ <curve x1="23.67" x2="25.3" x3="27.1" y1="36.68" y2="35.33" y3="33.7"/>
+ <curve x1="26.77" x2="26.45" x3="26.01" y1="33.86" y2="33.86" y3="33.86"/>
+ <curve x1="24.71" x2="23.35" x3="22.04" y1="34.02" y2="34.19" y3="34.19"/>
+ <curve x1="21.61" x2="21.01" x3="20.41" y1="34.19" y2="34.19" y3="34.02"/>
+ <curve x1="20.85" x2="21.44" x3="21.88" y1="35.33" y2="36.42" y3="37.44"/>
+ <curve x1="21.88" x2="21.88" x3="22.04" y1="37.44" y2="37.44" y3="37.44"/>
+ <close/>
+ <move x="17.76" y="38.8"/>
+ <curve x1="18.63" x2="19.65" x3="20.85" y1="38.8" y2="38.48" y3="38.04"/>
+ <curve x1="20.1" x2="19.54" x3="19.12" y1="36.84" y2="35.49" y3="34.02"/>
+ <curve x1="17.43" x2="15.96" x3="14.61" y1="33.86" y2="33.59" y3="33.1"/>
+ <curve x1="14.61" x2="14.5" x3="14.5" y1="33.7" y2="34.3" y3="34.89"/>
+ <curve x1="14.5" x2="14.93" x3="15.69" y1="36.42" y2="37.55" y3="38.15"/>
+ <curve x1="16.29" x2="17" x3="17.76" y1="38.64" y2="38.8" y3="38.8"/>
+ <close/>
+ <move x="13.63" y="31.36"/>
+ <line x="13.74" y="31.52"/>
+ <curve x1="14.33" x2="15.53" x3="17.27" y1="29.13" y2="26.42" y3="23.92"/>
+ <curve x1="17.27" x2="17.27" x3="17.27" y1="23.92" y2="23.92" y3="22.99"/>
+ <curve x1="17.27" x2="17.27" x3="17.27" y1="22.99" y2="22.99" y3="21.36"/>
+ <curve x1="16.13" x2="15.09" x3="14.06" y1="21.79" y2="22.23" y3="22.83"/>
+ <curve x1="11.51" x2="10.05" x3="10.05" y1="24.35" y2="26.15" y3="27.6"/>
+ <curve x1="10.05" x2="10.05" x3="10.05" y1="27.6" y2="27.6" y3="27.88"/>
+ <curve x1="10.21" x2="11.4" x3="13.63" y1="29.24" y2="30.43" y3="31.36"/>
+ <close/>
+ <move x="17.76" y="28.64"/>
+ <curve x1="17.6" x2="17.6" x3="17.43" y1="28.04" y2="27.6" y3="27.02"/>
+ <curve x1="17.43" x2="17.43" x3="17.43" y1="27.02" y2="27.02" y3="26.15"/>
+ <curve x1="16.29" x2="15.37" x3="14.93" y1="28.2" y2="30.11" y3="31.96"/>
+ <curve x1="16.13" x2="17.27" x3="18.63" y1="32.23" y2="32.5" y3="32.66"/>
+ <curve x1="18.45" x2="18.45" x3="18.36" y1="32.39" y2="32.07" y3="31.79"/>
+ <curve x1="18.19" x2="18.03" x3="17.87" y1="31.63" y2="31.63" y3="31.52"/>
+ <curve x1="17" x2="16.73" x3="17.16" y1="31.2" y2="30.11" y3="29.24"/>
+ <curve x1="17.27" x2="17.43" x3="17.76" y1="28.96" y2="28.8" y3="28.64"/>
+ <close/>
+ <move x="18.45" y="30"/>
+ <curve x1="18.45" x2="18.36" x3="18.03" y1="29.67" y2="29.4" y3="29.4"/>
+ <curve x1="17.76" x2="17.6" x3="17.6" y1="29.4" y2="29.67" y3="30"/>
+ <curve x1="17.6" x2="17.76" x3="18.03" y1="30.11" y2="30.43" y3="30.43"/>
+ <curve x1="18.36" x2="18.45" x3="18.45" y1="30.43" y2="30.11" y3="30"/>
+ <close/>
+ <move x="18.63" y="20.92"/>
+ <line x="18.63" y="21.96"/>
+ <curve x1="18.79" x2="18.94" x3="19.23" y1="21.79" y2="21.52" y3="21.36"/>
+ <curve x1="19.39" x2="19.54" x3="19.65" y1="21.03" y2="20.76" y3="20.6"/>
+ <curve x1="19.39" x2="19.12" x3="18.63" y1="20.76" y2="20.76" y3="20.92"/>
+ <close/>
+ <move x="20.1" y="14.35"/>
+ <curve x1="19.54" x2="19.12" x3="18.79" y1="15.86" y2="17.44" y3="19.56"/>
+ <curve x1="19.54" x2="20.41" x3="21.28" y1="19.29" y2="19.13" y3="18.8"/>
+ <curve x1="23.35" x2="25.58" x3="27.79" y1="16.57" y2="14.79" y3="13.75"/>
+ <curve x1="26.45" x2="24.98" x3="23.78" y1="11.85" y2="10.92" y3="10.92"/>
+ <curve x1="23.78" x2="23.78" x3="23.51" y1="10.92" y2="10.92" y3="10.92"/>
+ <curve x1="22.21" x2="21.01" x3="20.1" y1="11.09" y2="12.28" y3="14.35"/>
+ <close/>
+ <move x="28.5" y="14.95"/>
+ <curve x1="28.5" x2="28.5" x3="28.39" y1="14.95" y2="14.79" y3="14.79"/>
+ <curve x1="26.94" x2="25.14" x3="23.35" y1="15.71" y2="16.91" y3="18.53"/>
+ <curve x1="23.67" x2="24.11" x3="24.43" y1="18.53" y2="18.37" y3="18.37"/>
+ <curve x1="25.74" x2="27.1" x3="28.39" y1="18.2" y2="18.2" y3="18.2"/>
+ <curve x1="28.39" x2="28.39" x3="30.02" y1="18.2" y2="18.2" y3="18.2"/>
+ <curve x1="29.59" x2="28.99" x3="28.5" y1="17.02" y2="15.86" y3="14.95"/>
+ <close/>
+ <move x="29.59" y="14.24"/>
+ <line x="29.59" y="14.35"/>
+ <curve x1="30.35" x2="30.89" x3="31.33" y1="15.38" y2="16.91" y3="18.37"/>
+ <curve x1="33.01" x2="34.48" x3="35.84" y1="18.53" y2="18.8" y3="19.13"/>
+ <curve x1="35.84" x2="35.95" x3="35.95" y1="18.53" y2="17.93" y3="17.44"/>
+ <curve x1="35.95" x2="35.51" x3="34.75" y1="15.86" y2="14.79" y3="14.24"/>
+ <curve x1="34.32" x2="33.99" x3="33.56" y1="13.92" y2="13.75" y3="13.59"/>
+ <curve x1="33.12" x2="32.09" x3="31.33" y1="14.51" y2="14.79" y3="14.35"/>
+ <curve x1="31.06" x2="30.89" x3="30.78" y1="14.24" y2="14.08" y3="13.75"/>
+ <curve x1="30.46" x2="30.02" x3="29.59" y1="13.92" y2="14.08" y3="14.24"/>
+ <close/>
+ <move x="31.65" y="12.12"/>
+ <curve x1="31.49" x2="31.22" x3="31.22" y1="12.12" y2="12.28" y3="12.56"/>
+ <curve x1="31.22" x2="31.49" x3="31.65" y1="12.83" y2="12.99" y3="12.99"/>
+ <curve x1="31.93" x2="32.25" x3="32.25" y1="12.99" y2="12.83" y3="12.56"/>
+ <curve x1="32.25" x2="31.93" x3="31.65" y1="12.28" y2="12.12" y3="12.12"/>
+ <close/>
+ <move x="41.7" y="24.79"/>
+ <curve x1="41.7" x2="40.67" x3="39.2" y1="26.24" y2="27.71" y3="29.13"/>
+ <curve x1="39.36" x2="39.36" x3="39.2" y1="29.56" y2="30" y3="30.43"/>
+ <curve x1="38.77" x2="37.73" x3="36.97" y1="31.36" y2="31.63" y3="31.2"/>
+ <curve x1="36.81" x2="36.7" x3="36.55" y1="31.03" y2="31.03" y3="30.87"/>
+ <curve x1="35.51" x2="34.32" x3="33.01" y1="31.52" y2="31.96" y3="32.39"/>
+ <curve x1="32.85" x2="32.25" x3="31.65" y1="34.62" y2="36.68" y3="38.31"/>
+ <curve x1="30.62" x2="29.15" x3="27.1" y1="40.71" y2="42.34" y3="42.61"/>
+ <curve x1="27.1" x2="27.1" x3="26.61" y1="42.61" y2="42.61" y3="42.61"/>
+ <curve x1="24.71" x2="22.91" x3="21.44" y1="42.61" y2="41.3" y3="39.24"/>
+ <curve x1="20.25" x2="18.94" x3="17.76" y1="39.84" y2="40.11" y3="40.11"/>
+ <curve x1="16.73" x2="15.69" x3="14.93" y1="40.11" y2="39.84" y3="39.24"/>
+ <curve x1="13.74" x2="13.3" x3="13.3" y1="38.15" y2="36.68" y3="34.89"/>
+ <curve x1="13.3" x2="13.3" x3="13.46" y1="34.19" y2="33.43" y3="32.66"/>
+ <curve x1="13.3" x2="13.14" x3="13.03" y1="32.66" y2="32.66" y3="32.5"/>
+ <curve x1="10.81" x2="9.02" x3="8.85" y1="31.63" y2="30" y3="28.04"/>
+ <curve x1="8.69" x2="8.69" x3="8.69" y1="27.88" y2="27.71" y3="27.6"/>
+ <curve x1="8.85" x2="10.65" x3="13.46" y1="25.22" y2="23.32" y3="21.69"/>
+ <curve x1="14.61" x2="15.96" x3="17.43" y1="21.03" y2="20.43" y3="19.84"/>
+ <curve x1="17.6" x2="18.19" x3="18.79" y1="17.6" y2="15.55" y3="13.92"/>
+ <curve x1="19.81" x2="21.28" x3="23.35" y1="11.52" y2="9.89" y3="9.56"/>
+ <curve x1="23.35" x2="23.35" x3="23.78" y1="9.56" y2="9.56" y3="9.56"/>
+ <curve x1="25.74" x2="27.52" x3="28.99" y1="9.56" y2="10.92" y3="13.15"/>
+ <curve x1="29.43" x2="30.02" x3="30.46" y1="12.83" y2="12.72" y3="12.56"/>
+ <curve x1="30.46" x2="30.46" x3="30.62" y1="12.39" y2="12.28" y3="12.12"/>
+ <curve x1="31.06" x2="32.09" x3="32.85" y1="11.25" y2="10.92" y3="11.36"/>
+ <curve x1="33.29" x2="33.56" x3="33.72" y1="11.52" y2="11.96" y3="12.28"/>
+ <curve x1="34.32" x2="34.92" x3="35.51" y1="12.39" y2="12.72" y3="13.15"/>
+ <curve x1="36.7" x2="37.24" x3="37.24" y1="14.08" y2="15.71" y3="17.44"/>
+ <curve x1="37.24" x2="37.13" x3="36.97" y1="18.09" y2="18.8" y3="19.56"/>
+ <curve x1="37.13" x2="37.24" x3="37.41" y1="19.56" y2="19.73" y3="19.73"/>
+ <curve x1="39.8" x2="41.43" x3="41.59" y1="20.76" y2="22.23" y3="24.35"/>
+ <curve x1="41.7" x2="41.7" x3="41.7" y1="24.46" y2="24.62" y3="24.79"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.65" name="threat b3" strokewidth="inherit" w="40.46">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="34.82" y="38.01"/>
+ <curve x1="36.51" x2="38.33" x3="38.33" y1="39.83" y2="40.85" y3="40.85"/>
+ <curve x1="35.89" x2="36.02" x3="36.33" y1="37.65" y2="33.92" y3="32.01"/>
+ <curve x1="38.9" x2="40.46" x3="40.46" y1="28.64" y2="24.47" y3="19.94"/>
+ <curve x1="40.46" x2="31.41" x3="20.23" y1="8.92" y2="0" y3="0"/>
+ <curve x1="9.09" x2="0" x3="0" y1="0" y2="8.92" y3="19.94"/>
+ <curve x1="0" x2="1.46" x3="3.9" y1="24.33" y2="28.37" y3="31.66"/>
+ <curve x1="0.93" x2="1.11" x3="1.11" y1="34.15" y2="39.47" y3="39.47"/>
+ <curve x1="1.95" x2="3.06" x3="3.86" y1="36.28" y2="35.74" y3="35.34"/>
+ <curve x1="4.04" x2="4.3" x3="4.57" y1="35.3" y2="35.17" y3="35.08"/>
+ <curve x1="4.44" x2="4.44" x3="4.84" y1="36.19" y2="37.39" y3="38.41"/>
+ <curve x1="5.9" x2="7.45" x3="7.23" y1="41.16" y2="42.36" y3="44.45"/>
+ <curve x1="7.01" x2="4.84" x3="4.7" y1="46.58" y2="48.18" y3="50.62"/>
+ <curve x1="4.57" x2="5.9" x3="6.34" y1="53.06" y2="54.53" y3="55.06"/>
+ <curve x1="6.74" x2="5.19" x3="6.03" y1="55.64" y2="52.79" y3="50.66"/>
+ <curve x1="6.83" x2="8.52" x3="9.98" y1="48.58" y2="49.38" y3="46.71"/>
+ <curve x1="10.29" x2="10.6" x3="10.82" y1="46.13" y2="45.56" y3="44.98"/>
+ <curve x1="11.4" x2="11.62" x3="11.49" y1="46.76" y2="48" y3="49.73"/>
+ <curve x1="11.4" x2="10.38" x3="9.14" y1="52.17" y2="54.48" y3="55.37"/>
+ <curve x1="9.14" x2="13.35" x3="14.37" y1="55.37" y2="54.13" y3="49.24"/>
+ <curve x1="15.22" x2="14.24" x3="15.04" y1="45.47" y2="43.38" y3="41.16"/>
+ <curve x1="16.06" x2="17.43" x3="17.26" y1="42.4" y2="44.49" y3="46.71"/>
+ <curve x1="16.99" x2="14.46" x3="15.26" y1="50.17" y2="54.66" y3="57.86"/>
+ <curve x1="16.06" x2="16.9" x3="16.9" y1="61.05" y2="62.56" y3="62.56"/>
+ <curve x1="16.9" x2="16.55" x3="18.1" y1="62.56" y2="58.08" y3="55.68"/>
+ <curve x1="18.76" x2="19.61" x3="20.41" y1="54.7" y2="53.59" y3="52.44"/>
+ <curve x1="21.56" x2="25.06" x3="26.04" y1="56.08" y2="59.01" y3="60.03"/>
+ <curve x1="27.24" x2="26.97" x3="26.97" y1="61.27" y2="64.65" y3="64.65"/>
+ <curve x1="26.97" x2="27.77" x3="28.08" y1="64.65" y2="63.45" y3="59.72"/>
+ <curve x1="28.39" x2="24.97" x3="24.62" y1="55.99" y2="55.32" y3="49.82"/>
+ <curve x1="24.49" x2="24.84" x3="25.29" y1="47.91" y2="46.04" y3="44.45"/>
+ <curve x1="26.53" x2="28.35" x3="28.83" y1="47.51" y2="50.26" y3="51.28"/>
+ <curve x1="29.63" x2="29.59" x3="29.59" y1="52.84" y2="56.79" y3="56.79"/>
+ <curve x1="32.38" x2="30.25" x3="30.08" y1="52.26" y2="49.46" y3="45.2"/>
+ <curve x1="29.99" x2="30.25" x3="30.56" y1="43.34" y2="41.56" y3="40.1"/>
+ <curve x1="30.92" x2="31.41" x3="32.03" y1="41.43" y2="42.89" y3="43.74"/>
+ <curve x1="33.45" x2="34.42" x3="34.65" y1="45.73" y2="47.02" y3="48.58"/>
+ <curve x1="34.91" x2="35.13" x3="34.69" y1="50.13" y2="52.48" y3="53.37"/>
+ <curve x1="34.69" x2="36.51" x3="36.38" y1="53.37" y2="51.99" y3="47.78"/>
+ <curve x1="36.24" x2="34.2" x3="34.65" y1="43.56" y2="40.76" y3="38.81"/>
+ <curve x1="34.69" x2="34.78" x3="34.82" y1="38.54" y2="38.32" y3="38.01"/>
+ <close/>
+ <move x="14.95" y="16.92"/>
+ <line x="14.95" y="19"/>
+ <curve x1="14.95" x2="15.17" x3="15.44" y1="19.54" y2="20.02" y3="20.25"/>
+ <curve x1="15.44" x2="15.44" x3="16.28" y1="20.25" y2="20.25" y3="20.25"/>
+ <curve x1="16.9" x2="17.44" x3="17.44" y1="20.25" y2="20.73" y3="21.4"/>
+ <curve x1="17.44" x2="17.44" x3="17.44" y1="21.4" y2="21.4" y3="23.71"/>
+ <curve x1="19.03" x2="21.43" x3="22.98" y1="24.69" y2="24.69" y3="23.71"/>
+ <curve x1="22.98" x2="22.98" x3="22.98" y1="23.71" y2="23.71" y3="21.4"/>
+ <curve x1="22.98" x2="23.51" x3="24.14" y1="20.73" y2="20.25" y3="20.25"/>
+ <curve x1="24.14" x2="24.14" x3="24.98" y1="20.25" y2="20.25" y3="20.25"/>
+ <curve x1="25.33" x2="25.55" x3="25.55" y1="20.02" y2="19.54" y3="19"/>
+ <curve x1="25.55" x2="25.55" x3="25.55" y1="19" y2="19" y3="16.92"/>
+ <curve x1="25.55" x2="25.47" x3="25.29" y1="16.52" y2="16.21" y3="15.94"/>
+ <curve x1="23.78" x2="22.14" x3="20.41" y1="16.07" y2="16.16" y3="16.16"/>
+ <curve x1="20.41" x2="20.41" x3="20.28" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="20.28" x2="20.28" x3="20.14" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="20.14" x2="20.14" x3="20.1" y1="16.16" y2="16.16" y3="16.16"/>
+ <curve x1="18.32" x2="16.64" x3="15.17" y1="16.16" y2="16.07" y3="15.94"/>
+ <curve x1="15" x2="14.95" x3="14.95" y1="16.21" y2="16.52" y3="16.92"/>
+ <close/>
+ <move x="9.23" y="14.43"/>
+ <curve x1="9.23" x2="11.23" x3="14.24" y1="13.63" y2="12.83" y3="12.48"/>
+ <curve x1="14.24" x2="14.24" x3="15.93" y1="12.48" y2="12.48" y3="6.88"/>
+ <curve x1="15.97" x2="16.15" x3="16.46" y1="6.66" y2="6.39" y3="6.39"/>
+ <curve x1="16.46" x2="16.46" x3="23.96" y1="6.39" y2="6.39" y3="6.39"/>
+ <curve x1="24.31" x2="24.49" x3="24.58" y1="6.39" y2="6.66" y3="6.88"/>
+ <curve x1="24.58" x2="24.58" x3="26.18" y1="6.88" y2="6.88" y3="12.48"/>
+ <curve x1="29.19" x2="31.19" x3="31.23" y1="12.83" y2="13.63" y3="14.43"/>
+ <curve x1="31.23" x2="29.55" x3="26.93" y1="14.87" y2="15.41" y3="15.76"/>
+ <curve x1="27.24" x2="27.33" x3="27.33" y1="16.43" y2="17.23" y3="18.03"/>
+ <curve x1="27.33" x2="27.24" x3="26.93" y1="18.78" y2="19.54" y3="20.25"/>
+ <curve x1="26.93" x2="26.93" x3="27.24" y1="20.25" y2="20.25" y3="20.25"/>
+ <curve x1="27.86" x2="28.35" x3="28.35" y1="20.25" y2="20.73" y3="21.4"/>
+ <curve x1="28.35" x2="28.35" x3="28.35" y1="21.4" y2="21.4" y3="22.69"/>
+ <curve x1="29.24" x2="29.99" x3="29.99" y1="22.82" y2="23.66" y3="24.77"/>
+ <curve x1="29.99" x2="29.99" x3="29.99" y1="24.77" y2="24.77" y3="32.01"/>
+ <curve x1="29.99" x2="29.15" x3="28.13" y1="33.21" y2="34.1" y3="34.1"/>
+ <curve x1="28.13" x2="28.13" x3="20.63" y1="34.1" y2="34.1" y3="34.1"/>
+ <curve x1="20.63" x2="20.63" x3="20.63" y1="34.1" y2="34.1" y3="24.77"/>
+ <curve x1="20.63" x2="20.63" x3="19.83" y1="24.77" y2="24.77" y3="24.77"/>
+ <curve x1="19.83" x2="19.83" x3="19.83" y1="24.77" y2="24.77" y3="34.1"/>
+ <curve x1="19.83" x2="19.83" x3="12.29" y1="34.1" y2="34.1" y3="34.1"/>
+ <curve x1="11.31" x2="10.52" x3="10.52" y1="34.1" y2="33.21" y3="32.01"/>
+ <curve x1="10.52" x2="10.52" x3="10.52" y1="32.01" y2="32.01" y3="24.77"/>
+ <curve x1="10.52" x2="11.18" x3="12.07" y1="23.66" y2="22.82" y3="22.69"/>
+ <curve x1="12.07" x2="12.07" x3="12.07" y1="22.69" y2="22.69" y3="21.4"/>
+ <curve x1="12.07" x2="12.6" x3="13.22" y1="20.73" y2="20.25" y3="20.25"/>
+ <curve x1="13.22" x2="13.22" x3="13.49" y1="20.25" y2="20.25" y3="20.25"/>
+ <curve x1="13.27" x2="13.09" x3="13.09" y1="19.54" y2="18.78" y3="18.03"/>
+ <curve x1="13.09" x2="13.27" x3="13.49" y1="17.23" y2="16.43" y3="15.76"/>
+ <curve x1="10.92" x2="9.23" x3="9.23" y1="15.41" y2="14.87" y3="14.43"/>
+ <close/>
+ <move x="21.42" y="17.05"/>
+ <curve x1="23.77" x2="23.77" x3="23.77" y1="17.05" y2="17.05" y3="17.05"/>
+ <curve x1="23.82" x2="23.82" x3="23.82" y1="17.05" y2="17.05" y3="17.05"/>
+ <curve x1="24" x2="24" x3="24" y1="17.05" y2="17.05" y3="17.05"/>
+ <curve x1="24.08" x2="24.13" x3="24.13" y1="17.05" y2="17.14" y3="17.27"/>
+ <curve x1="24.13" x2="24.13" x3="24.13" y1="18.91" y2="18.91" y3="18.91"/>
+ <curve x1="24.13" x2="23.69" x3="23.06" y1="19.45" y2="19.89" y3="19.89"/>
+ <curve x1="21.69" x2="21.69" x3="21.69" y1="19.89" y2="19.89" y3="19.89"/>
+ <curve x1="21.11" x2="20.58" x3="20.58" y1="19.89" y2="19.45" y3="18.91"/>
+ <curve x1="20.58" x2="20.58" x3="20.58" y1="17.94" y2="17.94" y3="17.94"/>
+ <curve x1="20.58" x2="20.67" x3="21.42" y1="17.27" y2="17.05" y3="17.05"/>
+ <close/>
+ <move x="15.83" y="17.05"/>
+ <curve x1="16.05" x2="16.05" x3="16.05" y1="17.05" y2="17.05" y3="17.05"/>
+ <curve x1="18.36" x2="18.36" x3="18.36" y1="17.05" y2="17.05" y3="17.05"/>
+ <curve x1="19.16" x2="19.03" x3="19.03" y1="17.05" y2="17.27" y3="17.89"/>
+ <curve x1="19.03" x2="19.03" x3="19.03" y1="18.91" y2="18.91" y3="18.91"/>
+ <curve x1="18.98" x2="18.58" x3="18.01" y1="19.45" y2="19.89" y3="19.89"/>
+ <curve x1="16.63" x2="16.63" x3="16.63" y1="19.89" y2="19.89" y3="19.89"/>
+ <curve x1="16.1" x2="15.61" x3="15.61" y1="19.89" y2="19.45" y3="18.91"/>
+ <curve x1="15.61" x2="15.61" x3="15.61" y1="17.27" y2="17.27" y3="17.27"/>
+ <curve x1="15.61" x2="15.7" x3="15.83" y1="17.14" y2="17.05" y3="17.05"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b4" strokewidth="inherit" w="49.19">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.32" y="47.03"/>
+ <curve x1="44.35" x2="46.6" x3="46.6" y1="49.34" y2="50.55" y3="50.55"/>
+ <curve x1="43.64" x2="43.81" x3="44.19" y1="46.59" y2="42.04" y3="39.61"/>
+ <curve x1="47.37" x2="49.19" x3="49.19" y1="35.49" y2="30.28" y3="24.67"/>
+ <curve x1="49.19" x2="38.2" x3="24.65" y1="11.1" y2="0" y3="0"/>
+ <curve x1="11.09" x2="0" x3="0" y1="0" y2="11.1" y3="24.67"/>
+ <curve x1="0" x2="1.81" x3="4.78" y1="30.11" y2="35.17" y3="39.23"/>
+ <curve x1="1.15" x2="1.37" x3="1.37" y1="42.31" y2="48.84" y3="48.84"/>
+ <curve x1="2.41" x2="3.74" x3="4.73" y1="44.89" y2="44.23" y3="43.79"/>
+ <curve x1="4.94" x2="5.21" x3="5.54" y1="43.68" y2="43.52" y3="43.41"/>
+ <curve x1="5.38" x2="5.38" x3="5.88" y1="44.78" y2="46.27" y3="47.58"/>
+ <curve x1="7.14" x2="9.11" x3="8.79" y1="50.93" y2="52.42" y3="55.05"/>
+ <curve x1="8.51" x2="5.88" x3="5.77" y1="57.64" y2="59.62" y3="62.69"/>
+ <curve x1="5.59" x2="7.14" x3="7.68" y1="65.71" y2="67.48" y3="68.18"/>
+ <curve x1="8.23" x2="6.37" x3="7.3" y1="68.85" y2="65.32" y3="62.75"/>
+ <curve x1="8.29" x2="10.37" x3="12.19" y1="60.11" y2="61.1" y3="57.8"/>
+ <curve x1="12.51" x2="12.89" x3="13.18" y1="57.14" y2="56.43" y3="55.66"/>
+ <curve x1="13.83" x2="14.11" x3="14" y1="57.86" y2="59.45" y3="61.54"/>
+ <curve x1="13.88" x2="12.57" x3="11.09" y1="64.62" y2="67.42" y3="68.57"/>
+ <curve x1="11.09" x2="16.25" x3="17.51" y1="68.57" y2="66.98" y3="60.93"/>
+ <curve x1="18.5" x2="17.35" x3="18.28" y1="56.27" y2="53.68" y3="50.99"/>
+ <curve x1="19.6" x2="21.25" x3="21.02" y1="52.53" y2="55.12" y3="57.8"/>
+ <curve x1="20.64" x2="17.57" x3="18.55" y1="62.14" y2="67.64" y3="71.6"/>
+ <curve x1="19.49" x2="20.59" x3="20.59" y1="75.55" y2="77.41" y3="77.41"/>
+ <curve x1="20.59" x2="20.1" x3="22.06" y1="77.41" y2="71.92" y3="68.9"/>
+ <curve x1="22.83" x2="23.88" x3="24.81" y1="67.69" y2="66.31" y3="64.89"/>
+ <curve x1="26.18" x2="30.47" x3="31.68" y1="69.44" y2="73.07" y3="74.28"/>
+ <curve x1="33.15" x2="32.77" x3="32.77" y1="75.88" y2="80" y3="80"/>
+ <curve x1="32.77" x2="33.82" x3="34.2" y1="80" y2="78.52" y3="73.96"/>
+ <curve x1="34.59" x2="30.35" x3="29.92" y1="69.28" y2="68.45" y3="61.65"/>
+ <curve x1="29.81" x2="30.19" x3="30.8" y1="59.29" y2="57.03" y3="55"/>
+ <curve x1="32.27" x2="34.41" x3="35.08" y1="58.79" y2="62.26" y3="63.46"/>
+ <curve x1="36.06" x2="35.96" x3="35.96" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="39.41" x2="36.78" x3="36.55" y1="64.67" y2="61.27" y3="55.93"/>
+ <curve x1="36.45" x2="36.78" x3="37.16" y1="53.63" y2="51.43" y3="49.62"/>
+ <curve x1="37.61" x2="38.2" x3="38.92" y1="51.32" y2="53.07" y3="54.13"/>
+ <curve x1="40.62" x2="41.83" x3="42.16" y1="56.59" y2="58.18" y3="60.11"/>
+ <curve x1="42.43" x2="42.7" x3="42.21" y1="62.03" y2="64.94" y3="66.1"/>
+ <curve x1="42.21" x2="44.35" x3="44.19" y1="66.1" y2="64.4" y3="59.17"/>
+ <curve x1="44.08" x2="41.66" x3="42.16" y1="53.95" y2="50.44" y3="48.02"/>
+ <curve x1="42.21" x2="42.27" x3="42.32" y1="47.75" y2="47.42" y3="47.03"/>
+ <close/>
+ <move x="41.29" y="34.23"/>
+ <line x="41.29" y="34.23"/>
+ <line x="41.29" y="34.4"/>
+ <line x="41.17" y="34.56"/>
+ <line x="41.17" y="34.67"/>
+ <line x="41" y="34.83"/>
+ <line x="40.73" y="35.17"/>
+ <line x="40.23" y="35.44"/>
+ <line x="39.53" y="36.16"/>
+ <line x="38.48" y="36.93"/>
+ <line x="37.39" y="37.64"/>
+ <line x="36.34" y="38.41"/>
+ <line x="35.3" y="39.02"/>
+ <line x="34.85" y="39.12"/>
+ <line x="34.58" y="39.45"/>
+ <line x="34.26" y="39.45"/>
+ <line x="34.08" y="39.56"/>
+ <line x="33.81" y="39.45"/>
+ <line x="33.81" y="39.45"/>
+ <line x="33.81" y="39.45"/>
+ <line x="33.81" y="39.29"/>
+ <line x="33.65" y="39.12"/>
+ <line x="33.65" y="39.02"/>
+ <line x="33.65" y="38.68"/>
+ <line x="33.49" y="37.96"/>
+ <line x="33.49" y="36.93"/>
+ <line x="28.11" y="36.93"/>
+ <line x="27.95" y="36.93"/>
+ <line x="27.66" y="36.75"/>
+ <line x="27.34" y="36.75"/>
+ <line x="27.23" y="36.65"/>
+ <line x="27.07" y="36.48"/>
+ <line x="26.73" y="36.32"/>
+ <line x="26.62" y="36.16"/>
+ <line x="26.46" y="35.87"/>
+ <line x="22.84" y="30.71"/>
+ <line x="25.69" y="26.37"/>
+ <line x="25.85" y="26.7"/>
+ <line x="26.89" y="28.46"/>
+ <line x="27.95" y="30.11"/>
+ <line x="28.43" y="30.71"/>
+ <line x="28.71" y="31.26"/>
+ <line x="28.99" y="31.59"/>
+ <line x="28.99" y="31.75"/>
+ <line x="29.15" y="31.75"/>
+ <line x="29.15" y="31.75"/>
+ <line x="29.48" y="31.75"/>
+ <line x="29.91" y="31.75"/>
+ <line x="30.68" y="31.86"/>
+ <line x="32.17" y="31.75"/>
+ <line x="33.49" y="31.75"/>
+ <line x="33.49" y="30.71"/>
+ <line x="33.65" y="29.95"/>
+ <line x="33.65" y="29.67"/>
+ <line x="33.81" y="29.34"/>
+ <line x="33.81" y="29.23"/>
+ <line x="33.81" y="29.23"/>
+ <line x="34.08" y="29.07"/>
+ <line x="34.08" y="29.07"/>
+ <line x="34.26" y="29.07"/>
+ <line x="34.58" y="29.23"/>
+ <line x="35.02" y="29.5"/>
+ <line x="35.46" y="29.79"/>
+ <line x="36.67" y="30.55"/>
+ <line x="37.87" y="31.43"/>
+ <line x="39.19" y="32.31"/>
+ <line x="39.8" y="32.74"/>
+ <line x="40.23" y="33.08"/>
+ <line x="40.73" y="33.52"/>
+ <line x="41" y="33.79"/>
+ <line x="41.17" y="33.96"/>
+ <line x="41.17" y="34.12"/>
+ <line x="41.29" y="34.23"/>
+ <line x="41.29" y="34.23"/>
+ <line x="41.29" y="34.23"/>
+ <close/>
+ <move x="10.92" y="20.22"/>
+ <line x="10.92" y="20.22"/>
+ <line x="10.65" y="20.22"/>
+ <line x="10.49" y="20.22"/>
+ <line x="10.21" y="20.11"/>
+ <line x="10.09" y="20.11"/>
+ <line x="9.93" y="19.94"/>
+ <line x="9.82" y="19.78"/>
+ <line x="9.66" y="19.62"/>
+ <line x="9.5" y="19.51"/>
+ <line x="9.39" y="19.34"/>
+ <line x="9.22" y="19.06"/>
+ <line x="9.12" y="18.9"/>
+ <line x="9.12" y="18.74"/>
+ <line x="8.94" y="18.47"/>
+ <line x="8.94" y="18.13"/>
+ <line x="8.78" y="17.86"/>
+ <line x="8.78" y="17.53"/>
+ <line x="8.78" y="17.37"/>
+ <line x="8.94" y="17.09"/>
+ <line x="8.94" y="16.76"/>
+ <line x="9.12" y="16.65"/>
+ <line x="9.12" y="16.31"/>
+ <line x="9.22" y="16.15"/>
+ <line x="9.39" y="16.04"/>
+ <line x="9.5" y="15.72"/>
+ <line x="9.66" y="15.55"/>
+ <line x="9.82" y="15.43"/>
+ <line x="9.93" y="15.27"/>
+ <line x="10.09" y="15.27"/>
+ <line x="10.21" y="15.11"/>
+ <line x="10.49" y="15.11"/>
+ <line x="10.65" y="14.94"/>
+ <line x="10.92" y="14.94"/>
+ <line x="17.01" y="14.94"/>
+ <line x="17.3" y="14.94"/>
+ <line x="17.46" y="15.11"/>
+ <line x="17.73" y="15.11"/>
+ <line x="17.89" y="15.27"/>
+ <line x="18" y="15.43"/>
+ <line x="18.27" y="15.55"/>
+ <line x="18.45" y="15.72"/>
+ <line x="18.61" y="16.04"/>
+ <line x="21.96" y="21.42"/>
+ <line x="19.26" y="25.49"/>
+ <line x="19.15" y="25.38"/>
+ <line x="18.18" y="23.58"/>
+ <line x="17.19" y="22.03"/>
+ <line x="16.47" y="20.83"/>
+ <line x="16.2" y="20.38"/>
+ <line x="16.03" y="20.22"/>
+ <line x="15.75" y="20.22"/>
+ <line x="15.32" y="20.22"/>
+ <line x="14.6" y="20.22"/>
+ <line x="13.34" y="20.22"/>
+ <line x="12.19" y="20.22"/>
+ <line x="10.92" y="20.22"/>
+ <line x="10.92" y="20.22"/>
+ <close/>
+ <move x="29.47" y="19.88"/>
+ <line x="29.47" y="19.88"/>
+ <line x="29.37" y="20.06"/>
+ <line x="29.04" y="20.49"/>
+ <line x="28.21" y="21.65"/>
+ <line x="25.57" y="25.71"/>
+ <line x="22.23" y="30.82"/>
+ <line x="18.88" y="35.93"/>
+ <line x="18.72" y="36.21"/>
+ <line x="18.56" y="36.38"/>
+ <line x="18.27" y="36.54"/>
+ <line x="18.11" y="36.65"/>
+ <line x="18" y="36.81"/>
+ <line x="17.68" y="36.81"/>
+ <line x="17.57" y="36.92"/>
+ <line x="17.23" y="36.92"/>
+ <line x="10.97" y="36.92"/>
+ <line x="10.7" y="36.92"/>
+ <line x="10.54" y="36.81"/>
+ <line x="10.27" y="36.81"/>
+ <line x="10.09" y="36.65"/>
+ <line x="10" y="36.65"/>
+ <line x="9.82" y="36.54"/>
+ <line x="9.66" y="36.38"/>
+ <line x="9.55" y="36.21"/>
+ <line x="9.39" y="36.09"/>
+ <line x="9.22" y="35.77"/>
+ <line x="9.12" y="35.66"/>
+ <line x="9.12" y="35.33"/>
+ <line x="8.94" y="35.22"/>
+ <line x="8.94" y="34.89"/>
+ <line x="8.78" y="34.61"/>
+ <line x="8.78" y="34.34"/>
+ <line x="8.78" y="34.18"/>
+ <line x="8.94" y="33.9"/>
+ <line x="8.94" y="33.57"/>
+ <line x="9.12" y="33.46"/>
+ <line x="9.12" y="33.19"/>
+ <line x="9.22" y="32.85"/>
+ <line x="9.39" y="32.74"/>
+ <line x="9.55" y="32.58"/>
+ <line x="9.66" y="32.42"/>
+ <line x="9.82" y="32.31"/>
+ <line x="10" y="32.15"/>
+ <line x="10.09" y="31.97"/>
+ <line x="10.27" y="31.97"/>
+ <line x="10.54" y="31.86"/>
+ <line x="10.7" y="31.86"/>
+ <line x="10.97" y="31.86"/>
+ <line x="12.3" y="31.86"/>
+ <line x="13.45" y="31.97"/>
+ <line x="14.77" y="31.97"/>
+ <line x="15.54" y="31.97"/>
+ <line x="15.97" y="31.86"/>
+ <line x="16.24" y="31.86"/>
+ <line x="16.24" y="31.86"/>
+ <line x="16.42" y="31.7"/>
+ <line x="16.69" y="31.27"/>
+ <line x="17.57" y="30.11"/>
+ <line x="18.72" y="28.19"/>
+ <line x="20.2" y="26.05"/>
+ <line x="23.66" y="20.94"/>
+ <line x="26.9" y="15.83"/>
+ <line x="27.01" y="15.55"/>
+ <line x="27.17" y="15.38"/>
+ <line x="27.44" y="15.22"/>
+ <line x="27.62" y="15.11"/>
+ <line x="27.78" y="14.95"/>
+ <line x="28.05" y="14.95"/>
+ <line x="28.32" y="14.84"/>
+ <line x="28.5" y="14.84"/>
+ <line x="33.7" y="14.84"/>
+ <line x="33.7" y="13.96"/>
+ <line x="33.87" y="13.19"/>
+ <line x="33.87" y="12.92"/>
+ <line x="34.04" y="12.63"/>
+ <line x="34.04" y="12.47"/>
+ <line x="34.04" y="12.31"/>
+ <line x="34.31" y="12.31"/>
+ <line x="34.31" y="12.31"/>
+ <line x="34.47" y="12.31"/>
+ <line x="34.74" y="12.47"/>
+ <line x="35.19" y="12.74"/>
+ <line x="35.62" y="12.92"/>
+ <line x="36.77" y="13.62"/>
+ <line x="37.94" y="14.5"/>
+ <line x="39.25" y="15.38"/>
+ <line x="39.85" y="15.83"/>
+ <line x="40.29" y="16.26"/>
+ <line x="40.73" y="16.54"/>
+ <line x="41.01" y="16.98"/>
+ <line x="41.17" y="17.14"/>
+ <line x="41.17" y="17.14"/>
+ <line x="41.28" y="17.31"/>
+ <line x="41.28" y="17.42"/>
+ <line x="41.28" y="17.58"/>
+ <line x="41.17" y="17.74"/>
+ <line x="41.17" y="17.85"/>
+ <line x="41.01" y="18.03"/>
+ <line x="40.73" y="18.3"/>
+ <line x="40.29" y="18.57"/>
+ <line x="39.58" y="19.18"/>
+ <line x="38.53" y="20.06"/>
+ <line x="37.49" y="20.78"/>
+ <line x="36.5" y="21.48"/>
+ <line x="35.46" y="21.93"/>
+ <line x="35.02" y="22.25"/>
+ <line x="34.74" y="22.36"/>
+ <line x="34.47" y="22.53"/>
+ <line x="34.31" y="22.53"/>
+ <line x="34.04" y="22.53"/>
+ <line x="34.04" y="22.53"/>
+ <line x="34.04" y="22.36"/>
+ <line x="34.04" y="22.36"/>
+ <line x="33.87" y="22.25"/>
+ <line x="33.87" y="21.93"/>
+ <line x="33.87" y="21.81"/>
+ <line x="33.7" y="21.1"/>
+ <line x="33.7" y="19.88"/>
+ <line x="32.44" y="19.88"/>
+ <line x="30.96" y="19.79"/>
+ <line x="30.24" y="19.79"/>
+ <line x="29.81" y="19.88"/>
+ <line x="29.47" y="19.88"/>
+ <line x="29.47" y="19.88"/>
+ <line x="29.47" y="19.88"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b5" strokewidth="inherit" w="50.07">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="43.09" y="47.03"/>
+ <curve x1="45.18" x2="47.43" x3="47.43" y1="49.29" y2="50.55" y3="50.55"/>
+ <curve x1="44.41" x2="44.57" x3="44.96" y1="46.59" y2="41.97" y3="39.61"/>
+ <curve x1="48.14" x2="50.07" x3="50.07" y1="35.44" y2="30.28" y3="24.67"/>
+ <curve x1="50.07" x2="38.87" x3="25.03" y1="11.04" y2="0" y3="0"/>
+ <curve x1="11.25" x2="0" x3="0" y1="0" y2="11.04" y3="24.67"/>
+ <curve x1="0" x2="1.81" x3="4.83" y1="30.11" y2="35.11" y3="39.18"/>
+ <curve x1="1.15" x2="1.37" x3="1.37" y1="42.26" y2="48.84" y3="48.84"/>
+ <curve x1="2.41" x2="3.79" x3="4.78" y1="44.89" y2="44.23" y3="43.73"/>
+ <curve x1="5" x2="5.32" x3="5.66" y1="43.68" y2="43.52" y3="43.41"/>
+ <curve x1="5.49" x2="5.49" x3="5.99" y1="44.78" y2="46.27" y3="47.58"/>
+ <curve x1="7.3" x2="9.22" x3="8.95" y1="50.93" y2="52.42" y3="55"/>
+ <curve x1="8.67" x2="5.99" x3="5.82" y1="57.64" y2="59.62" y3="62.64"/>
+ <curve x1="5.66" x2="7.3" x3="7.85" y1="65.66" y2="67.48" y3="68.13"/>
+ <curve x1="8.34" x2="6.42" x3="7.46" y1="68.85" y2="65.32" y3="62.69"/>
+ <curve x1="8.45" x2="10.54" x3="12.35" y1="60.11" y2="61.1" y3="57.8"/>
+ <curve x1="12.73" x2="13.12" x3="13.39" y1="57.08" y2="56.38" y3="55.66"/>
+ <curve x1="14.11" x2="14.38" x3="14.22" y1="57.86" y2="59.4" y3="61.54"/>
+ <curve x1="14.11" x2="12.84" x3="11.31" y1="64.56" y2="67.42" y3="68.52"/>
+ <curve x1="11.31" x2="16.52" x3="17.78" y1="68.52" y2="66.98" y3="60.93"/>
+ <curve x1="18.83" x2="17.62" x3="18.61" y1="56.27" y2="53.68" y3="50.93"/>
+ <curve x1="19.87" x2="21.57" x3="21.36" y1="52.53" y2="55.05" y3="57.8"/>
+ <curve x1="21.02" x2="17.89" x3="18.88" y1="62.08" y2="67.64" y3="71.6"/>
+ <curve x1="19.87" x2="20.91" x3="20.91" y1="75.55" y2="77.41" y3="77.41"/>
+ <curve x1="20.91" x2="20.48" x3="22.4" y1="77.41" y2="71.87" y3="68.9"/>
+ <curve x1="23.21" x2="24.27" x3="25.26" y1="67.69" y2="66.31" y3="64.89"/>
+ <curve x1="26.68" x2="31.01" x3="32.22" y1="69.4" y2="73.02" y3="74.28"/>
+ <curve x1="33.71" x2="33.37" x3="33.37" y1="75.82" y2="80" y3="80"/>
+ <curve x1="33.37" x2="34.36" x3="34.75" y1="80" y2="78.52" y3="73.9"/>
+ <curve x1="35.13" x2="30.9" x3="30.47" y1="69.28" y2="68.45" y3="61.65"/>
+ <curve x1="30.3" x2="30.74" x3="31.29" y1="59.29" y2="56.97" y3="55"/>
+ <curve x1="32.83" x2="35.08" x3="35.68" y1="58.79" y2="62.19" y3="63.46"/>
+ <curve x1="36.67" x2="36.62" x3="36.62" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="40.07" x2="37.43" x3="37.22" y1="64.67" y2="61.2" y3="55.93"/>
+ <curve x1="37.11" x2="37.43" x3="37.82" y1="53.63" y2="51.43" y3="49.62"/>
+ <curve x1="38.26" x2="38.87" x3="39.63" y1="51.27" y2="53.07" y3="54.13"/>
+ <curve x1="41.39" x2="42.59" x3="42.88" y1="56.59" y2="58.18" y3="60.11"/>
+ <curve x1="43.2" x2="43.47" x3="42.93" y1="62.03" y2="64.94" y3="66.04"/>
+ <curve x1="42.93" x2="45.18" x3="45.02" y1="66.04" y2="64.33" y3="59.12"/>
+ <curve x1="44.84" x2="42.32" x3="42.88" y1="53.9" y2="50.44" y3="48.02"/>
+ <curve x1="42.93" x2="43.04" x3="43.09" y1="47.69" y2="47.42" y3="47.03"/>
+ <close/>
+ <move x="34.97" y="29.66"/>
+ <curve x1="35.57" x2="36.01" x3="36.01" y1="29.66" y2="29.17" y3="28.58"/>
+ <curve x1="36.01" x2="35.57" x3="34.97" y1="27.97" y2="27.47" y3="27.47"/>
+ <curve x1="34.36" x2="33.87" x3="33.87" y1="27.47" y2="27.97" y3="28.58"/>
+ <curve x1="33.87" x2="34.36" x3="34.97" y1="29.17" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="30.03" y="29.66"/>
+ <curve x1="30.64" x2="31.12" x3="31.12" y1="29.66" y2="29.17" y3="28.58"/>
+ <curve x1="31.12" x2="30.64" x3="30.03" y1="27.97" y2="27.47" y3="27.47"/>
+ <curve x1="29.42" x2="28.98" x3="28.98" y1="27.47" y2="27.97" y3="28.58"/>
+ <curve x1="28.98" x2="29.42" x3="30.03" y1="29.17" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="12.95" y="26.65"/>
+ <line x="37.33" y="26.65"/>
+ <curve x1="37.49" x2="37.65" x3="37.65" y1="26.65" y2="26.53" y3="26.37"/>
+ <curve x1="37.65" x2="37.49" x3="37.33" y1="26.15" y2="25.99" y3="25.99"/>
+ <curve x1="37.33" x2="37.33" x3="12.95" y1="25.99" y2="25.99" y3="25.99"/>
+ <curve x1="12.79" x2="12.62" x3="12.62" y1="25.99" y2="26.15" y3="26.37"/>
+ <curve x1="12.62" x2="12.79" x3="12.95" y1="26.53" y2="26.65" y3="26.65"/>
+ <close/>
+ <move x="25.14" y="29.66"/>
+ <curve x1="25.69" x2="26.24" x3="26.24" y1="29.66" y2="29.17" y3="28.58"/>
+ <curve x1="26.24" x2="25.69" x3="25.14" y1="27.97" y2="27.47" y3="27.47"/>
+ <curve x1="24.54" x2="24.04" x3="24.04" y1="27.47" y2="27.97" y3="28.58"/>
+ <curve x1="24.04" x2="24.54" x3="25.14" y1="29.17" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="20.2" y="29.66"/>
+ <curve x1="20.8" x2="21.29" x3="21.29" y1="29.66" y2="29.17" y3="28.58"/>
+ <curve x1="21.29" x2="20.8" x3="20.2" y1="27.97" y2="27.47" y3="27.47"/>
+ <curve x1="19.65" x2="19.1" x3="19.1" y1="27.47" y2="27.97" y3="28.58"/>
+ <curve x1="19.1" x2="19.65" x3="20.2" y1="29.17" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="15.32" y="29.66"/>
+ <curve x1="15.86" x2="16.36" x3="16.36" y1="29.66" y2="29.17" y3="28.58"/>
+ <curve x1="16.36" x2="15.86" x3="15.32" y1="27.97" y2="27.47" y3="27.47"/>
+ <curve x1="14.71" x2="14.22" x3="14.22" y1="27.47" y2="27.97" y3="28.58"/>
+ <curve x1="14.22" x2="14.71" x3="15.32" y1="29.17" y2="29.66" y3="29.66"/>
+ <close/>
+ <move x="15.32" y="22.75"/>
+ <curve x1="14.71" x2="14.22" x3="14.22" y1="22.75" y2="23.24" y3="23.85"/>
+ <curve x1="14.22" x2="14.71" x3="15.32" y1="24.46" y2="24.95" y3="24.95"/>
+ <curve x1="15.86" x2="16.36" x3="16.36" y1="24.95" y2="24.46" y3="23.85"/>
+ <curve x1="16.36" x2="15.86" x3="15.32" y1="23.24" y2="22.75" y3="22.75"/>
+ <close/>
+ <move x="20.2" y="22.75"/>
+ <curve x1="19.65" x2="19.1" x3="19.1" y1="22.75" y2="23.24" y3="23.85"/>
+ <curve x1="19.1" x2="19.65" x3="20.2" y1="24.46" y2="24.95" y3="24.95"/>
+ <curve x1="20.8" x2="21.29" x3="21.29" y1="24.95" y2="24.46" y3="23.85"/>
+ <curve x1="21.29" x2="20.8" x3="20.2" y1="23.24" y2="22.75" y3="22.75"/>
+ <close/>
+ <move x="25.14" y="22.75"/>
+ <curve x1="24.54" x2="24.04" x3="24.04" y1="22.75" y2="23.24" y3="23.85"/>
+ <curve x1="24.04" x2="24.54" x3="25.14" y1="24.46" y2="24.95" y3="24.95"/>
+ <curve x1="25.69" x2="26.24" x3="26.24" y1="24.95" y2="24.46" y3="23.85"/>
+ <curve x1="26.24" x2="25.69" x3="25.14" y1="23.24" y2="22.75" y3="22.75"/>
+ <close/>
+ <move x="30.03" y="22.75"/>
+ <curve x1="29.42" x2="28.98" x3="28.98" y1="22.75" y2="23.24" y3="23.85"/>
+ <curve x1="28.98" x2="29.42" x3="30.03" y1="24.46" y2="24.95" y3="24.95"/>
+ <curve x1="30.64" x2="31.12" x3="31.12" y1="24.95" y2="24.46" y3="23.85"/>
+ <curve x1="31.12" x2="30.64" x3="30.03" y1="23.24" y2="22.75" y3="22.75"/>
+ <close/>
+ <move x="34.97" y="22.75"/>
+ <curve x1="34.36" x2="33.87" x3="33.87" y1="22.75" y2="23.24" y3="23.85"/>
+ <curve x1="33.87" x2="34.36" x3="34.97" y1="24.46" y2="24.95" y3="24.95"/>
+ <curve x1="35.57" x2="36.01" x3="36.01" y1="24.95" y2="24.46" y3="23.85"/>
+ <curve x1="36.01" x2="35.57" x3="34.97" y1="23.24" y2="22.75" y3="22.75"/>
+ <close/>
+ <move x="39.09" y="28.29"/>
+ <curve x1="38.8" x2="38.15" x3="37.27" y1="30.11" y2="31.76" y3="33.29"/>
+ <curve x1="37.27" x2="37.27" x3="39.79" y1="33.29" y2="33.29" y3="38.57"/>
+ <curve x1="39.79" x2="39.79" x3="34.14" y1="38.57" y2="38.57" y3="36.93"/>
+ <curve x1="32.88" x2="31.45" x3="29.92" y1="37.91" y2="38.73" y3="39.28"/>
+ <curve x1="29.92" x2="29.92" x3="28.38" y1="39.28" y2="39.28" y3="44.84"/>
+ <curve x1="28.38" x2="28.38" x3="25.69" y1="44.84" y2="44.84" y3="40.06"/>
+ <curve x1="25.69" x2="25.69" x3="25.41" y1="40.06" y2="40.06" y3="40.06"/>
+ <curve x1="23.82" x2="22.28" x3="20.86" y1="40.06" y2="39.77" y3="39.28"/>
+ <curve x1="20.86" x2="20.86" x3="14.55" y1="39.28" y2="39.28" y3="43.73"/>
+ <curve x1="14.55" x2="14.55" x3="16.74" y1="43.73" y2="43.73" y3="37.03"/>
+ <curve x1="15.37" x2="14.22" x3="13.29" y1="35.88" y2="34.5" y3="32.86"/>
+ <curve x1="13.29" x2="13.29" x3="7.14" y1="32.86" y2="32.86" y3="32.75"/>
+ <curve x1="7.14" x2="7.14" x3="11.85" y1="32.75" y2="32.75" y3="29.17"/>
+ <curve x1="11.58" x2="11.47" x3="11.47" y1="28.13" y2="26.98" y3="25.83"/>
+ <curve x1="11.47" x2="11.53" x3="11.75" y1="24.95" y2="24.07" y3="23.18"/>
+ <curve x1="11.75" x2="11.75" x3="7.03" y1="23.18" y2="23.18" y3="19.55"/>
+ <curve x1="7.03" x2="7.03" x3="12.9" y1="19.55" y2="19.55" y3="19.55"/>
+ <curve x1="13.83" x2="15.21" x3="16.8" y1="17.64" y2="15.99" y3="14.67"/>
+ <curve x1="16.8" x2="16.8" x3="15.81" y1="14.67" y2="14.67" y3="9.12"/>
+ <curve x1="15.81" x2="15.81" x3="19.65" y1="9.12" y2="9.12" y3="12.91"/>
+ <curve x1="21.41" x2="23.34" x3="25.37" y1="12.09" y2="11.65" y3="11.65"/>
+ <curve x1="25.37" x2="25.37" x3="26.13" y1="11.65" y2="11.65" y3="11.65"/>
+ <curve x1="26.13" x2="26.13" x3="29.31" y1="11.65" y2="11.65" y3="7.91"/>
+ <curve x1="29.31" x2="29.31" x3="29.65" y1="7.91" y2="7.91" y3="12.3"/>
+ <curve x1="31.73" x2="33.59" x3="35.13" y1="13.02" y2="14.17" y3="15.72"/>
+ <curve x1="35.13" x2="35.13" x3="39.79" y1="15.72" y2="15.72" y3="14.23"/>
+ <curve x1="39.79" x2="39.79" x3="37.27" y1="14.23" y2="14.23" y3="18.47"/>
+ <curve x1="38.32" x2="39.03" x3="39.25" y1="20.27" y2="22.3" y3="24.5"/>
+ <curve x1="39.25" x2="39.25" x3="43.91" y1="24.5" y2="24.5" y3="26.42"/>
+ <curve x1="43.91" x2="43.91" x3="39.09" y1="26.42" y2="26.42" y3="28.29"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.65" name="threat b6" strokewidth="inherit" w="40.46">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="34.82" y="38.01"/>
+ <curve x1="36.51" x2="38.33" x3="38.33" y1="39.83" y2="40.85" y3="40.85"/>
+ <curve x1="35.89" x2="36.02" x3="36.33" y1="37.65" y2="33.92" y3="32.01"/>
+ <curve x1="38.9" x2="40.46" x3="40.46" y1="28.64" y2="24.47" y3="19.94"/>
+ <curve x1="40.46" x2="31.41" x3="20.23" y1="8.92" y2="0" y3="0"/>
+ <curve x1="9.09" x2="0" x3="0" y1="0" y2="8.92" y3="19.94"/>
+ <curve x1="0" x2="1.46" x3="3.9" y1="24.33" y2="28.37" y3="31.66"/>
+ <curve x1="0.93" x2="1.11" x3="1.11" y1="34.15" y2="39.47" y3="39.47"/>
+ <curve x1="1.95" x2="3.06" x3="3.86" y1="36.28" y2="35.74" y3="35.34"/>
+ <curve x1="4.04" x2="4.3" x3="4.57" y1="35.3" y2="35.17" y3="35.08"/>
+ <curve x1="4.44" x2="4.44" x3="4.84" y1="36.19" y2="37.39" y3="38.45"/>
+ <curve x1="5.9" x2="7.45" x3="7.23" y1="41.16" y2="42.36" y3="44.45"/>
+ <curve x1="7.01" x2="4.84" x3="4.7" y1="46.58" y2="48.18" y3="50.62"/>
+ <curve x1="4.57" x2="5.9" x3="6.34" y1="53.06" y2="54.53" y3="55.06"/>
+ <curve x1="6.74" x2="5.19" x3="6.03" y1="55.64" y2="52.79" y3="50.66"/>
+ <curve x1="6.83" x2="8.52" x3="9.98" y1="48.58" y2="49.38" y3="46.71"/>
+ <curve x1="10.29" x2="10.6" x3="10.82" y1="46.13" y2="45.56" y3="44.98"/>
+ <curve x1="11.4" x2="11.62" x3="11.49" y1="46.76" y2="48" y3="49.73"/>
+ <curve x1="11.4" x2="10.38" x3="9.14" y1="52.17" y2="54.48" y3="55.37"/>
+ <curve x1="9.14" x2="13.35" x3="14.37" y1="55.37" y2="54.13" y3="49.24"/>
+ <curve x1="15.22" x2="14.24" x3="15.04" y1="45.47" y2="43.38" y3="41.16"/>
+ <curve x1="16.06" x2="17.43" x3="17.26" y1="42.45" y2="44.49" y3="46.71"/>
+ <curve x1="16.99" x2="14.46" x3="15.26" y1="50.17" y2="54.66" y3="57.86"/>
+ <curve x1="16.06" x2="16.9" x3="16.9" y1="61.05" y2="62.56" y3="62.56"/>
+ <curve x1="16.9" x2="16.55" x3="18.1" y1="62.56" y2="58.08" y3="55.68"/>
+ <curve x1="18.76" x2="19.61" x3="20.41" y1="54.7" y2="53.59" y3="52.44"/>
+ <curve x1="21.56" x2="25.06" x3="26.04" y1="56.08" y2="59.01" y3="60.03"/>
+ <curve x1="27.24" x2="26.97" x3="26.97" y1="61.27" y2="64.65" y3="64.65"/>
+ <curve x1="26.97" x2="27.77" x3="28.08" y1="64.65" y2="63.45" y3="59.72"/>
+ <curve x1="28.39" x2="24.97" x3="24.62" y1="55.99" y2="55.32" y3="49.82"/>
+ <curve x1="24.49" x2="24.84" x3="25.29" y1="47.91" y2="46.04" y3="44.45"/>
+ <curve x1="26.53" x2="28.35" x3="28.83" y1="47.51" y2="50.26" y3="51.28"/>
+ <curve x1="29.63" x2="29.59" x3="29.59" y1="52.84" y2="56.79" y3="56.79"/>
+ <curve x1="32.38" x2="30.25" x3="30.08" y1="52.26" y2="49.46" y3="45.2"/>
+ <curve x1="29.99" x2="30.25" x3="30.56" y1="43.34" y2="41.56" y3="40.1"/>
+ <curve x1="30.92" x2="31.41" x3="32.03" y1="41.43" y2="42.89" y3="43.74"/>
+ <curve x1="33.45" x2="34.42" x3="34.65" y1="45.73" y2="47.02" y3="48.58"/>
+ <curve x1="34.91" x2="35.13" x3="34.69" y1="50.13" y2="52.48" y3="53.37"/>
+ <curve x1="34.69" x2="36.51" x3="36.38" y1="53.37" y2="51.99" y3="47.78"/>
+ <curve x1="36.24" x2="34.2" x3="34.65" y1="43.56" y2="40.76" y3="38.81"/>
+ <curve x1="34.69" x2="34.78" x3="34.82" y1="38.54" y2="38.32" y3="38.01"/>
+ <close/>
+ <move x="19.88" y="20.29"/>
+ <curve x1="16.77" x2="14.24" x3="14.24" y1="20.51" y2="22.87" y3="25.71"/>
+ <curve x1="14.24" x2="16.77" x3="19.88" y1="28.59" y2="30.86" y3="31.12"/>
+ <curve x1="19.88" x2="19.88" x3="19.88" y1="34.1" y2="34.1" y3="34.1"/>
+ <curve x1="16.64" x2="14.02" x3="12.69" y1="33.17" y2="31.52" y3="28.86"/>
+ <curve x1="9.36" x2="9.36" x3="9.36" y1="30.1" y2="30.1" y3="30.1"/>
+ <curve x1="9.27" x2="9.14" x3="9.05" y1="30.1" y2="30.24" y3="30.24"/>
+ <curve x1="8.7" x2="8.3" x3="8.08" y1="30.24" y2="29.97" y3="29.7"/>
+ <curve x1="7.85" x2="8.08" x3="8.7" y1="29.26" y2="28.77" y3="28.55"/>
+ <curve x1="12.02" x2="12.02" x3="12.02" y1="27.22" y2="27.22" y3="27.22"/>
+ <curve x1="11.89" x2="11.67" x3="11.67" y1="26.51" y2="25.66" y3="24.77"/>
+ <curve x1="8.08" x2="8.08" x3="8.08" y1="24.77" y2="24.77" y3="24.77"/>
+ <curve x1="7.5" x2="7.1" x3="7.1" y1="24.77" y2="24.29" y3="23.89"/>
+ <curve x1="7.1" x2="7.5" x3="8.08" y1="23.35" y2="23.04" y3="23.04"/>
+ <curve x1="11.67" x2="11.67" x3="11.67" y1="23.04" y2="23.04" y3="23.04"/>
+ <curve x1="11.67" x2="11.89" x3="12.02" y1="22.2" y2="21.36" y3="20.51"/>
+ <curve x1="8.7" x2="8.7" x3="8.7" y1="19.27" y2="19.27" y3="19.27"/>
+ <curve x1="8.16" x2="7.85" x3="8.08" y1="19.09" y2="18.56" y3="18.16"/>
+ <curve x1="8.3" x2="8.83" x3="9.36" y1="17.72" y2="17.58" y3="17.72"/>
+ <curve x1="12.56" x2="12.56" x3="12.56" y1="18.87" y2="18.87" y3="18.87"/>
+ <curve x1="12.78" x2="13.04" x3="13.49" y1="18.25" y2="17.63" y3="17.05"/>
+ <curve x1="13.67" x2="13.89" x3="13.98" y1="17.14" y2="17.23" y3="17.32"/>
+ <curve x1="15.57" x2="17.57" x3="19.88" y1="18.11" y2="18.56" y3="18.56"/>
+ <line x="19.88" y="20.29"/>
+ <close/>
+ <move x="14.51" y="15.89"/>
+ <curve x1="14.29" x2="14.24" x3="14.15" y1="15.85" y2="15.72" y3="15.67"/>
+ <curve x1="14.6" x2="15.18" x3="15.84" y1="15.01" y2="14.43" y3="13.94"/>
+ <curve x1="13.27" x2="13.27" x3="13.27" y1="11.28" y2="11.28" y3="11.28"/>
+ <curve x1="13.18" x2="13.09" x3="13" y1="11.37" y2="11.37" y3="11.37"/>
+ <curve x1="12.03" x2="11.36" x3="11.36" y1="11.37" y2="10.7" y3="9.95"/>
+ <curve x1="11.36" x2="12.03" x3="13" y1="9.1" y2="8.52" y3="8.52"/>
+ <curve x1="13.84" x2="14.6" x3="14.6" y1="8.52" y2="9.1" y3="9.95"/>
+ <curve x1="14.6" x2="14.51" x3="14.38" y1="10.17" y2="10.34" y3="10.52"/>
+ <curve x1="17.08" x2="17.08" x3="17.08" y1="13.14" y2="13.14" y3="13.14"/>
+ <curve x1="18.1" x2="19.26" x3="20.37" y1="12.7" y2="12.48" y3="12.48"/>
+ <curve x1="21.52" x2="22.58" x3="23.51" y1="12.48" y2="12.7" y3="13.1"/>
+ <curve x1="26.04" x2="26.04" x3="26.04" y1="10.52" y2="10.52" y3="10.52"/>
+ <curve x1="25.91" x2="25.91" x3="25.91" y1="10.34" y2="10.17" y3="9.95"/>
+ <curve x1="25.91" x2="26.62" x3="27.51" y1="9.1" y2="8.52" y3="8.52"/>
+ <curve x1="28.39" x2="29.1" x3="29.1" y1="8.52" y2="9.1" y3="9.95"/>
+ <curve x1="29.1" x2="28.39" x3="27.51" y1="10.7" y2="11.37" y3="11.37"/>
+ <curve x1="27.42" x2="27.37" x3="27.29" y1="11.37" y2="11.37" y3="11.28"/>
+ <curve x1="24.71" x2="24.71" x3="24.71" y1="13.85" y2="13.85" y3="13.85"/>
+ <curve x1="25.47" x2="26.13" x3="26.62" y1="14.3" y2="14.87" y3="15.67"/>
+ <curve x1="26.49" x2="26.44" x3="26.18" y1="15.72" y2="15.85" y3="15.89"/>
+ <curve x1="24.71" x2="22.63" x3="20.37" y1="16.56" y2="17.05" y3="17.05"/>
+ <curve x1="18.1" x2="16.06" x3="14.51" y1="17.05" y2="16.56" y3="15.89"/>
+ <close/>
+ <move x="32.34" y="24.77"/>
+ <curve x1="29.14" x2="29.14" x3="29.14" y1="24.77" y2="24.77" y3="24.77"/>
+ <curve x1="29.14" x2="29.01" x3="28.74" y1="25.66" y2="26.51" y3="27.35"/>
+ <curve x1="31.89" x2="31.89" x3="31.89" y1="28.55" y2="28.55" y3="28.55"/>
+ <curve x1="32.34" x2="32.56" x3="32.34" y1="28.77" y2="29.26" y3="29.7"/>
+ <curve x1="32.25" x2="31.89" x3="31.54" y1="29.97" y2="30.24" y3="30.24"/>
+ <curve x1="31.49" x2="31.27" x3="31.18" y1="30.24" y2="30.1" y3="30.1"/>
+ <curve x1="28.17" x2="28.17" x3="28.17" y1="28.9" y2="28.9" y3="28.9"/>
+ <curve x1="26.84" x2="24.35" x3="21.29" y1="31.52" y2="33.21" y3="34.1"/>
+ <curve x1="21.29" x2="21.29" x3="21.29" y1="31.12" y2="31.12" y3="31.12"/>
+ <curve x1="24.26" x2="26.61" x3="26.61" y1="30.9" y2="28.55" y3="25.71"/>
+ <curve x1="26.61" x2="24.26" x3="21.29" y1="22.91" y2="20.56" y3="20.29"/>
+ <curve x1="21.29" x2="21.29" x3="21.29" y1="18.56" y2="18.56" y3="18.56"/>
+ <curve x1="23.51" x2="25.37" x3="26.97" y1="18.56" y2="18.11" y3="17.32"/>
+ <curve x1="27.06" x2="27.23" x3="27.46" y1="17.23" y2="17.14" y3="17.05"/>
+ <curve x1="27.81" x2="28.08" x3="28.21" y1="17.63" y2="18.25" y3="18.83"/>
+ <curve x1="31.18" x2="31.18" x3="31.18" y1="17.72" y2="17.72" y3="17.72"/>
+ <curve x1="31.63" x2="32.16" x3="32.34" y1="17.58" y2="17.72" y3="18.16"/>
+ <curve x1="32.56" x2="32.34" x3="31.89" y1="18.56" y2="19.09" y3="19.27"/>
+ <curve x1="28.79" x2="28.79" x3="28.79" y1="20.51" y2="20.51" y3="20.51"/>
+ <curve x1="29.01" x2="29.14" x3="29.14" y1="21.31" y2="22.16" y3="23.04"/>
+ <curve x1="32.47" x2="32.47" x3="32.47" y1="23.04" y2="23.04" y3="23.04"/>
+ <curve x1="32.87" x2="33.36" x3="33.36" y1="23.04" y2="23.35" y3="23.89"/>
+ <curve x1="33.27" x2="32.87" x3="32.34" y1="24.29" y2="24.77" y3="24.77"/>
+ <close/>
+ <move x="19.82" y="26.28"/>
+ <curve x1="19.91" x2="20.09" x3="20.27" y1="26.42" y2="26.46" y3="26.46"/>
+ <curve x1="20.45" x2="20.62" x3="20.71" y1="26.46" y2="26.42" y3="26.33"/>
+ <line x="20.9" y="26.42"/>
+ <curve x1="20.68" x2="20.62" x3="20.67" y1="26.73" y2="26.86" y3="27.17"/>
+ <curve x1="20.8" x2="22.97" x3="23.91" y1="28.5" y2="29.04" y3="27.97"/>
+ <line x="24.13" y="28.06"/>
+ <curve x1="23.2" x2="21.2" x3="20.27" y1="29.13" y2="29.08" y3="28.02"/>
+ <curve x1="19.82" x2="19.11" x3="18.27" y1="28.55" y2="28.86" y3="28.86"/>
+ <curve x1="17.52" x2="16.81" x3="16.32" y1="28.86" y2="28.55" y3="28.06"/>
+ <line x="16.6" y="27.93"/>
+ <curve x1="16.95" x2="17.47" x3="18.05" y1="28.33" y2="28.55" y3="28.55"/>
+ <curve x1="18.98" x2="19.82" x3="19.87" y1="28.55" y2="27.93" y3="27.17"/>
+ <curve x1="19.87" x2="19.82" x3="19.65" y1="26.91" y2="26.64" y3="26.37"/>
+ <line x="19.82" y="26.28"/>
+ <close/>
+ <move x="22.35" y="25.58"/>
+ <curve x1="22.49" x2="22.62" x3="22.71" y1="25.58" y2="25.58" y3="25.62"/>
+ <curve x1="22.71" x2="22.27" x3="21.47" y1="26.55" y2="27.35" y3="27.71"/>
+ <curve x1="21.42" x2="21.38" x3="21.29" y1="27.62" y2="27.53" y3="27.4"/>
+ <curve x1="22" x2="22.44" x3="22.35" y1="27.13" y2="26.38" y3="25.58"/>
+ <close/>
+ <move x="18.1" y="25.58"/>
+ <curve x1="18.06" x2="18.5" x3="19.17" y1="26.38" y2="27.09" y3="27.4"/>
+ <curve x1="19.12" x2="19.08" x3="18.99" y1="27.53" y2="27.62" y3="27.71"/>
+ <curve x1="18.24" x2="17.75" x3="17.79" y1="27.35" y2="26.55" y3="25.67"/>
+ <curve x1="17.88" x2="18.01" x3="18.1" y1="25.58" y2="25.58" y3="25.58"/>
+ <close/>
+ <move x="20.24" y="23.55"/>
+ <curve x1="20.86" x2="21.47" x3="22" y1="23.55" y2="23.67" y3="23.89"/>
+ <curve x1="21.95" x2="21.87" x3="21.73" y1="24.03" y2="24.06" y3="24.15"/>
+ <curve x1="20.89" x2="19.6" x3="18.67" y1="23.75" y2="23.75" y3="24.15"/>
+ <curve x1="18.58" x2="18.54" x3="18.45" y1="24.11" y2="24.03" y3="23.89"/>
+ <curve x1="19.01" x2="19.63" x3="20.24" y1="23.67" y2="23.55" y3="23.55"/>
+ <close/>
+ <move x="20.71" y="22.03"/>
+ <curve x1="22.18" x2="23.02" x3="22.49" y1="22.16" y2="23.58" y3="24.82"/>
+ <curve x1="24" x2="24.84" x3="24.22" y1="24.96" y2="26.51" y3="27.71"/>
+ <line x="23.95" y="27.62"/>
+ <curve x1="24.35" x2="23.64" x3="22.49" y1="26.64" y2="25.49" y3="25.49"/>
+ <curve x1="21.91" x2="21.47" x3="21.16" y1="25.53" y2="25.8" y3="26.16"/>
+ <line x="21.02" y="26.07"/>
+ <curve x1="21.07" x2="21.07" x3="21.07" y1="26.02" y2="25.93" y3="25.89"/>
+ <curve x1="21.07" x2="20.89" x3="20.58" y1="25.62" y2="25.4" y3="25.36"/>
+ <line x="20.58" y="25.22"/>
+ <curve x1="22.49" x2="22.62" x3="20.71" y1="25.09" y2="22.43" y3="22.25"/>
+ <line x="20.71" y="22.03"/>
+ <close/>
+ <move x="19.78" y="22.03"/>
+ <line x="19.78" y="22.25"/>
+ <curve x1="17.83" x2="17.96" x3="19.87" y1="22.38" y2="25.09" y3="25.22"/>
+ <line x="19.87" y="25.36"/>
+ <curve x1="19.65" x2="19.43" x3="19.43" y1="25.4" y2="25.62" y3="25.89"/>
+ <curve x1="19.43" x2="19.43" x3="19.47" y1="25.93" y2="25.98" y3="26.07"/>
+ <line x="19.34" y="26.16"/>
+ <curve x1="19.2" x2="19.07" x3="18.89" y1="26.02" y2="25.89" y3="25.76"/>
+ <curve x1="18.89" x2="18.85" x3="18.8" y1="25.76" y2="25.76" y3="25.71"/>
+ <curve x1="18.58" x2="18.27" x3="18.01" y1="25.62" y2="25.53" y3="25.53"/>
+ <curve x1="16.94" x2="15.97" x3="16.54" y1="25.53" y2="26.69" y3="27.62"/>
+ <line x="16.28" y="27.71"/>
+ <curve x1="15.61" x2="16.41" x3="17.96" y1="26.51" y2="24.96" y3="24.82"/>
+ <curve x1="17.43" x2="18.32" x3="19.78" y1="23.62" y2="22.16" y3="22.03"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b7" strokewidth="inherit" w="50.07">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="43.09" y="47.03"/>
+ <curve x1="45.18" x2="47.43" x3="47.43" y1="49.29" y2="50.55" y3="50.55"/>
+ <curve x1="44.41" x2="44.57" x3="44.96" y1="46.59" y2="41.97" y3="39.61"/>
+ <curve x1="48.14" x2="50.07" x3="50.07" y1="35.44" y2="30.28" y3="24.67"/>
+ <curve x1="50.07" x2="38.87" x3="25.03" y1="11.04" y2="0" y3="0"/>
+ <curve x1="11.25" x2="0" x3="0" y1="0" y2="11.04" y3="24.67"/>
+ <curve x1="0" x2="1.81" x3="4.83" y1="30.11" y2="35.11" y3="39.18"/>
+ <curve x1="1.15" x2="1.37" x3="1.37" y1="42.26" y2="48.84" y3="48.84"/>
+ <curve x1="2.41" x2="3.79" x3="4.78" y1="44.89" y2="44.23" y3="43.73"/>
+ <curve x1="5" x2="5.32" x3="5.66" y1="43.68" y2="43.52" y3="43.41"/>
+ <curve x1="5.43" x2="5.49" x3="5.99" y1="44.78" y2="46.27" y3="47.58"/>
+ <curve x1="7.3" x2="9.22" x3="8.95" y1="50.93" y2="52.42" y3="55"/>
+ <curve x1="8.67" x2="5.99" x3="5.82" y1="57.64" y2="59.62" y3="62.64"/>
+ <curve x1="5.66" x2="7.3" x3="7.8" y1="65.66" y2="67.48" y3="68.13"/>
+ <curve x1="8.34" x2="6.42" x3="7.41" y1="68.85" y2="65.32" y3="62.69"/>
+ <curve x1="8.45" x2="10.54" x3="12.35" y1="60.11" y2="61.1" y3="57.8"/>
+ <curve x1="12.73" x2="13.07" x3="13.39" y1="57.08" y2="56.38" y3="55.66"/>
+ <curve x1="14.06" x2="14.38" x3="14.22" y1="57.86" y2="59.4" y3="61.54"/>
+ <curve x1="14.11" x2="12.84" x3="11.31" y1="64.56" y2="67.42" y3="68.52"/>
+ <curve x1="11.31" x2="16.52" x3="17.78" y1="68.52" y2="66.98" y3="60.93"/>
+ <curve x1="18.77" x2="17.62" x3="18.61" y1="56.27" y2="53.68" y3="50.93"/>
+ <curve x1="19.87" x2="21.57" x3="21.36" y1="52.53" y2="55.05" y3="57.8"/>
+ <curve x1="21.02" x2="17.89" x3="18.88" y1="62.08" y2="67.64" y3="71.6"/>
+ <curve x1="19.87" x2="20.91" x3="20.91" y1="75.55" y2="77.41" y3="77.41"/>
+ <curve x1="20.91" x2="20.48" x3="22.4" y1="77.41" y2="71.87" y3="68.9"/>
+ <curve x1="23.21" x2="24.27" x3="25.26" y1="67.69" y2="66.31" y3="64.89"/>
+ <curve x1="26.62" x2="31.01" x3="32.22" y1="69.4" y2="73.02" y3="74.28"/>
+ <curve x1="33.71" x2="33.37" x3="33.37" y1="75.82" y2="80" y3="80"/>
+ <curve x1="33.37" x2="34.36" x3="34.75" y1="80" y2="78.52" y3="73.9"/>
+ <curve x1="35.13" x2="30.9" x3="30.47" y1="69.28" y2="68.45" y3="61.65"/>
+ <curve x1="30.3" x2="30.69" x3="31.29" y1="59.29" y2="56.97" y3="55"/>
+ <curve x1="32.83" x2="35.08" x3="35.68" y1="58.79" y2="62.19" y3="63.46"/>
+ <curve x1="36.67" x2="36.62" x3="36.62" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="40.07" x2="37.43" x3="37.22" y1="64.67" y2="61.2" y3="55.93"/>
+ <curve x1="37.11" x2="37.43" x3="37.82" y1="53.63" y2="51.43" y3="49.62"/>
+ <curve x1="38.26" x2="38.87" x3="39.63" y1="51.27" y2="53.07" y3="54.13"/>
+ <curve x1="41.39" x2="42.59" x3="42.88" y1="56.59" y2="58.18" y3="60.11"/>
+ <curve x1="43.15" x2="43.47" x3="42.93" y1="62.03" y2="64.94" y3="66.04"/>
+ <curve x1="42.93" x2="45.18" x3="45.02" y1="66.04" y2="64.33" y3="59.12"/>
+ <curve x1="44.84" x2="42.32" x3="42.88" y1="53.9" y2="50.44" y3="48.02"/>
+ <curve x1="42.93" x2="43.04" x3="43.09" y1="47.69" y2="47.42" y3="47.03"/>
+ <close/>
+ <move x="39.96" y="30.88"/>
+ <line x="35.79" y="30.88"/>
+ <curve x1="35.79" x2="35.57" x3="35.18" y1="32.14" y2="33.35" y3="34.5"/>
+ <curve x1="35.18" x2="35.18" x3="39.35" y1="34.5" y2="34.5" y3="36.15"/>
+ <curve x1="39.96" x2="40.23" x3="39.96" y1="36.48" y2="37.2" y3="37.81"/>
+ <curve x1="39.85" x2="39.35" x3="38.86" y1="38.13" y2="38.46" y3="38.46"/>
+ <curve x1="38.81" x2="38.54" x3="38.43" y1="38.46" y2="38.4" y3="38.4"/>
+ <curve x1="38.43" x2="38.43" x3="34.48" y1="38.4" y2="38.4" y3="36.75"/>
+ <curve x1="32.66" x2="29.42" x3="25.47" y1="40.38" y2="42.69" y3="43.96"/>
+ <curve x1="25.47" x2="25.47" x3="25.47" y1="43.96" y2="43.96" y3="22.36"/>
+ <curve x1="28.38" x2="30.85" x3="32.88" y1="22.36" y2="21.65" y3="20.61"/>
+ <curve x1="33.04" x2="33.27" x3="33.49" y1="20.45" y2="20.38" y3="20.22"/>
+ <curve x1="33.98" x2="34.37" x3="34.58" y1="21.04" y2="21.87" y3="22.7"/>
+ <curve x1="34.58" x2="34.58" x3="38.43" y1="22.7" y2="22.7" y3="21.21"/>
+ <curve x1="39.03" x2="39.74" x3="39.96" y1="20.93" y2="21.21" y3="21.76"/>
+ <curve x1="40.23" x2="39.96" x3="39.35" y1="22.36" y2="23.02" y3="23.29"/>
+ <curve x1="39.35" x2="39.35" x3="35.3" y1="23.29" y2="23.29" y3="25.06"/>
+ <curve x1="35.57" x2="35.79" x3="35.79" y1="26.1" y2="27.25" y3="28.58"/>
+ <curve x1="35.79" x2="35.79" x3="40.07" y1="28.58" y2="28.58" y3="28.58"/>
+ <curve x1="40.68" x2="41.28" x3="41.28" y1="28.58" y2="29.01" y3="29.73"/>
+ <curve x1="41.17" x2="40.68" x3="39.96" y1="30.33" y2="30.88" y3="30.88"/>
+ <close/>
+ <move x="32.89" y="19.12"/>
+ <curve x1="32.78" x2="32.66" x3="32.44" y1="19.23" y2="19.34" y3="19.45"/>
+ <curve x1="30.52" x2="28" x3="25.14" y1="20.44" y2="21.1" y3="21.1"/>
+ <curve x1="22.39" x2="19.82" x3="17.95" y1="21.1" y2="20.44" y3="19.45"/>
+ <curve x1="17.73" x2="17.57" x3="17.46" y1="19.34" y2="19.23" y3="19.12"/>
+ <curve x1="18.06" x2="18.72" x3="19.6" y1="18.13" y2="17.31" y3="16.6"/>
+ <curve x1="19.6" x2="19.6" x3="16.42" y1="16.6" y2="16.6" y3="12.75"/>
+ <curve x1="16.3" x2="16.19" x3="16.08" y1="12.86" y2="12.86" y3="12.86"/>
+ <curve x1="14.88" x2="14.05" x3="14.05" y1="12.86" y2="11.92" y3="10.83"/>
+ <curve x1="14.05" x2="14.88" x3="16.08" y1="9.67" y2="8.79" y3="8.79"/>
+ <curve x1="17.12" x2="18.06" x3="18.06" y1="8.79" y2="9.67" y3="10.83"/>
+ <curve x1="18.06" x2="17.95" x3="17.79" y1="11.1" y2="11.42" y3="11.71"/>
+ <curve x1="17.79" x2="17.79" x3="21.08" y1="11.71" y2="11.71" y3="15.49"/>
+ <curve x1="22.39" x2="23.77" x3="25.14" y1="14.78" y2="14.45" y3="14.45"/>
+ <curve x1="26.56" x2="27.89" x3="29.04" y1="14.45" y2="14.78" y3="15.38"/>
+ <curve x1="29.04" x2="29.04" x3="32.17" y1="15.38" y2="15.38" y3="11.71"/>
+ <curve x1="32.06" x2="32.06" x3="32.06" y1="11.42" y2="11.1" y3="10.83"/>
+ <curve x1="32.06" x2="32.89" x3="34.04" y1="9.67" y2="8.79" y3="8.79"/>
+ <curve x1="35.08" x2="36" x3="36" y1="8.79" y2="9.67" y3="10.83"/>
+ <curve x1="36" x2="35.08" x3="34.04" y1="11.92" y2="12.86" y3="12.86"/>
+ <curve x1="33.98" x2="33.81" x3="33.7" y1="12.86" y2="12.86" y3="12.75"/>
+ <curve x1="33.7" x2="33.7" x3="30.52" y1="12.75" y2="12.75" y3="16.48"/>
+ <curve x1="31.51" x2="32.33" x3="32.89" y1="17.2" y2="18.02" y3="19.12"/>
+ <close/>
+ <move x="16.69" y="20.22"/>
+ <curve x1="16.91" x2="17.12" x3="17.3" y1="20.38" y2="20.45" y3="20.61"/>
+ <curve x1="19.26" x2="21.79" x3="24.6" y1="21.65" y2="22.36" y3="22.36"/>
+ <curve x1="24.6" x2="24.6" x3="24.6" y1="22.36" y2="22.36" y3="43.96"/>
+ <curve x1="20.59" x2="17.35" x3="15.7" y1="42.58" y2="40.38" y3="36.64"/>
+ <curve x1="15.7" x2="15.7" x3="11.53" y1="36.64" y2="36.64" y3="38.4"/>
+ <curve x1="11.42" x2="11.31" x3="11.2" y1="38.4" y2="38.46" y3="38.46"/>
+ <curve x1="10.76" x2="10.27" x3="10" y1="38.46" y2="38.13" y3="37.81"/>
+ <curve x1="9.77" x2="10" x3="10.76" y1="37.2" y2="36.48" y3="36.15"/>
+ <curve x1="10.76" x2="10.76" x3="14.87" y1="36.15" y2="36.15" y3="34.39"/>
+ <curve x1="14.66" x2="14.38" x3="14.38" y1="33.35" y2="32.14" y3="30.88"/>
+ <curve x1="14.38" x2="14.38" x3="10" y1="30.88" y2="30.88" y3="30.88"/>
+ <curve x1="9.28" x2="8.78" x3="8.78" y1="30.88" y2="30.33" y3="29.73"/>
+ <curve x1="8.78" x2="9.28" x3="10" y1="29.01" y2="28.58" y3="28.58"/>
+ <curve x1="10" x2="10" x3="14.38" y1="28.58" y2="28.58" y3="28.58"/>
+ <curve x1="14.38" x2="14.66" x3="14.87" y1="27.36" y2="26.21" y3="25.06"/>
+ <curve x1="14.87" x2="14.87" x3="10.76" y1="25.06" y2="25.06" y3="23.29"/>
+ <curve x1="10.16" x2="9.77" x3="10" y1="23.02" y2="22.36" y3="21.76"/>
+ <curve x1="10.27" x2="10.97" x3="11.53" y1="21.21" y2="20.93" y3="21.21"/>
+ <curve x1="11.53" x2="11.53" x3="15.48" y1="21.21" y2="21.21" y3="22.8"/>
+ <curve x1="15.81" x2="16.2" x3="16.69" y1="21.87" y2="21.04" y3="20.22"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat b8" strokewidth="inherit" w="49.19">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.54" y="36.48"/>
+ <curve x1="43.04" x2="43.04" x3="42.54" y1="36.93" y2="37.74" y3="38.3"/>
+ <curve x1="42.54" x2="42.49" x3="41.88" y1="38.3" y2="38.35" y3="38.91"/>
+ <curve x1="41.39" x2="40.62" x3="40.13" y1="39.45" y2="39.45" y3="38.91"/>
+ <curve x1="40.13" x2="40.13" x3="34.58" y1="38.91" y2="38.91" y3="33.41"/>
+ <curve x1="34.42" x2="34.31" x3="34.14" y1="33.24" y2="33.13" y3="32.97"/>
+ <curve x1="33.93" x2="33.66" x3="33.37" y1="33.13" y2="33.3" y3="33.41"/>
+ <curve x1="33.32" x2="33.32" x3="33.32" y1="33.62" y2="33.91" y3="34.23"/>
+ <curve x1="33.32" x2="33.48" x3="33.7" y1="35.06" y2="35.66" y3="35.99"/>
+ <curve x1="34.04" x2="34.31" x3="34.58" y1="35.76" y2="35.44" y3="35.22"/>
+ <curve x1="35.13" x2="35.62" x3="36.07" y1="35.76" y2="36.26" y3="36.7"/>
+ <curve x1="33.21" x2="29.26" x3="24.87" y1="39.61" y2="41.32" y3="41.32"/>
+ <curve x1="16.03" x2="8.78" x3="8.78" y1="41.32" y2="34.07" y3="25.06"/>
+ <curve x1="8.78" x2="10.49" x3="13.51" y1="20.77" y2="16.71" y3="13.58"/>
+ <curve x1="16.58" x2="20.59" x3="24.87" y1="10.54" y2="8.79" y3="8.79"/>
+ <curve x1="33.7" x2="40.89" x3="40.89" y1="8.79" y2="16.1" y3="25.06"/>
+ <curve x1="40.89" x2="40.24" x3="38.98" y1="27.92" y2="30.55" y3="32.81"/>
+ <curve x1="39.85" x2="40.96" x3="42.54" y1="33.68" y2="34.88" y3="36.48"/>
+ <close/>
+ <move x="17.51" y="13.96"/>
+ <curve x1="16.8" x2="16.47" x3="16.47" y1="13.96" y2="14.62" y3="15.99"/>
+ <curve x1="16.47" x2="16.8" x3="17.51" y1="17.36" y2="18.08" y3="18.08"/>
+ <curve x1="18.18" x2="18.5" x3="18.5" y1="18.08" y2="17.36" y3="15.99"/>
+ <curve x1="18.5" x2="18.18" x3="17.51" y1="14.62" y2="13.96" y3="13.96"/>
+ <close/>
+ <move x="10.92" y="25.06"/>
+ <curve x1="10.92" x2="10.97" x3="11.15" y1="25.83" y2="26.43" y3="27.09"/>
+ <curve x1="11.15" x2="11.26" x3="11.31" y1="27.14" y2="27.14" y3="27.14"/>
+ <curve x1="12.02" x2="12.35" x3="12.35" y1="27.14" y2="26.43" y3="25.06"/>
+ <curve x1="12.35" x2="12.02" x3="11.31" y1="23.74" y2="23.02" y3="23.02"/>
+ <curve x1="11.26" x2="11.15" x3="11.15" y1="23.02" y2="23.02" y3="23.08"/>
+ <curve x1="10.97" x2="10.92" x3="10.92" y1="23.74" y2="24.39" y3="25.06"/>
+ <close/>
+ <move x="16.31" y="34.23"/>
+ <curve x1="16.31" x2="16.63" x3="17.35" y1="35.55" y2="36.26" y3="36.26"/>
+ <curve x1="18" x2="18.34" x3="18.34" y1="36.26" y2="35.55" y3="34.23"/>
+ <curve x1="18.34" x2="18" x3="17.35" y1="32.81" y2="32.14" y3="32.14"/>
+ <curve x1="16.63" x2="16.31" x3="16.31" y1="32.14" y2="32.81" y3="34.23"/>
+ <close/>
+ <move x="33.82" y="30.06"/>
+ <curve x1="35.85" x2="35.85" x3="33.82" y1="27.97" y2="24.61" y3="22.52"/>
+ <curve x1="32.78" x2="31.45" x3="30.03" y1="21.48" y2="20.94" y3="20.94"/>
+ <curve x1="28.59" x2="27.28" x3="26.29" y1="20.94" y2="21.48" y3="22.52"/>
+ <curve x1="25.25" x2="24.7" x3="24.7" y1="23.46" y2="24.84" y3="26.32"/>
+ <curve x1="24.7" x2="25.25" x3="26.29" y1="27.69" y2="29.07" y3="30.06"/>
+ <curve x1="27.28" x2="28.59" x3="30.03" y1="31.05" y2="31.64" y3="31.64"/>
+ <curve x1="31.45" x2="32.78" x3="33.82" y1="31.64" y2="31.05" y3="30.06"/>
+ <close/>
+ <move x="28.98" y="34.12"/>
+ <curve x1="28.32" x2="27.67" x3="27.01" y1="34.01" y2="33.8" y3="33.51"/>
+ <curve x1="27.01" x2="27.01" x3="27.01" y1="33.73" y2="33.96" y3="34.23"/>
+ <curve x1="27.01" x2="27.33" x3="28" y1="35.55" y2="36.26" y3="36.26"/>
+ <curve x1="28.71" x2="28.98" x3="28.98" y1="36.26" y2="35.55" y3="34.23"/>
+ <curve x1="28.98" x2="28.98" x3="28.98" y1="34.23" y2="34.23" y3="34.12"/>
+ <close/>
+ <move x="27.51" y="15.99"/>
+ <curve x1="27.51" x2="27.83" x3="28.5" y1="17.36" y2="18.08" y3="18.08"/>
+ <curve x1="29.2" x2="29.47" x3="29.47" y1="18.08" y2="17.36" y3="15.99"/>
+ <curve x1="29.47" x2="29.2" x3="28.5" y1="14.62" y2="13.96" y3="13.96"/>
+ <curve x1="27.83" x2="27.51" x3="27.51" y1="13.96" y2="14.62" y3="15.99"/>
+ <close/>
+ <move x="30.03" y="18.4"/>
+ <curve x1="32" x2="34.04" x3="35.57" y1="18.4" y2="19.18" y3="20.72"/>
+ <curve x1="36.39" x2="37" x3="37.38" y1="21.53" y2="22.52" y3="23.57"/>
+ <curve x1="37.44" x2="37.54" x3="37.71" y1="23.3" y2="23.08" y3="22.86"/>
+ <curve x1="37.94" x2="38.15" x3="38.48" y1="22.58" y2="22.36" y3="22.25"/>
+ <curve x1="38.37" x2="38.32" x3="38.15" y1="21.82" y2="21.32" y3="20.88"/>
+ <curve x1="37.87" x2="37.54" x3="37.11" y1="20" y2="19.18" y3="18.35"/>
+ <curve x1="36.89" x2="36.67" x3="36.39" y1="17.97" y2="17.59" y3="17.14"/>
+ <curve x1="36.01" x2="35.57" x3="35.08" y1="16.6" y2="15.99" y3="15.44"/>
+ <curve x1="35.08" x2="35.08" x3="35.08" y1="15.44" y2="15.44" y3="18.96"/>
+ <curve x1="35.08" x2="35.08" x3="33.87" y1="18.96" y2="18.96" y3="18.96"/>
+ <curve x1="33.87" x2="33.87" x3="33.87" y1="18.96" y2="18.96" y3="15.06"/>
+ <curve x1="33.87" x2="33.87" x3="32.39" y1="15.06" y2="15.06" y3="15.06"/>
+ <curve x1="32.39" x2="32.39" x3="32.39" y1="15.06" y2="15.06" y3="14.17"/>
+ <curve x1="32.83" x2="33.21" x3="33.43" y1="14.17" y2="14.12" y3="13.96"/>
+ <curve x1="31.07" x2="28.1" x3="24.87" y1="12.09" y2="10.99" y3="10.99"/>
+ <curve x1="22.23" x2="19.82" x3="17.68" y1="10.99" y2="11.71" y3="12.97"/>
+ <curve x1="18.34" x2="18.83" x3="19.15" y1="13.02" y2="13.29" y3="13.79"/>
+ <curve x1="19.49" x2="19.71" x3="19.71" y1="14.28" y2="15.06" y3="15.99"/>
+ <curve x1="19.71" x2="19.49" x3="19.15" y1="16.92" y2="17.63" y3="18.13"/>
+ <curve x1="18.77" x2="18.22" x3="17.51" y1="18.74" y2="19.01" y3="19.01"/>
+ <curve x1="16.74" x2="16.2" x3="15.81" y1="19.01" y2="18.79" y3="18.19"/>
+ <curve x1="15.48" x2="15.25" x3="15.25" y1="17.63" y2="16.92" y3="15.99"/>
+ <curve x1="15.25" x2="15.25" x3="15.37" y1="15.54" y2="15.11" y3="14.73"/>
+ <curve x1="14.6" x2="13.94" x3="13.34" y1="15.44" y2="16.32" y3="17.14"/>
+ <curve x1="13.06" x2="12.84" x3="12.68" y1="17.59" y2="17.91" y3="18.29"/>
+ <curve x1="12.68" x2="12.68" x3="12.68" y1="18.29" y2="18.29" y3="18.29"/>
+ <curve x1="12.68" x2="12.68" x3="12.63" y1="18.29" y2="18.29" y3="18.35"/>
+ <curve x1="12.63" x2="12.63" x3="12.63" y1="18.35" y2="18.35" y3="18.35"/>
+ <curve x1="12.63" x2="12.57" x3="12.57" y1="18.4" y2="18.4" y3="18.51"/>
+ <curve x1="12.63" x2="12.63" x3="12.63" y1="18.4" y2="18.35" y3="18.35"/>
+ <curve x1="12.68" x2="12.68" x3="12.68" y1="18.29" y2="18.29" y3="18.29"/>
+ <curve x1="12.68" x2="12.68" x3="12.68" y1="18.29" y2="18.29" y3="18.96"/>
+ <curve x1="12.68" x2="12.68" x3="12.35" y1="18.96" y2="18.96" y3="18.96"/>
+ <curve x1="12.02" x2="11.8" x3="11.53" y1="19.56" y2="20.22" y3="20.88"/>
+ <curve x1="11.47" x2="11.36" x3="11.26" y1="21.26" y2="21.71" y3="22.03"/>
+ <curve x1="11.26" x2="11.26" x3="11.31" y1="22.03" y2="22.03" y3="22.03"/>
+ <curve x1="12.02" x2="12.57" x3="13.01" y1="22.03" y2="22.31" y3="22.91"/>
+ <curve x1="13.34" x2="13.51" x3="13.51" y1="23.4" y2="24.12" y3="25.06"/>
+ <curve x1="13.51" x2="13.34" x3="13.01" y1="25.99" y2="26.75" y3="27.25"/>
+ <curve x1="12.63" x2="12.02" x3="11.31" y1="27.86" y2="28.13" y3="28.13"/>
+ <curve x1="11.31" x2="11.31" x3="11.26" y1="28.13" y2="28.13" y3="28.13"/>
+ <curve x1="11.26" x2="11.2" x3="11.2" y1="28.02" y2="27.86" y3="27.69"/>
+ <curve x1="11.26" x2="11.26" x3="11.26" y1="27.86" y2="27.97" y3="28.13"/>
+ <curve x1="11.26" x2="11.26" x3="11.26" y1="28.13" y2="28.13" y3="28.13"/>
+ <curve x1="11.31" x2="11.36" x3="11.42" y1="28.3" y2="28.46" y3="28.62"/>
+ <curve x1="11.64" x2="11.96" x3="12.35" y1="29.56" y2="30.44" y3="31.32"/>
+ <curve x1="12.35" x2="12.35" x3="12.84" y1="31.32" y2="31.32" y3="31.32"/>
+ <curve x1="12.84" x2="12.84" x3="12.84" y1="31.32" y2="31.32" y3="32.2"/>
+ <curve x1="13.01" x2="13.18" x3="13.34" y1="32.47" y2="32.74" y3="32.97"/>
+ <curve x1="13.72" x2="14.1" x3="14.55" y1="33.51" y2="34.12" y3="34.61"/>
+ <curve x1="14.71" x2="14.87" x3="15.04" y1="34.79" y2="34.88" y3="35.06"/>
+ <curve x1="15.09" x2="15.25" x3="15.37" y1="35.22" y2="35.33" y3="35.44"/>
+ <curve x1="15.48" x2="15.59" x3="15.75" y1="35.55" y2="35.66" y3="35.76"/>
+ <curve x1="15.54" x2="15.37" x3="15.21" y1="35.55" y2="35.44" y3="35.28"/>
+ <curve x1="15.09" x2="15.09" x3="15.09" y1="34.88" y2="34.61" y3="34.23"/>
+ <curve x1="15.09" x2="15.25" x3="15.65" y1="33.24" y2="32.53" y3="31.98"/>
+ <curve x1="16.08" x2="16.58" x3="17.35" y1="31.43" y2="31.16" y3="31.16"/>
+ <curve x1="18.06" x2="18.61" x3="18.94" y1="31.16" y2="31.43" y3="31.98"/>
+ <curve x1="19.33" x2="19.54" x3="19.54" y1="32.53" y2="33.24" y3="34.23"/>
+ <curve x1="19.54" x2="19.38" x3="19.05" y1="35.11" y2="35.82" y3="36.37"/>
+ <curve x1="18.66" x2="18.27" x3="17.68" y1="36.86" y2="37.09" y3="37.2"/>
+ <curve x1="18.06" x2="18.45" x3="18.83" y1="37.42" y2="37.63" y3="37.85"/>
+ <curve x1="19.26" x2="19.65" x3="20.09" y1="38.03" y2="38.24" y3="38.35"/>
+ <curve x1="20.7" x2="21.4" x3="22.07" y1="38.57" y2="38.79" y3="38.91"/>
+ <curve x1="22.56" x2="23" x3="23.43" y1="39" y2="39.12" y3="39.18"/>
+ <curve x1="23.93" x2="24.37" x3="24.87" y1="39.23" y2="39.23" y3="39.23"/>
+ <curve x1="25.36" x2="25.8" x3="26.29" y1="39.23" y2="39.23" y3="39.18"/>
+ <curve x1="26.74" x2="27.23" x3="27.67" y1="39.12" y2="39" y3="38.91"/>
+ <curve x1="28.32" x2="28.98" x3="29.65" y1="38.79" y2="38.57" y3="38.35"/>
+ <curve x1="30.08" x2="30.46" x3="30.85" y1="38.24" y2="38.03" y3="37.85"/>
+ <curve x1="31.56" x2="32.22" x3="32.83" y1="37.47" y2="37.09" y3="36.65"/>
+ <curve x1="32.83" x2="32.71" x3="32.67" y1="36.59" y2="36.48" y3="36.43"/>
+ <curve x1="32.28" x2="32.11" x3="32.11" y1="35.87" y2="35.11" y3="34.23"/>
+ <curve x1="32.11" x2="32.11" x3="32.11" y1="34.23" y2="34.23" y3="33.91"/>
+ <curve x1="31.51" x2="30.85" x3="30.24" y1="34.07" y2="34.12" y3="34.12"/>
+ <curve x1="30.24" x2="30.24" x3="30.24" y1="34.12" y2="34.12" y3="34.23"/>
+ <curve x1="30.24" x2="30.08" x3="29.7" y1="35.11" y2="35.82" y3="36.37"/>
+ <curve x1="29.31" x2="28.77" x3="28" y1="36.93" y2="37.2" y3="37.2"/>
+ <curve x1="27.28" x2="26.74" x3="26.35" y1="37.2" y2="36.98" y3="36.43"/>
+ <curve x1="25.96" x2="25.75" x3="25.75" y1="35.87" y2="35.11" y3="34.23"/>
+ <curve x1="25.75" x2="25.86" x3="25.91" y1="33.73" y2="33.35" y3="32.97"/>
+ <curve x1="25.41" x2="24.92" x3="24.49" y1="32.69" y2="32.31" y3="31.93"/>
+ <curve x1="23.43" x2="22.73" x3="22.46" y1="30.83" y2="29.5" y3="28.13"/>
+ <curve x1="22.46" x2="22.46" x3="22.35" y1="28.13" y2="28.13" y3="28.13"/>
+ <curve x1="21.63" x2="21.08" x3="20.7" y1="28.13" y2="27.86" y3="27.25"/>
+ <curve x1="20.32" x2="20.09" x3="20.09" y1="26.75" y2="26.05" y3="25.06"/>
+ <curve x1="20.09" x2="20.32" x3="20.7" y1="24.12" y2="23.4" y3="22.86"/>
+ <curve x1="21.08" x2="21.63" x3="22.35" y1="22.31" y2="22.03" y3="22.03"/>
+ <curve x1="22.67" x2="23" x3="23.34" y1="22.03" y2="22.09" y3="22.25"/>
+ <curve x1="23.66" x2="24.04" x3="24.49" y1="21.71" y2="21.21" y3="20.72"/>
+ <curve x1="25.41" x2="26.4" x3="27.51" y1="19.84" y2="19.18" y3="18.79"/>
+ <curve x1="27.23" x2="27.01" x3="26.84" y1="18.69" y2="18.51" y3="18.19"/>
+ <curve x1="26.45" x2="26.24" x3="26.24" y1="17.63" y2="16.92" y3="15.99"/>
+ <curve x1="26.24" x2="26.45" x3="26.84" y1="15.06" y2="14.28" y3="13.79"/>
+ <curve x1="27.23" x2="27.78" x3="28.5" y1="13.24" y2="12.97" y3="12.97"/>
+ <curve x1="29.2" x2="29.76" x3="30.14" y1="12.97" y2="13.24" y3="13.79"/>
+ <curve x1="30.52" x2="30.73" x3="30.73" y1="14.28" y2="15.06" y3="15.99"/>
+ <curve x1="30.73" x2="30.57" x3="30.19" y1="16.92" y2="17.63" y3="18.13"/>
+ <curve x1="30.14" x2="30.08" x3="29.97" y1="18.24" y2="18.29" y3="18.4"/>
+ <curve x1="29.97" x2="29.97" x3="30.03" y1="18.4" y2="18.4" y3="18.4"/>
+ <close/>
+ <move x="22.23" y="27.14"/>
+ <curve x1="22.12" x2="22.35" x3="22.84" y1="25.83" y2="24.45" y3="23.19"/>
+ <curve x1="22.67" x2="22.56" x3="22.35" y1="23.13" y2="23.02" y3="23.02"/>
+ <curve x1="21.68" x2="21.36" x3="21.36" y1="23.02" y2="23.74" y3="25.06"/>
+ <curve x1="21.36" x2="21.63" x3="22.23" y1="26.43" y2="27.09" y3="27.14"/>
+ <close/>
+ <move x="38.37" y="28.62"/>
+ <curve x1="38.37" x2="38.48" x3="38.48" y1="28.4" y2="28.19" y3="27.97"/>
+ <curve x1="38.21" x2="37.99" x3="37.76" y1="27.86" y2="27.63" y3="27.42"/>
+ <curve x1="37.6" x2="37.27" x3="36.67" y1="28.46" y2="29.5" y3="30.44"/>
+ <curve x1="36.67" x2="36.67" x3="37.38" y1="30.44" y2="30.44" y3="31.21"/>
+ <curve x1="37.83" x2="38.1" x3="38.37" y1="30.38" y2="29.5" y3="28.62"/>
+ <close/>
+ <move x="38.64" y="26.82"/>
+ <curve x1="38.75" x2="38.82" x3="38.82" y1="26.21" y2="25.65" y3="25.06"/>
+ <curve x1="38.82" x2="38.75" x3="38.64" y1="24.5" y2="23.9" y3="23.35"/>
+ <curve x1="38.64" x2="38.64" x3="38.59" y1="23.19" y2="22.97" y3="22.86"/>
+ <curve x1="38.59" x2="38.64" x3="38.64" y1="22.97" y2="23.13" y3="23.35"/>
+ <curve x1="38.64" x2="38.64" x3="38.64" y1="23.35" y2="23.35" y3="23.4"/>
+ <curve x1="38.48" x2="38.37" x3="38.37" y1="23.74" y2="24.28" y3="25.06"/>
+ <curve x1="38.37" x2="38.48" x3="38.64" y1="25.88" y2="26.43" y3="26.82"/>
+ <close/>
+ <move x="32.5" y="27.42"/>
+ <curve x1="32.5" x2="32.5" x3="32.5" y1="27.64" y2="27.8" y3="27.96"/>
+ <curve x1="32.5" x2="32.5" x3="32.44" y1="28.13" y2="28.29" y3="28.52"/>
+ <curve x1="32.39" x2="32.23" x3="32.05" y1="28.68" y2="28.95" y3="29.12"/>
+ <curve x1="31.89" x2="31.62" x3="31.35" y1="29.33" y2="29.51" y3="29.67"/>
+ <curve x1="31.01" x2="30.63" x3="30.13" y1="29.83" y2="29.94" y3="30"/>
+ <curve x1="30.13" x2="30.13" x3="30.13" y1="30" y2="30" y3="30.77"/>
+ <curve x1="30.13" x2="30.13" x3="29.64" y1="30.77" y2="30.77" y3="30.77"/>
+ <curve x1="29.64" x2="29.64" x3="29.64" y1="30.77" y2="30.77" y3="30"/>
+ <curve x1="28.93" x2="28.33" x3="27.94" y1="29.89" y2="29.67" y3="29.28"/>
+ <curve x1="27.56" x2="27.34" x3="27.23" y1="28.9" y2="28.36" y3="27.58"/>
+ <curve x1="27.23" x2="27.23" x3="28.6" y1="27.58" y2="27.58" y3="27.58"/>
+ <curve x1="28.6" x2="28.71" x3="28.87" y1="27.96" y2="28.25" y3="28.46"/>
+ <curve x1="29.1" x2="29.32" x3="29.64" y1="28.68" y2="28.79" y3="28.85"/>
+ <curve x1="29.64" x2="29.64" x3="29.64" y1="28.85" y2="28.85" y3="26.81"/>
+ <curve x1="29.59" x2="29.53" x3="29.48" y1="26.81" y2="26.81" y3="26.76"/>
+ <curve x1="29.42" x2="29.37" x3="29.32" y1="26.76" y2="26.76" y3="26.76"/>
+ <curve x1="29.1" x2="28.87" x3="28.6" y1="26.7" y2="26.59" y3="26.54"/>
+ <curve x1="28.38" x2="28.16" x3="27.99" y1="26.43" y2="26.31" y3="26.15"/>
+ <curve x1="27.83" x2="27.66" x3="27.56" y1="26.04" y2="25.82" y3="25.61"/>
+ <curve x1="27.5" x2="27.39" x3="27.39" y1="25.39" y2="25.16" y3="24.83"/>
+ <curve x1="27.39" x2="27.5" x3="27.61" y1="24.51" y2="24.17" y3="23.95"/>
+ <curve x1="27.72" x2="27.88" x3="28.11" y1="23.68" y2="23.46" y3="23.3"/>
+ <curve x1="28.27" x2="28.54" x3="28.76" y1="23.13" y2="23.02" y3="22.91"/>
+ <curve x1="29.03" x2="29.32" x3="29.64" y1="22.8" y2="22.75" y3="22.75"/>
+ <curve x1="29.64" x2="29.64" x3="29.64" y1="22.75" y2="22.75" y3="21.98"/>
+ <curve x1="29.64" x2="29.64" x3="30.13" y1="21.98" y2="21.98" y3="21.98"/>
+ <curve x1="30.13" x2="30.13" x3="30.13" y1="21.98" y2="21.98" y3="22.75"/>
+ <curve x1="30.47" x2="30.68" x3="30.96" y1="22.8" y2="22.86" y3="22.96"/>
+ <curve x1="31.24" x2="31.46" x3="31.62" y1="23.02" y2="23.13" y3="23.3"/>
+ <curve x1="31.84" x2="31.95" x3="32.05" y1="23.46" y2="23.68" y3="23.95"/>
+ <curve x1="32.23" x2="32.28" x3="32.28" y1="24.17" y2="24.51" y3="24.83"/>
+ <curve x1="32.28" x2="32.28" x3="30.96" y1="24.83" y2="24.83" y3="24.83"/>
+ <curve x1="30.9" x2="30.85" x3="30.68" y1="24.56" y2="24.33" y3="24.17"/>
+ <curve x1="30.58" x2="30.36" x3="30.13" y1="23.95" y2="23.84" y3="23.84"/>
+ <curve x1="30.13" x2="30.13" x3="30.13" y1="23.84" y2="23.84" y3="25.61"/>
+ <curve x1="30.25" x2="30.3" x3="30.36" y1="25.61" y2="25.61" y3="25.66"/>
+ <curve x1="30.47" x2="30.52" x3="30.63" y1="25.66" y2="25.71" y3="25.71"/>
+ <curve x1="31.12" x2="31.46" x3="31.73" y1="25.88" y2="26.04" y3="26.2"/>
+ <curve x1="32" x2="32.16" x3="32.28" y1="26.38" y2="26.59" y3="26.81"/>
+ <curve x1="32.39" x2="32.44" x3="32.5" y1="26.98" y2="27.19" y3="27.42"/>
+ <close/>
+ <move x="29.64" y="25.5"/>
+ <line x="29.64" y="23.84"/>
+ <curve x1="29.48" x2="29.37" x3="29.32" y1="23.84" y2="23.9" y3="23.95"/>
+ <curve x1="29.21" x2="29.1" x3="28.98" y1="23.95" y2="24.01" y3="24.12"/>
+ <curve x1="28.93" x2="28.87" x3="28.82" y1="24.17" y2="24.24" y3="24.33"/>
+ <curve x1="28.76" x2="28.76" x3="28.76" y1="24.4" y2="24.56" y3="24.67"/>
+ <curve x1="28.76" x2="28.82" x3="28.93" y1="24.89" y2="25.05" y3="25.16"/>
+ <curve x1="29.1" x2="29.32" x3="29.64" y1="25.32" y2="25.39" y3="25.5"/>
+ <close/>
+ <move x="31.08" y="28.29"/>
+ <curve x1="31.12" x2="31.17" x3="31.17" y1="28.18" y2="28.07" y3="27.91"/>
+ <curve x1="31.17" x2="31.12" x3="30.96" y1="27.64" y2="27.48" y3="27.3"/>
+ <curve x1="30.79" x2="30.52" x3="30.13" y1="27.19" y2="27.08" y3="26.98"/>
+ <curve x1="30.13" x2="30.13" x3="30.13" y1="26.98" y2="26.98" y3="28.85"/>
+ <curve x1="30.3" x2="30.36" x3="30.52" y1="28.85" y2="28.79" y3="28.79"/>
+ <curve x1="30.63" x2="30.74" x3="30.85" y1="28.74" y2="28.68" y3="28.63"/>
+ <curve x1="30.96" x2="31.01" x3="31.08" y1="28.52" y2="28.41" y3="28.29"/>
+ <close/>
+ <move x="21.35" y="31.59"/>
+ <curve x1="21.57" x2="21.69" x3="21.85" y1="31.43" y2="31.16" y3="30.77"/>
+ <curve x1="21.85" x2="21.85" x3="22.84" y1="30.77" y2="30.77" y3="30.77"/>
+ <curve x1="22.84" x2="22.84" x3="22.84" y1="30.77" y2="30.77" y3="36.92"/>
+ <curve x1="22.84" x2="22.84" x3="21.69" y1="36.92" y2="36.92" y3="36.92"/>
+ <curve x1="21.69" x2="21.69" x3="21.69" y1="36.92" y2="36.92" y3="32.85"/>
+ <curve x1="21.69" x2="21.69" x3="20.2" y1="32.85" y2="32.85" y3="32.85"/>
+ <curve x1="20.2" x2="20.2" x3="20.2" y1="32.85" y2="32.85" y3="31.92"/>
+ <curve x1="20.75" x2="21.08" x3="21.35" y1="31.92" y2="31.81" y3="31.59"/>
+ <close/>
+ <move x="16.14" y="22.75"/>
+ <curve x1="16.35" x2="16.53" x3="16.58" y1="22.59" y2="22.37" y3="21.98"/>
+ <curve x1="16.58" x2="16.58" x3="17.57" y1="21.98" y2="21.98" y3="21.98"/>
+ <curve x1="17.57" x2="17.57" x3="17.57" y1="21.98" y2="21.98" y3="27.25"/>
+ <curve x1="17.57" x2="17.57" x3="16.42" y1="27.25" y2="27.25" y3="27.25"/>
+ <curve x1="16.42" x2="16.42" x3="16.42" y1="27.25" y2="27.25" y3="23.79"/>
+ <curve x1="16.42" x2="16.42" x3="14.93" y1="23.79" y2="23.79" y3="23.79"/>
+ <curve x1="14.93" x2="14.93" x3="14.93" y1="23.79" y2="23.79" y3="22.97"/>
+ <curve x1="15.48" x2="15.86" x3="16.14" y1="22.97" y2="22.91" y3="22.75"/>
+ <close/>
+ <move x="22.56" y="18.46"/>
+ <line x="22.56" y="14.39"/>
+ <curve x1="22.56" x2="22.56" x3="21.08" y1="14.39" y2="14.39" y3="14.39"/>
+ <curve x1="21.08" x2="21.08" x3="21.08" y1="14.39" y2="14.39" y3="13.51"/>
+ <curve x1="21.62" x2="22.01" x3="22.29" y1="13.51" y2="13.4" y3="13.13"/>
+ <curve x1="22.5" x2="22.68" x3="22.79" y1="12.97" y2="12.75" y3="12.31"/>
+ <curve x1="22.79" x2="22.79" x3="23.71" y1="12.31" y2="12.31" y3="12.31"/>
+ <curve x1="23.71" x2="23.71" x3="23.71" y1="12.31" y2="12.31" y3="18.46"/>
+ <curve x1="23.71" x2="23.71" x3="22.56" y1="18.46" y2="18.46" y3="18.46"/>
+ <close/>
+ <move x="16.24" y="36.43"/>
+ <line x="16.69" y="36.92"/>
+ <curve x1="16.35" x2="16.03" x3="15.81" y1="36.59" y2="36.21" y3="36.04"/>
+ <curve x1="15.92" x2="16.03" x3="16.24" y1="36.21" y2="36.43" y3="36.43"/>
+ <close/>
+ <move x="33.15" y="36.32"/>
+ <curve x1="33.21" x2="33.33" x3="33.38" y1="36.32" y2="36.16" y3="36.04"/>
+ <curve x1="33.1" x2="32.88" x3="32.5" y1="36.38" y2="36.65" y3="36.92"/>
+ <curve x1="32.77" x2="32.99" x3="33.15" y1="36.7" y2="36.48" y3="36.32"/>
+ <close/>
+ <move x="42.32" y="47.03"/>
+ <curve x1="44.35" x2="46.6" x3="46.6" y1="49.34" y2="50.55" y3="50.55"/>
+ <curve x1="43.64" x2="43.81" x3="44.14" y1="46.59" y2="42.04" y3="39.61"/>
+ <curve x1="47.32" x2="49.19" x3="49.19" y1="35.44" y2="30.28" y3="24.67"/>
+ <curve x1="49.19" x2="38.15" x3="24.59" y1="11.04" y2="0" y3="0"/>
+ <curve x1="11.04" x2="0" x3="0" y1="0" y2="11.04" y3="24.67"/>
+ <curve x1="0" x2="1.76" x3="4.73" y1="30.11" y2="35.11" y3="39.18"/>
+ <curve x1="1.15" x2="1.37" x3="1.37" y1="42.26" y2="48.84" y3="48.84"/>
+ <curve x1="2.36" x2="3.74" x3="4.73" y1="44.89" y2="44.23" y3="43.73"/>
+ <curve x1="4.94" x2="5.21" x3="5.54" y1="43.68" y2="43.52" y3="43.41"/>
+ <curve x1="5.38" x2="5.38" x3="5.88" y1="44.78" y2="46.27" y3="47.58"/>
+ <curve x1="7.14" x2="9.11" x3="8.79" y1="50.93" y2="52.42" y3="55"/>
+ <curve x1="8.51" x2="5.88" x3="5.7" y1="57.64" y2="59.62" y3="62.64"/>
+ <curve x1="5.59" x2="7.14" x3="7.68" y1="65.66" y2="67.48" y3="68.18"/>
+ <curve x1="8.18" x2="6.31" x3="7.3" y1="68.85" y2="65.32" y3="62.75"/>
+ <curve x1="8.29" x2="10.37" x3="12.13" y1="60.11" y2="61.1" y3="57.8"/>
+ <curve x1="12.51" x2="12.89" x3="13.18" y1="57.08" y2="56.38" y3="55.66"/>
+ <curve x1="13.83" x2="14.11" x3="14" y1="57.86" y2="59.4" y3="61.54"/>
+ <curve x1="13.88" x2="12.57" x3="11.09" y1="64.56" y2="67.42" y3="68.57"/>
+ <curve x1="11.09" x2="16.25" x3="17.51" y1="68.57" y2="66.98" y3="60.93"/>
+ <curve x1="18.5" x2="17.29" x3="18.28" y1="56.27" y2="53.68" y3="50.93"/>
+ <curve x1="19.54" x2="21.25" x3="21.02" y1="52.53" y2="55.12" y3="57.8"/>
+ <curve x1="20.64" x2="17.57" x3="18.55" y1="62.08" y2="67.64" y3="71.6"/>
+ <curve x1="19.49" x2="20.53" x3="20.53" y1="75.55" y2="77.41" y3="77.41"/>
+ <curve x1="20.53" x2="20.1" x3="22.01" y1="77.41" y2="71.92" y3="68.9"/>
+ <curve x1="22.83" x2="23.88" x3="24.81" y1="67.69" y2="66.31" y3="64.89"/>
+ <curve x1="26.18" x2="30.47" x3="31.68" y1="69.4" y2="73.02" y3="74.28"/>
+ <curve x1="33.15" x2="32.77" x3="32.77" y1="75.88" y2="80" y3="80"/>
+ <curve x1="32.77" x2="33.82" x3="34.14" y1="80" y2="78.52" y3="73.9"/>
+ <curve x1="34.52" x2="30.35" x3="29.92" y1="69.28" y2="68.45" y3="61.65"/>
+ <curve x1="29.81" x2="30.19" x3="30.74" y1="59.29" y2="56.97" y3="55"/>
+ <curve x1="32.27" x2="34.41" x3="35.08" y1="58.79" y2="62.19" y3="63.46"/>
+ <curve x1="36.01" x2="35.96" x3="35.96" y1="65.39" y2="70.27" y3="70.27"/>
+ <curve x1="39.36" x2="36.78" x3="36.55" y1="64.67" y2="61.27" y3="55.93"/>
+ <curve x1="36.45" x2="36.78" x3="37.16" y1="53.63" y2="51.43" y3="49.62"/>
+ <curve x1="37.61" x2="38.2" x3="38.92" y1="51.32" y2="53.07" y3="54.13"/>
+ <curve x1="40.62" x2="41.83" x3="42.16" y1="56.59" y2="58.18" y3="60.11"/>
+ <curve x1="42.43" x2="42.7" x3="42.21" y1="62.03" y2="64.94" y3="66.04"/>
+ <curve x1="42.21" x2="44.35" x3="44.19" y1="66.04" y2="64.33" y3="59.12"/>
+ <curve x1="44.08" x2="41.61" x3="42.16" y1="53.95" y2="50.44" y3="48.02"/>
+ <curve x1="42.21" x2="42.27" x3="42.32" y1="47.75" y2="47.42" y3="47.03"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c1" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.6" y="43.11"/>
+ <curve x1="76.75" x2="74.74" x3="74.22" y1="42.94" y2="42.54" y3="42.25"/>
+ <curve x1="73.48" x2="73.13" x3="72.85" y1="41.55" y2="40.69" y3="39.65"/>
+ <curve x1="72.33" x2="71.74" x3="69.85" y1="38.27" y2="36.49" y3="35.45"/>
+ <curve x1="68.29" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.62" y1="30.32" y2="26.57" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.11" x3="67.43" y1="17.76" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.38" x3="75.43" y1="12.62" y2="13.02" y3="13.02"/>
+ <curve x1="76.35" x2="77.15" x3="77.27" y1="13.14" y2="12.45" y3="11.53"/>
+ <curve x1="77.34" x2="76.64" x3="75.73" y1="10.6" y2="9.85" y3="9.74"/>
+ <curve x1="75.49" x2="68.92" x3="65.19" y1="9.68" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.69"/>
+ <curve x1="60.86" x2="60.23" x3="59.54" y1="18.85" y2="19.89" y3="20.74"/>
+ <curve x1="58.79" x2="57.93" x3="57.13" y1="19.94" y2="19.2" y3="18.44"/>
+ <curve x1="55.62" x2="50.96" x3="45.03" y1="12.45" y2="7.61" y3="5.88"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="45.03" x2="44.22" x3="43.3" y1="0.75" y2="0" y3="0"/>
+ <curve x1="42.38" x2="41.69" x3="41.69" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="41.69" x2="41.69" x3="41.69" y1="5.24" y2="5.24" y3="5.24"/>
+ <curve x1="41.11" x2="40.54" x3="40.02" y1="5.19" y2="5.13" y3="5.13"/>
+ <curve x1="39.5" x2="39.04" x3="38.58" y1="5.13" y2="5.19" y3="5.24"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.58" x2="37.84" x3="36.92" y1="0.75" y2="0" y3="0"/>
+ <curve x1="35.99" x2="35.19" x3="35.19" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="5.82" y2="5.82" y3="5.82"/>
+ <curve x1="29.08" x2="24.36" x3="22.92" y1="7.55" y2="12.45" y3="18.68"/>
+ <curve x1="22.12" x2="21.42" x3="20.73" y1="19.3" y2="20" y3="20.74"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.85" y3="17.69"/>
+ <curve x1="17.8" x2="16.76" x3="15.03" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.78" x3="4.49" y1="9.16" y2="9.68" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="2.93" y1="9.85" y2="10.6" y3="11.53"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.02"/>
+ <curve x1="6.22" x2="10.54" x3="12.79" y1="12.92" y2="12.97" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.78" y1="16.32" y2="17.76" y3="19.3"/>
+ <curve x1="16.59" x2="17.39" x3="18.55" y1="20.74" y2="22.18" y3="23.4"/>
+ <curve x1="16.36" x2="14.75" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.53" x2="7.89" x3="7.42" y1="36.49" y2="38.27" y3="39.65"/>
+ <curve x1="7.09" x2="6.74" x3="5.98" y1="40.69" y2="41.55" y3="42.25"/>
+ <curve x1="5.48" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.11"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.95"/>
+ <curve x1="0.17" x2="0.92" x3="1.79" y1="45.82" y2="46.39" y3="46.39"/>
+ <curve x1="1.84" x2="1.84" x3="1.96" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="4.21" x2="7.09" x3="8.18" y1="46.17" y2="45.7" y3="44.78"/>
+ <curve x1="9.62" x2="10.14" x3="10.54" y1="43.51" y2="41.95" y3="40.74"/>
+ <curve x1="10.99" x2="11.29" x3="12.03" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.72" x2="13.36" x3="13.82" y1="37.86" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.93" y2="38.15" y3="38.38"/>
+ <curve x1="13.82" x2="14.91" x3="16.87" y1="42.89" y2="47.09" y3="50.71"/>
+ <curve x1="15.6" x2="15.15" x3="14.8" y1="52.22" y2="54.06" y3="55.79"/>
+ <curve x1="14.51" x2="14.28" x3="13.76" y1="56.88" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.15" y3="61.15"/>
+ <curve x1="6.28" x2="5.48" x3="5.36" y1="61.03" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.88" x3="6.8" y1="63.51" y2="64.38" y3="64.43"/>
+ <curve x1="6.91" x2="7.49" x3="8.35" y1="64.43" y2="64.5" y3="64.5"/>
+ <curve x1="10.71" x2="15.08" x3="16.76" y1="64.5" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.73" x3="18.03" y1="59.14" y2="57.75" y3="56.48"/>
+ <curve x1="18.25" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.78"/>
+ <curve x1="23.61" x2="31.39" x3="40.08" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.83" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.78"/>
+ <curve x1="61.73" x2="61.95" x3="62.19" y1="54.47" y2="55.39" y3="56.48"/>
+ <curve x1="62.47" x2="62.76" x3="63.46" y1="57.75" y2="59.14" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.5" y3="64.5"/>
+ <curve x1="72.73" x2="73.3" x3="73.42" y1="64.5" y2="64.43" y3="64.43"/>
+ <curve x1="74.34" x2="74.97" x3="74.86" y1="64.38" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.94" x3="73.01" y1="61.72" y2="61.03" y3="61.15"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.15" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.71" x3="65.41" y1="58.1" y2="56.88" y3="55.79"/>
+ <curve x1="65.07" x2="64.6" x3="63.34" y1="54.06" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.45" x3="66.45" y1="47.09" y2="42.89" y3="38.38"/>
+ <curve x1="66.45" x2="66.39" x3="66.39" y1="38.15" y2="37.93" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.17" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.92" x2="69.21" x3="69.68" y1="38.73" y2="39.49" y3="40.74"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.51" y3="44.78"/>
+ <curve x1="73.13" x2="76.06" x3="78.26" y1="45.7" y2="46.17" y3="46.39"/>
+ <curve x1="78.31" x2="78.43" x3="78.43" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="79.3" x2="80.04" x3="80.1" y1="46.39" y2="45.82" y3="44.95"/>
+ <curve x1="80.15" x2="79.52" x3="78.6" y1="44.03" y2="43.22" y3="43.11"/>
+ <close/>
+ <move x="60.81" y="39.59"/>
+ <curve x1="60.82" x2="60.8" x3="60.82" y1="40.21" y2="40.84" y3="41.46"/>
+ <curve x1="60.92" x2="60.37" x3="60.34" y1="41.95" y2="41.79" y3="42.07"/>
+ <curve x1="59.83" x2="59.32" x3="58.81" y1="42.06" y2="42.1" y3="42.05"/>
+ <curve x1="58.65" x2="58.39" x3="58.38" y1="42.34" y2="42.78" y3="43.16"/>
+ <curve x1="58.59" x2="58.79" x3="58.99" y1="43.37" y2="43.57" y3="43.78"/>
+ <curve x1="59.37" x2="59.52" x3="59.4" y1="44.07" y2="44.56" y3="45.01"/>
+ <curve x1="59.18" x2="58.72" x3="58.17" y1="45.6" y2="46.23" y3="46.51"/>
+ <curve x1="57.53" x2="57.05" x3="56.68" y1="46.79" y2="46.28" y3="45.84"/>
+ <curve x1="56.37" x2="55.71" x3="55.28" y1="45.18" y2="45.47" y3="45.82"/>
+ <curve x1="55.28" x2="55.28" x3="55.28" y1="46.09" y2="46.36" y3="46.63"/>
+ <curve x1="55.29" x2="55.37" x3="54.81" y1="47.15" y2="47.86" y3="47.95"/>
+ <curve x1="54.38" x2="53.94" x3="53.5" y1="47.95" y2="47.95" y3="47.95"/>
+ <curve x1="53.11" x2="52.79" x3="52.52" y1="48" y2="47.94" y3="47.67"/>
+ <curve x1="52.52" x2="52.52" x3="52.52" y1="47.19" y2="46.71" y3="46.23"/>
+ <curve x1="52.67" x2="51.89" x3="51.48" y1="45.61" y2="45.5" y3="45.36"/>
+ <curve x1="51.28" x2="51.07" x3="50.87" y1="45.6" y2="45.84" y3="46.09"/>
+ <curve x1="50.59" x2="49.95" x3="49.47" y1="46.57" y2="46.67" y3="46.46"/>
+ <curve x1="49.25" x2="49.04" x3="48.83" y1="46.21" y2="45.95" y3="45.7"/>
+ <curve x1="48.5" x2="48.15" x3="48.37" y1="45.35" y2="44.93" y3="44.44"/>
+ <curve x1="48.47" x2="49.06" x3="49.39" y1="43.97" y2="43.64" y3="43.27"/>
+ <curve x1="49.35" x2="49.17" x3="49" y1="42.9" y2="42.44" y3="42.07"/>
+ <curve x1="48.66" x2="48.32" x3="47.99" y1="42.07" y2="42.07" y3="42.07"/>
+ <curve x1="47.57" x2="47.3" x3="46.99" y1="42.14" y2="42" y3="41.79"/>
+ <curve x1="46.99" x2="46.99" x3="46.99" y1="41.2" y2="40.62" y3="40.03"/>
+ <curve x1="46.89" x2="47.09" x3="47.34" y1="39.61" y2="39.38" y3="39.14"/>
+ <curve x1="47.73" x2="48.12" x3="48.51" y1="39.14" y2="39.14" y3="39.14"/>
+ <curve x1="49.29" x2="49.09" x3="49.47" y1="39.36" y2="38.41" y3="38.03"/>
+ <curve x1="49.18" x2="48.89" x3="48.6" y1="37.7" y2="37.35" y3="37.01"/>
+ <curve x1="48.06" x2="48.37" x3="48.82" y1="36.6" y2="35.89" y3="35.54"/>
+ <curve x1="49.19" x2="49.83" x3="50.56" y1="34.94" y2="34.36" y3="34.75"/>
+ <curve x1="50.78" x2="51" x3="51.22" y1="35.02" y2="35.28" y3="35.54"/>
+ <curve x1="51.51" x2="52.09" x3="52.52" y1="36.13" y2="35.47" y3="35.39"/>
+ <curve x1="52.52" x2="52.52" x3="52.52" y1="34.95" y2="34.51" y3="34.07"/>
+ <curve x1="52.42" x2="52.65" x3="52.97" y1="33.64" y2="33.39" y3="33.19"/>
+ <curve x1="53.58" x2="54.19" x3="54.79" y1="33.19" y2="33.19" y3="33.19"/>
+ <curve x1="55.5" x2="55.24" x3="55.28" y1="33.33" y2="34.25" y3="34.82"/>
+ <curve x1="55.05" x2="55.82" x3="56.2" y1="35.55" y2="35.5" y3="35.85"/>
+ <curve x1="56.44" x2="56.68" x3="56.92" y1="35.61" y2="35.37" y3="35.12"/>
+ <curve x1="57.25" x2="57.86" x3="58.38" y1="34.61" y2="34.5" y3="34.75"/>
+ <curve x1="58.62" x2="58.86" x3="59.1" y1="35.04" y2="35.32" y3="35.61"/>
+ <curve x1="59.73" x2="59.33" x3="58.74" y1="36.24" y2="37.13" y3="37.61"/>
+ <curve x1="58" x2="58.72" x3="58.68" y1="38.05" y2="38.58" y3="39.14"/>
+ <curve x1="59.07" x2="59.47" x3="59.86" y1="39.14" y2="39.14" y3="39.14"/>
+ <curve x1="60.25" x2="60.6" x3="60.81" y1="39.07" y2="39.26" y3="39.59"/>
+ <close/>
+ <move x="55.28" y="40.7"/>
+ <curve x1="55.28" x2="55.28" x3="55.28" y1="40.59" y2="40.47" y3="40.36"/>
+ <curve x1="55.4" x2="54.77" x3="54.41" y1="39.77" y2="39.4" y3="39.13"/>
+ <curve x1="53.7" x2="52.8" x3="52.55" y1="39.09" y2="39.11" y3="39.93"/>
+ <curve x1="52.29" x2="52.47" x3="52.69" y1="40.47" y2="41.08" y3="41.55"/>
+ <curve x1="53.07" x2="53.86" x3="54.44" y1="42.13" y2="42.21" y3="42.06"/>
+ <curve x1="54.9" x2="55.4" x3="55.28" y1="41.77" y2="41.32" y3="40.7"/>
+ <close/>
+ <move x="46.93" y="42.65"/>
+ <curve x1="47.18" x2="46.98" x3="47.05" y1="43.28" y2="44.01" y3="44.68"/>
+ <curve x1="47.1" x2="47" x3="46.93" y1="45.21" y2="45.59" y3="46"/>
+ <curve x1="46.77" x2="46.34" x3="46.18" y1="46.28" y2="46.28" y3="46.57"/>
+ <curve x1="45.55" x2="44.93" x3="44.3" y1="46.57" y2="46.57" y3="46.57"/>
+ <curve x1="43.67" x2="43.69" x3="43.52" y1="46.38" y2="47.2" y3="47.61"/>
+ <curve x1="43.09" x2="43.63" x3="43.97" y1="48.11" y2="48.4" y3="48.77"/>
+ <curve x1="44.32" x2="44.7" x3="44.97" y1="49.08" y2="49.59" y3="49.78"/>
+ <curve x1="45.03" x2="45.01" x3="44.97" y1="50.28" y2="50.63" y3="51.12"/>
+ <curve x1="44.27" x2="43.71" x3="42.91" y1="51.75" y2="52.54" y3="53.04"/>
+ <curve x1="42.58" x2="42.08" x3="41.8" y1="53.52" y2="53.09" y3="52.88"/>
+ <curve x1="41.43" x2="40.78" x3="40.31" y1="52.32" y2="51.87" y3="51.35"/>
+ <curve x1="39.86" x2="39.49" x3="39.01" y1="51.24" y2="51.93" y3="51.88"/>
+ <curve x1="38.47" x2="38.88" x3="38.75" y1="51.86" y2="52.8" y3="53.19"/>
+ <curve x1="38.67" x2="38.92" x3="38.64" y1="53.61" y2="54.36" y3="54.58"/>
+ <curve x1="38.61" x2="38.37" x3="37.92" y1="55.01" y2="55.22" y3="55.21"/>
+ <curve x1="37.68" x2="37.02" x3="36.6" y1="55.45" y2="55.27" y3="55.33"/>
+ <curve x1="36.11" x2="35.55" x3="35.22" y1="55.32" y2="55.38" y3="55.21"/>
+ <curve x1="34.85" x2="34.73" x3="34.55" y1="55.14" y2="54.83" y3="54.58"/>
+ <curve x1="34.55" x2="34.55" x3="34.55" y1="53.68" y2="52.78" y3="51.88"/>
+ <curve x1="33.93" x2="33.56" x3="32.99" y1="52.01" y2="51.38" y3="51.29"/>
+ <curve x1="32.55" x2="32.11" x3="31.68" y1="51.73" y2="52.18" y3="52.62"/>
+ <curve x1="31.41" x2="31.11" x3="30.58" y1="52.93" y2="53.37" y3="53.25"/>
+ <curve x1="29.83" x2="29.24" x3="28.56" y1="52.73" y2="51.98" y3="51.35"/>
+ <curve x1="28.49" x2="27.83" x3="28.33" y1="50.93" y2="50.45" y3="50.03"/>
+ <curve x1="28.55" x2="29.11" x3="29.54" y1="49.42" y2="49.02" y3="48.53"/>
+ <curve x1="28.9" x2="28.25" x3="27.61" y1="48.53" y2="48.53" y3="48.53"/>
+ <curve x1="26.8" x2="25.94" x3="25.16" y1="48.46" y2="48.67" y3="48.41"/>
+ <curve x1="24.43" x2="23.95" x3="23.38" y1="48.53" y2="47.83" y3="47.5"/>
+ <curve x1="22.65" x2="22.49" x3="22.11" y1="46.94" y2="45.98" y3="45.19"/>
+ <curve x1="22.11" x2="22.11" x3="22.11" y1="39.22" y2="33.26" y3="27.29"/>
+ <curve x1="22.02" x2="22.23" x3="22.28" y1="26.76" y2="26.31" y3="25.81"/>
+ <curve x1="22.43" x2="22.66" x3="22.95" y1="25.46" y2="25" y3="24.68"/>
+ <curve x1="23.14" x2="23.74" x3="24.12" y1="24.29" y2="24.24" y3="23.98"/>
+ <curve x1="32.03" x2="39.93" x3="47.83" y1="23.98" y2="23.98" y3="23.98"/>
+ <curve x1="48.63" x2="49.49" x3="49.96" y1="23.9" y2="24.11" y3="24.81"/>
+ <curve x1="50.31" x2="50.58" x3="50.64" y1="25.15" y2="25.55" y3="26.03"/>
+ <curve x1="50.71" x2="50.65" x3="50.67" y1="27.35" y2="28.7" y3="30.03"/>
+ <curve x1="50.7" x2="50.7" x3="50.27" y1="30.56" y2="31.06" y3="31.29"/>
+ <curve x1="41.4" x2="32.54" x3="23.67" y1="31.29" y2="31.29" y3="31.29"/>
+ <curve x1="23.68" x2="23.64" x3="23.69" y1="35.74" y2="40.21" y3="44.66"/>
+ <curve x1="23.78" x2="23.86" x3="24.19" y1="45.13" y2="45.49" y3="45.84"/>
+ <curve x1="24.4" x2="24.82" x3="25.26" y1="46.25" y2="46.55" y3="46.7"/>
+ <curve x1="26.52" x2="27.83" x3="29.11" y1="46.79" y2="46.71" y3="46.74"/>
+ <curve x1="29.84" x2="28.52" x3="28.22" y1="46.54" y2="46.55" y3="46.57"/>
+ <curve x1="27.66" x2="27.2" x3="26.84" y1="46.61" y2="46.55" y3="46.4"/>
+ <curve x1="26.58" x2="26.41" x3="26.2" y1="46.25" y2="46.01" y3="45.81"/>
+ <curve x1="26.2" x2="26.2" x3="26.2" y1="45.24" y2="44.66" y3="44.08"/>
+ <curve x1="26.3" x2="26.01" x3="26.37" y1="43.68" y2="42.9" y3="42.76"/>
+ <curve x1="26.31" x2="26.79" x3="26.84" y1="42.29" y2="42.37" y3="42.01"/>
+ <curve x1="27.65" x2="28.47" x3="29.28" y1="42.01" y2="42.01" y3="42.01"/>
+ <curve x1="29.59" x2="29.66" x3="29.88" y1="41.72" y2="41.09" y3="40.66"/>
+ <curve x1="30.22" x2="29.38" x3="29.16" y1="40.16" y2="39.89" y3="39.5"/>
+ <curve x1="28.74" x2="28.49" x3="28.2" y1="39.15" y2="38.76" y3="38.35"/>
+ <curve x1="27.9" x2="28.58" x3="28.5" y1="37.85" y2="37.63" y3="37.17"/>
+ <curve x1="28.98" x2="29.46" x3="29.94" y1="36.69" y2="36.21" y3="35.74"/>
+ <curve x1="30.19" x2="30.67" x3="31.21" y1="35.39" y2="35.33" y3="35.39"/>
+ <curve x1="31.81" x2="32.39" x3="32.99" y1="35.96" y2="36.59" y3="37.17"/>
+ <curve x1="33.51" x2="34.01" x3="34.55" y1="36.96" y2="36.75" y3="36.6"/>
+ <curve x1="34.55" x2="34.55" x3="34.55" y1="35.92" y2="35.24" y3="34.55"/>
+ <curve x1="34.44" x2="34.71" x3="35.13" y1="34.02" y2="33.57" y3="33.25"/>
+ <curve x1="36.09" x2="37.05" x3="38.01" y1="33.25" y2="33.25" y3="33.25"/>
+ <curve x1="38.36" x2="38.46" x3="38.7" y1="33.37" y2="33.62" y3="33.93"/>
+ <curve x1="38.82" x2="38.72" x3="38.75" y1="34.79" y2="35.72" y3="36.6"/>
+ <curve x1="39.27" x2="39.77" x3="40.25" y1="36.74" y2="36.93" y3="37.17"/>
+ <curve x1="40.7" x2="41.16" x3="41.62" y1="36.73" y2="36.29" y3="35.85"/>
+ <curve x1="41.87" x2="42.28" x3="42.76" y1="35.43" y2="35.31" y3="35.39"/>
+ <curve x1="43.22" x2="43.43" x3="43.84" y1="35.51" y2="35.85" y3="36.21"/>
+ <curve x1="44.12" x2="44.73" x3="44.8" y1="36.61" y2="36.87" y3="37.35"/>
+ <curve x1="45.14" x2="45" x3="44.97" y1="37.66" y2="38.17" y3="38.59"/>
+ <curve x1="44.54" x2="43.83" x3="43.3" y1="39.23" y2="39.75" y3="40.35"/>
+ <curve x1="43.51" x2="43.76" x3="43.88" y1="40.9" y2="41.43" y3="42.01"/>
+ <curve x1="44.45" x2="45.02" x3="45.59" y1="42.01" y2="42.01" y3="42.01"/>
+ <curve x1="46.09" x2="46.85" x3="46.93" y1="41.94" y2="42.05" y3="42.65"/>
+ <close/>
+ <move x="45.44" y="26.28"/>
+ <curve x1="45.44" x2="45.44" x3="45.44" y1="27.28" y2="28.28" y3="29.28"/>
+ <curve x1="46.38" x2="47.32" x3="48.25" y1="29.28" y2="29.28" y3="29.28"/>
+ <curve x1="48.25" x2="48.25" x3="48.25" y1="28.28" y2="27.28" y3="26.28"/>
+ <curve x1="47.32" x2="46.38" x3="45.44" y1="26.28" y2="26.28" y3="26.28"/>
+ <close/>
+ <move x="41.05" y="26.28"/>
+ <curve x1="41.05" x2="41.05" x3="41.05" y1="27.28" y2="28.28" y3="29.28"/>
+ <curve x1="41.95" x2="42.86" x3="43.76" y1="29.28" y2="29.28" y3="29.28"/>
+ <curve x1="43.76" x2="43.76" x3="43.76" y1="28.28" y2="27.28" y3="26.28"/>
+ <curve x1="42.86" x2="41.95" x3="41.05" y1="26.28" y2="26.28" y3="26.28"/>
+ <close/>
+ <move x="38.75" y="44.44"/>
+ <curve x1="38.95" x2="38.93" x3="38.83" y1="44.33" y2="44.3" y3="44.12"/>
+ <curve x1="38.66" x2="38.78" x3="38.36" y1="43.67" y2="43.15" y3="42.82"/>
+ <curve x1="37.97" x2="37.76" x3="37.25" y1="42.58" y2="41.94" y3="42.01"/>
+ <curve x1="36.75" x2="36.32" x3="35.84" y1="41.82" y2="41.96" y3="42.01"/>
+ <curve x1="35.39" x2="35.02" x3="34.64" y1="42.27" y2="42.78" y3="43.16"/>
+ <curve x1="34.56" x2="34.3" x3="34.4" y1="43.61" y2="44" y3="44.47"/>
+ <curve x1="34.64" x2="34.45" x3="35.01" y1="44.87" y2="45.45" y3="45.65"/>
+ <curve x1="35.09" x2="35.57" x3="35.97" y1="46.09" y2="46.33" y3="46.4"/>
+ <curve x1="36.29" x2="36.93" x3="37.26" y1="46.62" y2="46.69" y3="46.4"/>
+ <curve x1="37.68" x2="38.13" x3="38.27" y1="46.36" y2="46.14" y3="45.73"/>
+ <curve x1="38.65" x2="38.8" x3="38.75" y1="45.43" y2="44.94" y3="44.44"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65.3" name="threat c2" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.58" y="43.61"/>
+ <curve x1="76.71" x2="74.74" x3="74.22" y1="43.44" y2="43.03" y3="42.74"/>
+ <curve x1="73.46" x2="73.17" x3="72.81" y1="42.03" y2="41.17" y3="40.12"/>
+ <curve x1="72.35" x2="71.71" x3="69.85" y1="38.71" y2="36.91" y3="35.86"/>
+ <curve x1="68.34" x2="67.1" x3="66.12" y1="34.98" y2="34.75" y3="34.75"/>
+ <curve x1="65.47" x2="63.9" x3="61.63" y1="30.68" y2="26.88" y3="23.68"/>
+ <curve x1="62.79" x2="63.67" x3="64.42" y1="22.44" y2="20.98" y3="19.53"/>
+ <curve x1="65.3" x2="66.12" x3="67.4" y1="17.96" y2="16.51" y3="15.27"/>
+ <curve x1="70.08" x2="75.37" x3="75.44" y1="12.76" y2="13.17" y3="13.17"/>
+ <curve x1="76.31" x2="77.19" x3="77.24" y1="13.29" y2="12.59" y3="11.66"/>
+ <curve x1="77.31" x2="76.66" x3="75.73" y1="10.73" y2="9.97" y3="9.85"/>
+ <curve x1="75.49" x2="68.91" x3="65.18" y1="9.8" y2="9.27" y3="12.83"/>
+ <curve x1="63.44" x2="62.45" x3="61.52" y1="14.41" y2="16.27" y3="17.9"/>
+ <curve x1="60.88" x2="60.23" x3="59.54" y1="19.07" y2="20.12" y3="20.98"/>
+ <curve x1="58.78" x2="57.96" x3="57.08" y1="20.17" y2="19.42" y3="18.66"/>
+ <curve x1="55.64" x2="50.98" x3="45.03" y1="12.59" y2="7.7" y3="5.95"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.69" y2="1.69" y3="1.69"/>
+ <curve x1="45.03" x2="44.27" x3="43.35" y1="0.76" y2="0" y3="0"/>
+ <curve x1="42.41" x2="41.71" x3="41.71" y1="0" y2="0.76" y3="1.69"/>
+ <curve x1="41.71" x2="41.71" x3="41.71" y1="5.31" y2="5.31" y3="5.31"/>
+ <curve x1="41.13" x2="40.55" x3="40.02" y1="5.25" y2="5.19" y3="5.19"/>
+ <curve x1="39.5" x2="39.03" x3="38.57" y1="5.19" y2="5.25" y3="5.31"/>
+ <curve x1="38.57" x2="38.57" x3="38.57" y1="1.69" y2="1.69" y3="1.69"/>
+ <curve x1="38.57" x2="37.81" x3="36.87" y1="0.76" y2="0" y3="0"/>
+ <curve x1="35.94" x2="35.18" x3="35.18" y1="0" y2="0.76" y3="1.69"/>
+ <curve x1="35.18" x2="35.18" x3="35.18" y1="5.88" y2="5.88" y3="5.88"/>
+ <curve x1="29.07" x2="24.35" x3="22.89" y1="7.64" y2="12.59" y3="18.9"/>
+ <curve x1="22.14" x2="21.38" x3="20.68" y1="19.53" y2="20.24" y3="20.98"/>
+ <curve x1="19.92" x2="19.34" x3="18.7" y1="20.17" y2="19.07" y3="17.9"/>
+ <curve x1="17.77" x2="16.78" x3="15.04" y1="16.27" y2="14.41" y3="12.83"/>
+ <curve x1="11.31" x2="4.78" x3="4.49" y1="9.27" y2="9.8" y3="9.85"/>
+ <curve x1="3.56" x2="2.92" x3="2.97" y1="9.97" y2="10.73" y3="11.66"/>
+ <curve x1="3.03" x2="3.9" x3="4.78" y1="12.59" y2="13.29" y3="13.17"/>
+ <curve x1="6.24" x2="10.54" x3="12.76" y1="13.07" y2="13.12" y3="15.27"/>
+ <curve x1="14.1" x2="14.92" x3="15.78" y1="16.51" y2="17.96" y3="19.53"/>
+ <curve x1="16.6" x2="17.36" x3="18.58" y1="20.98" y2="22.44" y3="23.68"/>
+ <curve x1="16.31" x2="14.73" x3="14.16" y1="26.93" y2="30.68" y3="34.75"/>
+ <curve x1="13.17" x2="11.88" x3="10.37" y1="34.75" y2="34.98" y3="35.86"/>
+ <curve x1="8.51" x2="7.87" x3="7.39" y1="36.91" y2="38.71" y3="40.12"/>
+ <curve x1="7.05" x2="6.76" x3="6" y1="41.17" y2="42.03" y3="42.74"/>
+ <curve x1="5.48" x2="3.49" x3="1.63" y1="43.03" y2="43.44" y3="43.61"/>
+ <curve x1="0.7" x2="0" x3="0.12" y1="43.73" y2="44.54" y3="45.47"/>
+ <curve x1="0.17" x2="0.93" x3="1.75" y1="46.35" y2="46.93" y3="46.93"/>
+ <curve x1="1.86" x2="1.86" x3="1.92" y1="46.93" y2="46.93" y3="46.93"/>
+ <curve x1="4.19" x2="7.1" x3="8.15" y1="46.71" y2="46.24" y3="45.3"/>
+ <curve x1="9.61" x2="10.14" x3="10.54" y1="44.02" y2="42.44" y3="41.22"/>
+ <curve x1="11.02" x2="11.24" x3="12" y1="39.95" y2="39.18" y3="38.78"/>
+ <curve x1="12.76" x2="13.34" x3="13.87" y1="38.3" y2="38.19" y3="38.13"/>
+ <curve x1="13.8" x2="13.8" x3="13.8" y1="38.37" y2="38.59" y3="38.83"/>
+ <curve x1="13.8" x2="14.92" x3="16.9" y1="43.39" y2="47.64" y3="51.3"/>
+ <curve x1="15.56" x2="15.14" x3="14.8" y1="52.83" y2="54.69" y3="56.44"/>
+ <curve x1="14.51" x2="14.27" x3="13.75" y1="57.54" y2="58.78" y3="59.83"/>
+ <curve x1="12.53" x2="7.29" x3="7.22" y1="62.44" y2="61.86" y3="61.86"/>
+ <curve x1="6.29" x2="5.48" x3="5.36" y1="61.74" y2="62.44" y3="63.32"/>
+ <curve x1="5.24" x2="5.88" x3="6.82" y1="64.25" y2="65.13" y3="65.18"/>
+ <curve x1="6.88" x2="7.51" x3="8.33" y1="65.18" y2="65.25" y3="65.25"/>
+ <curve x1="10.72" x2="15.09" x3="16.78" y1="65.25" y2="64.78" y3="61.28"/>
+ <curve x1="17.48" x2="17.77" x3="18.06" y1="59.83" y2="58.42" y3="57.14"/>
+ <curve x1="18.29" x2="18.53" x3="18.82" y1="56.03" y2="55.1" y3="54.4"/>
+ <curve x1="23.65" x2="31.34" x3="40.08" y1="61.05" y2="65.3" y3="65.3"/>
+ <curve x1="48.88" x2="56.62" x3="61.4" y1="65.3" y2="61.05" y3="54.4"/>
+ <curve x1="61.69" x2="61.93" x3="62.15" y1="55.1" y2="56.03" y3="57.14"/>
+ <curve x1="62.45" x2="62.74" x3="63.44" y1="58.42" y2="59.83" y3="61.28"/>
+ <curve x1="65.13" x2="69.49" x3="71.88" y1="64.78" y2="65.25" y3="65.25"/>
+ <curve x1="72.7" x2="73.34" x3="73.41" y1="65.25" y2="65.18" y3="65.18"/>
+ <curve x1="74.34" x2="74.97" x3="74.85" y1="65.13" y2="64.25" y3="63.32"/>
+ <curve x1="74.74" x2="73.92" x3="72.98" y1="62.44" y2="61.74" y3="61.86"/>
+ <curve x1="72.93" x2="67.69" x3="66.47" y1="61.86" y2="62.44" y3="59.83"/>
+ <curve x1="65.95" x2="65.71" x3="65.42" y1="58.78" y2="57.54" y3="56.44"/>
+ <curve x1="65.07" x2="64.66" x3="63.32" y1="54.69" y2="52.83" y3="51.37"/>
+ <curve x1="65.3" x2="66.47" x3="66.47" y1="47.64" y2="43.39" y3="38.83"/>
+ <curve x1="66.47" x2="66.41" x3="66.41" y1="38.59" y2="38.37" y3="38.13"/>
+ <curve x1="66.88" x2="67.46" x3="68.15" y1="38.19" y2="38.37" y3="38.78"/>
+ <curve x1="68.91" x2="69.27" x3="69.68" y1="39.18" y2="39.95" y3="41.22"/>
+ <curve x1="70.08" x2="70.61" x3="72" y1="42.44" y2="44.02" y3="45.3"/>
+ <curve x1="73.1" x2="76.02" x3="78.29" y1="46.24" y2="46.71" y3="46.93"/>
+ <curve x1="78.36" x2="78.41" x3="78.46" y1="46.93" y2="46.93" y3="46.93"/>
+ <curve x1="79.29" x2="80.04" x3="80.1" y1="46.93" y2="46.35" y3="45.47"/>
+ <curve x1="80.15" x2="79.51" x3="78.58" y1="44.54" y2="43.73" y3="43.61"/>
+ <close/>
+ <move x="57.79" y="37.79"/>
+ <curve x1="57.79" x2="56.73" x3="55.17" y1="39.36" y2="40.93" y3="42.38"/>
+ <curve x1="55.34" x2="55.34" x3="55.17" y1="42.91" y2="43.38" y3="43.84"/>
+ <curve x1="54.7" x2="53.65" x3="52.9" y1="44.77" y2="45.13" y3="44.67"/>
+ <curve x1="52.72" x2="52.55" x3="52.38" y1="44.48" y2="44.48" y3="44.31"/>
+ <curve x1="51.32" x2="50.1" x3="48.7" y1="44.96" y2="45.48" y3="45.94"/>
+ <curve x1="48.53" x2="47.94" x3="47.31" y1="48.33" y2="50.55" y3="52.3"/>
+ <curve x1="46.19" x2="44.63" x3="42.53" y1="54.87" y2="56.62" y3="56.91"/>
+ <curve x1="42.53" x2="42.53" x3="42" y1="56.91" y2="56.91" y3="56.91"/>
+ <curve x1="40.02" x2="38.15" x3="36.64" y1="56.91" y2="55.5" y3="53.3"/>
+ <curve x1="35.42" x2="34.02" x3="32.8" y1="53.94" y2="54.23" y3="54.23"/>
+ <curve x1="31.69" x2="30.59" x3="29.83" y1="54.23" y2="53.94" y3="53.3"/>
+ <curve x1="28.61" x2="28.13" x3="28.13" y1="52.13" y2="50.55" y3="48.63"/>
+ <curve x1="28.13" x2="28.13" x3="28.25" y1="47.87" y2="47.06" y3="46.23"/>
+ <curve x1="28.13" x2="27.96" x3="27.85" y1="46.23" y2="46.23" y3="46.06"/>
+ <curve x1="25.52" x2="23.66" x3="23.47" y1="45.13" y2="43.38" y3="41.28"/>
+ <curve x1="23.3" x2="23.3" x3="23.3" y1="41.11" y2="40.93" y3="40.82"/>
+ <curve x1="23.47" x2="25.34" x3="28.25" y1="38.25" y2="36.15" y3="34.4"/>
+ <curve x1="29.54" x2="30.88" x3="32.44" y1="33.76" y2="33.11" y3="32.48"/>
+ <curve x1="32.63" x2="33.2" x3="33.85" y1="30.09" y2="27.87" y3="26.13"/>
+ <curve x1="34.9" x2="36.47" x3="38.63" y1="23.55" y2="21.81" y3="21.45"/>
+ <curve x1="38.63" x2="38.63" x3="39.09" y1="21.45" y2="21.45" y3="21.45"/>
+ <curve x1="41.12" x2="42.99" x3="44.51" y1="21.45" y2="22.91" y3="25.3"/>
+ <curve x1="44.97" x2="45.61" x3="46.02" y1="24.96" y2="24.84" y3="24.67"/>
+ <curve x1="46.02" x2="46.02" x3="46.19" y1="24.49" y2="24.37" y3="24.2"/>
+ <curve x1="46.66" x2="47.77" x3="48.53" y1="23.21" y2="22.91" y3="23.38"/>
+ <curve x1="48.99" x2="49.28" x3="49.46" y1="23.55" y2="24.03" y3="24.37"/>
+ <curve x1="50.1" x2="50.68" x3="51.32" y1="24.49" y2="24.84" y3="25.3"/>
+ <curve x1="52.55" x2="53.12" x3="53.12" y1="26.3" y2="27.99" y3="29.91"/>
+ <curve x1="53.12" x2="53.01" x3="52.9" y1="30.55" y2="31.37" y3="32.18"/>
+ <curve x1="53.01" x2="53.12" x3="53.31" y1="32.18" y2="32.36" y3="32.36"/>
+ <curve x1="55.8" x2="57.5" x3="57.67" y1="33.47" y2="35.04" y3="37.31"/>
+ <curve x1="57.79" x2="57.79" x3="57.79" y1="37.43" y2="37.6" y3="37.79"/>
+ <close/>
+ <move x="47.31" y="24.2"/>
+ <curve x1="47.12" x2="46.83" x3="46.83" y1="24.2" y2="24.37" y3="24.67"/>
+ <curve x1="46.83" x2="47.12" x3="47.31" y1="24.96" y2="25.13" y3="25.13"/>
+ <curve x1="47.6" x2="47.94" x3="47.94" y1="25.13" y2="24.96" y3="24.67"/>
+ <curve x1="47.94" x2="47.6" x3="47.31" y1="24.37" y2="24.2" y3="24.2"/>
+ <close/>
+ <move x="45.15" y="26.42"/>
+ <line x="45.15" y="26.59"/>
+ <curve x1="45.9" x2="46.54" x3="46.95" y1="27.69" y2="29.33" y3="30.91"/>
+ <curve x1="48.7" x2="50.27" x3="51.61" y1="31.08" y2="31.37" y3="31.72"/>
+ <curve x1="51.61" x2="51.78" x3="51.78" y1="31.08" y2="30.38" y3="29.91"/>
+ <curve x1="51.78" x2="51.32" x3="50.56" y1="28.16" y2="27.06" y3="26.42"/>
+ <curve x1="50.1" x2="49.75" x3="49.28" y1="26.13" y2="25.94" y3="25.77"/>
+ <curve x1="48.82" x2="47.77" x3="46.95" y1="26.76" y2="27.06" y3="26.59"/>
+ <curve x1="46.66" x2="46.54" x3="46.37" y1="26.42" y2="26.3" y3="25.94"/>
+ <curve x1="46.02" x2="45.61" x3="45.15" y1="26.13" y2="26.3" y3="26.42"/>
+ <close/>
+ <move x="44.04" y="27.23"/>
+ <curve x1="44.04" x2="44.04" x3="43.92" y1="27.23" y2="27.06" y3="27.06"/>
+ <curve x1="42.36" x2="40.49" x3="38.63" y1="27.99" y2="29.33" y3="31.08"/>
+ <curve x1="38.97" x2="39.38" x3="39.73" y1="31.08" y2="30.91" y3="30.91"/>
+ <curve x1="41.12" x2="42.53" x3="43.92" y1="30.72" y2="30.72" y3="30.72"/>
+ <curve x1="43.92" x2="43.92" x3="45.61" y1="30.72" y2="30.72" y3="30.72"/>
+ <curve x1="45.15" x2="44.51" x3="44.04" y1="29.45" y2="28.16" y3="27.23"/>
+ <close/>
+ <move x="35.24" y="26.59"/>
+ <curve x1="34.61" x2="34.2" x3="33.85" y1="28.16" y2="29.91" y3="32.18"/>
+ <curve x1="34.61" x2="35.54" x3="36.47" y1="31.89" y2="31.72" y3="31.37"/>
+ <curve x1="38.63" x2="40.95" x3="43.29" y1="28.98" y2="27.06" y3="25.94"/>
+ <curve x1="41.88" x2="40.37" x3="39.09" y1="23.91" y2="22.91" y3="22.91"/>
+ <curve x1="39.09" x2="39.09" x3="38.8" y1="22.91" y2="22.91" y3="22.91"/>
+ <curve x1="37.41" x2="36.17" x3="35.24" y1="23.09" y2="24.37" y3="26.59"/>
+ <close/>
+ <move x="33.68" y="33.59"/>
+ <line x="33.68" y="34.75"/>
+ <curve x1="33.85" x2="34.02" x3="34.31" y1="34.57" y2="34.28" y3="34.11"/>
+ <curve x1="34.49" x2="34.61" x3="34.78" y1="33.76" y2="33.47" y3="33.3"/>
+ <curve x1="34.49" x2="34.2" x3="33.68" y1="33.47" y2="33.47" y3="33.59"/>
+ <close/>
+ <move x="33.49" y="43.38"/>
+ <curve x1="33.49" x2="33.37" x3="33.09" y1="43.03" y2="42.74" y3="42.74"/>
+ <curve x1="32.8" x2="32.63" x3="32.63" y1="42.74" y2="43.03" y3="43.38"/>
+ <curve x1="32.63" x2="32.8" x3="33.09" y1="43.5" y2="43.84" y3="43.84"/>
+ <curve x1="33.37" x2="33.49" x3="33.49" y1="43.84" y2="43.5" y3="43.38"/>
+ <close/>
+ <move x="32.8" y="41.92"/>
+ <curve x1="32.63" x2="32.63" x3="32.44" y1="41.28" y2="40.82" y3="40.18"/>
+ <curve x1="32.44" x2="32.44" x3="32.44" y1="40.18" y2="40.18" y3="39.18"/>
+ <curve x1="31.22" x2="30.29" x3="29.83" y1="41.45" y2="43.5" y3="45.48"/>
+ <curve x1="31.05" x2="32.27" x3="33.68" y1="45.77" y2="46.06" y3="46.23"/>
+ <curve x1="33.49" x2="33.49" x3="33.37" y1="45.94" y2="45.6" y3="45.3"/>
+ <curve x1="33.2" x2="33.09" x3="32.91" y1="45.13" y2="45.13" y3="44.96"/>
+ <curve x1="31.98" x2="31.69" x3="32.15" y1="44.67" y2="43.5" y3="42.57"/>
+ <curve x1="32.27" x2="32.44" x3="32.8" y1="42.28" y2="42.09" y3="41.92"/>
+ <close/>
+ <move x="28.42" y="44.77"/>
+ <line x="28.61" y="44.96"/>
+ <curve x1="29.24" x2="30.47" x3="32.27" y1="42.38" y2="39.53" y3="36.79"/>
+ <curve x1="32.27" x2="32.27" x3="32.27" y1="36.79" y2="36.79" y3="35.86"/>
+ <curve x1="32.27" x2="32.27" x3="32.27" y1="35.86" y2="35.86" y3="34.11"/>
+ <curve x1="31.05" x2="30" x3="28.9" y1="34.57" y2="35.04" y3="35.69"/>
+ <curve x1="26.27" x2="24.69" x3="24.69" y1="37.31" y2="39.18" y3="40.82"/>
+ <curve x1="24.69" x2="24.69" x3="24.69" y1="40.82" y2="40.82" y3="41.11"/>
+ <curve x1="24.88" x2="26.1" x3="28.42" y1="42.57" y2="43.84" y3="44.77"/>
+ <close/>
+ <move x="32.8" y="52.77"/>
+ <curve x1="33.68" x2="34.78" x3="36" y1="52.77" y2="52.48" y3="51.96"/>
+ <curve x1="35.24" x2="34.61" x3="34.2" y1="50.72" y2="49.26" y3="47.69"/>
+ <curve x1="32.44" x2="30.88" x3="29.54" y1="47.52" y2="47.18" y3="46.7"/>
+ <curve x1="29.54" x2="29.36" x3="29.36" y1="47.35" y2="47.99" y3="48.63"/>
+ <curve x1="29.36" x2="29.83" x3="30.59" y1="50.26" y2="51.48" y3="52.13"/>
+ <curve x1="31.22" x2="31.98" x3="32.8" y1="52.65" y2="52.77" y3="52.77"/>
+ <close/>
+ <move x="37.22" y="51.37"/>
+ <curve x1="38.97" x2="40.66" x3="42.53" y1="50.55" y2="49.09" y3="47.35"/>
+ <curve x1="42.17" x2="41.88" x3="41.42" y1="47.52" y2="47.52" y3="47.52"/>
+ <curve x1="40.02" x2="38.63" x3="37.22" y1="47.69" y2="47.87" y3="47.87"/>
+ <curve x1="36.76" x2="36.17" x3="35.54" y1="47.87" y2="47.87" y3="47.69"/>
+ <curve x1="36" x2="36.64" x3="37.05" y1="49.09" y2="50.26" y3="51.37"/>
+ <curve x1="37.05" x2="37.05" x3="37.22" y1="51.37" y2="51.37" y3="51.37"/>
+ <close/>
+ <move x="46.02" y="51.84"/>
+ <curve x1="46.54" x2="46.95" x3="47.31" y1="50.38" y2="48.45" y3="46.35"/>
+ <curve x1="46.54" x2="45.61" x3="44.63" y1="46.53" y2="46.87" y3="47.06"/>
+ <curve x1="42.53" x2="40.19" x3="37.86" y1="49.45" y2="51.37" y3="52.65"/>
+ <curve x1="39.26" x2="40.78" x3="42" y1="54.52" y2="55.69" y3="55.69"/>
+ <curve x1="42.17" x2="42.36" x3="42.36" y1="55.69" y2="55.69" y3="55.5"/>
+ <curve x1="43.75" x2="44.97" x3="46.02" y1="55.5" y2="54.04" y3="51.84"/>
+ <close/>
+ <move x="47.42" y="44.77"/>
+ <line x="47.42" y="43.67"/>
+ <curve x1="47.31" x2="47.12" x3="46.95" y1="43.96" y2="44.14" y3="44.48"/>
+ <curve x1="46.66" x2="46.54" x3="46.37" y1="44.67" y2="44.96" y3="45.13"/>
+ <curve x1="46.66" x2="47.12" x3="47.42" y1="45.13" y2="44.96" y3="44.77"/>
+ <close/>
+ <move x="45.9" y="43.5"/>
+ <curve x1="46.37" x2="46.95" x3="47.42" y1="42.91" y2="42.09" y3="41.28"/>
+ <curve x1="47.42" x2="47.42" x3="47.31" y1="40.35" y2="39.36" y3="38.37"/>
+ <curve x1="46.95" x2="46.54" x3="46.02" y1="36.15" y2="34.11" y3="32.18"/>
+ <curve x1="45.32" x2="44.63" x3="43.92" y1="32.18" y2="32.01" y3="32.01"/>
+ <curve x1="42.53" x2="41.24" x3="39.85" y1="32.01" y2="32.18" y3="32.36"/>
+ <curve x1="38.97" x2="38.04" x3="37.05" y1="32.48" y2="32.65" y3="32.82"/>
+ <curve x1="36.47" x2="35.83" x3="35.24" y1="33.47" y2="34.11" y3="34.92"/>
+ <curve x1="34.78" x2="34.2" x3="33.68" y1="35.69" y2="36.5" y3="37.14"/>
+ <curve x1="33.68" x2="33.85" x3="33.85" y1="38.08" y2="39.06" y3="39.99"/>
+ <curve x1="34.02" x2="34.02" x3="34.2" y1="40.64" y2="41.11" y3="41.75"/>
+ <curve x1="34.2" x2="34.31" x3="34.49" y1="41.75" y2="41.75" y3="41.92"/>
+ <curve x1="35.24" x2="35.71" x3="35.24" y1="42.28" y2="43.38" y3="44.31"/>
+ <curve x1="35.07" x2="34.9" x3="34.78" y1="44.48" y2="44.67" y3="44.77"/>
+ <curve x1="34.78" x2="34.9" x3="35.07" y1="45.3" y2="45.94" y3="46.35"/>
+ <curve x1="35.07" x2="35.07" x3="37.22" y1="46.35" y2="46.35" y3="46.35"/>
+ <curve x1="38.63" x2="40.02" x3="41.24" y1="46.35" y2="46.35" y3="46.23"/>
+ <curve x1="42.36" x2="43.1" x3="44.04" y1="46.06" y2="45.94" y3="45.77"/>
+ <curve x1="44.63" x2="45.32" x3="45.9" y1="45.13" y2="44.31" y3="43.5"/>
+ <close/>
+ <move x="47.42" y="32.36"/>
+ <curve x1="47.94" x2="48.36" x3="48.7" y1="34.11" y2="36.15" y3="38.25"/>
+ <curve x1="48.7" x2="48.7" x3="48.7" y1="38.25" y2="38.25" y3="39.18"/>
+ <curve x1="49.92" x2="50.85" x3="51.32" y1="37.14" y2="35.04" y3="33.11"/>
+ <curve x1="50.1" x2="48.82" x3="47.42" y1="32.82" y2="32.48" y3="32.36"/>
+ <close/>
+ <move x="53.01" y="43.21"/>
+ <curve x1="53.31" x2="53.65" x3="53.65" y1="43.21" y2="43.03" y3="42.74"/>
+ <curve x1="53.65" x2="53.31" x3="53.01" y1="42.38" y2="42.09" y3="42.09"/>
+ <curve x1="52.9" x2="52.55" x3="52.55" y1="42.09" y2="42.38" y3="42.74"/>
+ <curve x1="52.55" x2="52.9" x3="53.01" y1="43.03" y2="43.21" y3="43.21"/>
+ <close/>
+ <move x="54.24" y="41.28"/>
+ <curve x1="55.63" x2="56.45" x3="56.45" y1="40.18" y2="38.89" y3="37.79"/>
+ <curve x1="56.45" x2="56.45" x3="56.45" y1="37.79" y2="37.79" y3="37.43"/>
+ <curve x1="56.28" x2="55.05" x3="52.72" y1="35.98" y2="34.57" y3="33.59"/>
+ <curve x1="52.72" x2="52.72" x3="52.55" y1="33.59" y2="33.59" y3="33.59"/>
+ <curve x1="51.9" x2="50.68" x3="48.82" y1="36.15" y2="38.89" y3="41.75"/>
+ <curve x1="48.82" x2="48.82" x3="48.82" y1="41.75" y2="41.75" y3="42.57"/>
+ <curve x1="48.82" x2="48.82" x3="48.82" y1="42.57" y2="42.57" y3="44.31"/>
+ <curve x1="49.92" x2="50.97" x3="51.9" y1="43.96" y2="43.5" y3="43.03"/>
+ <curve x1="51.9" x2="51.9" x3="52.07" y1="42.74" y2="42.38" y3="42.28"/>
+ <curve x1="52.55" x2="53.48" x3="54.24" y1="41.28" y2="40.93" y3="41.28"/>
+ <close/>
+ <move x="42.36" y="35.51"/>
+ <curve x1="43.98" x2="44.73" x3="43.87" y1="36.39" y2="38.71" y3="40.46"/>
+ <curve x1="42.93" x2="40.66" x3="38.97" y1="42.32" y2="42.92" y3="41.98"/>
+ <curve x1="37.17" x2="36.36" x3="37.29" y1="41.05" y2="38.88" y3="37.02"/>
+ <curve x1="38.39" x2="40.49" x3="42.36" y1="35.34" y2="34.51" y3="35.51"/>
+ <close/>
+ <move x="39.26" y="39.24"/>
+ <curve x1="39.78" x2="40.19" x3="40.19" y1="39.24" y2="38.71" y3="38.25"/>
+ <curve x1="40.19" x2="39.78" x3="39.26" y1="37.66" y2="37.32" y3="37.32"/>
+ <curve x1="38.85" x2="38.39" x3="38.39" y1="37.32" y2="37.66" y3="38.25"/>
+ <curve x1="38.39" x2="38.85" x3="39.26" y1="38.71" y2="39.24" y3="39.24"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c3" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="33.22" y="33.6"/>
+ <line x="33.22" y="36.25"/>
+ <curve x1="33.22" x2="33.51" x3="33.86" y1="36.88" y2="37.47" y3="37.75"/>
+ <curve x1="33.86" x2="33.86" x3="35.01" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="35.82" x2="36.45" x3="36.45" y1="37.75" y2="38.44" y3="39.25"/>
+ <curve x1="36.45" x2="36.45" x3="36.45" y1="39.25" y2="39.25" y3="42.19"/>
+ <curve x1="38.52" x2="41.63" x3="43.71" y1="43.4" y2="43.4" y3="42.19"/>
+ <curve x1="43.71" x2="43.71" x3="43.71" y1="42.19" y2="42.19" y3="39.25"/>
+ <curve x1="43.71" x2="44.33" x3="45.15" y1="38.44" y2="37.75" y3="37.75"/>
+ <curve x1="45.15" x2="45.15" x3="46.24" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="46.7" x2="46.98" x3="46.98" y1="37.47" y2="36.88" y3="36.25"/>
+ <curve x1="46.98" x2="46.98" x3="46.98" y1="36.25" y2="36.25" y3="33.6"/>
+ <curve x1="46.98" x2="46.88" x3="46.64" y1="33.08" y2="32.73" y3="32.33"/>
+ <curve x1="44.74" x2="42.61" x3="40.31" y1="32.56" y2="32.63" y3="32.63"/>
+ <curve x1="40.31" x2="40.31" x3="40.14" y1="32.63" y2="32.63" y3="32.63"/>
+ <curve x1="40.14" x2="40.14" x3="39.96" y1="32.63" y2="32.63" y3="32.63"/>
+ <curve x1="39.96" x2="39.96" x3="39.91" y1="32.63" y2="32.63" y3="32.63"/>
+ <curve x1="37.6" x2="35.42" x3="33.51" y1="32.63" y2="32.56" y3="32.33"/>
+ <curve x1="33.29" x2="33.22" x3="33.22" y1="32.73" y2="33.08" y3="33.6"/>
+ <close/>
+ <move x="25.8" y="30.43"/>
+ <curve x1="25.8" x2="28.45" x3="32.3" y1="29.45" y2="28.41" y3="27.95"/>
+ <curve x1="32.3" x2="32.3" x3="34.49" y1="27.95" y2="27.95" y3="20.92"/>
+ <curve x1="34.55" x2="34.78" x3="35.25" y1="20.63" y2="20.28" y3="20.28"/>
+ <curve x1="35.25" x2="35.25" x3="44.92" y1="20.28" y2="20.28" y3="20.28"/>
+ <curve x1="45.37" x2="45.61" x3="45.72" y1="20.28" y2="20.63" y3="20.92"/>
+ <curve x1="45.72" x2="45.72" x3="47.8" y1="20.92" y2="20.92" y3="27.95"/>
+ <curve x1="51.71" x2="54.3" x3="54.35" y1="28.41" y2="29.45" y3="30.43"/>
+ <curve x1="54.35" x2="52.17" x3="48.77" y1="31" y2="31.71" y3="32.11"/>
+ <curve x1="49.18" x2="49.29" x3="49.29" y1="33.03" y2="33.95" y3="34.99"/>
+ <curve x1="49.29" x2="49.18" x3="48.77" y1="35.96" y2="36.88" y3="37.75"/>
+ <curve x1="48.77" x2="48.77" x3="49.18" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="49.98" x2="50.62" x3="50.62" y1="37.75" y2="38.44" y3="39.25"/>
+ <curve x1="50.62" x2="50.62" x3="50.62" y1="39.25" y2="39.25" y3="40.87"/>
+ <curve x1="51.82" x2="52.74" x3="52.74" y1="41.04" y2="42.13" y3="43.57"/>
+ <curve x1="52.74" x2="52.74" x3="52.74" y1="43.57" y2="43.57" y3="52.68"/>
+ <curve x1="52.74" x2="51.65" x3="50.33" y1="54.17" y2="55.33" y3="55.33"/>
+ <curve x1="50.33" x2="50.33" x3="40.6" y1="55.33" y2="55.33" y3="55.33"/>
+ <curve x1="40.6" x2="40.6" x3="40.6" y1="55.33" y2="55.33" y3="43.57"/>
+ <curve x1="40.6" x2="40.6" x3="39.56" y1="43.57" y2="43.57" y3="43.57"/>
+ <curve x1="39.56" x2="39.56" x3="39.56" y1="43.57" y2="43.57" y3="55.33"/>
+ <curve x1="39.56" x2="39.56" x3="29.83" y1="55.33" y2="55.33" y3="55.33"/>
+ <curve x1="28.5" x2="27.47" x3="27.47" y1="55.33" y2="54.17" y3="52.68"/>
+ <curve x1="27.47" x2="27.47" x3="27.47" y1="52.68" y2="52.68" y3="43.57"/>
+ <curve x1="27.47" x2="28.33" x3="29.54" y1="42.13" y2="41.04" y3="40.87"/>
+ <curve x1="29.54" x2="29.54" x3="29.54" y1="40.87" y2="40.87" y3="39.25"/>
+ <curve x1="29.54" x2="30.17" x3="30.98" y1="38.44" y2="37.75" y3="37.75"/>
+ <curve x1="30.98" x2="30.98" x3="31.33" y1="37.75" y2="37.75" y3="37.75"/>
+ <curve x1="31.04" x2="30.86" x3="30.86" y1="36.88" y2="35.96" y3="34.99"/>
+ <curve x1="30.86" x2="31.04" x3="31.33" y1="33.95" y2="33.03" y3="32.11"/>
+ <curve x1="27.99" x2="25.8" x3="25.8" y1="31.71" y2="31" y3="30.43"/>
+ <close/>
+ <move x="42.33" y="33.2"/>
+ <curve x1="44.74" x2="44.74" x3="44.74" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="44.86" x2="44.86" x3="44.86" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="45.08" x2="45.15" x3="45.15" y1="33.2" y2="33.32" y3="33.43"/>
+ <curve x1="45.15" x2="45.15" x3="45.15" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="45.15" x2="44.68" x3="44.06" y1="36.31" y2="36.89" y3="36.89"/>
+ <curve x1="42.62" x2="42.62" x3="42.62" y1="36.89" y2="36.89" y3="36.89"/>
+ <curve x1="42.03" x2="41.46" x3="41.46" y1="36.89" y2="36.31" y3="35.61"/>
+ <curve x1="41.46" x2="41.46" x3="41.46" y1="34.35" y2="34.35" y3="34.35"/>
+ <curve x1="41.46" x2="41.51" x3="42.33" y1="33.43" y2="33.2" y3="33.2"/>
+ <close/>
+ <move x="35.24" y="33.2"/>
+ <curve x1="35.47" x2="35.47" x3="35.47" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="37.89" x2="37.89" x3="37.89" y1="33.2" y2="33.2" y3="33.2"/>
+ <curve x1="38.7" x2="38.58" x3="38.58" y1="33.2" y2="33.43" y3="34.29"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="38.53" x2="38.06" x3="37.54" y1="36.31" y2="36.89" y3="36.89"/>
+ <curve x1="36.1" x2="36.1" x3="36.1" y1="36.89" y2="36.89" y3="36.89"/>
+ <curve x1="35.53" x2="35.01" x3="35.01" y1="36.89" y2="36.31" y3="35.61"/>
+ <curve x1="35.01" x2="35.01" x3="35.01" y1="33.43" y2="33.43" y3="33.43"/>
+ <curve x1="35.01" x2="35.06" x3="35.24" y1="33.32" y2="33.2" y3="33.2"/>
+ <close/>
+ <move x="78.6" y="43.11"/>
+ <curve x1="76.75" x2="74.74" x3="74.22" y1="42.94" y2="42.54" y3="42.3"/>
+ <curve x1="73.48" x2="73.13" x3="72.85" y1="41.61" y2="40.69" y3="39.65"/>
+ <curve x1="72.33" x2="71.74" x3="69.85" y1="38.27" y2="36.49" y3="35.45"/>
+ <curve x1="68.29" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.62" y1="30.32" y2="26.62" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.11" x3="67.43" y1="17.81" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.38" x3="75.43" y1="12.62" y2="13.08" y3="13.08"/>
+ <curve x1="76.35" x2="77.15" x3="77.27" y1="13.14" y2="12.45" y3="11.53"/>
+ <curve x1="77.34" x2="76.65" x3="75.73" y1="10.66" y2="9.85" y3="9.74"/>
+ <curve x1="75.49" x2="68.92" x3="65.19" y1="9.74" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.76"/>
+ <curve x1="60.86" x2="60.23" x3="59.54" y1="18.85" y2="19.89" y3="20.81"/>
+ <curve x1="58.79" x2="57.93" x3="57.13" y1="20" y2="19.2" y3="18.5"/>
+ <curve x1="55.62" x2="50.96" x3="45.03" y1="12.45" y2="7.61" y3="5.88"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="45.03" x2="44.22" x3="43.3" y1="0.75" y2="0" y3="0"/>
+ <curve x1="42.38" x2="41.69" x3="41.69" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="41.69" x2="41.69" x3="41.69" y1="5.3" y2="5.3" y3="5.3"/>
+ <curve x1="41.11" x2="40.54" x3="40.02" y1="5.24" y2="5.19" y3="5.19"/>
+ <curve x1="39.5" x2="39.04" x3="38.58" y1="5.19" y2="5.24" y3="5.24"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.58" x2="37.84" x3="36.92" y1="0.75" y2="0" y3="0"/>
+ <curve x1="35.99" x2="35.19" x3="35.19" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="5.88" y2="5.88" y3="5.88"/>
+ <curve x1="29.08" x2="24.36" x3="22.92" y1="7.55" y2="12.51" y3="18.68"/>
+ <curve x1="22.12" x2="21.42" x3="20.73" y1="19.37" y2="20.05" y3="20.81"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.85" y3="17.76"/>
+ <curve x1="17.8" x2="16.76" x3="15.03" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.78" x3="4.49" y1="9.16" y2="9.74" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="2.93" y1="9.85" y2="10.66" y3="11.53"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.08"/>
+ <curve x1="6.22" x2="10.54" x3="12.79" y1="12.92" y2="13.02" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.78" y1="16.32" y2="17.81" y3="19.3"/>
+ <curve x1="16.59" x2="17.39" x3="18.55" y1="20.74" y2="22.18" y3="23.46"/>
+ <curve x1="16.36" x2="14.75" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.53" x2="7.89" x3="7.42" y1="36.49" y2="38.27" y3="39.65"/>
+ <curve x1="7.09" x2="6.74" x3="5.98" y1="40.69" y2="41.61" y3="42.3"/>
+ <curve x1="5.48" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.11"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.9"/>
+ <curve x1="0.17" x2="0.92" x3="1.79" y1="45.82" y2="46.39" y3="46.39"/>
+ <curve x1="1.84" x2="1.84" x3="1.96" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="4.21" x2="7.09" x3="8.18" y1="46.22" y2="45.77" y3="44.78"/>
+ <curve x1="9.62" x2="10.14" x3="10.54" y1="43.57" y2="41.95" y3="40.74"/>
+ <curve x1="10.99" x2="11.29" x3="12.03" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.72" x2="13.36" x3="13.82" y1="37.93" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.93" y2="38.21" y3="38.45"/>
+ <curve x1="13.82" x2="14.91" x3="16.87" y1="42.89" y2="47.09" y3="50.71"/>
+ <curve x1="15.6" x2="15.15" x3="14.8" y1="52.22" y2="54.06" y3="55.79"/>
+ <curve x1="14.51" x2="14.28" x3="13.76" y1="56.88" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.15" y3="61.15"/>
+ <curve x1="6.28" x2="5.48" x3="5.36" y1="61.03" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.88" x3="6.8" y1="63.51" y2="64.32" y3="64.43"/>
+ <curve x1="6.91" x2="7.49" x3="8.35" y1="64.43" y2="64.5" y3="64.5"/>
+ <curve x1="10.71" x2="15.08" x3="16.76" y1="64.5" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.73" x3="18.03" y1="59.14" y2="57.75" y3="56.48"/>
+ <curve x1="18.25" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.83"/>
+ <curve x1="23.61" x2="31.39" x3="40.08" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.83" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.83"/>
+ <curve x1="61.73" x2="61.95" x3="62.19" y1="54.47" y2="55.39" y3="56.48"/>
+ <curve x1="62.47" x2="62.76" x3="63.46" y1="57.75" y2="59.14" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.5" y3="64.5"/>
+ <curve x1="72.73" x2="73.3" x3="73.42" y1="64.5" y2="64.43" y3="64.43"/>
+ <curve x1="74.34" x2="74.97" x3="74.86" y1="64.32" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.94" x3="73.01" y1="61.72" y2="61.03" y3="61.15"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.15" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.71" x3="65.41" y1="58.1" y2="56.88" y3="55.79"/>
+ <curve x1="65.07" x2="64.6" x3="63.34" y1="54.06" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.45" x3="66.45" y1="47.09" y2="42.89" y3="38.45"/>
+ <curve x1="66.45" x2="66.39" x3="66.39" y1="38.21" y2="37.93" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.17" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.92" x2="69.21" x3="69.68" y1="38.73" y2="39.49" y3="40.74"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.57" y3="44.78"/>
+ <curve x1="73.13" x2="76.06" x3="78.26" y1="45.77" y2="46.22" y3="46.39"/>
+ <curve x1="78.31" x2="78.43" x3="78.43" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="79.3" x2="80.04" x3="80.1" y1="46.39" y2="45.82" y3="44.9"/>
+ <curve x1="80.15" x2="79.52" x3="78.6" y1="44.03" y2="43.22" y3="43.11"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="49.73" name="threat c4" strokewidth="inherit" w="61.75">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="60.55" y="33.21"/>
+ <curve x1="59.13" x2="57.54" x3="57.18" y1="33.08" y2="32.77" y3="32.55"/>
+ <curve x1="56.56" x2="56.34" x3="56.07" y1="32.01" y2="31.35" y3="30.55"/>
+ <curve x1="55.67" x2="55.23" x3="53.81" y1="29.48" y2="28.11" y3="27.31"/>
+ <curve x1="52.61" x2="51.68" x3="50.93" y1="26.64" y2="26.46" y3="26.46"/>
+ <curve x1="50.44" x2="49.24" x3="47.51" y1="23.36" y2="20.47" y3="18.03"/>
+ <curve x1="48.4" x2="49.02" x3="49.64" y1="17.09" y2="15.98" y3="14.87"/>
+ <curve x1="50.31" x2="50.93" x3="51.95" y1="13.68" y2="12.57" y3="11.63"/>
+ <curve x1="53.99" x2="58.07" x3="58.11" y1="9.72" y2="10.03" y3="10.03"/>
+ <curve x1="58.82" x2="59.44" x3="59.49" y1="10.12" y2="9.59" y3="8.88"/>
+ <curve x1="59.58" x2="59.05" x3="58.34" y1="8.17" y2="7.59" y3="7.5"/>
+ <curve x1="58.11" x2="53.1" x3="50.17" y1="7.46" y2="7.06" y3="9.77"/>
+ <curve x1="48.89" x2="48.09" x3="47.38" y1="10.97" y2="12.39" y3="13.63"/>
+ <curve x1="46.89" x2="46.45" x3="45.83" y1="14.52" y2="15.32" y3="15.98"/>
+ <curve x1="45.25" x2="44.67" x3="44.01" y1="15.36" y2="14.79" y3="14.21"/>
+ <curve x1="42.85" x2="39.26" x3="34.65" y1="9.59" y2="5.86" y3="4.53"/>
+ <line x="34.65" y="1.29"/>
+ <curve x1="34.65" x2="34.11" x3="33.4" y1="0.58" y2="0" y3="0"/>
+ <curve x1="32.69" x2="32.12" x3="32.12" y1="0" y2="0.58" y3="1.29"/>
+ <line x="32.12" y="4.04"/>
+ <curve x1="31.67" x2="31.28" x3="30.83" y1="4" y2="3.95" y3="3.95"/>
+ <curve x1="30.43" x2="30.08" x3="29.68" y1="3.95" y2="4" y3="4.04"/>
+ <line x="29.68" y="1.29"/>
+ <curve x1="29.68" x2="29.1" x3="28.39" y1="0.58" y2="0" y3="0"/>
+ <curve x1="27.68" x2="27.15" x3="27.15" y1="0" y2="0.58" y3="1.29"/>
+ <line x="27.15" y="4.48"/>
+ <curve x1="22.45" x2="18.77" x3="17.66" y1="5.82" y2="9.59" y3="14.39"/>
+ <curve x1="17.08" x2="16.46" x3="15.93" y1="14.87" y2="15.41" y3="15.98"/>
+ <curve x1="15.35" x2="14.91" x3="14.42" y1="15.36" y2="14.52" y3="13.63"/>
+ <curve x1="13.71" x2="12.91" x3="11.62" y1="12.39" y2="10.97" y3="9.77"/>
+ <curve x1="8.7" x2="3.68" x3="3.46" y1="7.06" y2="7.46" y3="7.5"/>
+ <curve x1="2.75" x2="2.22" x3="2.31" y1="7.59" y2="8.17" y3="8.88"/>
+ <curve x1="2.35" x2="2.97" x3="3.68" y1="9.59" y2="10.12" y3="10.03"/>
+ <curve x1="4.84" x2="8.16" x3="9.85" y1="9.95" y2="9.99" y3="11.63"/>
+ <curve x1="10.87" x2="11.49" x3="12.16" y1="12.57" y2="13.68" y3="14.87"/>
+ <curve x1="12.78" x2="13.4" x3="14.33" y1="15.98" y2="17.09" y3="18.03"/>
+ <curve x1="12.6" x2="11.4" x3="10.87" y1="20.51" y2="23.36" y3="26.46"/>
+ <curve x1="10.12" x2="9.18" x3="7.99" y1="26.46" y2="26.64" y3="27.31"/>
+ <curve x1="6.57" x2="6.08" x3="5.72" y1="28.11" y2="29.48" y3="30.55"/>
+ <curve x1="5.46" x2="5.19" x3="4.61" y1="31.35" y2="32.01" y3="32.55"/>
+ <curve x1="4.26" x2="2.66" x3="1.24" y1="32.77" y2="33.08" y3="33.21"/>
+ <curve x1="0.53" x2="0" x3="0.09" y1="33.3" y2="33.92" y3="34.63"/>
+ <curve x1="0.18" x2="0.71" x3="1.38" y1="35.3" y2="35.74" y3="35.74"/>
+ <line x="1.51" y="35.74"/>
+ <curve x1="3.24" x2="5.5" x3="6.3" y1="35.57" y2="35.21" y3="34.5"/>
+ <curve x1="7.41" x2="7.81" x3="8.16" y1="33.52" y2="32.32" y3="31.39"/>
+ <curve x1="8.47" x2="8.7" x3="9.27" y1="30.42" y2="29.84" y3="29.53"/>
+ <curve x1="9.85" x2="10.29" x3="10.65" y1="29.17" y2="29.08" y3="29.04"/>
+ <line x="10.65" y="29.57"/>
+ <curve x1="10.65" x2="11.54" x3="13.04" y1="33.04" y2="36.28" y3="39.07"/>
+ <curve x1="12.02" x2="11.71" x3="11.4" y1="40.23" y2="41.65" y3="42.98"/>
+ <curve x1="11.22" x2="11" x3="10.6" y1="43.82" y2="44.76" y3="45.56"/>
+ <curve x1="9.67" x2="5.59" x3="5.55" y1="47.55" y2="47.11" y3="47.11"/>
+ <curve x1="4.84" x2="4.22" x3="4.13" y1="47.02" y2="47.55" y3="48.22"/>
+ <curve x1="4.04" x2="4.57" x3="5.28" y1="48.93" y2="49.6" y3="49.64"/>
+ <curve x1="5.32" x2="5.77" x3="6.43" y1="49.64" y2="49.69" y3="49.69"/>
+ <curve x1="8.25" x2="11.62" x3="12.95" y1="49.69" y2="49.33" y3="46.67"/>
+ <curve x1="13.44" x2="13.71" x3="13.89" y1="45.56" y2="44.49" y3="43.51"/>
+ <curve x1="14.11" x2="14.24" x3="14.51" y1="42.67" y2="41.96" y3="41.43"/>
+ <curve x1="18.19" x2="24.18" x3="30.92" y1="46.49" y2="49.73" y3="49.73"/>
+ <curve x1="37.66" x2="43.61" x3="47.29" y1="49.73" y2="46.49" y3="41.43"/>
+ <curve x1="47.56" x2="47.69" x3="47.91" y1="41.96" y2="42.67" y3="43.51"/>
+ <curve x1="48.09" x2="48.35" x3="48.84" y1="44.49" y2="45.56" y3="46.67"/>
+ <curve x1="50.17" x2="53.54" x3="55.36" y1="49.33" y2="49.69" y3="49.69"/>
+ <curve x1="56.03" x2="56.47" x3="56.56" y1="49.69" y2="49.64" y3="49.64"/>
+ <curve x1="57.23" x2="57.76" x3="57.67" y1="49.6" y2="48.93" y3="48.22"/>
+ <curve x1="57.58" x2="56.92" x3="56.25" y1="47.55" y2="47.02" y3="47.11"/>
+ <curve x1="56.21" x2="52.17" x3="51.19" y1="47.11" y2="47.55" y3="45.56"/>
+ <curve x1="50.79" x2="50.57" x3="50.39" y1="44.76" y2="43.82" y3="42.98"/>
+ <curve x1="50.08" x2="49.82" x3="48.8" y1="41.65" y2="40.23" y3="39.12"/>
+ <curve x1="50.31" x2="51.15" x3="51.15" y1="36.28" y2="33.04" y3="29.57"/>
+ <line x="51.15" y="29.04"/>
+ <curve x1="51.55" x2="51.99" x3="52.52" y1="29.08" y2="29.22" y3="29.53"/>
+ <curve x1="53.1" x2="53.32" x3="53.63" y1="29.84" y2="30.42" y3="31.39"/>
+ <curve x1="53.99" x2="54.39" x3="55.5" y1="32.32" y2="33.52" y3="34.5"/>
+ <curve x1="56.29" x2="58.56" x3="60.29" y1="35.21" y2="35.57" y3="35.74"/>
+ <line x="60.42" y="35.74"/>
+ <curve x1="61.04" x2="61.66" x3="61.71" y1="35.74" y2="35.3" y3="34.63"/>
+ <curve x1="61.75" x2="61.26" x3="60.55" y1="33.92" y2="33.3" y3="33.21"/>
+ <close/>
+ <move x="43.9" y="37.13"/>
+ <line x="38.37" y="41.14"/>
+ <curve x1="38.26" x2="38.17" x3="38.13" y1="41.17" y2="41.16" y3="41.01"/>
+ <curve x1="37.87" x2="37.93" x3="37.88" y1="40.31" y2="39.45" y3="39.02"/>
+ <curve x1="36.42" x2="34.94" x3="33.48" y1="39.01" y2="39.06" y3="39"/>
+ <curve x1="33.06" x2="32.83" x3="32.6" y1="38.96" y2="38.63" y3="38.31"/>
+ <line x="29.81" y="33.96"/>
+ <line x="32.03" y="30.54"/>
+ <curve x1="32.55" x2="33.2" x3="33.86" y1="31.64" y2="32.65" y3="33.66"/>
+ <curve x1="34.12" x2="34.35" x3="34.69" y1="34.1" y2="34.57" y3="34.94"/>
+ <line x="38.02" y="34.94"/>
+ <curve x1="37.95" x2="38.12" x3="38.15" y1="34.36" y2="33.79" y3="33.21"/>
+ <curve x1="38.06" x2="38.48" x3="38.82" y1="32.76" y2="32.64" y3="32.85"/>
+ <line x="43.87" y="36.79"/>
+ <curve x1="44" x2="43.98" x3="43.9" y1="36.91" y2="37.08" y3="37.13"/>
+ <close/>
+ <move x="18.54" y="24.55"/>
+ <curve x1="17.88" x2="17.77" x3="17.75" y1="23.94" y2="23.28" y3="22.48"/>
+ <curve x1="17.79" x2="18.45" x3="19.05" y1="21.55" y2="21.07" y3="20.61"/>
+ <line x="25.16" y="20.61"/>
+ <curve x1="25.49" x2="25.91" x3="26.09" y1="20.84" y2="20.88" y3="21.28"/>
+ <curve x1="27.13" x2="28.1" x3="29.11" y1="22.74" y2="24.27" y3="25.76"/>
+ <line x="26.8" y="29.13"/>
+ <curve x1="25.93" x2="25.12" x3="24.27" y1="27.84" y2="26.51" y3="25.22"/>
+ <curve x1="24.04" x2="23.74" x3="23.34" y1="24.91" y2="24.69" y3="24.78"/>
+ <curve x1="21.58" x2="19.84" x3="18.54" y1="24.77" y2="25.02" y3="24.55"/>
+ <close/>
+ <move x="34.43" y="24.73"/>
+ <curve x1="33.81" x2="33.42" x3="32.94" y1="25.31" y2="26.1" y3="26.8"/>
+ <curve x1="30.6" x2="28.19" x3="25.82" y1="30.45" y2="34.06" y3="37.69"/>
+ <curve x1="25.58" x2="25.36" x3="24.97" y1="37.97" y2="38.26" y3="38.32"/>
+ <curve x1="23.88" x2="22.75" x3="21.64" y1="38.42" y2="38.33" y3="38.36"/>
+ <curve x1="20.72" x2="19.79" x3="18.88" y1="38.34" y2="38.4" y3="38.34"/>
+ <curve x1="17.84" x2="17.74" x3="17.75" y1="37.82" y2="36.78" y3="35.78"/>
+ <curve x1="18.04" x2="18.63" x3="19.3" y1="34.92" y2="34.58" y3="34.36"/>
+ <line x="23.69" y="34.36"/>
+ <curve x1="24.67" x2="25.43" x3="26.35" y1="33.13" y2="31.74" y3="30.46"/>
+ <curve x1="28.15" x2="29.98" x3="31.63" y1="27.79" y2="25.14" y3="22.38"/>
+ <curve x1="32.01" x2="32.25" x3="32.79" y1="21.85" y2="21.18" y3="20.82"/>
+ <curve x1="33.12" x2="33.5" x3="33.9" y1="20.66" y2="20.54" y3="20.6"/>
+ <line x="37.89" y="20.6"/>
+ <curve x1="37.83" x2="38" x3="37.98" y1="19.97" y2="19.36" y3="18.73"/>
+ <curve x1="38.25" x2="38.68" x3="38.98" y1="18.3" y2="18.54" y3="18.79"/>
+ <line x="43.78" y="22.24"/>
+ <curve x1="43.93" x2="44.13" x3="43.69" y1="22.54" y2="22.83" y3="23.05"/>
+ <line x="39.07" y="26.52"/>
+ <curve x1="38.76" x2="38.39" x3="38.11" y1="26.68" y2="26.92" y3="26.73"/>
+ <curve x1="37.87" x2="37.88" x3="37.89" y1="26.43" y2="25.99" y3="25.6"/>
+ <curve x1="37.81" x2="38.12" x3="37.54" y1="25.26" y2="24.58" y3="24.69"/>
+ <curve x1="36.51" x2="35.46" x3="34.43" y1="24.53" y2="24.63" y3="24.6"/>
+ <line x="34.43" y="24.67"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c5" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.6" y="43.11"/>
+ <curve x1="76.75" x2="74.74" x3="74.22" y1="42.94" y2="42.54" y3="42.25"/>
+ <curve x1="73.48" x2="73.13" x3="72.78" y1="41.61" y2="40.69" y3="39.65"/>
+ <curve x1="72.33" x2="71.69" x3="69.85" y1="38.27" y2="36.49" y3="35.45"/>
+ <curve x1="68.29" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.62" y1="30.32" y2="26.62" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.11" x3="67.43" y1="17.76" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.38" x3="75.43" y1="12.62" y2="13.02" y3="13.02"/>
+ <curve x1="76.35" x2="77.15" x3="77.27" y1="13.14" y2="12.45" y3="11.58"/>
+ <curve x1="77.34" x2="76.64" x3="75.73" y1="10.66" y2="9.85" y3="9.74"/>
+ <curve x1="75.43" x2="68.92" x3="65.19" y1="9.74" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.69"/>
+ <curve x1="60.86" x2="60.23" x3="59.49" y1="18.9" y2="19.94" y3="20.74"/>
+ <curve x1="58.74" x2="57.93" x3="57.13" y1="19.94" y2="19.2" y3="18.5"/>
+ <curve x1="55.62" x2="50.96" x3="45.03" y1="12.45" y2="7.67" y3="5.88"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="45.03" x2="44.22" x3="43.3" y1="0.8" y2="0" y3="0"/>
+ <curve x1="42.38" x2="41.63" x3="41.63" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="41.63" x2="41.63" x3="41.63" y1="5.24" y2="5.24" y3="5.24"/>
+ <curve x1="41.11" x2="40.54" x3="40.02" y1="5.19" y2="5.19" y3="5.19"/>
+ <curve x1="39.5" x2="39.04" x3="38.53" y1="5.19" y2="5.19" y3="5.24"/>
+ <curve x1="38.53" x2="38.53" x3="38.53" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.53" x2="37.84" x3="36.92" y1="0.8" y2="0" y3="0"/>
+ <curve x1="35.99" x2="35.19" x3="35.19" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="5.82" y2="5.82" y3="5.82"/>
+ <curve x1="29.08" x2="24.36" x3="22.92" y1="7.55" y2="12.45" y3="18.68"/>
+ <curve x1="22.12" x2="21.42" x3="20.73" y1="19.3" y2="20.05" y3="20.81"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.9" y3="17.69"/>
+ <curve x1="17.8" x2="16.76" x3="15.03" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.72" x3="4.49" y1="9.16" y2="9.74" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="2.93" y1="9.85" y2="10.66" y3="11.58"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.02"/>
+ <curve x1="6.22" x2="10.54" x3="12.79" y1="12.92" y2="13.02" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.78" y1="16.32" y2="17.76" y3="19.3"/>
+ <curve x1="16.59" x2="17.39" x3="18.55" y1="20.74" y2="22.18" y3="23.4"/>
+ <curve x1="16.29" x2="14.75" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.46" x2="7.89" x3="7.37" y1="36.49" y2="38.27" y3="39.65"/>
+ <curve x1="7.02" x2="6.74" x3="5.98" y1="40.69" y2="41.61" y3="42.25"/>
+ <curve x1="5.48" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.11"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.95"/>
+ <curve x1="0.17" x2="0.92" x3="1.79" y1="45.82" y2="46.46" y3="46.46"/>
+ <curve x1="1.79" x2="1.84" x3="1.96" y1="46.46" y2="46.39" y3="46.39"/>
+ <curve x1="4.14" x2="7.09" x3="8.18" y1="46.22" y2="45.7" y3="44.78"/>
+ <curve x1="9.62" x2="10.14" x3="10.54" y1="43.51" y2="41.95" y3="40.74"/>
+ <curve x1="10.99" x2="11.29" x3="11.98" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.72" x2="13.3" x3="13.82" y1="37.93" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.98" y2="38.15" y3="38.45"/>
+ <curve x1="13.82" x2="14.91" x3="16.87" y1="42.89" y2="47.09" y3="50.78"/>
+ <curve x1="15.6" x2="15.15" x3="14.8" y1="52.22" y2="54.11" y3="55.79"/>
+ <curve x1="14.51" x2="14.28" x3="13.76" y1="56.94" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.2" y3="61.2"/>
+ <curve x1="6.28" x2="5.48" x3="5.36" y1="61.03" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.88" x3="6.8" y1="63.51" y2="64.38" y3="64.43"/>
+ <curve x1="6.85" x2="7.49" x3="8.35" y1="64.5" y2="64.55" y3="64.55"/>
+ <curve x1="10.71" x2="15.08" x3="16.76" y1="64.55" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.73" x3="18.03" y1="59.19" y2="57.75" y3="56.48"/>
+ <curve x1="18.25" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.78"/>
+ <curve x1="23.61" x2="31.39" x3="40.08" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.83" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.83"/>
+ <curve x1="61.73" x2="61.95" x3="62.19" y1="54.52" y2="55.39" y3="56.48"/>
+ <curve x1="62.47" x2="62.76" x3="63.46" y1="57.75" y2="59.19" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.55" y3="64.55"/>
+ <curve x1="72.73" x2="73.3" x3="73.42" y1="64.55" y2="64.5" y3="64.43"/>
+ <curve x1="74.34" x2="74.97" x3="74.86" y1="64.38" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.94" x3="73.01" y1="61.72" y2="61.03" y3="61.2"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.2" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.71" x3="65.41" y1="58.1" y2="56.94" y3="55.79"/>
+ <curve x1="65.07" x2="64.6" x3="63.34" y1="54.11" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.45" x3="66.45" y1="47.09" y2="42.89" y3="38.45"/>
+ <curve x1="66.45" x2="66.39" x3="66.39" y1="38.15" y2="37.98" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.17" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.92" x2="69.21" x3="69.61" y1="38.73" y2="39.49" y3="40.74"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.51" y3="44.78"/>
+ <curve x1="73.13" x2="76.01" x3="78.26" y1="45.7" y2="46.22" y3="46.39"/>
+ <curve x1="78.31" x2="78.37" x3="78.43" y1="46.39" y2="46.46" y3="46.46"/>
+ <curve x1="79.3" x2="80.04" x3="80.1" y1="46.46" y2="45.82" y3="44.95"/>
+ <curve x1="80.15" x2="79.52" x3="78.6" y1="44.03" y2="43.22" y3="43.11"/>
+ <close/>
+ <move x="54.82" y="40.81"/>
+ <curve x1="54.47" x2="53.84" x3="52.86" y1="42.65" y2="44.38" y3="46"/>
+ <curve x1="52.86" x2="52.86" x3="55.56" y1="46" y2="46" y3="51.53"/>
+ <curve x1="55.56" x2="55.56" x3="49.63" y1="51.53" y2="51.53" y3="49.8"/>
+ <curve x1="48.31" x2="46.81" x3="45.2" y1="50.89" y2="51.7" y3="52.28"/>
+ <curve x1="45.2" x2="45.2" x3="43.65" y1="52.28" y2="52.28" y3="58.1"/>
+ <curve x1="43.65" x2="43.65" x3="40.77" y1="58.1" y2="58.1" y3="53.09"/>
+ <curve x1="40.77" x2="40.77" x3="40.48" y1="53.09" y2="53.09" y3="53.09"/>
+ <curve x1="38.81" x2="37.2" x3="35.7" y1="53.09" y2="52.85" y3="52.28"/>
+ <curve x1="35.7" x2="35.7" x3="29.08" y1="52.28" y2="52.28" y3="56.94"/>
+ <curve x1="29.08" x2="29.08" x3="31.38" y1="56.94" y2="56.94" y3="49.92"/>
+ <curve x1="29.94" x2="28.73" x3="27.81" y1="48.7" y2="47.26" y3="45.53"/>
+ <curve x1="27.81" x2="27.81" x3="21.31" y1="45.53" y2="45.53" y3="45.41"/>
+ <curve x1="21.31" x2="21.31" x3="26.25" y1="45.41" y2="45.41" y3="41.73"/>
+ <curve x1="26.03" x2="25.85" x3="25.85" y1="40.57" y2="39.42" y3="38.21"/>
+ <curve x1="25.85" x2="25.97" x3="26.15" y1="37.24" y2="36.31" y3="35.39"/>
+ <curve x1="26.15" x2="26.15" x3="21.19" y1="35.39" y2="35.39" y3="31.64"/>
+ <curve x1="21.19" x2="21.19" x3="27.36" y1="31.64" y2="31.64" y3="31.64"/>
+ <curve x1="28.33" x2="29.77" x3="31.5" y1="29.57" y2="27.84" y3="26.45"/>
+ <curve x1="31.5" x2="31.5" x3="30.41" y1="26.45" y2="26.45" y3="20.63"/>
+ <curve x1="30.41" x2="30.41" x3="34.43" y1="20.63" y2="20.63" y3="24.61"/>
+ <curve x1="36.27" x2="38.3" x3="40.43" y1="23.75" y2="23.28" y3="23.28"/>
+ <curve x1="40.43" x2="40.43" x3="41.23" y1="23.28" y2="23.28" y3="23.28"/>
+ <curve x1="41.23" x2="41.23" x3="44.52" y1="23.28" y2="23.28" y3="19.36"/>
+ <curve x1="44.52" x2="44.52" x3="44.92" y1="19.36" y2="19.36" y3="24.04"/>
+ <curve x1="47.1" x2="49.06" x3="50.67" y1="24.72" y2="26" y3="27.55"/>
+ <curve x1="50.67" x2="50.67" x3="55.51" y1="27.55" y2="27.55" y3="26"/>
+ <curve x1="55.51" x2="55.51" x3="52.91" y1="26" y2="26" y3="30.49"/>
+ <curve x1="54.02" x2="54.76" x3="54.99" y1="32.33" y2="34.52" y3="36.77"/>
+ <curve x1="54.99" x2="54.99" x3="59.89" y1="36.77" y2="36.77" y3="38.79"/>
+ <curve x1="59.89" x2="59.89" x3="54.82" y1="38.79" y2="38.79" y3="40.81"/>
+ <close/>
+ <move x="50.45" y="34.93"/>
+ <curve x1="49.86" x2="49.35" x3="49.35" y1="34.93" y2="35.45" y3="36.08"/>
+ <curve x1="49.35" x2="49.86" x3="50.45" y1="36.72" y2="37.24" y3="37.24"/>
+ <curve x1="51.07" x2="51.59" x3="51.59" y1="37.24" y2="36.72" y3="36.08"/>
+ <curve x1="51.59" x2="51.07" x3="50.45" y1="35.45" y2="34.93" y3="34.93"/>
+ <close/>
+ <move x="45.32" y="34.93"/>
+ <curve x1="44.69" x2="44.17" x3="44.17" y1="34.93" y2="35.45" y3="36.08"/>
+ <curve x1="44.17" x2="44.69" x3="45.32" y1="36.72" y2="37.24" y3="37.24"/>
+ <curve x1="45.96" x2="46.46" x3="46.46" y1="37.24" y2="36.72" y3="36.08"/>
+ <curve x1="46.46" x2="45.96" x3="45.32" y1="35.45" y2="34.93" y3="34.93"/>
+ <close/>
+ <move x="40.19" y="34.93"/>
+ <curve x1="39.56" x2="39.04" x3="39.04" y1="34.93" y2="35.45" y3="36.08"/>
+ <curve x1="39.04" x2="39.56" x3="40.19" y1="36.72" y2="37.24" y3="37.24"/>
+ <curve x1="40.83" x2="41.28" x3="41.28" y1="37.24" y2="36.72" y3="36.08"/>
+ <curve x1="41.28" x2="40.83" x3="40.19" y1="35.45" y2="34.93" y3="34.93"/>
+ <close/>
+ <move x="35.01" y="34.93"/>
+ <curve x1="34.38" x2="33.91" x3="33.91" y1="34.93" y2="35.45" y3="36.08"/>
+ <curve x1="33.91" x2="34.38" x3="35.01" y1="36.72" y2="37.24" y3="37.24"/>
+ <curve x1="35.64" x2="36.16" x3="36.16" y1="37.24" y2="36.72" y3="36.08"/>
+ <curve x1="36.16" x2="35.64" x3="35.01" y1="35.45" y2="34.93" y3="34.93"/>
+ <close/>
+ <move x="29.89" y="34.93"/>
+ <curve x1="29.25" x2="28.73" x3="28.73" y1="34.93" y2="35.45" y3="36.08"/>
+ <curve x1="28.73" x2="29.25" x3="29.89" y1="36.72" y2="37.24" y3="37.24"/>
+ <curve x1="30.52" x2="31.04" x3="31.04" y1="37.24" y2="36.72" y3="36.08"/>
+ <curve x1="31.04" x2="30.52" x3="29.89" y1="35.45" y2="34.93" y3="34.93"/>
+ <close/>
+ <move x="29.89" y="42.19"/>
+ <curve x1="30.52" x2="31.04" x3="31.04" y1="42.19" y2="41.73" y3="41.04"/>
+ <curve x1="31.04" x2="30.52" x3="29.89" y1="40.4" y2="39.88" y3="39.88"/>
+ <curve x1="29.25" x2="28.73" x3="28.73" y1="39.88" y2="40.4" y3="41.04"/>
+ <curve x1="28.73" x2="29.25" x3="29.89" y1="41.73" y2="42.19" y3="42.19"/>
+ <close/>
+ <move x="35.01" y="42.19"/>
+ <curve x1="35.64" x2="36.16" x3="36.16" y1="42.19" y2="41.73" y3="41.04"/>
+ <curve x1="36.16" x2="35.64" x3="35.01" y1="40.4" y2="39.88" y3="39.88"/>
+ <curve x1="34.38" x2="33.91" x3="33.91" y1="39.88" y2="40.4" y3="41.04"/>
+ <curve x1="33.91" x2="34.38" x3="35.01" y1="41.73" y2="42.19" y3="42.19"/>
+ <close/>
+ <move x="40.19" y="42.19"/>
+ <curve x1="40.83" x2="41.28" x3="41.28" y1="42.19" y2="41.73" y3="41.04"/>
+ <curve x1="41.28" x2="40.83" x3="40.19" y1="40.4" y2="39.88" y3="39.88"/>
+ <curve x1="39.56" x2="39.04" x3="39.04" y1="39.88" y2="40.4" y3="41.04"/>
+ <curve x1="39.04" x2="39.56" x3="40.19" y1="41.73" y2="42.19" y3="42.19"/>
+ <close/>
+ <move x="27.41" y="39.01"/>
+ <line x="52.98" y="39.01"/>
+ <curve x1="53.15" x2="53.27" x3="53.27" y1="39.01" y2="38.9" y3="38.73"/>
+ <curve x1="53.27" x2="53.15" x3="52.98" y1="38.5" y2="38.33" y3="38.33"/>
+ <curve x1="52.98" x2="52.98" x3="27.41" y1="38.33" y2="38.33" y3="38.33"/>
+ <curve x1="27.24" x2="27.06" x3="27.06" y1="38.33" y2="38.5" y3="38.73"/>
+ <curve x1="27.06" x2="27.24" x3="27.41" y1="38.9" y2="39.01" y3="39.01"/>
+ <close/>
+ <move x="45.32" y="42.19"/>
+ <curve x1="45.96" x2="46.46" x3="46.46" y1="42.19" y2="41.73" y3="41.04"/>
+ <curve x1="46.46" x2="45.96" x3="45.32" y1="40.4" y2="39.88" y3="39.88"/>
+ <curve x1="44.69" x2="44.17" x3="44.17" y1="39.88" y2="40.4" y3="41.04"/>
+ <curve x1="44.17" x2="44.69" x3="45.32" y1="41.73" y2="42.19" y3="42.19"/>
+ <close/>
+ <move x="50.45" y="42.19"/>
+ <curve x1="51.07" x2="51.59" x3="51.59" y1="42.19" y2="41.73" y3="41.04"/>
+ <curve x1="51.59" x2="51.07" x3="50.45" y1="40.4" y2="39.88" y3="39.88"/>
+ <curve x1="49.86" x2="49.35" x3="49.35" y1="39.88" y2="40.4" y3="41.04"/>
+ <curve x1="49.35" x2="49.86" x3="50.45" y1="41.73" y2="42.19" y3="42.19"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c6" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.6" y="43.11"/>
+ <curve x1="76.75" x2="74.74" x3="74.22" y1="42.94" y2="42.54" y3="42.25"/>
+ <curve x1="73.48" x2="73.18" x3="72.85" y1="41.61" y2="40.69" y3="39.65"/>
+ <curve x1="72.33" x2="71.74" x3="69.85" y1="38.27" y2="36.49" y3="35.45"/>
+ <curve x1="68.35" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.62" y1="30.32" y2="26.57" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.11" x3="67.43" y1="17.76" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.38" x3="75.43" y1="12.62" y2="13.02" y3="13.02"/>
+ <curve x1="76.35" x2="77.15" x3="77.27" y1="13.14" y2="12.45" y3="11.53"/>
+ <curve x1="77.34" x2="76.64" x3="75.73" y1="10.66" y2="9.85" y3="9.74"/>
+ <curve x1="75.49" x2="68.92" x3="65.19" y1="9.74" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.69"/>
+ <curve x1="60.86" x2="60.29" x3="59.54" y1="18.85" y2="19.94" y3="20.74"/>
+ <curve x1="58.79" x2="57.93" x3="57.13" y1="19.94" y2="19.2" y3="18.5"/>
+ <curve x1="55.62" x2="50.96" x3="45.03" y1="12.45" y2="7.67" y3="5.88"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="45.03" x2="44.22" x3="43.3" y1="0.75" y2="0" y3="0"/>
+ <curve x1="42.38" x2="41.69" x3="41.69" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="41.69" x2="41.69" x3="41.69" y1="5.24" y2="5.24" y3="5.24"/>
+ <curve x1="41.11" x2="40.6" x3="40.02" y1="5.19" y2="5.13" y3="5.13"/>
+ <curve x1="39.56" x2="39.04" x3="38.58" y1="5.13" y2="5.19" y3="5.24"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.58" x2="37.84" x3="36.92" y1="0.75" y2="0" y3="0"/>
+ <curve x1="35.99" x2="35.19" x3="35.19" y1="0" y2="0.75" y3="1.67"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="5.82" y2="5.82" y3="5.82"/>
+ <curve x1="29.14" x2="24.36" x3="22.92" y1="7.55" y2="12.45" y3="18.68"/>
+ <curve x1="22.12" x2="21.42" x3="20.73" y1="19.3" y2="20.05" y3="20.81"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.9" y3="17.69"/>
+ <curve x1="17.8" x2="16.76" x3="15.03" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.78" x3="4.49" y1="9.16" y2="9.74" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="2.93" y1="9.85" y2="10.66" y3="11.53"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.02"/>
+ <curve x1="6.22" x2="10.54" x3="12.79" y1="12.92" y2="12.97" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.78" y1="16.32" y2="17.76" y3="19.3"/>
+ <curve x1="16.59" x2="17.39" x3="18.6" y1="20.74" y2="22.18" y3="23.4"/>
+ <curve x1="16.36" x2="14.75" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.53" x2="7.89" x3="7.42" y1="36.49" y2="38.27" y3="39.65"/>
+ <curve x1="7.09" x2="6.74" x3="5.98" y1="40.69" y2="41.61" y3="42.25"/>
+ <curve x1="5.48" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.11"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.95"/>
+ <curve x1="0.17" x2="0.92" x3="1.79" y1="45.82" y2="46.39" y3="46.39"/>
+ <curve x1="1.84" x2="1.84" x3="1.96" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="4.21" x2="7.09" x3="8.18" y1="46.17" y2="45.7" y3="44.78"/>
+ <curve x1="9.62" x2="10.14" x3="10.59" y1="43.51" y2="41.95" y3="40.74"/>
+ <curve x1="10.99" x2="11.29" x3="12.03" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.72" x2="13.36" x3="13.82" y1="37.93" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.93" y2="38.15" y3="38.45"/>
+ <curve x1="13.82" x2="14.91" x3="16.93" y1="42.89" y2="47.09" y3="50.78"/>
+ <curve x1="15.6" x2="15.15" x3="14.8" y1="52.22" y2="54.06" y3="55.79"/>
+ <curve x1="14.51" x2="14.28" x3="13.76" y1="56.94" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.2" y3="61.15"/>
+ <curve x1="6.28" x2="5.48" x3="5.36" y1="61.03" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.88" x3="6.8" y1="63.51" y2="64.38" y3="64.43"/>
+ <curve x1="6.91" x2="7.49" x3="8.35" y1="64.43" y2="64.5" y3="64.5"/>
+ <curve x1="10.71" x2="15.08" x3="16.76" y1="64.5" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.73" x3="18.03" y1="59.19" y2="57.75" y3="56.48"/>
+ <curve x1="18.32" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.78"/>
+ <curve x1="23.61" x2="31.39" x3="40.13" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.83" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.78"/>
+ <curve x1="61.73" x2="61.95" x3="62.19" y1="54.47" y2="55.39" y3="56.48"/>
+ <curve x1="62.47" x2="62.76" x3="63.46" y1="57.75" y2="59.19" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.5" y3="64.5"/>
+ <curve x1="72.73" x2="73.36" x3="73.42" y1="64.5" y2="64.43" y3="64.43"/>
+ <curve x1="74.34" x2="74.97" x3="74.86" y1="64.38" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.94" x3="73.01" y1="61.72" y2="61.03" y3="61.15"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.2" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.71" x3="65.41" y1="58.1" y2="56.94" y3="55.79"/>
+ <curve x1="65.07" x2="64.6" x3="63.34" y1="54.11" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.45" x3="66.45" y1="47.09" y2="42.89" y3="38.45"/>
+ <curve x1="66.45" x2="66.39" x3="66.39" y1="38.15" y2="37.93" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.24" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.92" x2="69.21" x3="69.68" y1="38.73" y2="39.49" y3="40.74"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.51" y3="44.78"/>
+ <curve x1="73.13" x2="76.06" x3="78.26" y1="45.7" y2="46.17" y3="46.39"/>
+ <curve x1="78.31" x2="78.43" x3="78.43" y1="46.39" y2="46.39" y3="46.39"/>
+ <curve x1="79.3" x2="80.04" x3="80.1" y1="46.39" y2="45.82" y3="44.95"/>
+ <curve x1="80.15" x2="79.52" x3="78.6" y1="44.03" y2="43.22" y3="43.11"/>
+ <close/>
+ <move x="39.62" y="37.47"/>
+ <curve x1="35.59" x2="32.3" x3="32.3" y1="37.69" y2="40.75" y3="44.44"/>
+ <curve x1="32.3" x2="35.59" x3="39.62" y1="48.13" y2="51.12" y3="51.47"/>
+ <curve x1="39.62" x2="39.62" x3="39.62" y1="55.33" y2="55.33" y3="55.33"/>
+ <curve x1="35.42" x2="32.02" x3="30.29" y1="54.06" y2="51.98" y3="48.53"/>
+ <curve x1="25.97" x2="25.97" x3="25.97" y1="50.09" y2="50.09" y3="50.09"/>
+ <curve x1="25.85" x2="25.68" x3="25.56" y1="50.09" y2="50.25" y3="50.25"/>
+ <curve x1="25.11" x2="24.59" x3="24.31" y1="50.25" y2="49.97" y3="49.57"/>
+ <curve x1="24.07" x2="24.31" x3="25.11" y1="48.99" y2="48.41" y3="48.07"/>
+ <curve x1="29.42" x2="29.42" x3="29.42" y1="46.4" y2="46.4" y3="46.4"/>
+ <curve x1="29.25" x2="28.97" x3="28.97" y1="45.48" y2="44.37" y3="43.17"/>
+ <curve x1="24.31" x2="24.31" x3="24.31" y1="43.17" y2="43.17" y3="43.17"/>
+ <curve x1="23.55" x2="23.03" x3="23.03" y1="43.17" y2="42.6" y3="42.08"/>
+ <curve x1="23.03" x2="23.55" x3="24.31" y1="41.39" y2="40.97" y3="40.97"/>
+ <curve x1="28.97" x2="28.97" x3="28.97" y1="40.97" y2="40.97" y3="40.97"/>
+ <curve x1="28.97" x2="29.25" x3="29.42" y1="39.88" y2="38.79" y3="37.69"/>
+ <curve x1="25.11" x2="25.11" x3="25.11" y1="36.08" y2="36.08" y3="36.08"/>
+ <curve x1="24.41" x2="24.07" x3="24.31" y1="35.79" y2="35.16" y3="34.64"/>
+ <curve x1="24.59" x2="25.28" x3="25.97" y1="34.07" y2="33.89" y3="34.07"/>
+ <curve x1="30.12" x2="30.12" x3="30.12" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="30.41" x2="30.74" x3="31.33" y1="34.76" y2="33.95" y3="33.2"/>
+ <curve x1="31.56" x2="31.85" x3="31.96" y1="33.31" y2="33.48" y3="33.55"/>
+ <curve x1="34.03" x2="36.62" x3="39.62" y1="34.59" y2="35.16" y3="35.16"/>
+ <line x="39.62" y="37.47"/>
+ <close/>
+ <move x="32.7" y="31.76"/>
+ <curve x1="32.36" x2="32.3" x3="32.18" y1="31.64" y2="31.47" y3="31.41"/>
+ <curve x1="32.77" x2="33.52" x3="34.38" y1="30.6" y2="29.8" y3="29.16"/>
+ <curve x1="31.04" x2="31.04" x3="31.04" y1="25.71" y2="25.71" y3="25.71"/>
+ <curve x1="30.98" x2="30.81" x3="30.69" y1="25.82" y2="25.82" y3="25.82"/>
+ <curve x1="29.43" x2="28.56" x3="28.56" y1="25.82" y2="25.02" y3="23.98"/>
+ <curve x1="28.56" x2="29.43" x3="30.69" y1="22.94" y2="22.14" y3="22.14"/>
+ <curve x1="31.85" x2="32.77" x3="32.77" y1="22.14" y2="22.94" y3="23.98"/>
+ <curve x1="32.77" x2="32.7" x3="32.48" y1="24.27" y2="24.5" y3="24.72"/>
+ <curve x1="35.99" x2="35.99" x3="35.99" y1="28.12" y2="28.12" y3="28.12"/>
+ <curve x1="37.31" x2="38.87" x3="40.26" y1="27.55" y2="27.27" y3="27.27"/>
+ <curve x1="41.75" x2="43.13" x3="44.33" y1="27.27" y2="27.55" y3="28.07"/>
+ <curve x1="47.62" x2="47.62" x3="47.62" y1="24.72" y2="24.72" y3="24.72"/>
+ <curve x1="47.45" x2="47.45" x3="47.45" y1="24.5" y2="24.27" y3="23.98"/>
+ <curve x1="47.45" x2="48.42" x3="49.52" y1="22.94" y2="22.14" y3="22.14"/>
+ <curve x1="50.67" x2="51.59" x3="51.59" y1="22.14" y2="22.94" y3="23.98"/>
+ <curve x1="51.59" x2="50.67" x3="49.52" y1="25.02" y2="25.82" y3="25.82"/>
+ <curve x1="49.41" x2="49.34" x3="49.29" y1="25.82" y2="25.82" y3="25.71"/>
+ <curve x1="45.89" x2="45.89" x3="45.89" y1="29.04" y2="29.04" y3="29.04"/>
+ <curve x1="46.88" x2="47.73" x3="48.42" y1="29.68" y2="30.37" y3="31.41"/>
+ <curve x1="48.2" x2="48.14" x3="47.8" y1="31.47" y2="31.64" y3="31.76"/>
+ <curve x1="45.89" x2="43.19" x3="40.26" y1="32.56" y2="33.2" y3="33.2"/>
+ <curve x1="37.31" x2="34.66" x3="32.7" y1="33.2" y2="32.56" y3="31.76"/>
+ <close/>
+ <move x="55.8" y="43.17"/>
+ <curve x1="51.65" x2="51.65" x3="51.65" y1="43.17" y2="43.17" y3="43.17"/>
+ <curve x1="51.65" x2="51.48" x3="51.13" y1="44.37" y2="45.48" y3="46.57"/>
+ <curve x1="55.22" x2="55.22" x3="55.22" y1="48.07" y2="48.07" y3="48.07"/>
+ <curve x1="55.8" x2="56.09" x3="55.8" y1="48.41" y2="48.99" y3="49.57"/>
+ <curve x1="55.69" x2="55.22" x3="54.76" y1="49.97" y2="50.25" y3="50.25"/>
+ <curve x1="54.7" x2="54.41" x3="54.3" y1="50.25" y2="50.09" y3="50.09"/>
+ <curve x1="50.39" x2="50.39" x3="50.39" y1="48.59" y2="48.59" y3="48.59"/>
+ <curve x1="48.66" x2="45.43" x3="41.46" y1="51.98" y2="54.17" y3="55.33"/>
+ <curve x1="41.46" x2="41.46" x3="41.46" y1="51.47" y2="51.47" y3="51.47"/>
+ <curve x1="45.31" x2="48.36" x3="48.36" y1="51.12" y2="48.07" y3="44.44"/>
+ <curve x1="48.36" x2="45.31" x3="41.46" y1="40.8" y2="37.75" y3="37.47"/>
+ <curve x1="41.46" x2="41.46" x3="41.46" y1="35.16" y2="35.16" y3="35.16"/>
+ <curve x1="44.34" x2="46.76" x3="48.83" y1="35.16" y2="34.59" y3="33.55"/>
+ <curve x1="48.95" x2="49.17" x3="49.47" y1="33.48" y2="33.31" y3="33.2"/>
+ <curve x1="49.92" x2="50.27" x3="50.49" y1="33.95" y2="34.76" y3="35.51"/>
+ <curve x1="54.3" x2="54.3" x3="54.3" y1="34.07" y2="34.07" y3="34.07"/>
+ <curve x1="54.88" x2="55.62" x3="55.8" y1="33.89" y2="34.07" y3="34.64"/>
+ <curve x1="56.09" x2="55.8" x3="55.22" y1="35.16" y2="35.79" y3="36.08"/>
+ <curve x1="51.19" x2="51.19" x3="51.19" y1="37.69" y2="37.69" y3="37.69"/>
+ <curve x1="51.48" x2="51.65" x3="51.65" y1="38.68" y2="39.77" y3="40.97"/>
+ <curve x1="55.97" x2="55.97" x3="55.97" y1="40.97" y2="40.97" y3="40.97"/>
+ <curve x1="56.49" x2="57.13" x3="57.13" y1="40.97" y2="41.39" y3="42.08"/>
+ <curve x1="57.01" x2="56.49" x3="55.8" y1="42.6" y2="43.17" y3="43.17"/>
+ <close/>
+ <move x="37.2" y="44.2"/>
+ <curve x1="35.81" x2="34.56" x3="35.3" y1="44.2" y2="45.71" y3="46.91"/>
+ <curve x1="35.3" x2="35.3" x3="34.96" y1="46.91" y2="46.91" y3="47.03"/>
+ <curve x1="34.09" x2="35.13" x3="37.14" y1="45.47" y2="43.46" y3="43.28"/>
+ <curve x1="36.45" x2="37.61" x3="39.5" y1="41.73" y2="39.83" y3="39.66"/>
+ <curve x1="39.5" x2="39.5" x3="39.5" y1="39.66" y2="39.66" y3="39.94"/>
+ <curve x1="36.97" x2="37.14" x3="39.62" y1="40.11" y2="43.63" y3="43.8"/>
+ <curve x1="39.62" x2="39.62" x3="39.62" y1="43.8" y2="43.8" y3="43.98"/>
+ <curve x1="39.33" x2="39.05" x3="39.05" y1="44.03" y2="44.32" y3="44.67"/>
+ <curve x1="39.05" x2="39.05" x3="39.1" y1="44.72" y2="44.78" y3="44.9"/>
+ <curve x1="39.1" x2="39.1" x3="38.93" y1="44.9" y2="44.9" y3="45.02"/>
+ <curve x1="38.75" x2="38.58" x3="38.35" y1="44.84" y2="44.67" y3="44.5"/>
+ <curve x1="38.35" x2="38.29" x3="38.23" y1="44.5" y2="44.5" y3="44.43"/>
+ <curve x1="37.94" x2="37.54" x3="37.2" y1="44.32" y2="44.2" y3="44.2"/>
+ <close/>
+ <move x="38.93" y="42.42"/>
+ <curve x1="38.81" x2="38.81" x3="38.7" y1="42.37" y2="42.25" y3="42.07"/>
+ <curve x1="39.85" x2="41.29" x3="42.38" y1="41.5" y2="41.5" y3="42.07"/>
+ <curve x1="42.32" x2="42.27" x3="42.15" y1="42.19" y2="42.3" y3="42.42"/>
+ <curve x1="41.23" x2="39.9" x3="38.93" y1="41.9" y2="41.9" y3="42.42"/>
+ <close/>
+ <move x="36.91" y="44.32"/>
+ <curve x1="37.02" x2="37.19" x3="37.31" y1="44.26" y2="44.26" y3="44.26"/>
+ <curve x1="37.26" x2="37.83" x3="38.7" y1="45.24" y2="46.22" y3="46.63"/>
+ <curve x1="38.63" x2="38.52" x3="38.46" y1="46.8" y2="46.91" y3="47.03"/>
+ <curve x1="37.49" x2="36.86" x3="36.91" y1="46.58" y2="45.47" y3="44.32"/>
+ <close/>
+ <move x="40.66" y="46.33"/>
+ <curve x1="40.83" x2="43.64" x3="44.86" y1="48.07" y2="48.76" y3="47.37"/>
+ <curve x1="44.86" x2="44.86" x3="45.15" y1="47.37" y2="47.37" y3="47.49"/>
+ <curve x1="43.94" x2="41.34" x3="40.14" y1="48.88" y2="48.81" y3="47.44"/>
+ <curve x1="39.55" x2="38.63" x3="37.54" y1="48.13" y2="48.53" y3="48.53"/>
+ <curve x1="36.57" x2="35.65" x3="35.01" y1="48.53" y2="48.13" y3="47.49"/>
+ <curve x1="35.01" x2="35.01" x3="35.36" y1="47.49" y2="47.49" y3="47.32"/>
+ <curve x1="35.82" x2="36.5" x3="37.26" y1="47.84" y2="48.13" y3="48.13"/>
+ <curve x1="38.46" x2="39.55" x3="39.62" y1="48.13" y2="47.32" y3="46.33"/>
+ <curve x1="39.62" x2="39.55" x3="39.33" y1="46" y2="45.65" y3="45.3"/>
+ <curve x1="39.33" x2="39.33" x3="39.55" y1="45.3" y2="45.3" y3="45.18"/>
+ <curve x1="39.67" x2="39.9" x3="40.14" y1="45.36" y2="45.41" y3="45.41"/>
+ <curve x1="40.37" x2="40.59" x3="40.71" y1="45.41" y2="45.36" y3="45.24"/>
+ <curve x1="40.71" x2="40.71" x3="40.94" y1="45.24" y2="45.24" y3="45.36"/>
+ <curve x1="40.66" x2="40.59" x3="40.66" y1="45.76" y2="45.93" y3="46.33"/>
+ <close/>
+ <move x="43.02" y="43.28"/>
+ <curve x1="44.98" x2="46.07" x3="45.26" y1="43.46" y2="45.47" y3="47.03"/>
+ <curve x1="45.26" x2="45.26" x3="44.91" y1="47.03" y2="47.03" y3="46.91"/>
+ <curve x1="45.43" x2="44.51" x3="43.02" y1="45.64" y2="44.2" y3="44.2"/>
+ <curve x1="42.26" x2="41.69" x3="41.29" y1="44.2" y2="44.55" y3="45.02"/>
+ <curve x1="41.29" x2="41.29" x3="41.11" y1="45.02" y2="45.02" y3="44.95"/>
+ <curve x1="41.17" x2="41.17" x3="41.17" y1="44.84" y2="44.72" y3="44.67"/>
+ <curve x1="41.17" x2="40.94" x3="40.54" y1="44.32" y2="44.03" y3="43.98"/>
+ <curve x1="40.54" x2="40.54" x3="40.54" y1="43.98" y2="43.98" y3="43.8"/>
+ <curve x1="43.02" x2="43.19" x3="40.71" y1="43.63" y2="40.23" y3="39.94"/>
+ <curve x1="40.71" x2="40.71" x3="40.71" y1="39.94" y2="39.94" y3="39.66"/>
+ <curve x1="42.62" x2="43.76" x3="43.02" y1="39.83" y2="41.67" y3="43.28"/>
+ <close/>
+ <move x="41.46" y="46.63"/>
+ <curve x1="42.38" x2="42.95" x3="42.84" y1="46.28" y2="45.3" y3="44.26"/>
+ <curve x1="43.02" x2="43.19" x3="43.3" y1="44.26" y2="44.26" y3="44.32"/>
+ <curve x1="43.3" x2="42.67" x3="41.69" y1="45.54" y2="46.58" y3="47.03"/>
+ <curve x1="41.58" x2="41.58" x3="41.46" y1="46.91" y2="46.8" y3="46.63"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c7" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.6" y="43.11"/>
+ <curve x1="76.75" x2="74.74" x3="74.22" y1="42.94" y2="42.54" y3="42.25"/>
+ <curve x1="73.48" x2="73.18" x3="72.85" y1="41.61" y2="40.69" y3="39.65"/>
+ <curve x1="72.33" x2="71.74" x3="69.85" y1="38.27" y2="36.49" y3="35.45"/>
+ <curve x1="68.35" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.62" y1="30.32" y2="26.62" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.16" x3="67.43" y1="17.76" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.38" x3="75.43" y1="12.62" y2="13.02" y3="13.02"/>
+ <curve x1="76.35" x2="77.15" x3="77.27" y1="13.14" y2="12.45" y3="11.58"/>
+ <curve x1="77.34" x2="76.65" x3="75.73" y1="10.66" y2="9.85" y3="9.74"/>
+ <curve x1="75.49" x2="68.92" x3="65.19" y1="9.74" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.69"/>
+ <curve x1="60.86" x2="60.29" x3="59.54" y1="18.9" y2="19.94" y3="20.74"/>
+ <curve x1="58.79" x2="57.93" x3="57.13" y1="19.94" y2="19.2" y3="18.5"/>
+ <curve x1="55.62" x2="50.96" x3="45.03" y1="12.45" y2="7.67" y3="5.88"/>
+ <curve x1="45.03" x2="45.03" x3="45.03" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="45.03" x2="44.22" x3="43.3" y1="0.8" y2="0" y3="0"/>
+ <curve x1="42.38" x2="41.69" x3="41.69" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="41.69" x2="41.69" x3="41.69" y1="5.24" y2="5.24" y3="5.24"/>
+ <curve x1="41.11" x2="40.6" x3="40.02" y1="5.19" y2="5.19" y3="5.19"/>
+ <curve x1="39.56" x2="39.04" x3="38.58" y1="5.19" y2="5.19" y3="5.24"/>
+ <curve x1="38.58" x2="38.58" x3="38.58" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.58" x2="37.84" x3="36.92" y1="0.8" y2="0" y3="0"/>
+ <curve x1="35.99" x2="35.19" x3="35.19" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="35.19" x2="35.19" x3="35.19" y1="5.82" y2="5.82" y3="5.82"/>
+ <curve x1="29.14" x2="24.36" x3="22.92" y1="7.55" y2="12.45" y3="18.68"/>
+ <curve x1="22.12" x2="21.42" x3="20.73" y1="19.3" y2="20.05" y3="20.81"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.9" y3="17.69"/>
+ <curve x1="17.8" x2="16.76" x3="15.08" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.78" x3="4.49" y1="9.16" y2="9.74" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="3" y1="9.85" y2="10.66" y3="11.58"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.02"/>
+ <curve x1="6.22" x2="10.54" x3="12.79" y1="12.92" y2="13.02" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.84" y1="16.32" y2="17.76" y3="19.3"/>
+ <curve x1="16.59" x2="17.45" x3="18.6" y1="20.74" y2="22.18" y3="23.4"/>
+ <curve x1="16.36" x2="14.75" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.53" x2="7.89" x3="7.42" y1="36.49" y2="38.27" y3="39.65"/>
+ <curve x1="7.09" x2="6.74" x3="5.98" y1="40.69" y2="41.61" y3="42.25"/>
+ <curve x1="5.53" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.11"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.95"/>
+ <curve x1="0.17" x2="0.92" x3="1.79" y1="45.82" y2="46.46" y3="46.46"/>
+ <curve x1="1.84" x2="1.84" x3="1.96" y1="46.46" y2="46.39" y3="46.39"/>
+ <curve x1="4.21" x2="7.09" x3="8.18" y1="46.22" y2="45.7" y3="44.78"/>
+ <curve x1="9.62" x2="10.14" x3="10.59" y1="43.51" y2="41.95" y3="40.74"/>
+ <curve x1="10.99" x2="11.29" x3="12.03" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.72" x2="13.36" x3="13.82" y1="37.93" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.98" y2="38.15" y3="38.45"/>
+ <curve x1="13.82" x2="14.91" x3="16.93" y1="42.89" y2="47.09" y3="50.78"/>
+ <curve x1="15.6" x2="15.15" x3="14.8" y1="52.22" y2="54.11" y3="55.79"/>
+ <curve x1="14.51" x2="14.28" x3="13.76" y1="56.94" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.2" y3="61.2"/>
+ <curve x1="6.33" x2="5.48" x3="5.36" y1="61.03" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.88" x3="6.8" y1="63.51" y2="64.38" y3="64.43"/>
+ <curve x1="6.91" x2="7.49" x3="8.35" y1="64.5" y2="64.55" y3="64.55"/>
+ <curve x1="10.71" x2="15.08" x3="16.76" y1="64.55" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.8" x3="18.03" y1="59.19" y2="57.75" y3="56.48"/>
+ <curve x1="18.32" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.78"/>
+ <curve x1="23.61" x2="31.39" x3="40.13" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.88" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.83"/>
+ <curve x1="61.73" x2="61.95" x3="62.19" y1="54.52" y2="55.39" y3="56.48"/>
+ <curve x1="62.47" x2="62.76" x3="63.46" y1="57.75" y2="59.19" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.55" y3="64.55"/>
+ <curve x1="72.73" x2="73.36" x3="73.42" y1="64.55" y2="64.5" y3="64.43"/>
+ <curve x1="74.34" x2="74.97" x3="74.86" y1="64.38" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.94" x3="73.01" y1="61.72" y2="61.03" y3="61.2"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.2" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.71" x3="65.47" y1="58.1" y2="56.94" y3="55.79"/>
+ <curve x1="65.07" x2="64.6" x3="63.34" y1="54.11" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.45" x3="66.45" y1="47.09" y2="42.89" y3="38.45"/>
+ <curve x1="66.45" x2="66.45" x3="66.39" y1="38.15" y2="37.98" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.24" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.92" x2="69.21" x3="69.68" y1="38.73" y2="39.49" y3="40.74"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.51" y3="44.78"/>
+ <curve x1="73.13" x2="76.06" x3="78.26" y1="45.7" y2="46.22" y3="46.39"/>
+ <curve x1="78.31" x2="78.43" x3="78.43" y1="46.39" y2="46.46" y3="46.46"/>
+ <curve x1="79.3" x2="80.04" x3="80.1" y1="46.46" y2="45.82" y3="44.95"/>
+ <curve x1="80.15" x2="79.52" x3="78.6" y1="44.03" y2="43.22" y3="43.11"/>
+ <close/>
+ <move x="55.74" y="43.45"/>
+ <line x="51.36" y="43.45"/>
+ <curve x1="51.36" x2="51.13" x3="50.73" y1="44.84" y2="46.05" y3="47.26"/>
+ <curve x1="50.73" x2="50.73" x3="55.1" y1="47.26" y2="47.26" y3="49"/>
+ <curve x1="55.74" x2="56.02" x3="55.74" y1="49.33" y2="50.09" y3="50.66"/>
+ <curve x1="55.62" x2="55.1" x3="54.58" y1="51.06" y2="51.41" y3="51.41"/>
+ <curve x1="54.53" x2="54.25" x3="54.13" y1="51.41" y2="51.29" y3="51.29"/>
+ <curve x1="54.13" x2="54.13" x3="49.99" y1="51.29" y2="51.29" y3="49.57"/>
+ <curve x1="48.08" x2="44.68" x3="40.54" y1="53.37" y2="55.85" y3="57.17"/>
+ <curve x1="40.54" x2="40.54" x3="40.54" y1="57.17" y2="57.17" y3="34.52"/>
+ <curve x1="43.59" x2="46.19" x3="48.31" y1="34.52" y2="33.77" y3="32.68"/>
+ <curve x1="48.48" x2="48.72" x3="48.95" y1="32.56" y2="32.45" y3="32.28"/>
+ <curve x1="49.47" x2="49.87" x3="50.09" y1="33.13" y2="34" y3="34.87"/>
+ <curve x1="50.09" x2="50.09" x3="54.13" y1="34.87" y2="34.87" y3="33.32"/>
+ <curve x1="54.76" x2="55.5" x3="55.74" y1="33.08" y2="33.32" y3="33.89"/>
+ <curve x1="56.02" x2="55.74" x3="55.1" y1="34.52" y2="35.28" y3="35.51"/>
+ <curve x1="55.1" x2="55.1" x3="50.84" y1="35.51" y2="35.51" y3="37.35"/>
+ <curve x1="51.13" x2="51.36" x3="51.36" y1="38.44" y2="39.65" y3="41.04"/>
+ <curve x1="51.36" x2="51.36" x3="55.86" y1="41.04" y2="41.04" y3="41.04"/>
+ <curve x1="56.49" x2="57.13" x3="57.13" y1="41.04" y2="41.49" y3="42.25"/>
+ <curve x1="57.01" x2="56.49" x3="55.74" y1="42.82" y2="43.45" y3="43.45"/>
+ <close/>
+ <move x="48.32" y="31.12"/>
+ <curve x1="48.2" x2="48.08" x3="47.85" y1="31.24" y2="31.35" y3="31.47"/>
+ <curve x1="45.84" x2="43.19" x3="40.19" y1="32.51" y2="33.2" y3="33.2"/>
+ <curve x1="37.31" x2="34.61" x3="32.65" y1="33.2" y2="32.51" y3="31.47"/>
+ <curve x1="32.42" x2="32.25" x3="32.13" y1="31.35" y2="31.24" y3="31.12"/>
+ <curve x1="32.77" x2="33.46" x3="34.38" y1="30.08" y2="29.23" y3="28.47"/>
+ <curve x1="34.38" x2="34.38" x3="31.04" y1="28.47" y2="28.47" y3="24.44"/>
+ <curve x1="30.92" x2="30.81" x3="30.69" y1="24.6" y2="24.6" y3="24.6"/>
+ <curve x1="29.43" x2="28.56" x3="28.56" y1="24.6" y2="23.58" y3="22.42"/>
+ <curve x1="28.56" x2="29.43" x3="30.69" y1="21.2" y2="20.28" y3="20.28"/>
+ <curve x1="31.78" x2="32.77" x3="32.77" y1="20.28" y2="21.2" y3="22.42"/>
+ <curve x1="32.77" x2="32.65" x3="32.48" y1="22.71" y2="23.06" y3="23.35"/>
+ <curve x1="32.48" x2="32.48" x3="35.93" y1="23.35" y2="23.35" y3="27.38"/>
+ <curve x1="37.31" x2="38.75" x3="40.19" y1="26.56" y2="26.23" y3="26.23"/>
+ <curve x1="41.68" x2="43.07" x3="44.28" y1="26.23" y2="26.56" y3="27.2"/>
+ <curve x1="44.28" x2="44.28" x3="47.56" y1="27.2" y2="27.2" y3="23.35"/>
+ <curve x1="47.45" x2="47.45" x3="47.45" y1="23.06" y2="22.71" y3="22.42"/>
+ <curve x1="47.45" x2="48.32" x3="49.52" y1="21.2" y2="20.28" y3="20.28"/>
+ <curve x1="50.62" x2="51.59" x3="51.59" y1="20.28" y2="21.2" y3="22.42"/>
+ <curve x1="51.59" x2="50.62" x3="49.52" y1="23.58" y2="24.6" y3="24.6"/>
+ <curve x1="49.46" x2="49.29" x3="49.17" y1="24.6" y2="24.6" y3="24.44"/>
+ <curve x1="49.17" x2="49.17" x3="45.84" y1="24.44" y2="24.44" y3="28.36"/>
+ <curve x1="46.88" x2="47.73" x3="48.32" y1="29.11" y2="29.97" y3="31.12"/>
+ <close/>
+ <move x="31.33" y="32.28"/>
+ <curve x1="31.56" x2="31.78" x3="31.96" y1="32.45" y2="32.56" y3="32.68"/>
+ <curve x1="34.03" x2="36.68" x3="39.62" y1="33.77" y2="34.52" y3="34.52"/>
+ <curve x1="39.62" x2="39.62" x3="39.62" y1="34.52" y2="34.52" y3="57.17"/>
+ <curve x1="35.42" x2="32.02" x3="30.29" y1="55.73" y2="53.37" y3="49.45"/>
+ <curve x1="30.29" x2="30.29" x3="25.92" y1="49.45" y2="49.45" y3="51.29"/>
+ <curve x1="25.8" x2="25.68" x3="25.57" y1="51.29" y2="51.41" y3="51.41"/>
+ <curve x1="25.11" x2="24.59" x3="24.31" y1="51.41" y2="51.06" y3="50.66"/>
+ <curve x1="24.07" x2="24.31" x3="25.11" y1="50.09" y2="49.33" y3="49"/>
+ <curve x1="25.11" x2="25.11" x3="29.42" y1="49" y2="49" y3="47.14"/>
+ <curve x1="29.2" x2="28.9" x3="28.9" y1="46.05" y2="44.84" y3="43.45"/>
+ <curve x1="28.9" x2="28.9" x3="24.31" y1="43.45" y2="43.45" y3="43.45"/>
+ <curve x1="23.55" x2="23.03" x3="23.03" y1="43.45" y2="42.82" y3="42.25"/>
+ <curve x1="23.03" x2="23.55" x3="24.31" y1="41.49" y2="41.04" y3="41.04"/>
+ <curve x1="24.31" x2="24.31" x3="28.9" y1="41.04" y2="41.04" y3="41.04"/>
+ <curve x1="28.9" x2="29.2" x3="29.42" y1="39.77" y2="38.56" y3="37.35"/>
+ <curve x1="29.42" x2="29.42" x3="25.11" y1="37.35" y2="37.35" y3="35.51"/>
+ <curve x1="24.47" x2="24.07" x3="24.31" y1="35.28" y2="34.52" y3="33.89"/>
+ <curve x1="24.59" x2="25.33" x3="25.92" y1="33.32" y2="33.08" y3="33.32"/>
+ <curve x1="25.92" x2="25.92" x3="30.06" y1="33.32" y2="33.32" y3="34.99"/>
+ <curve x1="30.41" x2="30.81" x3="31.33" y1="34" y2="33.13" y3="32.28"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64.55" name="threat c8" strokewidth="inherit" w="80.15">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="78.6" y="43.17"/>
+ <curve x1="76.75" x2="74.69" x3="74.22" y1="42.94" y2="42.54" y3="42.3"/>
+ <curve x1="73.42" x2="73.13" x3="72.78" y1="41.61" y2="40.69" y3="39.65"/>
+ <curve x1="72.26" x2="71.69" x3="69.85" y1="38.27" y2="36.54" y3="35.45"/>
+ <curve x1="68.29" x2="67.08" x3="66.11" y1="34.58" y2="34.35" y3="34.35"/>
+ <curve x1="65.47" x2="63.91" x3="61.67" y1="30.32" y2="26.62" y3="23.4"/>
+ <curve x1="62.82" x2="63.63" x3="64.43" y1="22.18" y2="20.74" y3="19.3"/>
+ <curve x1="65.3" x2="66.11" x3="67.37" y1="17.76" y2="16.32" y3="15.1"/>
+ <curve x1="70.08" x2="75.31" x3="75.43" y1="12.62" y2="13.02" y3="13.08"/>
+ <curve x1="76.35" x2="77.15" x3="77.22" y1="13.14" y2="12.45" y3="11.58"/>
+ <curve x1="77.34" x2="76.65" x3="75.73" y1="10.66" y2="9.85" y3="9.74"/>
+ <curve x1="75.43" x2="68.93" x3="65.12" y1="9.74" y2="9.16" y3="12.68"/>
+ <curve x1="63.46" x2="62.42" x3="61.5" y1="14.24" y2="16.08" y3="17.76"/>
+ <curve x1="60.86" x2="60.29" x3="59.49" y1="18.9" y2="19.94" y3="20.81"/>
+ <curve x1="58.74" x2="57.98" x3="57.13" y1="19.94" y2="19.2" y3="18.5"/>
+ <curve x1="55.62" x2="50.96" x3="44.98" y1="12.45" y2="7.67" y3="5.88"/>
+ <curve x1="44.98" x2="44.98" x3="44.98" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="44.98" x2="44.28" x3="43.35" y1="0.8" y2="0" y3="0"/>
+ <curve x1="42.43" x2="41.69" x3="41.69" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="41.69" x2="41.69" x3="41.69" y1="5.24" y2="5.24" y3="5.24"/>
+ <curve x1="41.11" x2="40.6" x3="40.02" y1="5.24" y2="5.19" y3="5.19"/>
+ <curve x1="39.5" x2="39.04" x3="38.53" y1="5.19" y2="5.24" y3="5.24"/>
+ <curve x1="38.53" x2="38.53" x3="38.53" y1="1.67" y2="1.67" y3="1.67"/>
+ <curve x1="38.53" x2="37.77" x3="36.85" y1="0.8" y2="0" y3="0"/>
+ <curve x1="35.93" x2="35.24" x3="35.24" y1="0" y2="0.8" y3="1.67"/>
+ <curve x1="35.24" x2="35.24" x3="35.24" y1="5.82" y2="5.82" y3="5.82"/>
+ <curve x1="29.14" x2="24.36" x3="22.92" y1="7.55" y2="12.51" y3="18.68"/>
+ <curve x1="22.17" x2="21.37" x3="20.68" y1="19.3" y2="20.05" y3="20.81"/>
+ <curve x1="19.92" x2="19.35" x3="18.72" y1="19.94" y2="18.9" y3="17.76"/>
+ <curve x1="17.8" x2="16.76" x3="15.08" y1="16.08" y2="14.24" y3="12.68"/>
+ <curve x1="11.29" x2="4.78" x3="4.49" y1="9.16" y2="9.74" y3="9.74"/>
+ <curve x1="3.57" x2="2.88" x3="3" y1="9.85" y2="10.66" y3="11.58"/>
+ <curve x1="3.05" x2="3.86" x3="4.78" y1="12.45" y2="13.14" y3="13.08"/>
+ <curve x1="6.28" x2="10.59" x3="12.79" y1="12.92" y2="13.02" y3="15.1"/>
+ <curve x1="14.11" x2="14.91" x3="15.78" y1="16.32" y2="17.76" y3="19.3"/>
+ <curve x1="16.59" x2="17.39" x3="18.6" y1="20.74" y2="22.18" y3="23.4"/>
+ <curve x1="16.36" x2="14.8" x3="14.11" y1="26.62" y2="30.32" y3="34.35"/>
+ <curve x1="13.14" x2="11.92" x3="10.37" y1="34.35" y2="34.58" y3="35.45"/>
+ <curve x1="8.53" x2="7.89" x3="7.42" y1="36.54" y2="38.27" y3="39.65"/>
+ <curve x1="7.09" x2="6.74" x3="5.98" y1="40.69" y2="41.61" y3="42.3"/>
+ <curve x1="5.53" x2="3.45" x3="1.61" y1="42.54" y2="42.94" y3="43.17"/>
+ <curve x1="0.69" x2="0" x3="0.12" y1="43.22" y2="44.03" y3="44.95"/>
+ <curve x1="0.23" x2="0.92" x3="1.79" y1="45.82" y2="46.46" y3="46.46"/>
+ <curve x1="1.84" x2="1.91" x3="1.96" y1="46.46" y2="46.46" y3="46.39"/>
+ <curve x1="4.21" x2="7.14" x3="8.18" y1="46.22" y2="45.77" y3="44.83"/>
+ <curve x1="9.62" x2="10.14" x3="10.59" y1="43.51" y2="41.95" y3="40.75"/>
+ <curve x1="10.99" x2="11.29" x3="12.03" y1="39.49" y2="38.73" y3="38.33"/>
+ <curve x1="12.79" x2="13.36" x3="13.82" y1="37.93" y2="37.75" y3="37.69"/>
+ <curve x1="13.82" x2="13.82" x3="13.82" y1="37.98" y2="38.15" y3="38.45"/>
+ <curve x1="13.82" x2="14.98" x3="16.93" y1="42.89" y2="47.09" y3="50.78"/>
+ <curve x1="15.55" x2="15.2" x3="14.8" y1="52.22" y2="54.11" y3="55.79"/>
+ <curve x1="14.56" x2="14.28" x3="13.76" y1="56.94" y2="58.1" y3="59.14"/>
+ <curve x1="12.5" x2="7.26" x3="7.2" y1="61.72" y2="61.2" y3="61.2"/>
+ <curve x1="6.28" x2="5.48" x3="5.36" y1="61.1" y2="61.72" y3="62.59"/>
+ <curve x1="5.24" x2="5.93" x3="6.85" y1="63.51" y2="64.38" y3="64.43"/>
+ <curve x1="6.91" x2="7.49" x3="8.35" y1="64.5" y2="64.55" y3="64.55"/>
+ <curve x1="10.71" x2="15.08" x3="16.81" y1="64.55" y2="64.03" y3="60.58"/>
+ <curve x1="17.45" x2="17.8" x3="18.03" y1="59.19" y2="57.75" y3="56.48"/>
+ <curve x1="18.32" x2="18.48" x3="18.83" y1="55.39" y2="54.47" y3="53.78"/>
+ <curve x1="23.61" x2="31.39" x3="40.13" y1="60.35" y2="64.55" y3="64.55"/>
+ <curve x1="48.88" x2="56.61" x3="61.38" y1="64.55" y2="60.35" y3="53.83"/>
+ <curve x1="61.73" x2="61.9" x3="62.19" y1="54.52" y2="55.39" y3="56.48"/>
+ <curve x1="62.42" x2="62.76" x3="63.4" y1="57.75" y2="59.19" y3="60.58"/>
+ <curve x1="65.12" x2="69.5" x3="71.86" y1="64.03" y2="64.55" y3="64.55"/>
+ <curve x1="72.73" x2="73.3" x3="73.42" y1="64.55" y2="64.5" y3="64.43"/>
+ <curve x1="74.29" x2="74.97" x3="74.86" y1="64.38" y2="63.51" y3="62.59"/>
+ <curve x1="74.74" x2="73.88" x3="73.01" y1="61.72" y2="61.03" y3="61.2"/>
+ <curve x1="72.96" x2="67.72" x3="66.45" y1="61.2" y2="61.72" y3="59.14"/>
+ <curve x1="65.93" x2="65.64" x3="65.41" y1="58.1" y2="56.94" y3="55.79"/>
+ <curve x1="65.01" x2="64.67" x3="63.34" y1="54.11" y2="52.22" y3="50.78"/>
+ <curve x1="65.3" x2="66.39" x3="66.39" y1="47.09" y2="42.89" y3="38.45"/>
+ <curve x1="66.39" x2="66.39" x3="66.39" y1="38.15" y2="37.98" y3="37.69"/>
+ <curve x1="66.91" x2="67.48" x3="68.17" y1="37.75" y2="37.93" y3="38.33"/>
+ <curve x1="68.93" x2="69.21" x3="69.61" y1="38.73" y2="39.49" y3="40.75"/>
+ <curve x1="70.08" x2="70.6" x3="72.04" y1="41.95" y2="43.51" y3="44.83"/>
+ <curve x1="73.07" x2="76.01" x3="78.26" y1="45.77" y2="46.22" y3="46.39"/>
+ <curve x1="78.31" x2="78.37" x3="78.43" y1="46.46" y2="46.46" y3="46.46"/>
+ <curve x1="79.23" x2="79.98" x3="80.1" y1="46.46" y2="45.82" y3="44.95"/>
+ <curve x1="80.15" x2="79.47" x3="78.6" y1="44.03" y2="43.22" y3="43.17"/>
+ <close/>
+ <move x="59.37" y="50.37"/>
+ <curve x1="59.89" x2="59.89" x3="59.37" y1="50.89" y2="51.69" y3="52.21"/>
+ <curve x1="59.37" x2="59.31" x3="58.68" y1="52.21" y2="52.33" y3="52.85"/>
+ <curve x1="58.16" x2="57.24" x3="56.78" y1="53.43" y2="53.43" y3="52.85"/>
+ <curve x1="56.78" x2="56.78" x3="50.79" y1="52.85" y2="52.85" y3="47.26"/>
+ <curve x1="50.67" x2="50.55" x3="50.33" y1="47.09" y2="46.97" y3="46.8"/>
+ <curve x1="50.1" x2="49.75" x3="49.53" y1="46.97" y2="47.15" y3="47.26"/>
+ <curve x1="49.46" x2="49.41" x3="49.41" y1="47.49" y2="47.77" y3="48.07"/>
+ <curve x1="49.41" x2="49.58" x3="49.86" y1="48.93" y2="49.57" y3="49.85"/>
+ <curve x1="50.15" x2="50.45" x3="50.79" y1="49.62" y2="49.33" y3="49.1"/>
+ <curve x1="51.42" x2="51.94" x3="52.4" y1="49.62" y2="50.2" y3="50.6"/>
+ <curve x1="49.29" x2="45.09" x3="40.31" y1="53.54" y2="55.33" y3="55.33"/>
+ <curve x1="30.81" x2="23.03" x3="23.03" y1="55.33" y2="47.89" y3="38.73"/>
+ <curve x1="23.03" x2="24.88" x3="28.16" y1="34.35" y2="30.15" y3="26.97"/>
+ <curve x1="31.38" x2="35.7" x3="40.31" y1="23.87" y2="22.13" y3="22.13"/>
+ <curve x1="49.86" x2="57.64" x3="57.64" y1="22.13" y2="29.63" y3="38.73"/>
+ <curve x1="57.64" x2="56.89" x3="55.51" y1="41.61" y2="44.32" y3="46.63"/>
+ <curve x1="56.43" x2="57.64" x3="59.37" y1="47.49" y2="48.76" y3="50.37"/>
+ <close/>
+ <move x="32.42" y="27.38"/>
+ <curve x1="31.67" x2="31.26" x3="31.26" y1="27.38" y2="28.07" y3="29.51"/>
+ <curve x1="31.26" x2="31.67" x3="32.42" y1="30.89" y2="31.59" y3="31.59"/>
+ <curve x1="33.11" x2="33.46" x3="33.46" y1="31.59" y2="30.89" y3="29.51"/>
+ <curve x1="33.46" x2="33.11" x3="32.42" y1="28.07" y2="27.38" y3="27.38"/>
+ <close/>
+ <move x="25.33" y="38.73"/>
+ <curve x1="25.33" x2="25.4" x3="25.51" y1="39.48" y2="40.17" y3="40.8"/>
+ <curve x1="25.57" x2="25.63" x3="25.73" y1="40.87" y2="40.87" y3="40.87"/>
+ <curve x1="26.49" x2="26.84" x3="26.84" y1="40.87" y2="40.17" y3="38.73"/>
+ <curve x1="26.84" x2="26.49" x3="25.73" y1="37.35" y2="36.65" y3="36.65"/>
+ <curve x1="25.63" x2="25.57" x3="25.51" y1="36.65" y2="36.65" y3="36.72"/>
+ <curve x1="25.4" x2="25.33" x3="25.33" y1="37.35" y2="38.04" y3="38.73"/>
+ <close/>
+ <move x="31.09" y="48.07"/>
+ <curve x1="31.09" x2="31.5" x3="32.19" y1="49.45" y2="50.2" y3="50.2"/>
+ <curve x1="32.94" x2="33.29" x3="33.29" y1="50.2" y2="49.45" y3="48.07"/>
+ <curve x1="33.29" x2="32.94" x3="32.19" y1="46.63" y2="45.93" y3="45.93"/>
+ <curve x1="31.5" x2="31.09" x3="31.09" y1="45.93" y2="46.63" y3="48.07"/>
+ <close/>
+ <move x="49.93" y="43.85"/>
+ <curve x1="52.17" x2="52.17" x3="49.93" y1="41.67" y2="38.27" y3="36.13"/>
+ <curve x1="48.83" x2="47.39" x3="45.89" y1="35.11" y2="34.52" y3="34.52"/>
+ <curve x1="44.33" x2="42.96" x3="41.87" y1="34.52" y2="35.11" y3="36.13"/>
+ <curve x1="40.77" x2="40.14" x3="40.14" y1="37.12" y2="38.49" y3="39.93"/>
+ <curve x1="40.14" x2="40.77" x3="41.87" y1="41.39" y2="42.83" y3="43.85"/>
+ <curve x1="42.96" x2="44.33" x3="45.89" y1="44.84" y2="45.48" y3="45.48"/>
+ <curve x1="47.39" x2="48.83" x3="49.93" y1="45.48" y2="44.84" y3="43.85"/>
+ <close/>
+ <move x="44.8" y="47.96"/>
+ <curve x1="44.05" x2="43.36" x3="42.67" y1="47.89" y2="47.66" y3="47.37"/>
+ <curve x1="42.61" x2="42.61" x3="42.61" y1="47.61" y2="47.77" y3="48.07"/>
+ <curve x1="42.61" x2="42.96" x3="43.76" y1="49.45" y2="50.2" y3="50.2"/>
+ <curve x1="44.45" x2="44.8" x3="44.8" y1="50.2" y2="49.45" y3="48.07"/>
+ <curve x1="44.8" x2="44.8" x3="44.8" y1="48.07" y2="48.07" y3="47.96"/>
+ <close/>
+ <move x="43.13" y="29.51"/>
+ <curve x1="43.13" x2="43.53" x3="44.28" y1="30.89" y2="31.59" y3="31.59"/>
+ <curve x1="44.97" x2="45.32" x3="45.32" y1="31.59" y2="30.89" y3="29.51"/>
+ <curve x1="45.32" x2="44.97" x3="44.28" y1="28.07" y2="27.38" y3="27.38"/>
+ <curve x1="43.53" x2="43.13" x3="43.13" y1="27.38" y2="28.07" y3="29.51"/>
+ <close/>
+ <move x="45.89" y="31.93"/>
+ <curve x1="48.02" x2="50.21" x3="51.88" y1="31.93" y2="32.73" y3="34.29"/>
+ <curve x1="52.75" x2="53.38" x3="53.78" y1="35.11" y2="36.13" y3="37.17"/>
+ <curve x1="53.9" x2="54.02" x3="54.19" y1="36.88" y2="36.72" y3="36.48"/>
+ <curve x1="54.42" x2="54.71" x3="54.99" y1="36.2" y2="35.96" y3="35.85"/>
+ <curve x1="54.87" x2="54.82" x3="54.59" y1="35.39" y2="34.92" y3="34.47"/>
+ <curve x1="54.36" x2="53.95" x3="53.5" y1="33.55" y2="32.68" y3="31.93"/>
+ <curve x1="53.27" x2="53.03" x3="52.75" y1="31.47" y2="31.07" y3="30.67"/>
+ <curve x1="52.34" x2="51.88" x3="51.31" y1="30.08" y2="29.51" y3="28.93"/>
+ <curve x1="51.31" x2="51.31" x3="51.31" y1="28.93" y2="28.93" y3="32.51"/>
+ <curve x1="51.31" x2="51.31" x3="50.05" y1="32.51" y2="32.51" y3="32.51"/>
+ <curve x1="50.05" x2="50.05" x3="50.05" y1="32.51" y2="32.51" y3="28.52"/>
+ <curve x1="50.05" x2="50.05" x3="48.42" y1="28.52" y2="28.52" y3="28.52"/>
+ <curve x1="48.42" x2="48.42" x3="48.42" y1="28.52" y2="28.52" y3="27.67"/>
+ <curve x1="48.94" x2="49.29" x3="49.53" y1="27.67" y2="27.55" y3="27.38"/>
+ <curve x1="46.98" x2="43.82" x3="40.31" y1="25.53" y2="24.38" y3="24.38"/>
+ <curve x1="37.48" x2="34.83" x3="32.59" y1="24.38" y2="25.07" y3="26.34"/>
+ <curve x1="33.29" x2="33.81" x3="34.15" y1="26.45" y2="26.75" y3="27.2"/>
+ <curve x1="34.55" x2="34.78" x3="34.78" y1="27.79" y2="28.52" y3="29.51"/>
+ <curve x1="34.78" x2="34.55" x3="34.21" y1="30.43" y2="31.12" y3="31.71"/>
+ <curve x1="33.74" x2="33.22" x3="32.42" y1="32.28" y2="32.56" y3="32.56"/>
+ <curve x1="31.61" x2="30.98" x3="30.58" y1="32.56" y2="32.33" y3="31.71"/>
+ <curve x1="30.17" x2="30" x3="30" y1="31.19" y2="30.43" y3="29.51"/>
+ <curve x1="30" x2="30" x3="30.17" y1="28.99" y2="28.59" y3="28.19"/>
+ <curve x1="29.32" x2="28.56" x3="27.88" y1="28.93" y2="29.8" y3="30.67"/>
+ <curve x1="27.64" x2="27.41" x3="27.17" y1="31.07" y2="31.41" y3="31.81"/>
+ <curve x1="27.17" x2="27.17" x3="27.17" y1="31.81" y2="31.81" y3="31.81"/>
+ <curve x1="27.17" x2="27.17" x3="27.17" y1="31.81" y2="31.87" y3="31.87"/>
+ <curve x1="27.17" x2="27.17" x3="27.12" y1="31.87" y2="31.87" y3="31.93"/>
+ <curve x1="27.12" x2="27.12" x3="27.12" y1="31.93" y2="31.99" y3="32.04"/>
+ <curve x1="27.12" x2="27.12" x3="27.17" y1="31.99" y2="31.93" y3="31.87"/>
+ <curve x1="27.17" x2="27.17" x3="27.17" y1="31.87" y2="31.87" y3="31.81"/>
+ <curve x1="27.17" x2="27.17" x3="27.17" y1="31.81" y2="31.81" y3="32.51"/>
+ <curve x1="27.17" x2="27.17" x3="26.84" y1="32.51" y2="32.51" y3="32.51"/>
+ <curve x1="26.55" x2="26.25" x3="26.03" y1="33.15" y2="33.77" y3="34.47"/>
+ <curve x1="25.92" x2="25.8" x3="25.68" y1="34.81" y2="35.27" y3="35.61"/>
+ <curve x1="25.68" x2="25.68" x3="25.73" y1="35.61" y2="35.61" y3="35.61"/>
+ <curve x1="26.55" x2="27.12" x3="27.53" y1="35.61" y2="35.96" y3="36.55"/>
+ <curve x1="27.93" x2="28.16" x3="28.16" y1="37.05" y2="37.81" y3="38.73"/>
+ <curve x1="28.16" x2="27.93" x3="27.58" y1="39.65" y2="40.45" y3="40.97"/>
+ <curve x1="27.12" x2="26.55" x3="25.73" y1="41.61" y2="41.89" y3="41.89"/>
+ <curve x1="25.73" x2="25.73" x3="25.73" y1="41.89" y2="41.89" y3="41.89"/>
+ <curve x1="25.63" x2="25.63" x3="25.63" y1="41.73" y2="41.61" y3="41.39"/>
+ <curve x1="25.63" x2="25.63" x3="25.68" y1="41.61" y2="41.73" y3="41.89"/>
+ <curve x1="25.68" x2="25.68" x3="25.73" y1="41.89" y2="41.89" y3="41.89"/>
+ <curve x1="25.73" x2="25.8" x3="25.8" y1="42.01" y2="42.19" y3="42.36"/>
+ <curve x1="26.08" x2="26.43" x3="26.84" y1="43.34" y2="44.21" y3="45.07"/>
+ <curve x1="26.84" x2="26.84" x3="27.36" y1="45.07" y2="45.07" y3="45.07"/>
+ <curve x1="27.36" x2="27.36" x3="27.36" y1="45.07" y2="45.07" y3="46.05"/>
+ <curve x1="27.53" x2="27.76" x3="27.88" y1="46.28" y2="46.57" y3="46.8"/>
+ <curve x1="28.28" x2="28.73" x3="29.25" y1="47.37" y2="47.96" y3="48.48"/>
+ <curve x1="29.37" x2="29.6" x3="29.77" y1="48.64" y2="48.81" y3="48.93"/>
+ <curve x1="29.82" x2="30" x3="30.12" y1="49.1" y2="49.22" y3="49.28"/>
+ <curve x1="30.24" x2="30.34" x3="30.46" y1="49.45" y2="49.57" y3="49.62"/>
+ <curve x1="30.29" x2="30.12" x3="29.94" y1="49.45" y2="49.28" y3="49.1"/>
+ <curve x1="29.82" x2="29.77" x3="29.77" y1="48.81" y2="48.48" y3="48.07"/>
+ <curve x1="29.77" x2="30" x3="30.41" y1="47.09" y2="46.33" y3="45.81"/>
+ <curve x1="30.86" x2="31.45" x3="32.19" y1="45.24" y2="44.96" y3="44.96"/>
+ <curve x1="32.99" x2="33.57" x3="33.98" y1="44.96" y2="45.24" y3="45.81"/>
+ <curve x1="34.38" x2="34.61" x3="34.61" y1="46.33" y2="47.09" y3="48.07"/>
+ <curve x1="34.61" x2="34.43" x3="34.03" y1="48.99" y2="49.73" y3="50.25"/>
+ <curve x1="33.69" x2="33.22" x3="32.59" y1="50.77" y2="51.01" y3="51.18"/>
+ <curve x1="32.99" x2="33.39" x3="33.86" y1="51.36" y2="51.58" y3="51.81"/>
+ <curve x1="34.31" x2="34.73" x3="35.18" y1="51.93" y2="52.16" y3="52.33"/>
+ <curve x1="35.87" x2="36.56" x3="37.26" y1="52.56" y2="52.73" y3="52.85"/>
+ <curve x1="37.83" x2="38.3" x3="38.81" y1="53.02" y2="53.02" y3="53.14"/>
+ <curve x1="39.32" x2="39.79" x3="40.31" y1="53.14" y2="53.14" y3="53.14"/>
+ <curve x1="40.88" x2="41.35" x3="41.87" y1="53.14" y2="53.14" y3="53.14"/>
+ <curve x1="42.32" x2="42.84" x3="43.36" y1="53.02" y2="53.02" y3="52.85"/>
+ <curve x1="44.05" x2="44.8" x3="45.49" y1="52.73" y2="52.56" y3="52.33"/>
+ <curve x1="45.96" x2="46.41" x3="46.81" y1="52.16" y2="51.93" y3="51.81"/>
+ <curve x1="47.57" x2="48.25" x3="48.94" y1="51.41" y2="51.01" y3="50.54"/>
+ <curve x1="48.89" x2="48.83" x3="48.71" y1="50.49" y2="50.37" y3="50.32"/>
+ <curve x1="48.31" x2="48.14" x3="48.14" y1="49.73" y2="48.99" y3="48.07"/>
+ <curve x1="48.14" x2="48.14" x3="48.14" y1="48.07" y2="48.07" y3="47.72"/>
+ <curve x1="47.5" x2="46.81" x3="46.13" y1="47.89" y2="48.01" y3="48.01"/>
+ <curve x1="46.13" x2="46.13" x3="46.13" y1="48.01" y2="48.01" y3="48.07"/>
+ <curve x1="46.13" x2="45.96" x3="45.54" y1="48.99" y2="49.73" y3="50.25"/>
+ <curve x1="45.14" x2="44.52" x3="43.76" y1="50.89" y2="51.18" y3="51.18"/>
+ <curve x1="42.96" x2="42.32" x3="41.92" y1="51.18" y2="50.89" y3="50.32"/>
+ <curve x1="41.52" x2="41.35" x3="41.35" y1="49.73" y2="48.99" y3="48.07"/>
+ <curve x1="41.35" x2="41.4" x3="41.47" y1="47.61" y2="47.2" y3="46.8"/>
+ <curve x1="40.95" x2="40.43" x3="39.91" y1="46.52" y2="46.17" y3="45.71"/>
+ <curve x1="38.81" x2="38.07" x3="37.71" y1="44.61" y2="43.28" y3="41.89"/>
+ <curve x1="37.71" x2="37.71" x3="37.6" y1="41.89" y2="41.89" y3="41.89"/>
+ <curve x1="36.86" x2="36.27" x3="35.87" y1="41.89" y2="41.61" y3="40.97"/>
+ <curve x1="35.47" x2="35.24" x3="35.24" y1="40.45" y2="39.77" y3="38.73"/>
+ <curve x1="35.24" x2="35.47" x3="35.87" y1="37.81" y2="37.05" y3="36.48"/>
+ <curve x1="36.27" x2="36.86" x3="37.6" y1="35.96" y2="35.61" y3="35.61"/>
+ <curve x1="38" x2="38.35" x3="38.7" y1="35.61" y2="35.73" y3="35.91"/>
+ <curve x1="38.99" x2="39.44" x3="39.91" y1="35.33" y2="34.81" y3="34.29"/>
+ <curve x1="40.95" x2="42.04" x3="43.19" y1="33.43" y2="32.73" y3="32.33"/>
+ <curve x1="42.89" x2="42.67" x3="42.44" y1="32.22" y2="32.04" y3="31.71"/>
+ <curve x1="42.04" x2="41.8" x3="41.8" y1="31.19" y2="30.43" y3="29.51"/>
+ <curve x1="41.8" x2="42.04" x3="42.44" y1="28.52" y2="27.79" y3="27.2"/>
+ <curve x1="42.89" x2="43.48" x3="44.28" y1="26.68" y2="26.34" y3="26.34"/>
+ <curve x1="44.97" x2="45.61" x3="46.01" y1="26.34" y2="26.68" y3="27.2"/>
+ <curve x1="46.41" x2="46.65" x3="46.65" y1="27.79" y2="28.52" y3="29.51"/>
+ <curve x1="46.65" x2="46.46" x3="46.06" y1="30.43" y2="31.12" y3="31.71"/>
+ <curve x1="46.01" x2="45.96" x3="45.84" y1="31.76" y2="31.87" y3="31.93"/>
+ <curve x1="45.84" x2="45.84" x3="45.89" y1="31.93" y2="31.93" y3="31.93"/>
+ <close/>
+ <move x="37.48" y="40.87"/>
+ <curve x1="37.38" x2="37.6" x3="38.12" y1="39.53" y2="38.09" y3="36.83"/>
+ <curve x1="38" x2="37.83" x3="37.6" y1="36.77" y2="36.65" y3="36.65"/>
+ <curve x1="36.86" x2="36.56" x3="36.56" y1="36.65" y2="37.35" y3="38.73"/>
+ <curve x1="36.56" x2="36.86" x3="37.48" y1="40.12" y2="40.8" y3="40.87"/>
+ <close/>
+ <move x="54.82" y="42.36"/>
+ <curve x1="54.87" x2="54.99" x3="54.99" y1="42.13" y2="41.89" y3="41.73"/>
+ <curve x1="54.71" x2="54.47" x3="54.19" y1="41.61" y2="41.39" y3="41.09"/>
+ <curve x1="54.07" x2="53.67" x3="53.03" y1="42.25" y2="43.28" y3="44.27"/>
+ <curve x1="53.03" x2="53.03" x3="53.84" y1="44.27" y2="44.27" y3="45.01"/>
+ <curve x1="54.3" x2="54.59" x3="54.82" y1="44.15" y2="43.28" y3="42.36"/>
+ <close/>
+ <move x="55.23" y="40.45"/>
+ <curve x1="55.28" x2="55.34" x3="55.34" y1="39.88" y2="39.36" y3="38.73"/>
+ <curve x1="55.34" x2="55.28" x3="55.16" y1="38.16" y2="37.52" y3="36.95"/>
+ <curve x1="55.16" x2="55.16" x3="55.11" y1="36.83" y2="36.6" y3="36.43"/>
+ <curve x1="55.16" x2="55.16" x3="55.16" y1="36.6" y2="36.77" y3="36.95"/>
+ <curve x1="55.16" x2="55.23" x3="55.23" y1="37" y2="37" y3="37.05"/>
+ <curve x1="54.99" x2="54.82" x3="54.82" y1="37.35" y2="37.99" y3="38.73"/>
+ <curve x1="54.82" x2="54.99" x3="55.23" y1="39.53" y2="40.17" y3="40.45"/>
+ <close/>
+ <move x="48.77" y="41.1"/>
+ <curve x1="48.83" x2="48.83" x3="48.83" y1="41.33" y2="41.43" y3="41.62"/>
+ <curve x1="48.83" x2="48.77" x3="48.72" y1="41.73" y2="41.9" y3="42.07"/>
+ <curve x1="48.66" x2="48.55" x3="48.36" y1="42.3" y2="42.54" y3="42.71"/>
+ <curve x1="48.14" x2="47.91" x3="47.56" y1="42.87" y2="43.11" y3="43.22"/>
+ <curve x1="47.27" x2="46.87" x3="46.35" y1="43.39" y2="43.51" y3="43.51"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="43.51" y2="43.51" y3="44.26"/>
+ <curve x1="46.35" x2="46.35" x3="45.78" y1="44.26" y2="44.26" y3="44.26"/>
+ <curve x1="45.78" x2="45.78" x3="45.78" y1="44.26" y2="44.26" y3="43.51"/>
+ <curve x1="45.03" x2="44.46" x3="44.06" y1="43.46" y2="43.22" y3="42.87"/>
+ <curve x1="43.65" x2="43.42" x3="43.3" y1="42.47" y2="41.95" y3="41.21"/>
+ <curve x1="43.3" x2="43.3" x3="44.68" y1="41.21" y2="41.21" y3="41.21"/>
+ <curve x1="44.68" x2="44.8" x3="45.03" y1="41.55" y2="41.85" y3="42.07"/>
+ <curve x1="45.2" x2="45.5" x3="45.78" y1="42.25" y2="42.42" y3="42.42"/>
+ <curve x1="45.78" x2="45.78" x3="45.78" y1="42.42" y2="42.42" y3="40.51"/>
+ <curve x1="45.72" x2="45.72" x3="45.67" y1="40.51" y2="40.51" y3="40.51"/>
+ <curve x1="45.55" x2="45.55" x3="45.5" y1="40.51" y2="40.46" y3="40.46"/>
+ <curve x1="45.2" x2="44.98" x3="44.74" y1="40.41" y2="40.34" y3="40.23"/>
+ <curve x1="44.51" x2="44.28" x3="44.11" y1="40.17" y2="40.06" y3="39.89"/>
+ <curve x1="43.87" x2="43.76" x3="43.65" y1="39.77" y2="39.59" y3="39.42"/>
+ <curve x1="43.54" x2="43.47" x3="43.47" y1="39.19" y2="38.97" y3="38.67"/>
+ <curve x1="43.47" x2="43.54" x3="43.65" y1="38.33" y2="38.03" y3="37.81"/>
+ <curve x1="43.82" x2="43.99" x3="44.17" y1="37.58" y2="37.41" y3="37.23"/>
+ <curve x1="44.39" x2="44.63" x3="44.91" y1="37.06" y2="36.94" y3="36.83"/>
+ <curve x1="45.2" x2="45.5" x3="45.78" y1="36.77" y2="36.71" y3="36.71"/>
+ <curve x1="45.78" x2="45.78" x3="45.78" y1="36.71" y2="36.71" y3="35.97"/>
+ <curve x1="45.78" x2="45.78" x3="46.35" y1="35.97" y2="35.97" y3="35.97"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="35.97" y2="35.97" y3="36.71"/>
+ <curve x1="46.64" x2="46.92" x3="47.22" y1="36.71" y2="36.77" y3="36.83"/>
+ <curve x1="47.44" x2="47.68" x3="47.91" y1="36.94" y2="37.06" y3="37.23"/>
+ <curve x1="48.08" x2="48.26" x3="48.36" y1="37.41" y2="37.58" y3="37.81"/>
+ <curve x1="48.48" x2="48.6" x3="48.6" y1="38.03" y2="38.33" y3="38.67"/>
+ <curve x1="48.6" x2="48.6" x3="47.16" y1="38.67" y2="38.67" y3="38.67"/>
+ <curve x1="47.16" x2="47.11" x3="46.92" y1="38.38" y2="38.15" y3="38.03"/>
+ <curve x1="46.76" x2="46.59" x3="46.35" y1="37.86" y2="37.75" y3="37.75"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="37.75" y2="37.75" y3="39.37"/>
+ <curve x1="46.47" x2="46.52" x3="46.59" y1="39.37" y2="39.42" y3="39.42"/>
+ <curve x1="46.7" x2="46.76" x3="46.87" y1="39.42" y2="39.47" y3="39.47"/>
+ <curve x1="47.34" x2="47.74" x3="47.96" y1="39.59" y2="39.77" y3="39.94"/>
+ <curve x1="48.26" x2="48.43" x3="48.6" y1="40.11" y2="40.29" y3="40.51"/>
+ <curve x1="48.72" x2="48.77" x3="48.77" y1="40.69" y2="40.91" y3="41.1"/>
+ <close/>
+ <move x="45.78" y="39.25"/>
+ <line x="45.78" y="37.75"/>
+ <curve x1="45.67" x2="45.55" x3="45.43" y1="37.75" y2="37.81" y3="37.81"/>
+ <curve x1="45.31" x2="45.26" x3="45.15" y1="37.86" y2="37.86" y3="37.93"/>
+ <curve x1="45.09" x2="45.03" x3="44.98" y1="37.98" y2="38.1" y3="38.15"/>
+ <curve x1="44.91" x2="44.86" x3="44.86" y1="38.27" y2="38.38" y3="38.5"/>
+ <curve x1="44.86" x2="44.98" x3="45.09" y1="38.73" y2="38.85" y3="38.97"/>
+ <curve x1="45.26" x2="45.5" x3="45.78" y1="39.07" y2="39.19" y3="39.25"/>
+ <close/>
+ <move x="47.34" y="41.95"/>
+ <curve x1="47.39" x2="47.44" x3="47.44" y1="41.85" y2="41.73" y3="41.55"/>
+ <curve x1="47.44" x2="47.34" x3="47.16" y1="41.33" y2="41.15" y3="41.03"/>
+ <curve x1="46.99" x2="46.76" x3="46.35" y1="40.91" y2="40.81" y3="40.69"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="40.69" y2="40.69" y3="42.42"/>
+ <curve x1="46.47" x2="46.59" x3="46.76" y1="42.42" y2="42.42" y3="42.37"/>
+ <curve x1="46.87" x2="46.99" x3="47.11" y1="42.3" y2="42.3" y3="42.19"/>
+ <curve x1="47.16" x2="47.27" x3="47.34" y1="42.13" y2="42.02" y3="41.95"/>
+ <close/>
+ <move x="37.14" y="46.11"/>
+ <curve x1="37.43" x2="37.54" x3="37.66" y1="45.88" y2="45.64" y3="45.19"/>
+ <curve x1="37.66" x2="37.66" x3="38.7" y1="45.19" y2="45.19" y3="45.19"/>
+ <curve x1="38.7" x2="38.7" x3="38.7" y1="45.19" y2="45.19" y3="51.64"/>
+ <curve x1="38.7" x2="38.7" x3="37.49" y1="51.64" y2="51.64" y3="51.64"/>
+ <curve x1="37.49" x2="37.49" x3="37.49" y1="51.64" y2="51.64" y3="47.43"/>
+ <curve x1="37.49" x2="37.49" x3="35.93" y1="47.43" y2="47.43" y3="47.43"/>
+ <curve x1="35.93" x2="35.93" x3="35.93" y1="47.43" y2="47.43" y3="46.45"/>
+ <curve x1="36.5" x2="36.91" x3="37.14" y1="46.45" y2="46.34" y3="46.11"/>
+ <close/>
+ <move x="30.76" y="35.97"/>
+ <curve x1="30.92" x2="31.09" x3="31.21" y1="35.79" y2="35.5" y3="35.05"/>
+ <curve x1="31.21" x2="31.21" x3="32.25" y1="35.05" y2="35.05" y3="35.05"/>
+ <curve x1="32.25" x2="32.25" x3="32.25" y1="35.05" y2="35.05" y3="41.5"/>
+ <curve x1="32.25" x2="32.25" x3="31.04" y1="41.5" y2="41.5" y3="41.5"/>
+ <curve x1="31.04" x2="31.04" x3="31.04" y1="41.5" y2="41.5" y3="37.23"/>
+ <curve x1="31.04" x2="31.04" x3="29.48" y1="37.23" y2="37.23" y3="37.23"/>
+ <curve x1="29.48" x2="29.48" x3="29.48" y1="37.23" y2="37.23" y3="36.25"/>
+ <curve x1="30" x2="30.46" x3="30.76" y1="36.25" y2="36.2" y3="35.97"/>
+ <close/>
+ <move x="37.49" y="32.28"/>
+ <line x="37.49" y="28"/>
+ <curve x1="37.49" x2="37.49" x3="35.93" y1="28" y2="28" y3="28"/>
+ <curve x1="35.93" x2="35.93" x3="35.93" y1="28" y2="28" y3="27.03"/>
+ <curve x1="36.5" x2="36.91" x3="37.2" y1="27.03" y2="26.98" y3="26.68"/>
+ <curve x1="37.37" x2="37.54" x3="37.66" y1="26.51" y2="26.28" y3="25.82"/>
+ <curve x1="37.66" x2="37.66" x3="38.7" y1="25.82" y2="25.82" y3="25.82"/>
+ <curve x1="38.7" x2="38.7" x3="38.7" y1="25.82" y2="25.82" y3="32.28"/>
+ <curve x1="38.7" x2="38.7" x3="37.49" y1="32.28" y2="32.28" y3="32.28"/>
+ <close/>
+ <move x="54.71" y="41.33"/>
+ <curve x1="54.71" x2="55.28" x3="55.28" y1="41.09" y2="40.93" y3="40.58"/>
+ <curve x1="55.28" x2="54.71" x3="54.36" y1="40.93" y2="41.21" y3="41.5"/>
+ <curve x1="54.36" x2="54.71" x3="54.71" y1="41.5" y2="41.38" y3="41.33"/>
+ <close/>
+ <move x="31.78" y="51.19"/>
+ <line x="32.25" y="51.64"/>
+ <curve x1="31.9" x2="31.68" x3="31.33" y1="51.36" y2="50.89" y3="50.72"/>
+ <curve x1="31.44" x2="31.68" x3="31.78" y1="50.89" y2="51.19" y3="51.19"/>
+ <close/>
+ <move x="49.52" y="51"/>
+ <curve x1="49.64" x2="49.7" x3="49.75" y1="51" y2="50.84" y3="50.72"/>
+ <curve x1="49.47" x2="49.18" x3="48.83" y1="51.12" y2="51.29" y3="51.64"/>
+ <curve x1="49.12" x2="49.4" x3="49.52" y1="51.47" y2="51.19" y3="51"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d1" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="70.77" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="49.03" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.82" x3="68.82" y1="37.65" y2="35.43" y3="33.06"/>
+ <curve x1="68.82" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="73.96" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.67" y2="4.93" y3="9.79"/>
+ <curve x1="66.05" x2="64.11" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.4" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.12" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.79"/>
+ <curve x1="4.72" x2="6.44" x3="7.21" y1="4.93" y2="1.67" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.94" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.76" x3="5.76" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.76" x2="5.96" x3="6.44" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.88" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.88" x2="3.33" x3="6.66" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.66" x2="5.61" x3="5.96" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.96" x2="7.07" x3="9.43" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.43" x2="7.63" x3="7.77" y1="69.38" y2="67.36" y3="65.97"/>
+ <curve x1="7.77" x2="8.74" x3="10.48" y1="65.97" y2="66.6" y3="66.31"/>
+ <curve x1="10.48" x2="0.28" x3="9.43" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.92" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.76" x3="41.76" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.76" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.77" x2="61.61" x3="65.08" y1="59.73" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="63.97" x3="63.97" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.74" x3="66.74" y1="66.6" y2="65.97" y3="65.97"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.82" x2="67.85" x3="67.85" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.66" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.77" x3="70.77" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ <move x="62.17" y="34.37"/>
+ <curve x1="62.17" x2="62.17" x3="62.17" y1="35.2" y2="36.04" y3="36.87"/>
+ <curve x1="62.21" x2="61.76" x3="61.81" y1="37.19" y2="37.02" y3="37.36"/>
+ <curve x1="61.22" x2="60.64" x3="60.05" y1="37.36" y2="37.36" y3="37.36"/>
+ <curve x1="59.73" x2="59.58" x3="59.6" y1="37.26" y2="37.67" y3="37.93"/>
+ <curve x1="59.65" x2="59.25" x3="59.24" y1="38.24" y2="38.36" y3="38.69"/>
+ <curve x1="59.45" x2="59.65" x3="59.85" y1="38.93" y2="39.17" y3="39.41"/>
+ <curve x1="60.07" x2="60.19" x3="60.5" y1="39.59" y2="39.99" y3="40"/>
+ <curve x1="60.5" x2="60.5" x3="60.5" y1="40.37" y2="40.74" y3="41.11"/>
+ <curve x1="60.15" x2="59.74" x3="59.37" y1="41.6" y2="42.03" y3="42.5"/>
+ <curve x1="59.21" x2="58.92" x3="58.69" y1="42.69" y2="42.71" y3="42.79"/>
+ <curve x1="58.38" x2="58.21" x3="57.93" y1="42.89" y2="42.64" y3="42.64"/>
+ <curve x1="57.68" x2="57.42" x3="57.16" y1="42.34" y2="42.03" y3="41.73"/>
+ <curve x1="56.98" x2="56.79" x3="56.48" y1="41.47" y2="41.19" y3="41.46"/>
+ <curve x1="56.11" x2="55.85" x3="55.51" y1="41.43" y2="41.78" y3="41.88"/>
+ <curve x1="55.51" x2="55.51" x3="55.51" y1="42.57" y2="43.26" y3="43.95"/>
+ <curve x1="55.47" x2="55.24" x3="55.16" y1="44.2" y2="44.24" y3="44.44"/>
+ <curve x1="54.59" x2="54.01" x3="53.44" y1="44.44" y2="44.44" y3="44.44"/>
+ <curve x1="53.22" x2="52.72" x3="52.72" y1="44.38" y2="44.59" y3="44.3"/>
+ <curve x1="52.31" x2="52.43" x3="52.18" y1="44.43" y2="44.08" y3="43.9"/>
+ <curve x1="52.18" x2="52.18" x3="52.18" y1="43.35" y2="42.81" y3="42.27"/>
+ <curve x1="52.28" x2="52.05" x3="51.78" y1="41.92" y2="41.78" y3="41.63"/>
+ <curve x1="51.63" x2="51.26" x3="51.06" y1="41.32" y2="41.58" y3="41.32"/>
+ <curve x1="50.71" x2="50.36" x3="50.01" y1="41.69" y2="42.06" y3="42.43"/>
+ <curve x1="49.83" x2="49.56" x3="49.24" y1="42.69" y2="42.86" y3="42.79"/>
+ <curve x1="48.93" x2="48.77" x3="48.5" y1="42.88" y2="42.63" y3="42.64"/>
+ <curve x1="48.22" x2="47.95" x3="47.67" y1="42.31" y2="41.98" y3="41.65"/>
+ <curve x1="47.39" x2="47.46" x3="47.24" y1="41.48" y2="41.16" y3="40.98"/>
+ <curve x1="47.09" x2="47.21" x3="47.17" y1="40.76" y2="40.41" y3="40.14"/>
+ <curve x1="47.59" x2="47.82" x3="48.15" y1="39.89" y2="39.44" y3="39.1"/>
+ <curve x1="48.36" x2="48.59" x3="48.5" y1="38.87" y2="38.66" y3="38.33"/>
+ <curve x1="48.18" x2="48.14" x3="48.16" y1="38.12" y2="37.71" y3="37.36"/>
+ <curve x1="47.63" x2="47.11" x3="46.58" y1="37.36" y2="37.36" y3="37.36"/>
+ <curve x1="46.29" x2="46.02" x3="45.98" y1="37.39" y2="37.38" y3="37.16"/>
+ <curve x1="45.53" x2="45.91" x3="45.51" y1="37.34" y2="36.69" y3="36.81"/>
+ <curve x1="45.51" x2="45.51" x3="45.51" y1="36" y2="35.18" y3="34.37"/>
+ <curve x1="45.69" x2="45.86" x3="46.06" y1="34.06" y2="34.08" y3="33.82"/>
+ <curve x1="46.66" x2="47.26" x3="47.86" y1="33.82" y2="33.82" y3="33.82"/>
+ <curve x1="48.32" x2="48.07" x3="48.21" y1="33.96" y2="33.49" y3="33.24"/>
+ <curve x1="48.3" x2="48.62" x3="48.5" y1="32.96" y2="32.84" y3="32.49"/>
+ <curve x1="48.14" x2="47.78" x3="47.42" y1="32.07" y2="31.64" y3="31.22"/>
+ <curve x1="47.44" x2="47.05" x3="47.17" y1="30.88" y2="31.04" y3="30.63"/>
+ <curve x1="47.03" x2="47.4" x3="47.39" y1="30.3" y2="30.19" y3="29.92"/>
+ <curve x1="47.59" x2="47.93" x3="48.19" y1="29.56" y2="29.25" y3="28.91"/>
+ <curve x1="48.33" x2="48.58" x3="48.81" y1="28.62" y2="28.56" y3="28.43"/>
+ <curve x1="49.05" x2="49.35" x3="49.61" y1="28.35" y2="28.42" y3="28.4"/>
+ <curve x1="50.07" x2="50.4" x3="50.8" y1="28.72" y2="29.19" y3="29.58"/>
+ <curve x1="50.99" x2="51.16" x3="51.47" y1="29.97" y2="29.74" y3="29.73"/>
+ <curve x1="51.75" x2="51.89" x3="52.18" y1="29.73" y2="29.37" y3="29.3"/>
+ <curve x1="52.18" x2="52.18" x3="52.18" y1="28.88" y2="28.46" y3="28.04"/>
+ <curve x1="52.23" x2="52.07" x3="52.28" y1="27.76" y2="27.4" y3="27.19"/>
+ <curve x1="52.36" x2="52.55" x3="52.72" y1="26.86" y2="26.94" y3="26.66"/>
+ <curve x1="53.52" x2="54.32" x3="55.11" y1="26.66" y2="26.66" y3="26.66"/>
+ <curve x1="55.19" x2="55.34" x3="55.51" y1="26.86" y2="26.97" y3="27.08"/>
+ <curve x1="55.51" x2="55.51" x3="55.51" y1="27.73" y2="28.37" y3="29.01"/>
+ <curve x1="55.38" x2="55.8" x3="56.02" y1="29.38" y2="29.41" y3="29.57"/>
+ <curve x1="56.25" x2="56.57" x3="56.82" y1="29.79" y2="29.7" y3="29.87"/>
+ <curve x1="57.15" x2="57.48" x3="57.81" y1="29.47" y2="29.08" y3="28.69"/>
+ <curve x1="57.99" x2="58.24" x3="58.49" y1="28.51" y2="28.43" y3="28.4"/>
+ <curve x1="58.79" x2="58.97" x3="59.24" y1="28.29" y2="28.58" y3="28.54"/>
+ <curve x1="59.64" x2="60.06" x3="60.44" y1="29.02" y2="29.49" y3="29.99"/>
+ <curve x1="60.57" x2="60.46" x3="60.5" y1="30.28" y2="30.65" y3="30.98"/>
+ <curve x1="60.17" x2="59.76" x3="59.4" y1="31.45" y2="31.86" y3="32.31"/>
+ <curve x1="59.12" x2="59.36" x3="59.57" y1="32.5" y2="32.87" y3="33.02"/>
+ <curve x1="59.61" x2="59.63" x3="59.81" y1="33.28" y2="33.58" y3="33.82"/>
+ <curve x1="60.13" x2="60.46" x3="60.78" y1="33.82" y2="33.82" y3="33.82"/>
+ <curve x1="61.07" x2="61.43" x3="61.67" y1="33.86" y2="33.74" y3="33.89"/>
+ <curve x1="61.82" x2="62.28" x3="62.17" y1="34.1" y2="33.97" y3="34.37"/>
+ <close/>
+ <move x="55.71" y="35.48"/>
+ <curve x1="55.63" x2="55.29" x3="54.77" y1="34.87" y2="34.29" y3="33.96"/>
+ <curve x1="53.96" x2="52.75" x3="52.36" y1="33.45" y2="33.81" y3="34.68"/>
+ <curve x1="51.86" x2="52.17" x3="53" y1="35.49" y2="36.68" y3="37.15"/>
+ <curve x1="53.81" x2="55.04" x3="55.47" y1="37.67" y2="37.33" y3="36.47"/>
+ <curve x1="55.51" x2="55.72" x3="55.71" y1="36.13" y2="35.83" y3="35.48"/>
+ <close/>
+ <move x="45.44" y="38.68"/>
+ <curve x1="45.44" x2="45.44" x3="45.44" y1="39.67" y2="40.67" y3="41.66"/>
+ <curve x1="45.44" x2="45.51" x3="45.1" y1="42.21" y2="42.84" y3="42.98"/>
+ <curve x1="45.2" x2="44.29" x3="44.19" y1="43.59" y2="43.19" y3="43.61"/>
+ <curve x1="43.34" x2="42.48" x3="41.63" y1="43.61" y2="43.61" y3="43.61"/>
+ <curve x1="41.72" x2="41.22" x3="40.94" y1="44.32" y2="44.88" y3="45.48"/>
+ <curve x1="41.56" x2="42.33" x3="42.84" y1="46.14" y2="46.9" y3="47.5"/>
+ <curve x1="43.26" x2="43.02" x3="43.08" y1="47.78" y2="48.55" y3="49.03"/>
+ <curve x1="42.38" x2="41.64" x3="40.94" y1="49.76" y2="50.5" y3="51.25"/>
+ <curve x1="40.82" x2="40.18" x3="39.65" y1="51.59" y2="52.15" y3="51.78"/>
+ <curve x1="38.86" x2="38.18" x3="37.4" y1="51.07" y2="50.2" y3="49.45"/>
+ <curve x1="36.89" x2="36.48" x3="35.84" y1="49.47" y2="50.22" y3="50.24"/>
+ <curve x1="35.43" x2="35.76" x3="35.65" y1="50.67" y2="51.54" y3="52.14"/>
+ <curve x1="35.75" x2="35.45" x3="35.53" y1="52.82" y2="53.1" y3="53.76"/>
+ <curve x1="35.08" x2="34.98" x3="34.62" y1="53.84" y2="54.27" y3="54.44"/>
+ <curve x1="33.58" x2="32.54" x3="31.49" y1="54.44" y2="54.44" y3="54.44"/>
+ <curve x1="31.22" x2="30.88" x3="30.6" y1="54.17" y2="54.06" y3="53.64"/>
+ <curve x1="30.43" x2="30.45" x3="30.46" y1="53.05" y2="52.39" y3="51.72"/>
+ <curve x1="30.34" x2="30.79" x3="30" y1="51.17" y2="50.25" y3="50.13"/>
+ <curve x1="29.36" x2="29.03" x3="28.53" y1="50.29" y2="48.94" y3="49.65"/>
+ <curve x1="27.72" x2="27.06" x3="26.08" y1="50.39" y2="51.43" y3="51.88"/>
+ <curve x1="25.4" x2="25.26" x3="24.85" y1="51.91" y2="51.27" y3="50.9"/>
+ <curve x1="24.28" x2="23.8" x3="23.17" y1="50.41" y2="49.61" y3="49.34"/>
+ <curve x1="23.05" x2="22.97" x3="23.17" y1="48.74" y2="48.16" y3="47.61"/>
+ <curve x1="23.56" x2="24.17" x3="24.63" y1="47.09" y2="46.57" y3="46.04"/>
+ <curve x1="23.95" x2="23.27" x3="22.59" y1="46.04" y2="46.04" y3="46.04"/>
+ <curve x1="21.47" x2="20.28" x3="19.22" y1="45.95" y2="46.25" y3="45.84"/>
+ <curve x1="18.42" x2="17.99" x3="17.3" y1="45.95" y2="45.08" y3="44.89"/>
+ <curve x1="16.84" x2="16.2" x3="16.03" y1="44.34" y2="43.82" y3="43.05"/>
+ <curve x1="15.65" x2="15.84" x3="15.54" y1="42.52" y2="41.88" y3="41.32"/>
+ <curve x1="15.54" x2="15.54" x3="15.54" y1="34.26" y2="27.2" y3="20.15"/>
+ <curve x1="15.44" x2="15.67" x3="15.74" y1="19.5" y2="18.91" y3="18.3"/>
+ <curve x1="15.96" x2="15.91" x3="16.36" y1="17.75" y2="17.12" y3="16.68"/>
+ <curve x1="16.75" x2="17.27" x3="17.76" y1="16.12" y2="15.97" y3="15.56"/>
+ <curve x1="27.4" x2="37.04" x3="46.68" y1="15.56" y2="15.56" y3="15.56"/>
+ <curve x1="47.31" x2="47.8" x3="48.28" y1="15.49" y2="15.63" y3="15.89"/>
+ <curve x1="48.75" x2="49.18" x3="49.5" y1="16.19" y2="16.57" y3="17"/>
+ <curve x1="49.71" x2="49.79" x3="49.91" y1="17.55" y2="18.08" y3="18.65"/>
+ <curve x1="50" x2="49.92" x3="49.95" y1="20.17" y2="21.72" y3="23.26"/>
+ <curve x1="49.95" x2="49.73" x3="49.26" y1="23.81" y2="24.38" y3="24.59"/>
+ <curve x1="38.69" x2="28.13" x3="17.56" y1="24.59" y2="24.59" y3="24.59"/>
+ <curve x1="17.56" x2="17.56" x3="17.56" y1="30.13" y2="35.67" y3="41.21"/>
+ <curve x1="17.67" x2="17.84" x3="18.06" y1="41.74" y2="42.23" y3="42.76"/>
+ <curve x1="18.36" x2="18.95" x3="19.36" y1="43.33" y2="43.33" y3="43.75"/>
+ <curve x1="20.8" x2="22.24" x3="23.68" y1="43.75" y2="43.75" y3="43.75"/>
+ <curve x1="24.85" x2="24.19" x3="23.4" y1="43.81" y2="43.49" y3="43.61"/>
+ <curve x1="22.87" x2="21.89" x3="21.68" y1="43.5" y2="43.84" y3="43.4"/>
+ <curve x1="21" x2="21.11" x3="20.67" y1="43.56" y2="42.93" y3="42.85"/>
+ <curve x1="20.67" x2="20.67" x3="20.67" y1="41.5" y2="40.14" y3="38.78"/>
+ <curve x1="20.75" x2="21.18" x3="21.37" y1="38.34" y2="38.24" y3="37.91"/>
+ <curve x1="22.39" x2="23.41" x3="24.42" y1="37.91" y2="37.91" y3="37.91"/>
+ <curve x1="24.34" x2="24.7" x3="25.19" y1="37.2" y2="36.53" y3="36.04"/>
+ <curve x1="24.59" x2="23.98" x3="23.38" y1="35.37" y2="34.7" y3="34.03"/>
+ <curve x1="23.04" x2="22.96" x3="23.11" y1="33.93" y2="32.99" y3="32.59"/>
+ <curve x1="23.14" x2="23.89" x3="24.3" y1="31.89" y2="31.51" y3="30.99"/>
+ <curve x1="24.77" x2="25.07" x3="25.59" y1="30.64" y2="29.95" y3="29.8"/>
+ <curve x1="25.98" x2="26.73" x3="26.88" y1="29.42" y2="29.87" y3="30.08"/>
+ <curve x1="27.58" x2="28.14" x3="28.79" y1="30.54" y2="31.34" y3="31.94"/>
+ <curve x1="29.28" x2="29.91" x3="30.46" y1="31.53" y2="31.48" y3="31.19"/>
+ <curve x1="30.46" x2="30.46" x3="30.46" y1="30.24" y2="29.29" y3="28.34"/>
+ <curve x1="30.51" x2="30.84" x3="31.35" y1="27.73" y2="27.36" y3="27.01"/>
+ <curve x1="32.56" x2="33.76" x3="34.97" y1="27.01" y2="27.01" y3="27.01"/>
+ <curve x1="34.95" x2="35.58" x3="35.53" y1="27.54" y2="27.42" y3="27.99"/>
+ <curve x1="35.61" x2="35.71" x3="35.65" y1="28.58" y2="29.18" y3="29.81"/>
+ <curve x1="35.75" x2="35.33" x3="36.15" y1="30.38" y2="31.32" y3="31.43"/>
+ <curve x1="36.76" x2="37.34" x3="37.73" y1="31.42" y2="32.33" y3="31.52"/>
+ <curve x1="38.25" x2="38.67" x3="39.27" y1="31.08" y2="30.35" y3="30.08"/>
+ <curve x1="39.33" x2="40.29" x3="40.61" y1="29.69" y2="29.45" y3="29.86"/>
+ <curve x1="41.27" x2="41.77" x3="42.37" y1="30.26" y2="31.02" y3="31.56"/>
+ <curve x1="42.71" x2="43.14" x3="43.08" y1="32" y2="32.35" y3="32.96"/>
+ <curve x1="43.29" x2="42.5" x3="42.07" y1="33.77" y2="34.21" y3="34.77"/>
+ <curve x1="41.8" x2="40.86" x3="41.05" y1="35.28" y2="35.69" y3="36.27"/>
+ <curve x1="41.46" x2="41.73" x3="41.63" y1="36.72" y2="37.27" y3="37.91"/>
+ <curve x1="42.41" x2="43.2" x3="43.98" y1="37.91" y2="37.91" y3="37.91"/>
+ <curve x1="44.69" x2="45" x3="45.44" y1="37.71" y2="38.22" y3="38.68"/>
+ <close/>
+ <move x="43.65" y="18.41"/>
+ <line x="43.65" y="18.41"/>
+ <line x="43.65" y="22.15"/>
+ <line x="46.9" y="22.15"/>
+ <line x="46.9" y="18.41"/>
+ <line x="43.65" y="18.41"/>
+ <close/>
+ <move x="38.36" y="18.41"/>
+ <line x="38.36" y="18.41"/>
+ <line x="38.36" y="22.15"/>
+ <line x="41.63" y="22.15"/>
+ <line x="41.63" y="18.41"/>
+ <line x="38.36" y="18.41"/>
+ <close/>
+ <move x="35.65" y="40.98"/>
+ <curve x1="35.7" x2="35.69" x3="35.62" y1="40.66" y2="40.33" y3="40.01"/>
+ <curve x1="35.41" x2="33.67" x3="32.24" y1="38.5" y2="37.48" y3="37.95"/>
+ <curve x1="31.11" x2="30.43" x3="30.43" y1="38.34" y2="39.55" y3="40.71"/>
+ <curve x1="30.31" x2="31.28" x3="32.61" y1="42.02" y2="43.38" y3="43.57"/>
+ <curve x1="34.13" x2="35.7" x3="35.65" y1="43.86" y2="42.52" y3="40.98"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d2" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="70.83" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.83" x3="68.83" y1="37.65" y2="35.35" y3="33.06"/>
+ <curve x1="68.83" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="74.03" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.05" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.41" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.14" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.73"/>
+ <curve x1="4.72" x2="6.46" x3="7.15" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.87" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.69" x3="5.69" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.69" x2="5.97" x3="6.46" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.82" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.82" x2="3.33" x3="6.58" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.58" x2="5.61" x3="5.97" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.97" x2="7.09" x3="9.37" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.37" x2="7.57" x3="7.7" y1="69.38" y2="67.36" y3="65.91"/>
+ <curve x1="7.7" x2="8.68" x3="10.4" y1="65.91" y2="66.6" y3="66.31"/>
+ <curve x1="10.4" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.85" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.78" x3="41.78" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.78" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.14" y1="59.65" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="64.05" x3="64.05" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.75" x3="66.75" y1="66.6" y2="65.91" y3="65.91"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.83" x2="67.78" x3="67.78" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.74" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.83" x3="70.83" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ <move x="58.83" y="31.67"/>
+ <curve x1="58.83" x2="57.58" x3="55.64" y1="33.55" y2="35.43" y3="37.22"/>
+ <curve x1="55.85" x2="55.85" x3="55.64" y1="37.77" y2="38.33" y3="38.9"/>
+ <curve x1="55.1" x2="53.77" x3="52.87" y1="40.07" y2="40.41" y3="39.87"/>
+ <curve x1="52.66" x2="52.45" x3="52.25" y1="39.65" y2="39.65" y3="39.44"/>
+ <curve x1="50.92" x2="49.47" x3="47.73" y1="40.21" y2="40.84" y3="41.38"/>
+ <curve x1="47.53" x2="46.76" x3="45.99" y1="44.23" y2="46.87" y3="48.95"/>
+ <curve x1="44.68" x2="42.8" x3="40.1" y1="52.02" y2="54.1" y3="54.44"/>
+ <curve x1="40.1" x2="40.1" x3="39.55" y1="54.44" y2="54.44" y3="54.44"/>
+ <curve x1="37.13" x2="34.9" x3="32.95" y1="54.44" y2="52.79" y3="50.14"/>
+ <curve x1="31.43" x2="29.76" x3="28.24" y1="50.91" y2="51.25" y3="51.25"/>
+ <curve x1="26.93" x2="25.54" x3="24.63" y1="51.25" y2="50.91" y3="50.14"/>
+ <curve x1="23.11" x2="22.55" x3="22.55" y1="48.75" y2="46.87" y3="44.59"/>
+ <curve x1="22.55" x2="22.55" x3="22.75" y1="43.68" y2="42.71" y3="41.74"/>
+ <curve x1="22.55" x2="22.34" x3="22.13" y1="41.74" y2="41.74" y3="41.52"/>
+ <curve x1="19.36" x2="17.07" x3="16.86" y1="40.41" y2="38.33" y3="35.83"/>
+ <curve x1="16.65" x2="16.65" x3="16.65" y1="35.63" y2="35.43" y3="35.28"/>
+ <curve x1="16.86" x2="19.15" x3="22.75" y1="32.22" y2="29.72" y3="27.71"/>
+ <curve x1="24.28" x2="25.94" x3="27.82" y1="26.87" y2="26.12" y3="25.35"/>
+ <curve x1="28.04" x2="28.79" x3="29.56" y1="22.51" y2="19.86" y3="17.78"/>
+ <curve x1="30.87" x2="32.75" x3="35.45" y1="14.72" y2="12.64" y3="12.22"/>
+ <curve x1="35.45" x2="35.45" x3="35.94" y1="12.22" y2="12.22" y3="12.22"/>
+ <curve x1="38.44" x2="40.72" x3="42.6" y1="12.22" y2="13.95" y3="16.81"/>
+ <curve x1="43.16" x2="43.91" x3="44.48" y1="16.39" y2="16.25" y3="16.05"/>
+ <curve x1="44.48" x2="44.48" x3="44.68" y1="15.83" y2="15.69" y3="15.48"/>
+ <curve x1="45.24" x2="46.56" x3="47.53" y1="14.37" y2="13.95" y3="14.51"/>
+ <curve x1="48.09" x2="48.5" x3="48.64" y1="14.72" y2="15.28" y3="15.69"/>
+ <curve x1="49.47" x2="50.17" x3="50.92" y1="15.83" y2="16.25" y3="16.81"/>
+ <curve x1="52.45" x2="53.22" x3="53.22" y1="17.99" y2="20.07" y3="22.29"/>
+ <curve x1="53.22" x2="53" x3="52.87" y1="23.05" y2="24.02" y3="24.99"/>
+ <curve x1="53" x2="53.22" x3="53.42" y1="24.99" y2="25.21" y3="25.21"/>
+ <curve x1="56.41" x2="58.49" x3="58.69" y1="26.53" y2="28.4" y3="31.11"/>
+ <curve x1="58.83" x2="58.83" x3="58.83" y1="31.25" y2="31.45" y3="31.67"/>
+ <close/>
+ <move x="45.99" y="15.48"/>
+ <curve x1="45.87" x2="45.45" x3="45.45" y1="15.48" y2="15.69" y3="16.05"/>
+ <curve x1="45.45" x2="45.87" x3="45.99" y1="16.39" y2="16.59" y3="16.59"/>
+ <curve x1="46.42" x2="46.76" x3="46.76" y1="16.59" y2="16.39" y3="16.05"/>
+ <curve x1="46.76" x2="46.42" x3="45.99" y1="15.69" y2="15.48" y3="15.48"/>
+ <close/>
+ <move x="43.37" y="18.19"/>
+ <line x="43.37" y="18.33"/>
+ <curve x1="44.34" x2="45.1" x3="45.65" y1="19.66" y2="21.6" y3="23.48"/>
+ <curve x1="47.73" x2="49.61" x3="51.28" y1="23.68" y2="24.02" y3="24.45"/>
+ <curve x1="51.28" x2="51.48" x3="51.48" y1="23.68" y2="22.91" y3="22.29"/>
+ <curve x1="51.48" x2="50.92" x3="50.03" y1="20.21" y2="18.89" y3="18.19"/>
+ <curve x1="49.47" x2="49.06" x3="48.5" y1="17.78" y2="17.56" y3="17.36"/>
+ <curve x1="47.87" x2="46.56" x3="45.65" y1="18.55" y2="18.89" y3="18.33"/>
+ <curve x1="45.24" x2="45.1" x3="44.88" y1="18.19" y2="17.99" y3="17.56"/>
+ <curve x1="44.48" x2="43.91" x3="43.37" y1="17.78" y2="17.99" y3="18.19"/>
+ <close/>
+ <move x="42.05" y="19.1"/>
+ <curve x1="42.05" x2="42.05" x3="41.83" y1="19.1" y2="18.89" y3="18.89"/>
+ <curve x1="39.97" x2="37.67" x3="35.45" y1="20.07" y2="21.6" y3="23.68"/>
+ <curve x1="35.8" x2="36.36" x3="36.7" y1="23.68" y2="23.48" y3="23.48"/>
+ <curve x1="38.44" x2="40.1" x3="41.83" y1="23.26" y2="23.26" y3="23.26"/>
+ <curve x1="41.83" x2="41.83" x3="43.91" y1="23.26" y2="23.26" y3="23.26"/>
+ <curve x1="43.37" x2="42.6" x3="42.05" y1="21.74" y2="20.21" y3="19.1"/>
+ <close/>
+ <move x="31.29" y="18.33"/>
+ <curve x1="30.52" x2="29.9" x3="29.56" y1="20.21" y2="22.29" y3="24.99"/>
+ <curve x1="30.52" x2="31.64" x3="32.75" y1="24.65" y2="24.45" y3="24.02"/>
+ <curve x1="35.45" x2="38.3" x3="41.07" y1="21.18" y2="18.89" y3="17.56"/>
+ <curve x1="39.41" x2="37.53" x3="35.94" y1="15.14" y2="13.95" y3="13.95"/>
+ <curve x1="35.94" x2="35.94" x3="35.59" y1="13.95" y2="13.95" y3="13.95"/>
+ <curve x1="33.93" x2="32.4" x3="31.29" y1="14.17" y2="15.69" y3="18.33"/>
+ <close/>
+ <move x="29.35" y="26.73"/>
+ <line x="29.35" y="28.06"/>
+ <curve x1="29.56" x2="29.76" x3="30.12" y1="27.86" y2="27.5" y3="27.29"/>
+ <curve x1="30.32" x2="30.52" x3="30.67" y1="26.87" y2="26.53" y3="26.32"/>
+ <curve x1="30.32" x2="29.9" x3="29.35" y1="26.53" y2="26.53" y3="26.73"/>
+ <close/>
+ <move x="29.13" y="38.33"/>
+ <curve x1="29.13" x2="28.93" x3="28.59" y1="37.91" y2="37.57" y3="37.57"/>
+ <curve x1="28.24" x2="28.04" x3="28.04" y1="37.57" y2="37.91" y3="38.33"/>
+ <curve x1="28.04" x2="28.24" x3="28.59" y1="38.48" y2="38.9" y3="38.9"/>
+ <curve x1="28.93" x2="29.13" x3="29.13" y1="38.9" y2="38.48" y3="38.33"/>
+ <close/>
+ <move x="28.24" y="36.6"/>
+ <curve x1="28.04" x2="28.04" x3="27.82" y1="35.83" y2="35.28" y3="34.52"/>
+ <curve x1="27.82" x2="27.82" x3="27.82" y1="34.52" y2="34.52" y3="33.41"/>
+ <curve x1="26.36" x2="25.19" x3="24.63" y1="36.04" y2="38.48" y3="40.84"/>
+ <curve x1="26.16" x2="27.68" x3="29.35" y1="41.18" y2="41.52" y3="41.74"/>
+ <curve x1="29.13" x2="29.13" x3="28.93" y1="41.38" y2="40.98" y3="40.63"/>
+ <curve x1="28.79" x2="28.59" x3="28.38" y1="40.41" y2="40.41" y3="40.21"/>
+ <curve x1="27.27" x2="26.93" x3="27.47" y1="39.87" y2="38.48" y3="37.36"/>
+ <curve x1="27.68" x2="27.82" x3="28.24" y1="37.02" y2="36.8" y3="36.6"/>
+ <close/>
+ <move x="22.97" y="40.07"/>
+ <line x="23.11" y="40.21"/>
+ <curve x1="23.86" x2="25.39" x3="27.68" y1="37.22" y2="33.75" y3="30.56"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="30.56" y2="30.56" y3="29.37"/>
+ <curve x1="27.68" x2="27.68" x3="27.68" y1="29.37" y2="29.37" y3="27.29"/>
+ <curve x1="26.16" x2="24.83" x3="23.52" y1="27.86" y2="28.4" y3="29.17"/>
+ <curve x1="20.26" x2="18.39" x3="18.39" y1="31.11" y2="33.41" y3="35.28"/>
+ <curve x1="18.39" x2="18.39" x3="18.39" y1="35.28" y2="35.28" y3="35.63"/>
+ <curve x1="18.59" x2="20.12" x3="22.97" y1="37.36" y2="38.9" y3="40.07"/>
+ <close/>
+ <move x="28.24" y="49.58"/>
+ <curve x1="29.35" x2="30.67" x3="32.2" y1="49.58" y2="49.17" y3="48.61"/>
+ <curve x1="31.29" x2="30.52" x3="29.9" y1="47.08" y2="45.34" y3="43.48"/>
+ <curve x1="27.82" x2="25.94" x3="24.28" y1="43.26" y2="42.92" y3="42.29"/>
+ <curve x1="24.28" x2="24.08" x3="24.08" y1="43.06" y2="43.82" y3="44.59"/>
+ <curve x1="24.08" x2="24.63" x3="25.54" y1="46.53" y2="47.98" y3="48.75"/>
+ <curve x1="26.36" x2="27.27" x3="28.24" y1="49.38" y2="49.58" y3="49.58"/>
+ <close/>
+ <move x="33.72" y="47.84"/>
+ <curve x1="35.8" x2="37.88" x3="40.1" y1="46.87" y2="45.14" y3="43.06"/>
+ <curve x1="39.75" x2="39.41" x3="38.86" y1="43.26" y2="43.26" y3="43.26"/>
+ <curve x1="37.13" x2="35.45" x3="33.72" y1="43.48" y2="43.68" y3="43.68"/>
+ <curve x1="33.17" x2="32.4" x3="31.64" y1="43.68" y2="43.68" y3="43.48"/>
+ <curve x1="32.2" x2="32.95" x3="33.51" y1="45.14" y2="46.53" y3="47.84"/>
+ <curve x1="33.51" x2="33.51" x3="33.72" y1="47.84" y2="47.84" y3="47.84"/>
+ <close/>
+ <move x="44.48" y="48.41"/>
+ <curve x1="45.1" x2="45.65" x3="45.99" y1="46.73" y2="44.37" y3="41.95"/>
+ <curve x1="45.1" x2="43.91" x3="42.8" y1="42.09" y2="42.49" y3="42.71"/>
+ <curve x1="40.1" x2="37.33" x3="34.48" y1="45.56" y2="47.84" y3="49.38"/>
+ <curve x1="36.16" x2="38.09" x3="39.55" y1="51.6" y2="52.99" y3="52.99"/>
+ <curve x1="39.75" x2="39.97" x3="39.97" y1="52.99" y2="52.99" y3="52.79"/>
+ <curve x1="41.69" x2="43.16" x3="44.48" y1="52.79" y2="51.05" y3="48.41"/>
+ <close/>
+ <move x="46.21" y="40.07"/>
+ <line x="46.21" y="38.68"/>
+ <curve x1="45.99" x2="45.87" x3="45.65" y1="39.1" y2="39.24" y3="39.65"/>
+ <curve x1="45.24" x2="45.1" x3="44.88" y1="39.87" y2="40.21" y3="40.41"/>
+ <curve x1="45.24" x2="45.87" x3="46.21" y1="40.41" y2="40.21" y3="40.07"/>
+ <close/>
+ <move x="44.34" y="38.48"/>
+ <curve x1="44.88" x2="45.65" x3="46.21" y1="37.77" y2="36.8" y3="35.83"/>
+ <curve x1="46.21" x2="46.21" x3="45.99" y1="34.72" y2="33.55" y3="32.44"/>
+ <curve x1="45.65" x2="45.1" x3="44.48" y1="29.72" y2="27.29" y3="24.99"/>
+ <curve x1="43.57" x2="42.8" x3="41.83" y1="24.99" y2="24.79" y3="24.79"/>
+ <curve x1="40.1" x2="38.64" x3="36.91" y1="24.79" y2="24.99" y3="25.21"/>
+ <curve x1="35.8" x2="34.69" x3="33.51" y1="25.35" y2="25.56" y3="25.76"/>
+ <curve x1="32.75" x2="31.98" x3="31.29" y1="26.53" y2="27.29" y3="28.26"/>
+ <curve x1="30.67" x2="29.9" x3="29.35" y1="29.17" y2="30.14" y3="30.91"/>
+ <curve x1="29.35" x2="29.56" x3="29.56" y1="32.02" y2="33.19" y3="34.3"/>
+ <curve x1="29.76" x2="29.76" x3="29.9" y1="35.07" y2="35.63" y3="36.39"/>
+ <curve x1="29.9" x2="30.12" x3="30.32" y1="36.39" y2="36.39" y3="36.6"/>
+ <curve x1="31.29" x2="31.84" x3="31.29" y1="37.02" y2="38.33" y3="39.44"/>
+ <curve x1="31.09" x2="30.87" x3="30.67" y1="39.65" y2="39.87" y3="40.07"/>
+ <curve x1="30.67" x2="30.87" x3="31.09" y1="40.63" y2="41.38" y3="41.95"/>
+ <curve x1="31.09" x2="31.09" x3="33.72" y1="41.95" y2="41.95" y3="41.95"/>
+ <curve x1="35.45" x2="37.13" x3="38.64" y1="41.95" y2="41.95" y3="41.74"/>
+ <curve x1="39.97" x2="40.94" x3="42.05" y1="41.52" y2="41.38" y3="41.18"/>
+ <curve x1="42.8" x2="43.57" x3="44.34" y1="40.41" y2="39.44" y3="38.48"/>
+ <close/>
+ <move x="46.21" y="25.21"/>
+ <curve x1="46.76" x2="47.32" x3="47.73" y1="27.29" y2="29.72" y3="32.22"/>
+ <curve x1="47.73" x2="47.73" x3="47.73" y1="32.22" y2="32.22" y3="33.41"/>
+ <curve x1="49.26" x2="50.37" x3="50.92" y1="30.91" y2="28.4" y3="26.12"/>
+ <curve x1="49.47" x2="47.87" x3="46.21" y1="25.76" y2="25.35" y3="25.21"/>
+ <close/>
+ <move x="53" y="38.13"/>
+ <curve x1="53.42" x2="53.77" x3="53.77" y1="38.13" y2="37.91" y3="37.57"/>
+ <curve x1="53.77" x2="53.42" x3="53" y1="37.22" y2="36.8" y3="36.8"/>
+ <curve x1="52.87" x2="52.45" x3="52.45" y1="36.8" y2="37.22" y3="37.57"/>
+ <curve x1="52.45" x2="52.87" x3="53" y1="37.91" y2="38.13" y3="38.13"/>
+ <close/>
+ <move x="54.53" y="35.83"/>
+ <curve x1="56.27" x2="57.18" x3="57.18" y1="34.52" y2="32.99" y3="31.67"/>
+ <curve x1="57.18" x2="57.18" x3="57.18" y1="31.67" y2="31.67" y3="31.25"/>
+ <curve x1="57.04" x2="55.44" x3="52.66" y1="29.59" y2="27.86" y3="26.73"/>
+ <curve x1="52.66" x2="52.66" x3="52.45" y1="26.73" y2="26.73" y3="26.73"/>
+ <curve x1="51.69" x2="50.17" x3="47.87" y1="29.72" y2="32.99" y3="36.39"/>
+ <curve x1="47.87" x2="47.87" x3="47.87" y1="36.39" y2="36.39" y3="37.36"/>
+ <curve x1="47.87" x2="47.87" x3="47.87" y1="37.36" y2="37.36" y3="39.44"/>
+ <curve x1="49.26" x2="50.58" x3="51.69" y1="39.1" y2="38.48" y3="37.91"/>
+ <curve x1="51.69" x2="51.69" x3="51.91" y1="37.57" y2="37.22" y3="37.02"/>
+ <curve x1="52.45" x2="53.63" x3="54.53" y1="35.83" y2="35.43" y3="35.83"/>
+ <close/>
+ <move x="39.35" y="29.04"/>
+ <curve x1="41.29" x2="42.18" x3="41.15" y1="30.27" y2="33.4" y3="35.62"/>
+ <curve x1="40.04" x2="37.33" x3="35.31" y1="38.12" y2="38.89" y3="37.72"/>
+ <curve x1="33.17" x2="32.2" x3="33.31" y1="36.46" y2="33.54" y3="31.12"/>
+ <curve x1="34.55" x2="37.13" x3="39.35" y1="28.82" y2="27.78" y3="29.04"/>
+ <close/>
+ <move x="35.66" y="33.96"/>
+ <curve x1="36.22" x2="36.77" x3="36.77" y1="33.96" y2="33.4" y3="32.77"/>
+ <curve x1="36.77" x2="36.22" x3="35.66" y1="31.94" y2="31.52" y3="31.52"/>
+ <curve x1="35.17" x2="34.55" x3="34.55" y1="31.52" y2="31.94" y3="32.77"/>
+ <curve x1="34.55" x2="35.17" x3="35.66" y1="33.4" y2="33.96" y3="33.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d3" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="31.36" y="27.78"/>
+ <curve x1="31.63" x2="31.63" x3="31.63" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="34.55" x2="34.55" x3="34.55" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="35.52" x2="35.38" x3="35.38" y1="27.78" y2="28.06" y3="29.09"/>
+ <curve x1="35.38" x2="35.38" x3="35.38" y1="30.69" y2="30.69" y3="30.69"/>
+ <curve x1="35.32" x2="34.76" x3="34.07" y1="31.53" y2="32.22" y3="32.22"/>
+ <curve x1="32.4" x2="32.4" x3="32.4" y1="32.22" y2="32.22" y3="32.22"/>
+ <curve x1="31.71" x2="31.08" x3="31.08" y1="32.22" y2="31.53" y3="30.69"/>
+ <curve x1="31.08" x2="31.08" x3="31.08" y1="28.06" y2="28.06" y3="28.06"/>
+ <curve x1="31.08" x2="31.14" x3="31.36" y1="27.92" y2="27.78" y3="27.78"/>
+ <close/>
+ <move x="39.9" y="27.78"/>
+ <curve x1="42.81" x2="42.81" x3="42.81" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="42.87" x2="42.87" x3="42.87" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="43.15" x2="43.15" x3="43.15" y1="27.78" y2="27.78" y3="27.78"/>
+ <curve x1="43.22" x2="43.29" x3="43.29" y1="27.78" y2="27.92" y3="28.06"/>
+ <curve x1="43.29" x2="43.29" x3="43.29" y1="30.69" y2="30.69" y3="30.69"/>
+ <curve x1="43.29" x2="42.73" x3="41.98" y1="31.53" y2="32.22" y3="32.22"/>
+ <curve x1="40.24" x2="40.24" x3="40.24" y1="32.22" y2="32.22" y3="32.22"/>
+ <curve x1="39.54" x2="38.85" x3="38.85" y1="32.22" y2="31.53" y3="30.69"/>
+ <curve x1="38.85" x2="38.85" x3="38.85" y1="29.17" y2="29.17" y3="29.17"/>
+ <curve x1="38.85" x2="38.91" x3="39.9" y1="28.06" y2="27.78" y3="27.78"/>
+ <close/>
+ <move x="28.93" y="28.26"/>
+ <line x="28.93" y="31.45"/>
+ <curve x1="28.93" x2="29.27" x3="29.69" y1="32.22" y2="32.92" y3="33.27"/>
+ <curve x1="29.69" x2="29.69" x3="31.08" y1="33.27" y2="33.27" y3="33.27"/>
+ <curve x1="31.98" x2="32.82" x3="32.82" y1="33.27" y2="34.1" y3="35.07"/>
+ <curve x1="32.82" x2="32.82" x3="32.82" y1="35.07" y2="35.07" y3="38.62"/>
+ <curve x1="35.31" x2="39.06" x3="41.56" y1="40.07" y2="40.07" y3="38.62"/>
+ <curve x1="41.56" x2="41.56" x3="41.56" y1="38.62" y2="38.62" y3="35.07"/>
+ <curve x1="41.56" x2="42.31" x3="43.3" y1="34.1" y2="33.27" y3="33.27"/>
+ <curve x1="43.3" x2="43.3" x3="44.61" y1="33.27" y2="33.27" y3="33.27"/>
+ <curve x1="45.16" x2="45.51" x3="45.51" y1="32.92" y2="32.22" y3="31.45"/>
+ <curve x1="45.51" x2="45.51" x3="45.51" y1="31.45" y2="31.45" y3="28.26"/>
+ <curve x1="45.51" x2="45.38" x3="45.1" y1="27.64" y2="27.23" y3="26.73"/>
+ <curve x1="42.74" x2="40.17" x3="37.47" y1="27.01" y2="27.09" y3="27.09"/>
+ <curve x1="37.47" x2="37.47" x3="37.26" y1="27.09" y2="27.09" y3="27.09"/>
+ <curve x1="37.26" x2="37.26" x3="37.04" y1="27.09" y2="27.09" y3="27.09"/>
+ <curve x1="37.04" x2="37.04" x3="36.98" y1="27.09" y2="27.09" y3="27.09"/>
+ <curve x1="34.2" x2="31.57" x3="29.27" y1="27.09" y2="27.01" y3="26.73"/>
+ <curve x1="29" x2="28.93" x3="28.93" y1="27.23" y2="27.64" y3="28.26"/>
+ <close/>
+ <move x="19.98" y="24.45"/>
+ <curve x1="19.98" x2="23.11" x3="27.82" y1="23.26" y2="22.02" y3="21.46"/>
+ <curve x1="27.82" x2="27.82" x3="30.46" y1="21.46" y2="21.46" y3="12.98"/>
+ <curve x1="30.52" x2="30.8" x3="31.29" y1="12.64" y2="12.22" y3="12.22"/>
+ <curve x1="31.29" x2="31.29" x3="43.02" y1="12.22" y2="12.22" y3="12.22"/>
+ <curve x1="43.57" x2="43.85" x3="43.99" y1="12.22" y2="12.64" y3="12.98"/>
+ <curve x1="43.99" x2="43.99" x3="46.49" y1="12.98" y2="12.98" y3="21.46"/>
+ <curve x1="51.2" x2="54.33" x3="54.39" y1="22.02" y2="23.26" y3="24.45"/>
+ <curve x1="54.39" x2="51.76" x3="47.66" y1="25.13" y2="25.98" y3="26.46"/>
+ <curve x1="48.15" x2="48.29" x3="48.29" y1="27.57" y2="28.68" y3="29.94"/>
+ <curve x1="48.29" x2="48.15" x3="47.66" y1="31.11" y2="32.22" y3="33.27"/>
+ <curve x1="47.66" x2="47.66" x3="48.15" y1="33.27" y2="33.27" y3="33.27"/>
+ <curve x1="49.12" x2="49.88" x3="49.88" y1="33.27" y2="34.1" y3="35.07"/>
+ <curve x1="49.88" x2="49.88" x3="49.88" y1="35.07" y2="35.07" y3="37.02"/>
+ <curve x1="51.28" x2="52.45" x3="52.45" y1="37.22" y2="38.54" y3="40.27"/>
+ <curve x1="52.45" x2="52.45" x3="52.45" y1="40.27" y2="40.27" y3="51.25"/>
+ <curve x1="52.45" x2="51.14" x3="49.54" y1="53.05" y2="54.44" y3="54.44"/>
+ <curve x1="49.54" x2="49.54" x3="37.81" y1="54.44" y2="54.44" y3="54.44"/>
+ <curve x1="37.81" x2="37.81" x3="37.81" y1="54.44" y2="54.44" y3="40.27"/>
+ <curve x1="37.81" x2="37.81" x3="36.56" y1="40.27" y2="40.27" y3="40.27"/>
+ <curve x1="36.56" x2="36.56" x3="36.56" y1="40.27" y2="40.27" y3="54.44"/>
+ <curve x1="36.56" x2="36.56" x3="24.84" y1="54.44" y2="54.44" y3="54.44"/>
+ <curve x1="23.23" x2="22" x3="22" y1="54.44" y2="53.05" y3="51.25"/>
+ <curve x1="22" x2="22" x3="22" y1="51.25" y2="51.25" y3="40.27"/>
+ <curve x1="22" x2="23.03" x3="24.42" y1="38.54" y2="37.22" y3="37.02"/>
+ <curve x1="24.42" x2="24.42" x3="24.42" y1="37.02" y2="37.02" y3="35.07"/>
+ <curve x1="24.42" x2="25.25" x3="26.22" y1="34.1" y2="33.27" y3="33.27"/>
+ <curve x1="26.22" x2="26.22" x3="26.64" y1="33.27" y2="33.27" y3="33.27"/>
+ <curve x1="26.3" x2="26.02" x3="26.02" y1="32.22" y2="31.11" y3="29.94"/>
+ <curve x1="26.02" x2="26.3" x3="26.64" y1="28.68" y2="27.57" y3="26.46"/>
+ <curve x1="22.62" x2="19.98" x3="19.98" y1="25.98" y2="25.13" y3="24.45"/>
+ <close/>
+ <move x="70.77" y="61.47"/>
+ <curve x1="73.88" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.82" x3="68.82" y1="37.65" y2="35.35" y3="33.06"/>
+ <curve x1="68.82" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="73.96" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.03" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.4" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.12" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.73"/>
+ <curve x1="4.72" x2="6.44" x3="7.21" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.94" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.76" x3="5.76" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.76" x2="5.96" x3="6.44" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.88" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.88" x2="3.33" x3="6.66" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.66" x2="5.61" x3="5.96" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.96" x2="7.07" x3="9.43" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.43" x2="7.63" x3="7.7" y1="69.38" y2="67.36" y3="65.91"/>
+ <curve x1="7.7" x2="8.74" x3="10.48" y1="65.91" y2="66.6" y3="66.31"/>
+ <curve x1="10.48" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.38" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.92" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.76" x3="41.76" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.76" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.08" y1="59.65" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="63.97" x3="63.97" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.74" x3="66.74" y1="66.6" y2="65.91" y3="65.91"/>
+ <curve x1="66.82" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.82" x2="67.85" x3="67.85" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.55" x3="70.55" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.66" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.77" x3="70.77" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d4" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="42.74" y="26.26"/>
+ <line x="42.74" y="26.26"/>
+ <line x="42.6" y="26.46"/>
+ <line x="42.18" y="27.01"/>
+ <line x="41.07" y="28.48"/>
+ <line x="37.75" y="33.61"/>
+ <line x="33.51" y="40.07"/>
+ <line x="29.27" y="46.53"/>
+ <line x="29.07" y="46.87"/>
+ <line x="28.87" y="47.09"/>
+ <line x="28.73" y="47.29"/>
+ <line x="28.3" y="47.43"/>
+ <line x="28.16" y="47.64"/>
+ <line x="27.76" y="47.64"/>
+ <line x="27.62" y="47.78"/>
+ <line x="27.19" y="47.78"/>
+ <line x="19.3" y="47.78"/>
+ <line x="19.08" y="47.78"/>
+ <line x="18.73" y="47.64"/>
+ <line x="18.53" y="47.64"/>
+ <line x="18.31" y="47.43"/>
+ <line x="17.97" y="47.43"/>
+ <line x="17.76" y="47.29"/>
+ <line x="17.62" y="47.09"/>
+ <line x="17.42" y="46.87"/>
+ <line x="17.2" y="46.53"/>
+ <line x="17.07" y="46.32"/>
+ <line x="16.86" y="46.18"/>
+ <line x="16.86" y="45.76"/>
+ <line x="16.86" y="45.62"/>
+ <line x="16.65" y="45.21"/>
+ <line x="16.65" y="44.87"/>
+ <line x="16.65" y="44.51"/>
+ <line x="16.65" y="44.3"/>
+ <line x="16.65" y="43.96"/>
+ <line x="16.86" y="43.54"/>
+ <line x="16.86" y="43.19"/>
+ <line x="16.86" y="43.05"/>
+ <line x="17.07" y="42.65"/>
+ <line x="17.2" y="42.51"/>
+ <line x="17.42" y="42.29"/>
+ <line x="17.62" y="42.08"/>
+ <line x="17.76" y="41.94"/>
+ <line x="17.97" y="41.74"/>
+ <line x="18.31" y="41.52"/>
+ <line x="18.53" y="41.4"/>
+ <line x="18.73" y="41.4"/>
+ <line x="19.08" y="41.4"/>
+ <line x="19.3" y="41.4"/>
+ <line x="20.95" y="41.4"/>
+ <line x="22.41" y="41.52"/>
+ <line x="24.08" y="41.52"/>
+ <line x="24.97" y="41.52"/>
+ <line x="25.54" y="41.4"/>
+ <line x="25.94" y="41.4"/>
+ <line x="25.94" y="41.4"/>
+ <line x="26.08" y="41.18"/>
+ <line x="26.51" y="40.63"/>
+ <line x="27.62" y="39.17"/>
+ <line x="29.07" y="36.73"/>
+ <line x="31.09" y="34.03"/>
+ <line x="35.39" y="27.57"/>
+ <line x="39.41" y="21.11"/>
+ <line x="39.61" y="20.77"/>
+ <line x="39.83" y="20.56"/>
+ <line x="40.17" y="20.34"/>
+ <line x="40.38" y="20.2"/>
+ <line x="40.52" y="20"/>
+ <line x="40.94" y="19.86"/>
+ <line x="41.29" y="19.86"/>
+ <line x="41.49" y="19.86"/>
+ <line x="48.15" y="19.86"/>
+ <line x="48.15" y="18.75"/>
+ <line x="48.29" y="17.78"/>
+ <line x="48.29" y="17.22"/>
+ <line x="48.29" y="17.09"/>
+ <line x="48.5" y="16.87"/>
+ <line x="48.5" y="16.67"/>
+ <line x="48.84" y="16.67"/>
+ <line x="48.84" y="16.67"/>
+ <line x="49.06" y="16.67"/>
+ <line x="49.4" y="16.87"/>
+ <line x="49.95" y="17.09"/>
+ <line x="50.51" y="17.64"/>
+ <line x="52.03" y="18.33"/>
+ <line x="53.5" y="19.45"/>
+ <line x="55.16" y="20.56"/>
+ <line x="55.71" y="21.11"/>
+ <line x="56.47" y="21.67"/>
+ <line x="57.04" y="22.02"/>
+ <line x="57.38" y="22.56"/>
+ <line x="57.58" y="22.78"/>
+ <line x="57.58" y="22.78"/>
+ <line x="57.72" y="22.99"/>
+ <line x="57.72" y="23.13"/>
+ <line x="57.72" y="23.33"/>
+ <line x="57.58" y="23.33"/>
+ <line x="57.38" y="23.68"/>
+ <line x="57.18" y="23.89"/>
+ <line x="57.04" y="24.24"/>
+ <line x="56.47" y="24.58"/>
+ <line x="55.5" y="25.35"/>
+ <line x="54.25" y="26.46"/>
+ <line x="52.94" y="27.37"/>
+ <line x="51.62" y="28.26"/>
+ <line x="50.37" y="28.82"/>
+ <line x="49.81" y="29.24"/>
+ <line x="49.4" y="29.37"/>
+ <line x="49.06" y="29.59"/>
+ <line x="48.84" y="29.59"/>
+ <line x="48.5" y="29.59"/>
+ <line x="48.5" y="29.59"/>
+ <line x="48.5" y="29.37"/>
+ <line x="48.29" y="29.37"/>
+ <line x="48.29" y="29.24"/>
+ <line x="48.29" y="28.82"/>
+ <line x="48.29" y="28.68"/>
+ <line x="48.15" y="27.57"/>
+ <line x="48.15" y="26.26"/>
+ <line x="46.49" y="26.26"/>
+ <line x="44.62" y="26.12"/>
+ <line x="43.71" y="26.12"/>
+ <line x="43.16" y="26.26"/>
+ <line x="42.94" y="26.26"/>
+ <line x="42.74" y="26.26"/>
+ <line x="42.74" y="26.26"/>
+ <close/>
+ <move x="19.36" y="26.11"/>
+ <line x="19.36" y="26.11"/>
+ <line x="19.22" y="26.11"/>
+ <line x="18.81" y="26.11"/>
+ <line x="18.59" y="25.97"/>
+ <line x="18.45" y="25.97"/>
+ <line x="18.04" y="25.76"/>
+ <line x="17.82" y="25.62"/>
+ <line x="17.62" y="25.42"/>
+ <line x="17.48" y="25.28"/>
+ <line x="17.28" y="25.07"/>
+ <line x="17.07" y="24.73"/>
+ <line x="16.86" y="24.59"/>
+ <line x="16.86" y="24.37"/>
+ <line x="16.86" y="24.03"/>
+ <line x="16.65" y="23.68"/>
+ <line x="16.65" y="23.34"/>
+ <line x="16.65" y="23.2"/>
+ <line x="16.65" y="22.85"/>
+ <line x="16.65" y="22.49"/>
+ <line x="16.86" y="22.15"/>
+ <line x="16.86" y="21.95"/>
+ <line x="16.86" y="21.6"/>
+ <line x="17.07" y="21.46"/>
+ <line x="17.28" y="21.12"/>
+ <line x="17.48" y="20.9"/>
+ <line x="17.62" y="20.76"/>
+ <line x="17.82" y="20.55"/>
+ <line x="18.04" y="20.35"/>
+ <line x="18.45" y="20.35"/>
+ <line x="18.59" y="20.21"/>
+ <line x="18.81" y="20.01"/>
+ <line x="19.22" y="20.01"/>
+ <line x="19.36" y="20.01"/>
+ <line x="27.68" y="20.01"/>
+ <line x="28.1" y="20.01"/>
+ <line x="28.24" y="20.01"/>
+ <line x="28.65" y="20.21"/>
+ <line x="28.87" y="20.35"/>
+ <line x="29.21" y="20.55"/>
+ <line x="29.41" y="20.76"/>
+ <line x="29.63" y="20.9"/>
+ <line x="29.84" y="21.26"/>
+ <line x="34.42" y="27.36"/>
+ <line x="30.95" y="32.22"/>
+ <line x="30.6" y="32.08"/>
+ <line x="29.21" y="30"/>
+ <line x="27.9" y="28.06"/>
+ <line x="26.93" y="26.87"/>
+ <line x="26.51" y="26.32"/>
+ <line x="26.51" y="26.11"/>
+ <line x="25.94" y="26.11"/>
+ <line x="25.39" y="26.11"/>
+ <line x="24.43" y="26.11"/>
+ <line x="22.89" y="26.11"/>
+ <line x="21.09" y="26.11"/>
+ <line x="19.36" y="26.11"/>
+ <line x="19.36" y="26.11"/>
+ <close/>
+ <move x="57.73" y="44.45"/>
+ <line x="57.73" y="44.45"/>
+ <line x="57.73" y="44.65"/>
+ <line x="57.59" y="44.79"/>
+ <line x="57.37" y="45"/>
+ <line x="57.23" y="45.21"/>
+ <line x="57.03" y="45.56"/>
+ <line x="56.48" y="45.98"/>
+ <line x="55.57" y="46.95"/>
+ <line x="54.32" y="47.92"/>
+ <line x="53.07" y="48.83"/>
+ <line x="51.62" y="49.8"/>
+ <line x="50.51" y="50.56"/>
+ <line x="50.02" y="50.77"/>
+ <line x="49.62" y="51.11"/>
+ <line x="49.26" y="51.11"/>
+ <line x="49.12" y="51.11"/>
+ <line x="48.71" y="51.11"/>
+ <line x="48.71" y="51.11"/>
+ <line x="48.71" y="51.11"/>
+ <line x="48.57" y="50.97"/>
+ <line x="48.57" y="50.77"/>
+ <line x="48.57" y="50.56"/>
+ <line x="48.57" y="50.2"/>
+ <line x="48.36" y="49.23"/>
+ <line x="48.36" y="47.92"/>
+ <line x="41.9" y="47.92"/>
+ <line x="41.7" y="47.92"/>
+ <line x="41.36" y="47.72"/>
+ <line x="41" y="47.72"/>
+ <line x="40.79" y="47.5"/>
+ <line x="40.59" y="47.29"/>
+ <line x="40.25" y="47.15"/>
+ <line x="40.11" y="46.95"/>
+ <line x="39.89" y="46.53"/>
+ <line x="35.52" y="39.87"/>
+ <line x="39" y="34.44"/>
+ <line x="39.2" y="34.66"/>
+ <line x="40.45" y="36.94"/>
+ <line x="41.7" y="39.1"/>
+ <line x="42.25" y="39.87"/>
+ <line x="42.59" y="40.41"/>
+ <line x="42.95" y="40.98"/>
+ <line x="43.16" y="40.98"/>
+ <line x="43.16" y="41.18"/>
+ <line x="43.16" y="41.18"/>
+ <line x="43.5" y="41.18"/>
+ <line x="44.06" y="41.18"/>
+ <line x="44.95" y="41.18"/>
+ <line x="46.77" y="41.18"/>
+ <line x="48.36" y="41.18"/>
+ <line x="48.36" y="39.87"/>
+ <line x="48.57" y="38.9"/>
+ <line x="48.57" y="38.47"/>
+ <line x="48.57" y="38.13"/>
+ <line x="48.71" y="37.91"/>
+ <line x="48.71" y="37.91"/>
+ <line x="49.12" y="37.71"/>
+ <line x="49.12" y="37.71"/>
+ <line x="49.26" y="37.71"/>
+ <line x="49.62" y="37.91"/>
+ <line x="50.16" y="38.33"/>
+ <line x="50.71" y="38.68"/>
+ <line x="52.18" y="39.65"/>
+ <line x="53.64" y="40.63"/>
+ <line x="55.23" y="41.95"/>
+ <line x="55.78" y="42.37"/>
+ <line x="56.48" y="42.91"/>
+ <line x="57.03" y="43.48"/>
+ <line x="57.37" y="43.88"/>
+ <line x="57.59" y="44.03"/>
+ <line x="57.59" y="44.24"/>
+ <line x="57.73" y="44.45"/>
+ <line x="57.73" y="44.45"/>
+ <line x="57.73" y="44.45"/>
+ <close/>
+ <move x="70.83" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.83" x3="68.83" y1="37.65" y2="35.35" y3="33.06"/>
+ <curve x1="68.83" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="74.03" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.05" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.41" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.14" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.73"/>
+ <curve x1="4.72" x2="6.46" x3="7.15" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.87" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.69" x3="5.69" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.69" x2="5.97" x3="6.46" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.82" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.82" x2="3.33" x3="6.58" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.58" x2="5.61" x3="5.97" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.97" x2="7.09" x3="9.37" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.37" x2="7.57" x3="7.7" y1="69.38" y2="67.36" y3="65.91"/>
+ <curve x1="7.7" x2="8.68" x3="10.4" y1="65.91" y2="66.6" y3="66.31"/>
+ <curve x1="10.4" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.85" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.78" x3="41.78" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.78" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.14" y1="59.65" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="64.05" x3="64.05" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.75" x3="66.75" y1="66.6" y2="65.91" y3="65.91"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.83" x2="67.78" x3="67.78" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.74" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.83" x3="70.83" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d5" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="70.77" y="61.47"/>
+ <curve x1="73.88" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.82" x3="68.82" y1="37.65" y2="35.35" y3="33.06"/>
+ <curve x1="68.82" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="73.96" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.03" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.4" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.12" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.73"/>
+ <curve x1="4.72" x2="6.44" x3="7.21" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.94" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.76" x3="5.76" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.76" x2="5.96" x3="6.44" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.88" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.88" x2="3.33" x3="6.66" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.66" x2="5.61" x3="5.96" y1="70.55" y2="67.85" y3="66.8"/>
+ <curve x1="5.96" x2="7.07" x3="9.43" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.43" x2="7.63" x3="7.7" y1="69.38" y2="67.36" y3="65.91"/>
+ <curve x1="7.7" x2="8.74" x3="10.48" y1="65.91" y2="66.6" y3="66.31"/>
+ <curve x1="10.48" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.38" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.92" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.23" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.76" x3="41.76" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.76" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.08" y1="59.65" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="63.97" x3="63.97" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.74" x3="66.74" y1="66.6" y2="65.91" y3="65.91"/>
+ <curve x1="66.82" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.82" x2="67.85" x3="67.85" y1="67.85" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.55" x3="70.55" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.66" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.77" x3="70.77" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ <move x="54.95" y="36.32"/>
+ <curve x1="54.53" x2="53.77" x3="52.59" y1="38.48" y2="40.56" y3="42.43"/>
+ <curve x1="52.59" x2="52.59" x3="55.85" y1="42.43" y2="42.43" y3="48.96"/>
+ <curve x1="55.85" x2="55.85" x3="48.7" y1="48.96" y2="48.96" y3="46.88"/>
+ <curve x1="47.1" x2="45.3" x3="43.36" y1="48.13" y2="49.17" y3="49.86"/>
+ <curve x1="43.36" x2="43.36" x3="41.49" y1="49.86" y2="49.86" y3="56.67"/>
+ <curve x1="41.49" x2="41.49" x3="38.02" y1="56.67" y2="56.67" y3="50.77"/>
+ <curve x1="38.02" x2="38.02" x3="37.67" y1="50.77" y2="50.77" y3="50.77"/>
+ <curve x1="35.65" x2="33.71" x3="31.92" y1="50.77" y2="50.41" y3="49.86"/>
+ <curve x1="31.92" x2="31.92" x3="23.94" y1="49.86" y2="49.86" y3="55.35"/>
+ <curve x1="23.94" x2="23.94" x3="26.71" y1="55.35" y2="55.35" y3="47.08"/>
+ <curve x1="24.97" x2="23.52" x3="22.41" y1="45.62" y2="43.89" y3="41.95"/>
+ <curve x1="22.41" x2="22.41" x3="14.57" y1="41.95" y2="41.95" y3="41.73"/>
+ <curve x1="14.57" x2="14.57" x3="20.53" y1="41.73" y2="41.73" y3="37.37"/>
+ <curve x1="20.26" x2="20.04" x3="20.04" y1="36.11" y2="34.66" y3="33.27"/>
+ <curve x1="20.04" x2="20.12" x3="20.4" y1="32.08" y2="31.05" y3="30"/>
+ <curve x1="20.4" x2="20.4" x3="14.43" y1="30" y2="30" y3="25.56"/>
+ <curve x1="14.43" x2="14.43" x3="21.86" y1="25.56" y2="25.56" y3="25.56"/>
+ <curve x1="23.03" x2="24.77" x3="26.85" y1="23.12" y2="21.04" y3="19.44"/>
+ <curve x1="26.85" x2="26.85" x3="25.53" y1="19.44" y2="19.44" y3="12.64"/>
+ <curve x1="25.53" x2="25.53" x3="30.38" y1="12.64" y2="12.64" y3="17.3"/>
+ <curve x1="32.6" x2="35.04" x3="37.61" y1="16.25" y2="15.77" y3="15.77"/>
+ <curve x1="37.61" x2="37.61" x3="38.58" y1="15.77" y2="15.77" y3="15.77"/>
+ <curve x1="38.58" x2="38.58" x3="42.54" y1="15.77" y2="15.77" y3="11.11"/>
+ <curve x1="42.54" x2="42.54" x3="43.02" y1="11.11" y2="11.11" y3="16.53"/>
+ <curve x1="45.65" x2="48.01" x3="49.95" y1="17.42" y2="18.82" y3="20.77"/>
+ <curve x1="49.95" x2="49.95" x3="55.78" y1="20.77" y2="20.77" y3="18.96"/>
+ <curve x1="55.78" x2="55.78" x3="52.65" y1="18.96" y2="18.96" y3="24.17"/>
+ <curve x1="53.98" x2="54.88" x3="55.09" y1="26.39" y2="28.89" y3="31.59"/>
+ <curve x1="55.09" x2="55.09" x3="61.05" y1="31.59" y2="31.59" y3="33.96"/>
+ <curve x1="61.05" x2="61.05" x3="54.95" y1="33.96" y2="33.96" y3="36.32"/>
+ <close/>
+ <move x="49.68" y="29.45"/>
+ <curve x1="48.98" x2="48.35" x3="48.35" y1="29.45" y2="30" y3="30.77"/>
+ <curve x1="48.35" x2="48.98" x3="49.68" y1="31.53" y2="32.08" y3="32.08"/>
+ <curve x1="50.43" x2="51.06" x3="51.06" y1="32.08" y2="31.53" y3="30.77"/>
+ <curve x1="51.06" x2="50.43" x3="49.68" y1="30" y2="29.45" y3="29.45"/>
+ <close/>
+ <move x="43.51" y="29.45"/>
+ <curve x1="42.74" x2="42.11" x3="42.11" y1="29.45" y2="30" y3="30.77"/>
+ <curve x1="42.11" x2="42.74" x3="43.51" y1="31.53" y2="32.08" y3="32.08"/>
+ <curve x1="44.27" x2="44.88" x3="44.88" y1="32.08" y2="31.53" y3="30.77"/>
+ <curve x1="44.88" x2="44.27" x3="43.51" y1="30" y2="29.45" y3="29.45"/>
+ <close/>
+ <move x="37.33" y="29.45"/>
+ <curve x1="36.56" x2="35.94" x3="35.94" y1="29.45" y2="30" y3="30.77"/>
+ <curve x1="35.94" x2="36.56" x3="37.33" y1="31.53" y2="32.08" y3="32.08"/>
+ <curve x1="38.09" x2="38.64" x3="38.64" y1="32.08" y2="31.53" y3="30.77"/>
+ <curve x1="38.64" x2="38.09" x3="37.33" y1="30" y2="29.45" y3="29.45"/>
+ <close/>
+ <move x="31.09" y="29.45"/>
+ <curve x1="30.32" x2="29.76" x3="29.76" y1="29.45" y2="30" y3="30.77"/>
+ <curve x1="29.76" x2="30.32" x3="31.09" y1="31.53" y2="32.08" y3="32.08"/>
+ <curve x1="31.84" x2="32.46" x3="32.46" y1="32.08" y2="31.53" y3="30.77"/>
+ <curve x1="32.46" x2="31.84" x3="31.09" y1="30" y2="29.45" y3="29.45"/>
+ <close/>
+ <move x="24.91" y="29.45"/>
+ <curve x1="24.14" x2="23.52" x3="23.52" y1="29.45" y2="30" y3="30.77"/>
+ <curve x1="23.52" x2="24.14" x3="24.91" y1="31.53" y2="32.08" y3="32.08"/>
+ <curve x1="25.68" x2="26.22" x3="26.22" y1="32.08" y2="31.53" y3="30.77"/>
+ <curve x1="26.22" x2="25.68" x3="24.91" y1="30" y2="29.45" y3="29.45"/>
+ <close/>
+ <move x="24.91" y="37.99"/>
+ <curve x1="25.68" x2="26.22" x3="26.22" y1="37.99" y2="37.37" y3="36.6"/>
+ <curve x1="26.22" x2="25.68" x3="24.91" y1="35.9" y2="35.29" y3="35.29"/>
+ <curve x1="24.14" x2="23.52" x3="23.52" y1="35.29" y2="35.9" y3="36.6"/>
+ <curve x1="23.52" x2="24.14" x3="24.91" y1="37.37" y2="37.99" y3="37.99"/>
+ <close/>
+ <move x="31.09" y="37.99"/>
+ <curve x1="31.84" x2="32.46" x3="32.46" y1="37.99" y2="37.37" y3="36.6"/>
+ <curve x1="32.46" x2="31.84" x3="31.09" y1="35.9" y2="35.29" y3="35.29"/>
+ <curve x1="30.32" x2="29.76" x3="29.76" y1="35.29" y2="35.9" y3="36.6"/>
+ <curve x1="29.76" x2="30.32" x3="31.09" y1="37.37" y2="37.99" y3="37.99"/>
+ <close/>
+ <move x="37.33" y="37.99"/>
+ <curve x1="38.09" x2="38.64" x3="38.64" y1="37.99" y2="37.37" y3="36.6"/>
+ <curve x1="38.64" x2="38.09" x3="37.33" y1="35.9" y2="35.29" y3="35.29"/>
+ <curve x1="36.56" x2="35.94" x3="35.94" y1="35.29" y2="35.9" y3="36.6"/>
+ <curve x1="35.94" x2="36.56" x3="37.33" y1="37.37" y2="37.99" y3="37.99"/>
+ <close/>
+ <move x="21.92" y="34.24"/>
+ <line x="52.73" y="34.24"/>
+ <curve x1="52.87" x2="53.08" x3="53.08" y1="34.24" y2="34.1" y3="33.89"/>
+ <curve x1="53.08" x2="52.87" x3="52.73" y1="33.61" y2="33.41" y3="33.41"/>
+ <curve x1="52.73" x2="52.73" x3="21.92" y1="33.41" y2="33.41" y3="33.41"/>
+ <curve x1="21.72" x2="21.5" x3="21.5" y1="33.41" y2="33.61" y3="33.89"/>
+ <curve x1="21.5" x2="21.72" x3="21.92" y1="34.1" y2="34.24" y3="34.24"/>
+ <close/>
+ <move x="43.51" y="37.99"/>
+ <curve x1="44.27" x2="44.88" x3="44.88" y1="37.99" y2="37.37" y3="36.6"/>
+ <curve x1="44.88" x2="44.27" x3="43.51" y1="35.9" y2="35.29" y3="35.29"/>
+ <curve x1="42.74" x2="42.11" x3="42.11" y1="35.29" y2="35.9" y3="36.6"/>
+ <curve x1="42.11" x2="42.74" x3="43.51" y1="37.37" y2="37.99" y3="37.99"/>
+ <close/>
+ <move x="49.68" y="37.99"/>
+ <curve x1="50.43" x2="51.06" x3="51.06" y1="37.99" y2="37.37" y3="36.6"/>
+ <curve x1="51.06" x2="50.43" x3="49.68" y1="35.9" y2="35.29" y3="35.29"/>
+ <curve x1="48.98" x2="48.35" x3="48.35" y1="35.29" y2="35.9" y3="36.6"/>
+ <curve x1="48.35" x2="48.98" x3="49.68" y1="37.37" y2="37.99" y3="37.99"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d6" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="70.83" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.83" x3="68.83" y1="37.65" y2="35.35" y3="33.06"/>
+ <curve x1="68.83" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="74.03" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.05" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.41" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.14" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.73"/>
+ <curve x1="4.72" x2="6.46" x3="7.15" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.87" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.69" x3="5.69" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.69" x2="5.97" x3="6.46" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.82" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.82" x2="3.33" x3="6.58" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.58" x2="5.61" x3="5.97" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.97" x2="7.09" x3="9.37" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.37" x2="7.57" x3="7.7" y1="69.38" y2="67.36" y3="65.91"/>
+ <curve x1="7.7" x2="8.68" x3="10.4" y1="65.91" y2="66.6" y3="66.31"/>
+ <curve x1="10.4" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.85" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.78" x3="41.78" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.78" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.88" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.14" y1="59.65" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="64.05" x3="64.05" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.75" x3="66.75" y1="66.6" y2="65.91" y3="65.91"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.83" x2="67.78" x3="67.78" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.74" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.83" x3="70.83" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ <move x="36.64" y="31.81"/>
+ <curve x1="31.78" x2="27.82" x3="27.82" y1="32.08" y2="35.77" y3="40.21"/>
+ <curve x1="27.82" x2="31.78" x3="36.64" y1="44.65" y2="48.27" y3="48.69"/>
+ <curve x1="36.64" x2="36.64" x3="36.64" y1="53.33" y2="53.33" y3="53.33"/>
+ <curve x1="31.57" x2="27.47" x3="25.39" y1="51.8" y2="49.31" y3="45.14"/>
+ <curve x1="20.19" x2="20.19" x3="20.19" y1="47.01" y2="47.01" y3="47.01"/>
+ <curve x1="20.05" x2="19.84" x3="19.7" y1="47.01" y2="47.22" y3="47.22"/>
+ <curve x1="19.08" x2="18.53" x3="18.18" y1="47.22" y2="46.87" y3="46.39"/>
+ <curve x1="17.82" x2="18.18" x3="19.08" y1="45.7" y2="45" y3="44.59"/>
+ <curve x1="24.35" x2="24.35" x3="24.35" y1="42.57" y2="42.57" y3="42.57"/>
+ <curve x1="24.14" x2="23.72" x3="23.72" y1="41.46" y2="40.13" y3="38.68"/>
+ <curve x1="18.18" x2="18.18" x3="18.18" y1="38.68" y2="38.68" y3="38.68"/>
+ <curve x1="17.28" x2="16.65" x3="16.65" y1="38.68" y2="37.99" y3="37.36"/>
+ <curve x1="16.65" x2="17.28" x3="18.18" y1="36.6" y2="36.05" y3="36.05"/>
+ <curve x1="23.72" x2="23.72" x3="23.72" y1="36.05" y2="36.05" y3="36.05"/>
+ <curve x1="23.72" x2="24.14" x3="24.35" y1="34.72" y2="33.41" y3="32.08"/>
+ <curve x1="19.08" x2="19.08" x3="19.08" y1="30.14" y2="30.14" y3="30.14"/>
+ <curve x1="18.31" x2="17.82" x3="18.18" y1="29.79" y2="29.03" y3="28.4"/>
+ <curve x1="18.53" x2="19.36" x3="20.19" y1="27.71" y2="27.49" y3="27.71"/>
+ <curve x1="25.19" x2="25.19" x3="25.19" y1="29.59" y2="29.59" y3="29.59"/>
+ <curve x1="25.54" x2="25.94" x3="26.71" y1="28.54" y2="27.57" y3="26.67"/>
+ <curve x1="26.93" x2="27.27" x3="27.33" y1="26.81" y2="27.01" y3="27.09"/>
+ <curve x1="29.98" x2="33.09" x3="36.64" y1="28.34" y2="29.03" y3="29.03"/>
+ <line x="36.64" y="31.81"/>
+ <close/>
+ <move x="28.24" y="25.9"/>
+ <curve x1="27.9" x2="27.82" x3="27.68" y1="25.76" y2="25.56" y3="25.41"/>
+ <curve x1="28.38" x2="29.29" x3="30.32" y1="24.38" y2="23.33" y3="22.51"/>
+ <curve x1="26.3" x2="26.3" x3="26.3" y1="17.99" y2="17.99" y3="17.99"/>
+ <curve x1="26.16" x2="25.96" x3="25.82" y1="18.13" y2="18.13" y3="18.13"/>
+ <curve x1="24.36" x2="23.31" x3="23.31" y1="18.13" y2="17.08" y3="15.76"/>
+ <curve x1="23.31" x2="24.36" x3="25.82" y1="14.37" y2="13.34" y3="13.34"/>
+ <curve x1="27.19" x2="28.38" x3="28.38" y1="13.34" y2="14.37" y3="15.76"/>
+ <curve x1="28.38" x2="28.24" x3="28.04" y1="16.11" y2="16.39" y3="16.73"/>
+ <curve x1="32.26" x2="32.26" x3="32.26" y1="21.18" y2="21.18" y3="21.18"/>
+ <curve x1="33.85" x2="35.67" x3="37.4" y1="20.41" y2="20" y3="20"/>
+ <curve x1="39.27" x2="40.8" x3="42.32" y1="20" y2="20.41" y3="21.04"/>
+ <curve x1="46.35" x2="46.35" x3="46.35" y1="16.73" y2="16.73" y3="16.73"/>
+ <curve x1="46.07" x2="46.07" x3="46.07" y1="16.39" y2="16.11" y3="15.76"/>
+ <curve x1="46.07" x2="47.24" x3="48.63" y1="14.37" y2="13.34" y3="13.34"/>
+ <curve x1="50.03" x2="51.06" x3="51.06" y1="13.34" y2="14.37" y3="15.76"/>
+ <curve x1="51.06" x2="50.03" x3="48.63" y1="17.08" y2="18.13" y3="18.13"/>
+ <curve x1="48.49" x2="48.35" x3="48.23" y1="18.13" y2="18.13" y3="17.99"/>
+ <curve x1="44.27" x2="44.27" x3="44.27" y1="22.36" y2="22.36" y3="22.36"/>
+ <curve x1="45.38" x2="46.41" x3="47.24" y1="23.19" y2="24.1" y3="25.41"/>
+ <curve x1="46.98" x2="46.9" x3="46.55" y1="25.56" y2="25.76" y3="25.9"/>
+ <curve x1="44.27" x2="40.94" x3="37.4" y1="26.95" y2="27.78" y3="27.78"/>
+ <curve x1="33.85" x2="30.66" x3="28.24" y1="27.78" y2="26.95" y3="25.9"/>
+ <close/>
+ <move x="56.14" y="38.68"/>
+ <curve x1="51.13" x2="51.13" x3="51.13" y1="38.68" y2="38.68" y3="38.68"/>
+ <curve x1="51.13" x2="50.93" x3="50.44" y1="40.13" y2="41.46" y3="42.78"/>
+ <curve x1="55.43" x2="55.43" x3="55.43" y1="44.59" y2="44.59" y3="44.59"/>
+ <curve x1="56.14" x2="56.48" x3="56.14" y1="45" y2="45.7" y3="46.39"/>
+ <curve x1="56" x2="55.43" x3="54.89" y1="46.87" y2="47.22" y3="47.22"/>
+ <curve x1="54.74" x2="54.46" x3="54.32" y1="47.22" y2="47.01" y3="47.01"/>
+ <curve x1="49.61" x2="49.61" x3="49.61" y1="45.22" y2="45.22" y3="45.22"/>
+ <curve x1="47.53" x2="43.64" x3="38.85" y1="49.31" y2="51.94" y3="53.33"/>
+ <curve x1="38.85" x2="38.85" x3="38.85" y1="48.69" y2="48.69" y3="48.69"/>
+ <curve x1="43.5" x2="47.17" x3="47.17" y1="48.27" y2="44.59" y3="40.21"/>
+ <curve x1="47.17" x2="43.5" x3="38.85" y1="35.83" y2="32.16" y3="31.81"/>
+ <curve x1="38.85" x2="38.85" x3="38.85" y1="29.03" y2="29.03" y3="29.03"/>
+ <curve x1="42.33" x2="45.31" x3="47.74" y1="29.03" y2="28.34" y3="27.09"/>
+ <curve x1="47.8" x2="48.14" x3="48.5" y1="27.01" y2="26.81" y3="26.67"/>
+ <curve x1="49.05" x2="49.47" x3="49.68" y1="27.57" y2="28.54" y3="29.45"/>
+ <curve x1="54.32" x2="54.32" x3="54.32" y1="27.71" y2="27.71" y3="27.71"/>
+ <curve x1="55.03" x2="55.85" x3="56.14" y1="27.49" y2="27.71" y3="28.4"/>
+ <curve x1="56.48" x2="56.14" x3="55.43" y1="29.03" y2="29.79" y3="30.14"/>
+ <curve x1="50.58" x2="50.58" x3="50.58" y1="32.08" y2="32.08" y3="32.08"/>
+ <curve x1="50.93" x2="51.13" x3="51.13" y1="33.27" y2="34.58" y3="36.05"/>
+ <curve x1="56.34" x2="56.34" x3="56.34" y1="36.05" y2="36.05" y3="36.05"/>
+ <curve x1="56.97" x2="57.73" x3="57.73" y1="36.05" y2="36.6" y3="37.36"/>
+ <curve x1="57.51" x2="56.97" x3="56.14" y1="37.99" y2="38.68" y3="38.68"/>
+ <close/>
+ <move x="34.34" y="40.63"/>
+ <curve x1="32.4" x2="30.6" x3="31.63" y1="40.63" y2="42.64" y3="44.3"/>
+ <curve x1="31.63" x2="31.63" x3="31.23" y1="44.3" y2="44.3" y3="44.44"/>
+ <curve x1="29.97" x2="31.43" x3="34.28" y1="42.29" y2="39.66" y3="39.31"/>
+ <curve x1="33.23" x2="34.9" x3="37.53" y1="37.22" y2="34.65" y3="34.45"/>
+ <curve x1="37.53" x2="37.53" x3="37.53" y1="34.45" y2="34.45" y3="34.79"/>
+ <curve x1="33.99" x2="34.28" x3="37.75" y1="35.08" y2="39.86" y3="40.06"/>
+ <curve x1="37.75" x2="37.75" x3="37.75" y1="40.06" y2="40.06" y3="40.35"/>
+ <curve x1="37.26" x2="36.92" x3="36.92" y1="40.42" y2="40.77" y3="41.25"/>
+ <curve x1="36.92" x2="36.98" x3="36.98" y1="41.32" y2="41.46" y3="41.53"/>
+ <curve x1="36.98" x2="36.98" x3="36.78" y1="41.53" y2="41.53" y3="41.68"/>
+ <curve x1="36.56" x2="36.29" x3="35.93" y1="41.46" y2="41.25" y3="41.05"/>
+ <curve x1="35.93" x2="35.87" x3="35.81" y1="41.05" y2="41.05" y3="40.97"/>
+ <curve x1="35.39" x2="34.82" x3="34.34" y1="40.77" y2="40.63" y3="40.63"/>
+ <close/>
+ <move x="35.81" y="38.89"/>
+ <curve x1="35.66" x2="35.66" x3="35.52" y1="38.68" y2="38.47" y3="38.06"/>
+ <curve x1="36.92" x2="38.57" x3="39.97" y1="36.67" y2="36.67" y3="38.06"/>
+ <curve x1="39.89" x2="39.82" x3="39.62" y1="38.34" y2="38.61" y3="38.89"/>
+ <curve x1="38.51" x2="36.98" x3="35.81" y1="37.64" y2="37.64" y3="38.89"/>
+ <close/>
+ <move x="33.45" y="41.17"/>
+ <curve x1="33.65" x2="33.93" x3="34.13" y1="41.11" y2="41.11" y3="41.11"/>
+ <curve x1="34.07" x2="35.04" x3="36.64" y1="42.29" y2="43.47" y3="43.96"/>
+ <curve x1="36.5" x2="36.36" x3="36.21" y1="44.16" y2="44.3" y3="44.44"/>
+ <curve x1="34.42" x2="33.31" x3="33.45" y1="43.9" y2="42.57" y3="41.17"/>
+ <close/>
+ <move x="37.89" y="42.91"/>
+ <curve x1="38.09" x2="41.48" x3="42.95" y1="45.49" y2="46.46" y3="44.44"/>
+ <curve x1="42.95" x2="42.95" x3="43.3" y1="44.44" y2="44.44" y3="44.58"/>
+ <curve x1="41.77" x2="38.72" x3="37.26" y1="46.66" y2="46.6" y3="44.44"/>
+ <curve x1="36.56" x2="35.45" x3="34.13" y1="45.49" y2="46.18" y3="46.18"/>
+ <curve x1="32.96" x2="31.77" x3="31.08" y1="46.18" y2="45.55" y3="44.58"/>
+ <curve x1="31.08" x2="31.08" x3="31.51" y1="44.58" y2="44.58" y3="44.38"/>
+ <curve x1="32.05" x2="32.82" x3="33.79" y1="45.07" y2="45.55" y3="45.55"/>
+ <curve x1="35.24" x2="36.56" x3="36.64" y1="45.55" y2="44.38" y3="42.91"/>
+ <curve x1="36.64" x2="36.56" x3="36.29" y1="42.29" y2="41.74" y3="41.25"/>
+ <curve x1="36.29" x2="36.29" x3="36.49" y1="41.25" y2="41.25" y3="41.11"/>
+ <curve x1="36.7" x2="36.98" x3="37.26" y1="41.39" y2="41.46" y3="41.46"/>
+ <curve x1="37.54" x2="37.75" x3="37.95" y1="41.46" y2="41.39" y3="41.17"/>
+ <curve x1="37.95" x2="37.95" x3="38.23" y1="41.17" y2="41.17" y3="41.39"/>
+ <curve x1="37.89" x2="37.81" x3="37.89" y1="41.94" y2="42.22" y3="42.91"/>
+ <close/>
+ <move x="41.22" y="39.31"/>
+ <curve x1="43.98" x2="45.52" x3="44.33" y1="39.58" y2="42.29" y3="44.44"/>
+ <curve x1="44.33" x2="44.33" x3="43.92" y1="44.44" y2="44.44" y3="44.3"/>
+ <curve x1="44.69" x2="43.3" x3="41.22" y1="42.57" y2="40.63" y3="40.63"/>
+ <curve x1="40.25" x2="39.34" x3="38.79" y1="40.63" y2="41.05" y3="41.68"/>
+ <curve x1="38.79" x2="38.79" x3="38.57" y1="41.68" y2="41.68" y3="41.6"/>
+ <curve x1="38.57" x2="38.65" x3="38.65" y1="41.46" y2="41.32" y3="41.25"/>
+ <curve x1="38.65" x2="38.23" x3="37.74" y1="40.77" y2="40.42" y3="40.35"/>
+ <curve x1="37.74" x2="37.74" x3="37.74" y1="40.35" y2="40.35" y3="40.06"/>
+ <curve x1="41.28" x2="41.42" x3="37.95" y1="39.86" y2="35.22" y3="34.79"/>
+ <curve x1="37.95" x2="37.95" x3="37.95" y1="34.79" y2="34.79" y3="34.45"/>
+ <curve x1="40.65" x2="42.25" x3="41.22" y1="34.65" y2="37.22" y3="39.31"/>
+ <close/>
+ <move x="38.85" y="43.96"/>
+ <curve x1="40.45" x2="41.5" x3="41.36" y1="43.54" y2="42.36" y3="41.11"/>
+ <curve x1="41.62" x2="41.9" x3="42.19" y1="41.11" y2="41.11" y3="41.17"/>
+ <curve x1="42.19" x2="41.07" x3="39.28" y1="42.64" y2="43.9" y3="44.44"/>
+ <curve x1="39.14" x2="38.99" x3="38.85" y1="44.3" y2="44.16" y3="43.96"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d7" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="70.77" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="48.95" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.82" x3="68.82" y1="37.65" y2="35.43" y3="33.06"/>
+ <curve x1="68.82" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="73.96" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.6" y2="4.93" y3="9.73"/>
+ <curve x1="66.05" x2="64.11" x3="62.17" y1="11.73" y2="12.98" y3="13.69"/>
+ <curve x1="56.4" x2="47.39" x3="37.33" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.12" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.81" y3="9.73"/>
+ <curve x1="4.72" x2="6.44" x3="7.21" y1="4.93" y2="1.6" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.94" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.76" x3="5.76" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.76" x2="5.96" x3="6.44" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.92" y3="67.08"/>
+ <curve x1="1.11" x2="2.77" x3="3.88" y1="67.08" y2="64.94" y3="64.72"/>
+ <curve x1="3.88" x2="3.33" x3="6.66" y1="64.72" y2="68.96" y3="70.55"/>
+ <curve x1="6.66" x2="5.61" x3="5.96" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.96" x2="7.07" x3="9.43" y1="66.8" y2="69.16" y3="69.38"/>
+ <curve x1="9.43" x2="7.63" x3="7.77" y1="69.38" y2="67.36" y3="65.97"/>
+ <curve x1="7.77" x2="8.74" x3="10.48" y1="65.97" y2="66.67" y3="66.39"/>
+ <curve x1="10.48" x2="0.28" x3="9.43" y1="66.39" y2="60.7" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.44"/>
+ <curve x1="25.95" x2="26.92" x3="30.11" y1="66.53" y2="71.95" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="80" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.33" y1="64.23" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.83"/>
+ <curve x1="45.37" x2="41.76" x3="41.76" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.76" x2="42.6" x3="42.6" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.95" y2="66.53" y3="62.44"/>
+ <curve x1="55.77" x2="61.61" x3="65.08" y1="59.73" y2="54.52" y3="47.84"/>
+ <curve x1="74.1" x2="63.97" x3="63.97" y1="60.7" y2="66.39" y3="66.39"/>
+ <curve x1="65.77" x2="66.74" x3="66.74" y1="66.67" y2="65.97" y3="65.97"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.16" y2="66.8" y3="66.8"/>
+ <curve x1="68.82" x2="67.85" x3="67.85" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.72" y3="64.72"/>
+ <curve x1="71.66" x2="73.34" x3="73.34" y1="64.94" y2="67.08" y3="67.08"/>
+ <curve x1="72.99" x2="70.77" x3="70.77" y1="62.92" y2="61.47" y3="61.47"/>
+ <close/>
+ <move x="56.2" y="39.02"/>
+ <line x="51.21" y="39.02"/>
+ <curve x1="51.21" x2="50.93" x3="50.44" y1="40.7" y2="42.15" y3="43.61"/>
+ <curve x1="50.44" x2="50.44" x3="55.51" y1="43.61" y2="43.61" y3="45.7"/>
+ <curve x1="56.2" x2="56.48" x3="56.2" y1="46.11" y2="47.02" y3="47.78"/>
+ <curve x1="56.06" x2="55.51" x3="54.88" y1="48.19" y2="48.69" y3="48.69"/>
+ <curve x1="54.74" x2="54.46" x3="54.32" y1="48.69" y2="48.55" y3="48.55"/>
+ <curve x1="54.32" x2="54.32" x3="49.61" y1="48.55" y2="48.55" y3="46.45"/>
+ <curve x1="47.45" x2="43.58" x3="38.85" y1="51.05" y2="53.96" y3="55.56"/>
+ <curve x1="38.85" x2="38.85" x3="38.85" y1="55.56" y2="55.56" y3="28.26"/>
+ <curve x1="42.32" x2="45.31" x3="47.74" y1="28.26" y2="27.36" y3="26.04"/>
+ <curve x1="47.88" x2="48.14" x3="48.5" y1="25.9" y2="25.76" y3="25.56"/>
+ <curve x1="49.05" x2="49.47" x3="49.74" y1="26.6" y2="27.64" y3="28.69"/>
+ <curve x1="49.74" x2="49.74" x3="54.32" y1="28.69" y2="28.69" y3="26.81"/>
+ <curve x1="55.09" x2="55.92" x3="56.2" y1="26.46" y2="26.81" y3="27.5"/>
+ <curve x1="56.48" x2="56.2" x3="55.51" y1="28.26" y2="29.09" y3="29.45"/>
+ <curve x1="55.51" x2="55.51" x3="50.58" y1="29.45" y2="29.45" y3="31.67"/>
+ <curve x1="50.93" x2="51.21" x3="51.21" y1="32.99" y2="34.44" y3="36.11"/>
+ <curve x1="51.21" x2="51.21" x3="56.34" y1="36.11" y2="36.11" y3="36.11"/>
+ <curve x1="57.03" x2="57.73" x3="57.73" y1="36.11" y2="36.66" y3="37.57"/>
+ <curve x1="57.65" x2="57.03" x3="56.2" y1="38.34" y2="39.02" y3="39.02"/>
+ <close/>
+ <move x="47.12" y="24.3"/>
+ <curve x1="46.97" x2="46.83" x3="46.49" y1="24.44" y2="24.59" y3="24.73"/>
+ <curve x1="44.13" x2="40.86" x3="37.32" y1="25.9" y2="26.67" y3="26.67"/>
+ <curve x1="33.85" x2="30.6" x3="28.24" y1="26.67" y2="25.9" y3="24.73"/>
+ <curve x1="27.89" x2="27.75" x3="27.61" y1="24.59" y2="24.44" y3="24.3"/>
+ <curve x1="28.38" x2="29.21" x3="30.32" y1="23.19" y2="22.22" y3="21.39"/>
+ <curve x1="30.32" x2="30.32" x3="26.3" y1="21.39" y2="21.39" y3="16.87"/>
+ <curve x1="26.16" x2="25.95" x3="25.88" y1="17.02" y2="17.02" y3="17.02"/>
+ <curve x1="24.36" x2="23.31" x3="23.31" y1="17.02" y2="15.9" y3="14.65"/>
+ <curve x1="23.31" x2="24.36" x3="25.88" y1="13.26" y2="12.23" y3="12.23"/>
+ <curve x1="27.13" x2="28.38" x3="28.38" y1="12.23" y2="13.26" y3="14.65"/>
+ <curve x1="28.38" x2="28.24" x3="28.03" y1="14.94" y2="15.34" y3="15.62"/>
+ <curve x1="28.03" x2="28.03" x3="32.19" y1="15.62" y2="15.62" y3="20.07"/>
+ <curve x1="33.85" x2="35.59" x3="37.32" y1="19.24" y2="18.89" y3="18.89"/>
+ <curve x1="39.12" x2="40.8" x3="42.25" y1="18.89" y2="19.24" y3="20"/>
+ <curve x1="42.25" x2="42.25" x3="46.21" y1="20" y2="20" y3="15.62"/>
+ <curve x1="46.07" x2="46.07" x3="46.07" y1="15.34" y2="14.94" y3="14.65"/>
+ <curve x1="46.07" x2="47.12" x3="48.57" y1="13.26" y2="12.23" y3="12.23"/>
+ <curve x1="49.88" x2="51.06" x3="51.06" y1="12.23" y2="13.26" y3="14.65"/>
+ <curve x1="51.06" x2="49.88" x3="48.57" y1="15.9" y2="17.02" y3="17.02"/>
+ <curve x1="48.43" x2="48.29" x3="48.15" y1="17.02" y2="17.02" y3="16.87"/>
+ <curve x1="48.15" x2="48.15" x3="44.13" y1="16.87" y2="16.87" y3="21.25"/>
+ <curve x1="45.3" x2="46.41" x3="47.12" y1="22.08" y2="23.05" y3="24.3"/>
+ <close/>
+ <move x="26.57" y="25.56"/>
+ <curve x1="26.93" x2="27.19" x3="27.33" y1="25.76" y2="25.9" y3="26.04"/>
+ <curve x1="29.9" x2="33.03" x3="36.64" y1="27.36" y2="28.26" y3="28.26"/>
+ <curve x1="36.64" x2="36.64" x3="36.64" y1="28.26" y2="28.26" y3="55.56"/>
+ <curve x1="31.57" x2="27.47" x3="25.39" y1="53.82" y2="51.05" y3="46.33"/>
+ <curve x1="25.39" x2="25.39" x3="20.12" y1="46.33" y2="46.33" y3="48.55"/>
+ <curve x1="19.98" x2="19.84" x3="19.7" y1="48.55" y2="48.61" y3="48.61"/>
+ <curve x1="19.07" x2="18.45" x3="18.18" y1="48.61" y2="48.19" y3="47.78"/>
+ <curve x1="17.9" x2="18.18" x3="19.07" y1="47.02" y2="46.11" y3="45.7"/>
+ <curve x1="19.07" x2="19.07" x3="24.35" y1="45.7" y2="45.7" y3="43.48"/>
+ <curve x1="24" x2="23.72" x3="23.72" y1="42.15" y2="40.7" y3="39.02"/>
+ <curve x1="23.72" x2="23.72" x3="18.18" y1="39.02" y2="39.02" y3="39.02"/>
+ <curve x1="17.28" x2="16.65" x3="16.65" y1="39.02" y2="38.34" y3="37.57"/>
+ <curve x1="16.65" x2="17.28" x3="18.18" y1="36.66" y2="36.11" y3="36.11"/>
+ <curve x1="18.18" x2="18.18" x3="23.72" y1="36.11" y2="36.11" y3="36.11"/>
+ <curve x1="23.72" x2="24" x3="24.35" y1="34.58" y2="33.13" y3="31.67"/>
+ <curve x1="24.35" x2="24.35" x3="19.07" y1="31.67" y2="31.67" y3="29.45"/>
+ <curve x1="18.39" x2="17.9" x3="18.18" y1="29.09" y2="28.26" y3="27.5"/>
+ <curve x1="18.45" x2="19.42" x3="20.12" y1="26.81" y2="26.46" y3="26.81"/>
+ <curve x1="20.12" x2="20.12" x3="25.11" y1="26.81" y2="26.81" y3="28.83"/>
+ <curve x1="25.53" x2="25.94" x3="26.57" y1="27.64" y2="26.6" y3="25.56"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="threat d8" strokewidth="inherit" w="74.37">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="34.07" y="24.44"/>
+ <line x="34.07" y="19.38"/>
+ <curve x1="34.07" x2="34.07" x3="32.19" y1="19.38" y2="19.38" y3="19.38"/>
+ <curve x1="32.19" x2="32.19" x3="32.19" y1="19.38" y2="19.38" y3="18.19"/>
+ <curve x1="32.88" x2="33.37" x3="33.73" y1="18.19" y2="18.06" y3="17.7"/>
+ <curve x1="33.93" x2="34.13" x3="34.27" y1="17.5" y2="17.22" y3="16.67"/>
+ <curve x1="34.27" x2="34.27" x3="35.52" y1="16.67" y2="16.67" y3="16.67"/>
+ <curve x1="35.52" x2="35.52" x3="35.52" y1="16.67" y2="16.67" y3="24.44"/>
+ <curve x1="35.52" x2="35.52" x3="34.07" y1="24.44" y2="24.44" y3="24.44"/>
+ <close/>
+ <move x="25.96" y="29.86"/>
+ <curve x1="26.16" x2="26.36" x3="26.5" y1="29.66" y2="29.38" y3="28.89"/>
+ <curve x1="26.5" x2="26.5" x3="27.75" y1="28.89" y2="28.89" y3="28.89"/>
+ <curve x1="27.75" x2="27.75" x3="27.75" y1="28.89" y2="28.89" y3="35.55"/>
+ <curve x1="27.75" x2="27.75" x3="26.3" y1="35.55" y2="35.55" y3="35.55"/>
+ <curve x1="26.3" x2="26.3" x3="26.3" y1="35.55" y2="35.55" y3="31.18"/>
+ <curve x1="26.3" x2="26.3" x3="24.42" y1="31.18" y2="31.18" y3="31.18"/>
+ <curve x1="24.42" x2="24.42" x3="24.42" y1="31.18" y2="31.18" y3="30.21"/>
+ <curve x1="25.05" x2="25.6" x3="25.96" y1="30.21" y2="30.06" y3="29.86"/>
+ <close/>
+ <move x="33.73" y="41.04"/>
+ <curve x1="33.99" x2="34.13" x3="34.27" y1="40.83" y2="40.49" y3="40"/>
+ <curve x1="34.27" x2="34.27" x3="35.52" y1="40" y2="40" y3="40"/>
+ <curve x1="35.52" x2="35.52" x3="35.52" y1="40" y2="40" y3="47.78"/>
+ <curve x1="35.52" x2="35.52" x3="34.07" y1="47.78" y2="47.78" y3="47.78"/>
+ <curve x1="34.07" x2="34.07" x3="34.07" y1="47.78" y2="47.78" y3="42.65"/>
+ <curve x1="34.07" x2="34.07" x3="32.19" y1="42.65" y2="42.65" y3="42.65"/>
+ <curve x1="32.19" x2="32.19" x3="32.19" y1="42.65" y2="42.65" y3="41.52"/>
+ <curve x1="32.88" x2="33.37" x3="33.73" y1="41.52" y2="41.32" y3="41.04"/>
+ <close/>
+ <move x="45.94" y="36.87"/>
+ <curve x1="46" x2="46.06" x3="46.06" y1="36.73" y2="36.61" y3="36.39"/>
+ <curve x1="46.06" x2="45.94" x3="45.8" y1="36.04" y2="35.84" y3="35.62"/>
+ <curve x1="45.58" x2="45.23" x3="44.75" y1="35.56" y2="35.35" y3="35.21"/>
+ <curve x1="44.75" x2="44.75" x3="44.75" y1="35.21" y2="35.21" y3="37.57"/>
+ <curve x1="44.89" x2="45.03" x3="45.23" y1="37.57" y2="37.5" y3="37.5"/>
+ <curve x1="45.38" x2="45.52" x3="45.66" y1="37.43" y2="37.36" y3="37.29"/>
+ <curve x1="45.72" x2="45.86" x3="45.94" y1="37.15" y2="37.01" y3="36.87"/>
+ <close/>
+ <move x="44.06" y="33.34"/>
+ <line x="44.06" y="31.32"/>
+ <curve x1="43.92" x2="43.78" x3="43.72" y1="31.32" y2="31.32" y3="31.4"/>
+ <curve x1="43.5" x2="43.44" x3="43.3" y1="31.4" y2="31.46" y3="31.6"/>
+ <curve x1="43.23" x2="43.15" x3="43.09" y1="31.66" y2="31.74" y3="31.88"/>
+ <curve x1="43.01" x2="43.01" x3="43.01" y1="31.94" y2="32.15" y3="32.29"/>
+ <curve x1="43.01" x2="43.09" x3="43.23" y1="32.57" y2="32.77" y3="32.91"/>
+ <curve x1="43.44" x2="43.72" x3="44.06" y1="33.13" y2="33.2" y3="33.34"/>
+ <close/>
+ <move x="47.74" y="35.76"/>
+ <curve x1="47.74" x2="47.74" x3="47.74" y1="36.04" y2="36.25" y3="36.46"/>
+ <curve x1="47.74" x2="47.74" x3="47.66" y1="36.67" y2="36.87" y3="37.15"/>
+ <curve x1="47.53" x2="47.39" x3="47.17" y1="37.43" y2="37.72" y3="37.92"/>
+ <curve x1="46.91" x2="46.63" x3="46.2" y1="38.2" y2="38.4" y3="38.61"/>
+ <curve x1="45.86" x2="45.38" x3="44.75" y1="38.83" y2="38.97" y3="39.03"/>
+ <curve x1="44.75" x2="44.75" x3="44.75" y1="39.03" y2="39.03" y3="40"/>
+ <curve x1="44.75" x2="44.75" x3="44.06" y1="40" y2="40" y3="40"/>
+ <curve x1="44.06" x2="44.06" x3="44.06" y1="40" y2="40" y3="39.03"/>
+ <curve x1="43.15" x2="42.47" x3="41.98" y1="38.89" y2="38.69" y3="38.2"/>
+ <curve x1="41.5" x2="41.21" x3="41.07" y1="37.72" y2="36.95" y3="35.98"/>
+ <curve x1="41.07" x2="41.07" x3="42.81" y1="35.98" y2="35.98" y3="35.98"/>
+ <curve x1="42.81" x2="42.87" x3="43.15" y1="36.46" y2="36.81" y3="37.09"/>
+ <curve x1="43.44" x2="43.72" x3="44.06" y1="37.36" y2="37.5" y3="37.57"/>
+ <curve x1="44.06" x2="44.06" x3="44.06" y1="37.57" y2="37.57" y3="34.99"/>
+ <curve x1="43.98" x2="43.98" x3="43.92" y1="34.99" y2="34.99" y3="34.99"/>
+ <curve x1="43.84" x2="43.78" x3="43.72" y1="34.93" y2="34.93" y3="34.93"/>
+ <curve x1="43.44" x2="43.09" x3="42.81" y1="34.87" y2="34.73" y3="34.65"/>
+ <curve x1="42.53" x2="42.25" x3="42.04" y1="34.51" y2="34.37" y3="34.24"/>
+ <curve x1="41.84" x2="41.62" x3="41.5" y1="34.02" y2="33.82" y3="33.48"/>
+ <curve x1="41.36" x2="41.28" x3="41.28" y1="33.2" y2="32.91" y3="32.51"/>
+ <curve x1="41.28" x2="41.42" x3="41.56" y1="32.09" y2="31.66" y3="31.4"/>
+ <curve x1="41.7" x2="41.9" x3="42.18" y1="31.04" y2="30.83" y3="30.55"/>
+ <curve x1="42.39" x2="42.67" x3="43.01" y1="30.35" y2="30.21" y3="30.07"/>
+ <curve x1="43.36" x2="43.72" x3="44.06" y1="29.93" y2="29.93" y3="29.86"/>
+ <curve x1="44.06" x2="44.06" x3="44.06" y1="29.86" y2="29.86" y3="28.89"/>
+ <curve x1="44.06" x2="44.06" x3="44.75" y1="28.89" y2="28.89" y3="28.89"/>
+ <curve x1="44.75" x2="44.75" x3="44.75" y1="28.89" y2="28.89" y3="29.86"/>
+ <curve x1="45.17" x2="45.44" x3="45.8" y1="29.93" y2="30" y3="30.15"/>
+ <curve x1="46.14" x2="46.34" x3="46.63" y1="30.27" y2="30.41" y3="30.63"/>
+ <curve x1="46.83" x2="47.05" x3="47.17" y1="30.83" y2="31.04" y3="31.4"/>
+ <curve x1="47.39" x2="47.46" x3="47.46" y1="31.66" y2="32.09" y3="32.51"/>
+ <curve x1="47.46" x2="47.46" x3="45.72" y1="32.51" y2="32.51" y3="32.51"/>
+ <curve x1="45.72" x2="45.66" x3="45.44" y1="32.15" y2="31.88" y3="31.66"/>
+ <curve x1="45.23" x2="45.03" x3="44.75" y1="31.4" y2="31.32" y3="31.32"/>
+ <curve x1="44.75" x2="44.75" x3="44.75" y1="31.32" y2="31.32" y3="33.48"/>
+ <curve x1="44.89" x2="44.95" x3="45.03" y1="33.48" y2="33.48" y3="33.54"/>
+ <curve x1="45.17" x2="45.23" x3="45.38" y1="33.54" y2="33.62" y3="33.62"/>
+ <curve x1="46" x2="46.42" x3="46.77" y1="33.82" y2="34.02" y3="34.24"/>
+ <curve x1="47.11" x2="47.25" x3="47.46" y1="34.45" y2="34.73" y3="34.99"/>
+ <curve x1="47.6" x2="47.66" x3="47.74" y1="35.21" y2="35.49" y3="35.76"/>
+ <close/>
+ <move x="55.44" y="34.92"/>
+ <curve x1="55.5" x2="55.58" x3="55.58" y1="34.24" y2="33.55" y3="32.84"/>
+ <curve x1="55.58" x2="55.5" x3="55.44" y1="32.02" y2="31.33" y3="30.56"/>
+ <curve x1="55.36" x2="55.36" x3="55.3" y1="30.42" y2="30.22" y3="29.93"/>
+ <curve x1="55.36" x2="55.36" x3="55.44" y1="30.14" y2="30.34" y3="30.56"/>
+ <curve x1="55.44" x2="55.44" x3="55.44" y1="30.62" y2="30.7" y3="30.7"/>
+ <curve x1="55.16" x2="54.95" x3="54.95" y1="31.11" y2="31.81" y3="32.84"/>
+ <curve x1="54.95" x2="55.16" x3="55.44" y1="33.81" y2="34.52" y3="34.92"/>
+ <close/>
+ <move x="54.95" y="37.22"/>
+ <curve x1="55.1" x2="55.16" x3="55.22" y1="36.94" y2="36.74" y3="36.46"/>
+ <curve x1="54.81" x2="54.53" x3="54.25" y1="36.32" y2="36.05" y3="35.77"/>
+ <curve x1="54.05" x2="53.56" x3="52.8" y1="37.08" y2="38.4" y3="39.58"/>
+ <curve x1="52.8" x2="52.8" x3="53.77" y1="39.58" y2="39.58" y3="40.49"/>
+ <curve x1="54.33" x2="54.67" x3="54.95" y1="39.52" y2="38.4" y3="37.22"/>
+ <close/>
+ <move x="34.06" y="35.42"/>
+ <curve x1="33.93" x2="34.2" x3="34.83" y1="33.75" y2="31.95" y3="30.42"/>
+ <curve x1="34.69" x2="34.48" x3="34.2" y1="30.28" y2="30.22" y3="30.22"/>
+ <curve x1="33.37" x2="32.95" x3="32.95" y1="30.22" y2="31.11" y3="32.84"/>
+ <curve x1="32.95" x2="33.31" x3="34.06" y1="34.52" y2="35.35" y3="35.42"/>
+ <close/>
+ <move x="44.19" y="24.38"/>
+ <curve x1="46.76" x2="49.4" x3="51.4" y1="24.38" y2="25.35" y3="27.29"/>
+ <curve x1="52.52" x2="53.22" x3="53.7" y1="28.34" y2="29.59" y3="30.9"/>
+ <curve x1="53.84" x2="53.99" x3="54.19" y1="30.48" y2="30.28" y3="30"/>
+ <curve x1="54.47" x2="54.81" x3="55.22" y1="29.65" y2="29.37" y3="29.23"/>
+ <curve x1="55.1" x2="54.95" x3="54.74" y1="28.68" y2="28.06" y3="27.49"/>
+ <curve x1="54.39" x2="53.91" x3="53.36" y1="26.38" y2="25.27" y3="24.3"/>
+ <curve x1="53.08" x2="52.8" x3="52.52" y1="23.82" y2="23.33" y3="22.85"/>
+ <curve x1="51.97" x2="51.4" x3="50.72" y1="22.08" y2="21.4" y3="20.63"/>
+ <curve x1="50.72" x2="50.72" x3="50.72" y1="20.63" y2="20.63" y3="25.01"/>
+ <curve x1="50.72" x2="50.72" x3="49.2" y1="25.01" y2="25.01" y3="25.01"/>
+ <curve x1="49.2" x2="49.2" x3="49.2" y1="25.01" y2="25.01" y3="20.14"/>
+ <curve x1="49.2" x2="49.2" x3="47.24" y1="20.14" y2="20.14" y3="20.14"/>
+ <curve x1="47.24" x2="47.24" x3="47.24" y1="20.14" y2="20.14" y3="19.03"/>
+ <curve x1="47.87" x2="48.29" x3="48.64" y1="19.03" y2="18.96" y3="18.75"/>
+ <curve x1="45.51" x2="41.69" x3="37.53" y1="16.39" y2="15" y3="15"/>
+ <curve x1="34.06" x2="30.95" x3="28.24" y1="15" y2="15.91" y3="17.5"/>
+ <curve x1="29.01" x2="29.7" x3="30.04" y1="17.56" y2="17.92" y3="18.55"/>
+ <curve x1="30.52" x2="30.81" x3="30.81" y1="19.17" y2="20.14" y3="21.4"/>
+ <curve x1="30.81" x2="30.52" x3="30.12" y1="22.51" y2="23.4" y3="24.02"/>
+ <curve x1="29.56" x2="28.93" x3="27.96" y1="24.79" y2="25.13" y3="25.13"/>
+ <curve x1="26.99" x2="26.22" x3="25.74" y1="25.13" y2="24.87" y3="24.1"/>
+ <curve x1="25.25" x2="25.05" x3="25.05" y1="23.48" y2="22.51" y3="21.4"/>
+ <curve x1="25.05" x2="25.05" x3="25.25" y1="20.77" y2="20.21" y3="19.72"/>
+ <curve x1="24.22" x2="23.31" x3="22.49" y1="20.63" y2="21.74" y3="22.85"/>
+ <curve x1="22.2" x2="21.92" x3="21.64" y1="23.27" y2="23.76" y3="24.24"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="24.24" y2="24.24" y3="24.16"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="24.24" y2="24.24" y3="24.3"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="24.3" y2="24.3" y3="24.3"/>
+ <curve x1="21.64" x2="21.58" x3="21.58" y1="24.38" y2="24.45" y3="24.45"/>
+ <curve x1="21.58" x2="21.64" x3="21.64" y1="24.38" y2="24.3" y3="24.3"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="24.3" y2="24.24" y3="24.24"/>
+ <curve x1="21.64" x2="21.64" x3="21.64" y1="24.24" y2="24.24" y3="25.01"/>
+ <curve x1="21.64" x2="21.64" x3="21.23" y1="25.01" y2="25.01" y3="25.01"/>
+ <curve x1="20.89" x2="20.53" x3="20.26" y1="25.84" y2="26.67" y3="27.49"/>
+ <curve x1="20.12" x2="19.98" x3="19.91" y1="27.98" y2="28.48" y3="28.97"/>
+ <curve x1="19.91" x2="19.91" x3="19.91" y1="28.97" y2="28.97" y3="28.97"/>
+ <curve x1="20.89" x2="21.58" x3="22.13" y1="28.97" y2="29.31" y3="30"/>
+ <curve x1="22.63" x2="22.83" x3="22.83" y1="30.76" y2="31.59" y3="32.84"/>
+ <curve x1="22.83" x2="22.63" x3="22.13" y1="33.95" y2="34.86" y3="35.49"/>
+ <curve x1="21.64" x2="20.89" x3="19.91" y1="36.32" y2="36.66" y3="36.66"/>
+ <curve x1="19.91" x2="19.91" x3="19.91" y1="36.66" y2="36.66" y3="36.66"/>
+ <curve x1="19.84" x2="19.78" x3="19.78" y1="36.54" y2="36.32" y3="36.11"/>
+ <curve x1="19.78" x2="19.78" x3="19.91" y1="36.32" y2="36.46" y3="36.66"/>
+ <curve x1="19.91" x2="19.91" x3="19.91" y1="36.66" y2="36.66" y3="36.66"/>
+ <curve x1="19.91" x2="19.98" x3="20.05" y1="36.88" y2="37.02" y3="37.22"/>
+ <curve x1="20.33" x2="20.75" x3="21.23" y1="38.4" y2="39.52" y3="40.63"/>
+ <curve x1="21.23" x2="21.23" x3="21.86" y1="40.63" y2="40.63" y3="40.63"/>
+ <curve x1="21.86" x2="21.86" x3="21.86" y1="40.63" y2="40.63" y3="41.81"/>
+ <curve x1="22.13" x2="22.34" x3="22.49" y1="42.15" y2="42.43" y3="42.78"/>
+ <curve x1="22.97" x2="23.52" x3="24.14" y1="43.54" y2="44.17" y3="44.79"/>
+ <curve x1="24.28" x2="24.57" x3="24.77" y1="45" y2="45.22" y3="45.42"/>
+ <curve x1="24.83" x2="25.05" x3="25.19" y1="45.62" y2="45.76" y3="45.84"/>
+ <curve x1="25.33" x2="25.54" x3="25.68" y1="45.97" y2="46.19" y3="46.25"/>
+ <curve x1="25.39" x2="25.19" x3="24.97" y1="46.04" y2="45.84" y3="45.62"/>
+ <curve x1="24.83" x2="24.77" x3="24.77" y1="45.22" y2="44.79" y3="44.31"/>
+ <curve x1="24.77" x2="25.05" x3="25.54" y1="43.12" y2="42.23" y3="41.52"/>
+ <curve x1="26.08" x2="26.79" x3="27.76" y1="40.84" y2="40.49" y3="40.49"/>
+ <curve x1="28.65" x2="29.35" x3="29.84" y1="40.49" y2="40.84" y3="41.52"/>
+ <curve x1="30.32" x2="30.6" x3="30.6" y1="42.23" y2="43.12" y3="44.31"/>
+ <curve x1="30.6" x2="30.38" x3="29.9" y1="45.48" y2="46.33" y3="47.08"/>
+ <curve x1="29.49" x2="28.93" x3="28.24" y1="47.64" y2="47.98" y3="48.12"/>
+ <curve x1="28.73" x2="29.21" x3="29.7" y1="48.41" y2="48.69" y3="48.89"/>
+ <curve x1="30.24" x2="30.81" x3="31.29" y1="49.09" y2="49.38" y3="49.58"/>
+ <curve x1="32.12" x2="32.95" x3="33.86" y1="49.86" y2="50.14" y3="50.28"/>
+ <curve x1="34.48" x2="35.04" x3="35.65" y1="50.42" y2="50.49" y3="50.63"/>
+ <curve x1="36.28" x2="36.91" x3="37.53" y1="50.63" y2="50.63" y3="50.63"/>
+ <curve x1="38.16" x2="38.72" x3="39.35" y1="50.63" y2="50.63" y3="50.63"/>
+ <curve x1="39.97" x2="40.52" x3="41.14" y1="50.49" y2="50.42" y3="50.28"/>
+ <curve x1="42.05" x2="42.88" x3="43.71" y1="50.14" y2="49.86" y3="49.58"/>
+ <curve x1="44.27" x2="44.82" x3="45.3" y1="49.38" y2="49.09" y3="48.89"/>
+ <curve x1="46.21" x2="47.04" x3="47.87" y1="48.47" y2="47.98" y3="47.44"/>
+ <curve x1="47.81" x2="47.73" x3="47.59" y1="47.3" y2="47.22" y3="47.08"/>
+ <curve x1="47.1" x2="46.9" x3="46.9" y1="46.47" y2="45.48" y3="44.31"/>
+ <curve x1="46.9" x2="46.9" x3="46.9" y1="44.31" y2="44.31" y3="43.89"/>
+ <curve x1="46.13" x2="45.3" x3="44.48" y1="44.17" y2="44.23" y3="44.23"/>
+ <curve x1="44.48" x2="44.48" x3="44.48" y1="44.23" y2="44.23" y3="44.31"/>
+ <curve x1="44.48" x2="44.27" x3="43.77" y1="45.48" y2="46.33" y3="47.08"/>
+ <curve x1="43.29" x2="42.54" x3="41.63" y1="47.78" y2="48.12" y3="48.12"/>
+ <curve x1="40.66" x2="39.89" x3="39.41" y1="48.12" y2="47.78" y3="47.08"/>
+ <curve x1="38.92" x2="38.72" x3="38.72" y1="46.47" y2="45.48" y3="44.31"/>
+ <curve x1="38.72" x2="38.78" x3="38.86" y1="43.75" y2="43.26" y3="42.78"/>
+ <curve x1="38.24" x2="37.61" x3="37.05" y1="42.43" y2="41.95" y3="41.38"/>
+ <curve x1="35.65" x2="34.76" x3="34.34" y1="40.07" y2="38.4" y3="36.66"/>
+ <curve x1="34.34" x2="34.34" x3="34.2" y1="36.66" y2="36.66" y3="36.66"/>
+ <curve x1="33.31" x2="32.6" x3="32.12" y1="36.66" y2="36.32" y3="35.55"/>
+ <curve x1="31.64" x2="31.35" x3="31.35" y1="34.86" y2="34.03" y3="32.84"/>
+ <curve x1="31.35" x2="31.64" x3="32.12" y1="31.59" y2="30.7" y3="30"/>
+ <curve x1="32.6" x2="33.31" x3="34.2" y1="29.31" y2="28.97" y3="28.97"/>
+ <curve x1="34.69" x2="35.11" x3="35.53" y1="28.97" y2="29.03" y3="29.31"/>
+ <curve x1="35.94" x2="36.42" x3="37.05" y1="28.54" y2="27.92" y3="27.29"/>
+ <curve x1="38.24" x2="39.55" x3="40.94" y1="26.18" y2="25.35" y3="24.93"/>
+ <curve x1="40.58" x2="40.32" x3="40.03" y1="24.73" y2="24.45" y3="24.1"/>
+ <curve x1="39.55" x2="39.35" x3="39.35" y1="23.48" y2="22.51" y3="21.4"/>
+ <curve x1="39.35" x2="39.55" x3="40.03" y1="20.14" y2="19.17" y3="18.55"/>
+ <curve x1="40.58" x2="41.29" x3="42.26" y1="17.84" y2="17.5" y3="17.5"/>
+ <curve x1="43.16" x2="43.85" x3="44.34" y1="17.5" y2="17.84" y3="18.55"/>
+ <curve x1="44.82" x2="45.1" x3="45.1" y1="19.17" y2="20.14" y3="21.4"/>
+ <curve x1="45.1" x2="44.88" x3="44.4" y1="22.51" y2="23.4" y3="24.02"/>
+ <curve x1="44.34" x2="44.27" x3="44.13" y1="24.16" y2="24.3" y3="24.38"/>
+ <curve x1="44.13" x2="44.13" x3="44.19" y1="24.38" y2="24.38" y3="24.38"/>
+ <close/>
+ <move x="40.94" y="21.4"/>
+ <curve x1="40.94" x2="41.35" x3="42.26" y1="23.05" y2="23.96" y3="23.96"/>
+ <curve x1="43.08" x2="43.51" x3="43.51" y1="23.96" y2="23.05" y3="21.4"/>
+ <curve x1="43.51" x2="43.08" x3="42.26" y1="19.58" y2="18.75" y3="18.75"/>
+ <curve x1="41.35" x2="40.94" x3="40.94" y1="18.75" y2="19.58" y3="21.4"/>
+ <close/>
+ <move x="42.88" y="44.17"/>
+ <curve x1="42.05" x2="41.14" x3="40.32" y1="44.1" y2="43.82" y3="43.54"/>
+ <curve x1="40.32" x2="40.32" x3="40.32" y1="43.75" y2="44.03" y3="44.31"/>
+ <curve x1="40.32" x2="40.66" x3="41.63" y1="46.04" y2="46.95" y3="46.95"/>
+ <curve x1="42.46" x2="42.88" x3="42.88" y1="46.95" y2="46.04" y3="44.31"/>
+ <curve x1="42.88" x2="42.88" x3="42.88" y1="44.31" y2="44.31" y3="44.17"/>
+ <close/>
+ <move x="49.12" y="39.16"/>
+ <curve x1="51.76" x2="51.76" x3="49.12" y1="36.39" y2="32.22" y3="29.59"/>
+ <curve x1="47.73" x2="45.99" x3="44.19" y1="28.26" y2="27.57" y3="27.57"/>
+ <curve x1="42.4" x2="40.66" x3="39.35" y1="27.57" y2="28.26" y3="29.59"/>
+ <curve x1="38.02" x2="37.27" x3="37.27" y1="30.76" y2="32.5" y3="34.31"/>
+ <curve x1="37.27" x2="38.02" x3="39.35" y1="36.11" y2="37.85" y3="39.16"/>
+ <curve x1="40.66" x2="42.4" x3="44.19" y1="40.35" y2="41.12" y3="41.12"/>
+ <curve x1="45.99" x2="47.73" x3="49.12" y1="41.12" y2="40.35" y3="39.16"/>
+ <close/>
+ <move x="26.36" y="44.31"/>
+ <curve x1="26.36" x2="26.85" x3="27.76" y1="46.04" y2="46.95" y3="46.95"/>
+ <curve x1="28.59" x2="29.01" x3="29.01" y1="46.95" y2="46.04" y3="44.31"/>
+ <curve x1="29.01" x2="28.59" x3="27.76" y1="42.57" y2="41.74" y3="41.74"/>
+ <curve x1="26.85" x2="26.36" x3="26.36" y1="41.74" y2="42.57" y3="44.31"/>
+ <close/>
+ <move x="19.42" y="32.84"/>
+ <curve x1="19.42" x2="19.5" x3="19.64" y1="33.69" y2="34.52" y3="35.35"/>
+ <curve x1="19.7" x2="19.78" x3="19.91" y1="35.42" y2="35.42" y3="35.42"/>
+ <curve x1="20.81" x2="21.23" x3="21.23" y1="35.42" y2="34.52" y3="32.84"/>
+ <curve x1="21.23" x2="20.81" x3="19.91" y1="31.11" y2="30.22" y3="30.22"/>
+ <curve x1="19.78" x2="19.7" x3="19.64" y1="30.22" y2="30.22" y3="30.28"/>
+ <curve x1="19.5" x2="19.42" x3="19.42" y1="31.11" y2="31.95" y3="32.84"/>
+ <close/>
+ <move x="27.96" y="18.75"/>
+ <curve x1="27.05" x2="26.65" x3="26.65" y1="18.75" y2="19.58" y3="21.4"/>
+ <curve x1="26.65" x2="27.05" x3="27.96" y1="23.05" y2="23.96" y3="23.96"/>
+ <curve x1="28.79" x2="29.21" x3="29.21" y1="23.96" y2="23.05" y3="21.4"/>
+ <curve x1="29.21" x2="28.79" x3="27.96" y1="19.58" y2="18.75" y3="18.75"/>
+ <close/>
+ <move x="60.43" y="47.22"/>
+ <curve x1="61.05" x2="61.05" x3="60.43" y1="47.78" y2="48.83" y3="49.52"/>
+ <curve x1="60.43" x2="60.37" x3="59.6" y1="49.52" y2="49.58" y3="50.28"/>
+ <curve x1="58.97" x2="57.86" x3="57.32" y1="50.97" y2="50.97" y3="50.28"/>
+ <curve x1="57.32" x2="57.32" x3="50.09" y1="50.28" y2="50.28" y3="43.26"/>
+ <curve x1="49.95" x2="49.81" x3="49.61" y1="43.12" y2="42.99" y3="42.78"/>
+ <curve x1="49.26" x2="48.84" x3="48.57" y1="42.99" y2="43.2" y3="43.34"/>
+ <curve x1="48.5" x2="48.5" x3="48.5" y1="43.6" y2="43.96" y3="44.31"/>
+ <curve x1="48.5" x2="48.64" x3="48.98" y1="45.42" y2="46.19" y3="46.59"/>
+ <curve x1="49.32" x2="49.75" x3="50.09" y1="46.25" y2="45.9" y3="45.62"/>
+ <curve x1="50.86" x2="51.48" x3="52.03" y1="46.25" y2="46.95" y3="47.44"/>
+ <curve x1="48.29" x2="43.22" x3="37.53" y1="51.11" y2="53.33" y3="53.33"/>
+ <curve x1="26.02" x2="16.65" x3="16.65" y1="53.33" y2="44.17" y3="32.84"/>
+ <curve x1="16.65" x2="18.87" x3="22.83" y1="27.35" y2="22.22" y3="18.27"/>
+ <curve x1="26.71" x2="31.92" x3="37.53" y1="14.45" y2="12.23" y3="12.23"/>
+ <curve x1="48.98" x2="58.35" x3="58.35" y1="12.23" y2="21.54" y3="32.84"/>
+ <curve x1="58.35" x2="57.44" x3="55.85" y1="36.32" y2="39.73" y3="42.57"/>
+ <curve x1="56.89" x2="58.35" x3="60.43" y1="43.68" y2="45.14" y3="47.22"/>
+ <close/>
+ <move x="70.83" y="61.47"/>
+ <curve x1="73.96" x2="69.58" x3="68.07" y1="49.03" y2="41.87" y3="39.87"/>
+ <curve x1="68.55" x2="68.83" x3="68.83" y1="37.65" y2="35.43" y3="33.06"/>
+ <curve x1="68.83" x2="68.41" x3="67.64" y1="30.08" y2="27.15" y3="24.45"/>
+ <curve x1="74.37" x2="74.03" x3="73.06" y1="17.92" y2="10.84" y3="7.29"/>
+ <curve x1="72.02" x2="67.64" x3="67.64" y1="3.33" y2="0" y3="0"/>
+ <curve x1="67.3" x2="67.3" x3="67.3" y1="0.91" y2="0.91" y3="0.91"/>
+ <curve x1="67.99" x2="69.72" x3="67.1" y1="1.67" y2="4.93" y3="9.79"/>
+ <curve x1="66.05" x2="64.05" x3="62.17" y1="11.73" y2="12.98" y3="13.75"/>
+ <curve x1="56.41" x2="47.39" x3="37.26" y1="6.32" y2="1.53" y3="1.53"/>
+ <curve x1="27.14" x2="18.11" x3="12.36" y1="1.53" y2="6.32" y3="13.75"/>
+ <curve x1="10.48" x2="8.46" x3="7.35" y1="12.98" y2="11.73" y3="9.79"/>
+ <curve x1="4.72" x2="6.46" x3="7.15" y1="4.93" y2="1.67" y3="0.91"/>
+ <curve x1="6.8" x2="6.8" x3="6.8" y1="0" y2="0" y3="0"/>
+ <curve x1="6.8" x2="2.42" x3="1.39" y1="0" y2="3.33" y3="7.29"/>
+ <curve x1="0.48" x2="0" x3="6.87" y1="10.84" y2="17.99" y3="24.51"/>
+ <curve x1="6.18" x2="5.69" x3="5.69" y1="27.23" y2="30.08" y3="33.06"/>
+ <curve x1="5.69" x2="5.97" x3="6.46" y1="35.35" y2="37.65" y3="39.79"/>
+ <curve x1="4.99" x2="0.48" x3="3.68" y1="41.67" y2="48.81" y3="61.47"/>
+ <curve x1="3.68" x2="1.45" x3="1.11" y1="61.47" y2="62.84" y3="67.02"/>
+ <curve x1="1.11" x2="2.77" x3="3.82" y1="67.02" y2="64.94" y3="64.66"/>
+ <curve x1="3.82" x2="3.33" x3="6.58" y1="64.66" y2="68.96" y3="70.55"/>
+ <curve x1="6.58" x2="5.61" x3="5.97" y1="70.55" y2="67.93" y3="66.8"/>
+ <curve x1="5.97" x2="7.09" x3="9.37" y1="66.8" y2="69.1" y3="69.38"/>
+ <curve x1="9.37" x2="7.57" x3="7.7" y1="69.38" y2="67.36" y3="65.97"/>
+ <curve x1="7.7" x2="8.68" x3="10.4" y1="65.97" y2="66.6" y3="66.31"/>
+ <curve x1="10.4" x2="0.28" x3="9.37" y1="66.31" y2="60.62" y3="47.78"/>
+ <curve x1="12.9" x2="18.74" x3="25.81" y1="54.44" y2="59.65" y3="62.36"/>
+ <curve x1="25.95" x2="26.85" x3="30.11" y1="66.46" y2="71.88" y3="77.09"/>
+ <curve x1="30.11" x2="25.32" x3="20.82" y1="77.09" y2="73.74" y3="79.66"/>
+ <curve x1="20.82" x2="20.82" x3="20.82" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="31.84" x3="31.84" y1="80" y2="80" y3="80"/>
+ <curve x1="31.84" x2="32.67" x3="32.67" y1="80" y2="79.94" y3="78.69"/>
+ <curve x1="32.67" x2="29.08" x3="30.19" y1="77.64" y2="72.77" y3="63.75"/>
+ <curve x1="32.47" x2="34.83" x3="37.26" y1="64.31" y2="64.58" y3="64.58"/>
+ <curve x1="39.68" x2="42.04" x3="44.26" y1="64.58" y2="64.31" y3="63.75"/>
+ <curve x1="45.37" x2="41.78" x3="41.78" y1="72.77" y2="77.64" y3="78.69"/>
+ <curve x1="41.78" x2="42.6" x3="42.6" y1="79.94" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="80" y2="80" y3="80"/>
+ <curve x1="53.63" x2="53.63" x3="53.63" y1="79.66" y2="79.66" y3="79.66"/>
+ <curve x1="49.13" x2="44.34" x3="44.34" y1="73.74" y2="77.09" y3="77.09"/>
+ <curve x1="47.53" x2="48.5" x3="48.64" y1="71.95" y2="66.53" y3="62.44"/>
+ <curve x1="55.71" x2="61.61" x3="65.14" y1="59.73" y2="54.44" y3="47.84"/>
+ <curve x1="74.1" x2="64.05" x3="64.05" y1="60.7" y2="66.31" y3="66.31"/>
+ <curve x1="65.77" x2="66.75" x3="66.75" y1="66.6" y2="65.97" y3="65.97"/>
+ <curve x1="66.88" x2="65.08" x3="65.08" y1="67.36" y2="69.38" y3="69.38"/>
+ <curve x1="67.36" x2="68.47" x3="68.47" y1="69.1" y2="66.8" y3="66.8"/>
+ <curve x1="68.83" x2="67.78" x3="67.78" y1="67.93" y2="70.55" y3="70.55"/>
+ <curve x1="71.12" x2="70.63" x3="70.63" y1="68.96" y2="64.66" y3="64.66"/>
+ <curve x1="71.74" x2="73.34" x3="73.34" y1="64.94" y2="67.02" y3="67.02"/>
+ <curve x1="72.99" x2="70.83" x3="70.83" y1="62.84" y2="61.47" y3="61.47"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.22" name="threat e1" strokewidth="inherit" w="81.16">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="79.34" y="42.18"/>
+ <curve x1="78.9" x2="78.1" x3="78.1" y1="41.25" y2="40.69" y3="40.69"/>
+ <curve x1="78.1" x2="74.14" x3="72.32" y1="40.69" y2="37.55" y3="41.38"/>
+ <curve x1="70.52" x2="65" x3="65" y1="45.19" y2="47.08" y3="47.08"/>
+ <curve x1="58.74" x2="58.74" x3="58.74" y1="49.52" y2="49.52" y3="49.52"/>
+ <curve x1="58.74" x2="58.67" x3="58.67" y1="49.52" y2="49.45" y3="49.4"/>
+ <curve x1="64.56" x2="68.33" x3="68.33" y1="44.26" y2="36.68" y3="28.21"/>
+ <curve x1="68.33" x2="55.73" x3="40.26" y1="12.66" y2="0" y3="0"/>
+ <curve x1="24.73" x2="12.14" x3="12.14" y1="0" y2="12.66" y3="28.21"/>
+ <curve x1="12.14" x2="15.84" x3="21.73" y1="36.61" y2="44.19" y3="49.4"/>
+ <curve x1="17.03" x2="13.96" x3="13.96" y1="47.65" y2="46.52" y3="46.52"/>
+ <curve x1="13.96" x2="14.09" x3="10.9" y1="46.52" y2="42.06" y3="40.69"/>
+ <curve x1="7.76" x2="6.32" x3="5.94" y1="39.36" y2="42.75" y3="44.13"/>
+ <curve x1="5.94" x2="0" x3="0.25" y1="44.13" y2="44.44" y3="47.89"/>
+ <curve x1="0.56" x2="6.25" x3="10.33" y1="51.34" y2="51.89" y3="49.4"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.53" y2="54.53" y3="54.53"/>
+ <curve x1="24.35" x2="25.48" x3="27.05" y1="57.1" y2="59.49" y3="61.49"/>
+ <curve x1="17.41" x2="17.41" x3="17.41" y1="65.07" y2="65.07" y3="65.07"/>
+ <curve x1="13.34" x2="7.69" x3="7.38" y1="62.62" y2="63.19" y3="66.56"/>
+ <curve x1="7.14" x2="13.09" x3="13.09" y1="70.08" y2="70.39" y3="70.39"/>
+ <curve x1="13.47" x2="14.84" x3="18.03" y1="71.77" y2="75.16" y3="73.78"/>
+ <curve x1="21.16" x2="21.11" x3="21.11" y1="72.39" y2="68.02" y3="68.02"/>
+ <curve x1="21.11" x2="21.98" x3="30.37" y1="68.02" y2="67.76" y3="64.63"/>
+ <curve x1="33.12" x2="36.56" x3="40.33" y1="66.69" y2="67.89" y3="67.89"/>
+ <curve x1="44.09" x2="47.53" x3="50.34" y1="67.89" y2="66.69" y3="64.56"/>
+ <curve x1="60.8" x2="60.8" x3="60.8" y1="67.07" y2="67.07" y3="67.07"/>
+ <curve x1="60.8" x2="64.56" x3="66.38" y1="67.07" y2="68.58" y3="72.46"/>
+ <curve x1="68.13" x2="72.14" x3="72.14" y1="76.22" y2="73.08" y3="73.08"/>
+ <curve x1="72.14" x2="72.89" x3="73.4" y1="73.08" y2="72.52" y3="71.64"/>
+ <curve x1="74.4" x2="75.22" x3="72.14" y1="69.58" y2="66.25" y3="66.69"/>
+ <curve x1="72.14" x2="73.89" x3="73.32" y1="66.69" y2="64.44" y3="62.93"/>
+ <curve x1="72.76" x2="69.95" x3="68" y1="61.49" y2="60.62" y3="61.42"/>
+ <curve x1="66" x2="63.68" x3="61.31" y1="62.24" y2="63.63" y3="63.24"/>
+ <curve x1="60.68" x2="59.67" x3="53.79" y1="63.12" y2="63.32" y3="61.11"/>
+ <curve x1="55.17" x2="56.17" x3="56.67" y1="59.36" y2="57.23" y3="54.97"/>
+ <curve x1="61.88" x2="65.56" x3="66.2" y1="53.15" y2="51.78" y3="51.65"/>
+ <curve x1="68.38" x2="72.01" x3="73.96" y1="51.09" y2="51.58" y3="52.4"/>
+ <curve x1="75.96" x2="78.72" x3="79.28" y1="53.22" y2="52.28" y3="50.84"/>
+ <curve x1="79.85" x2="78.1" x3="78.1" y1="49.33" y2="47.08" y3="47.08"/>
+ <curve x1="81.16" x2="80.34" x3="79.34" y1="47.57" y2="44.19" y3="42.18"/>
+ <close/>
+ <move x="57.11" y="30.08"/>
+ <curve x1="57.16" x2="57.09" x3="56.95" y1="29.8" y2="29.52" y3="29.27"/>
+ <curve x1="56.7" x2="56.16" x3="55.62" y1="28.77" y2="28.47" y3="28.44"/>
+ <curve x1="55.16" x2="54.71" x3="54.4" y1="28.4" y2="28.61" y3="28.93"/>
+ <curve x1="54.02" x2="53.91" x3="54.01" y1="29.32" y2="29.91" y3="30.43"/>
+ <curve x1="54.12" x2="54.85" x3="55.62" y1="31.19" y2="31.79" y3="31.8"/>
+ <curve x1="55.97" x2="56.31" x3="56.58" y1="31.76" y2="31.61" y3="31.38"/>
+ <curve x1="56.93" x2="57.2" x3="57.11" y1="31.06" y2="30.58" y3="30.08"/>
+ <close/>
+ <move x="63" y="28.96"/>
+ <curve x1="63.23" x2="63.09" x3="63.13" y1="29.1" y2="29.41" y3="29.64"/>
+ <curve x1="63.1" x2="63.19" x3="63.07" y1="30.11" y2="30.6" y3="31.05"/>
+ <curve x1="63.17" x2="62.56" x3="62.49" y1="31.57" y2="31.45" y3="31.78"/>
+ <curve x1="62.21" x2="61.93" x3="61.65" y1="31.78" y2="31.78" y3="31.78"/>
+ <curve x1="61.16" x2="60.51" x3="60.56" y1="31.74" y2="31.72" y3="32.41"/>
+ <curve x1="60.23" x2="60.32" x3="60.75" y1="32.82" y2="33.12" y3="33.36"/>
+ <curve x1="61.15" x2="61.71" x3="61.62" y1="33.7" y2="34.02" y3="34.63"/>
+ <curve x1="61.62" x2="60.8" x3="60.43" y1="35.31" y2="35.64" y3="36.17"/>
+ <curve x1="59.93" x2="58.86" x3="58.51" y1="37.18" y2="36.19" y3="35.57"/>
+ <curve x1="58.18" x2="57.71" x3="57.11" y1="34.71" y2="35.68" y3="35.6"/>
+ <curve x1="57.11" x2="57.11" x3="57.11" y1="36.05" y2="36.5" y3="36.95"/>
+ <curve x1="57.18" x2="56.88" x3="56.48" y1="37.48" y2="37.94" y3="38.12"/>
+ <curve x1="56.13" x2="55.78" x3="55.44" y1="38.12" y2="38.12" y3="38.12"/>
+ <curve x1="55.17" x2="54.82" x3="54.61" y1="38.08" y2="38.19" y3="38.06"/>
+ <curve x1="54.06" x2="54.21" x3="53.98" y1="38.03" y2="37.52" y3="37.3"/>
+ <curve x1="53.98" x2="53.98" x3="53.98" y1="36.98" y2="36.67" y3="36.35"/>
+ <curve x1="54.29" x2="53.37" x3="52.98" y1="35.47" y2="35.61" y3="35.1"/>
+ <curve x1="52.47" x2="52.17" x3="51.46" y1="35.58" y2="36.39" y3="36.57"/>
+ <curve x1="50.74" x2="50.45" x3="49.96" y1="36.71" y2="35.69" y3="35.3"/>
+ <curve x1="49.07" x2="49.61" x3="50.24" y1="34.89" y2="33.89" y3="33.53"/>
+ <curve x1="51.05" x2="50.55" x3="50.4" y1="33.16" y2="32.55" y3="31.94"/>
+ <curve x1="50.26" x2="49.85" x3="49.58" y1="31.63" y2="31.84" y3="31.78"/>
+ <curve x1="49.02" x2="48.56" x3="48.09" y1="31.83" y2="31.75" y3="31.47"/>
+ <curve x1="48.09" x2="48.09" x3="48.09" y1="30.85" y2="30.23" y3="29.61"/>
+ <curve x1="48.15" x2="47.97" x3="48.21" y1="29.33" y2="28.91" y3="28.75"/>
+ <curve x1="48.75" x2="49.79" x3="50.36" y1="28.1" y2="28.76" y3="28.31"/>
+ <curve x1="50.38" x2="50.86" x3="50.64" y1="27.93" y2="27.52" y3="27.29"/>
+ <curve x1="50.28" x2="49.6" x3="49.47" y1="26.71" y2="26.32" y3="25.64"/>
+ <curve x1="49.71" x2="50.36" x3="50.93" y1="24.99" y2="24.33" y3="23.94"/>
+ <curve x1="51.16" x2="51.59" x3="51.98" y1="23.28" y2="23.92" y3="23.94"/>
+ <curve x1="52.15" x2="52.33" x3="52.51" y1="24.14" y2="24.35" y3="24.55"/>
+ <curve x1="52.75" x2="52.94" x3="53.25" y1="24.75" y2="25.3" y3="24.87"/>
+ <curve x1="54.15" x2="54.01" x3="53.97" y1="24.92" y2="24.05" y3="23.4"/>
+ <curve x1="54.02" x2="54.2" x3="54.8" y1="22.77" y2="22.23" y3="22.07"/>
+ <curve x1="55.23" x2="55.65" x3="56.08" y1="22.07" y2="22.07" y3="22.07"/>
+ <curve x1="56.54" x2="56.9" x3="57.11" y1="22.01" y2="22.4" y3="22.76"/>
+ <curve x1="57.12" x2="57.1" x3="57.12" y1="23.17" y2="23.58" y3="23.99"/>
+ <curve x1="56.83" x2="57.7" x3="58.12" y1="24.83" y2="24.68" y3="25.07"/>
+ <curve x1="58.29" x2="58.47" x3="58.65" y1="24.87" y2="24.67" y3="24.47"/>
+ <curve x1="58.91" x2="59.3" x3="59.69" y1="24.08" y2="23.89" y3="23.66"/>
+ <curve x1="60.39" x2="60.76" x3="61.31" y1="23.71" y2="24.52" y3="24.91"/>
+ <curve x1="62" x2="61.43" x3="60.8" y1="25.54" y2="26.51" y3="26.95"/>
+ <curve x1="60.06" x2="60.61" x3="60.81" y1="27.35" y2="27.87" y3="28.46"/>
+ <curve x1="61.2" x2="61.58" x3="61.96" y1="28.46" y2="28.46" y3="28.46"/>
+ <curve x1="62.41" x2="62.73" x3="63" y1="28.36" y2="28.63" y3="28.96"/>
+ <close/>
+ <move x="39.14" y="34.41"/>
+ <line x="39.14" y="34.39"/>
+ <curve x1="39.33" x2="38.76" x3="37.83" y1="33.35" y2="32.32" y3="31.84"/>
+ <curve x1="36.53" x2="34.88" x3="34.51" y1="31.03" y2="32.2" y3="33.51"/>
+ <curve x1="34.08" x2="35.23" x3="36.67" y1="34.95" y2="36.49" y3="36.68"/>
+ <curve x1="37.88" x2="39.23" x3="39.14" y1="36.74" y2="35.69" y3="34.41"/>
+ <close/>
+ <move x="41.64" y="14.55"/>
+ <line x="41.64" y="14.55"/>
+ <line x="41.64" y="17.68"/>
+ <line x="44.59" y="17.68"/>
+ <line x="44.59" y="14.55"/>
+ <line x="41.64" y="14.55"/>
+ <close/>
+ <move x="46.41" y="14.55"/>
+ <line x="46.41" y="14.55"/>
+ <line x="46.41" y="17.68"/>
+ <line x="49.34" y="17.68"/>
+ <line x="49.34" y="14.55"/>
+ <line x="46.41" y="14.55"/>
+ <close/>
+ <move x="48.03" y="32.4"/>
+ <line x="48.03" y="32.42"/>
+ <curve x1="48.23" x2="48.15" x3="48.16" y1="32.94" y2="33.54" y3="34.12"/>
+ <curve x1="48.16" x2="48.2" x3="48.03" y1="34.68" y2="35.25" y3="35.74"/>
+ <curve x1="48.04" x2="47.63" x3="47.34" y1="36.24" y2="36.33" y3="36.54"/>
+ <curve x1="46.46" x2="45.59" x3="44.71" y1="36.54" y2="36.54" y3="36.54"/>
+ <curve x1="44.59" x2="44.3" x3="44.08" y1="37.18" y2="37.76" y3="38.36"/>
+ <curve x1="44.56" x2="45.04" x3="45.52" y1="38.93" y2="39.49" y3="40.06"/>
+ <curve x1="46" x2="45.9" x3="45.9" y1="40.07" y2="40.78" y3="41.19"/>
+ <curve x1="45.78" x2="45.14" x3="44.75" y1="41.8" y2="42.22" y3="42.74"/>
+ <curve x1="44.34" x2="44.04" x3="43.58" y1="43.2" y2="43.59" y3="43.81"/>
+ <curve x1="43.07" x2="42.51" x3="42.27" y1="43.88" y2="43.78" y3="43.5"/>
+ <curve x1="41.79" x2="41.31" x3="40.82" y1="42.98" y2="42.46" y3="41.94"/>
+ <curve x1="40.26" x2="39.74" x3="39.14" y1="41.82" y2="42.48" y3="42.5"/>
+ <curve x1="39.11" x2="39.19" x3="39.1" y1="43.43" y2="44.45" y3="45.32"/>
+ <curve x1="39.04" x2="38.62" x3="38.52" y1="45.72" y2="45.77" y3="46.14"/>
+ <curve x1="37.41" x2="36.3" x3="35.2" y1="46.14" y2="46.14" y3="46.14"/>
+ <curve x1="35.14" x2="34.65" x3="34.56" y1="45.78" y2="45.84" y3="45.51"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="44.5" y2="43.5" y3="42.5"/>
+ <curve x1="33.97" x2="33.47" x3="32.87" y1="42.38" y2="42.01" y3="41.88"/>
+ <curve x1="32.28" x2="31.63" x3="31.09" y1="42.49" y2="43.06" y3="43.71"/>
+ <curve x1="30.67" x2="29.83" x3="29.71" y1="43.89" y2="43.93" y3="43.5"/>
+ <curve x1="29.13" x2="28.66" x3="28.12" y1="43.13" y2="42.48" y3="42.01"/>
+ <curve x1="28.03" x2="27.54" x3="27.62" y1="41.56" y2="41.28" y3="40.77"/>
+ <curve x1="27.92" x2="28.57" x3="29.11" y1="40" y2="39.41" y3="38.74"/>
+ <curve x1="27.53" x2="25.94" x3="24.36" y1="38.74" y2="38.74" y3="38.74"/>
+ <curve x1="23.51" x2="22.5" x3="22.08" y1="38.37" y2="38.04" y3="37.13"/>
+ <curve x1="21.48" x2="21.43" x3="21.04" y1="36.65" y2="35.85" y3="35.23"/>
+ <curve x1="21.04" x2="21.04" x3="21.04" y1="29.25" y2="23.28" y3="17.3"/>
+ <curve x1="21.11" x2="20.9" x3="21.16" y1="16.34" y2="15.33" y3="14.41"/>
+ <curve x1="21.23" x2="21.44" x3="21.82" y1="13.85" y2="13.31" y3="12.88"/>
+ <curve x1="21.96" x2="22.67" x3="22.86" y1="12.28" y2="12.58" y3="12.03"/>
+ <curve x1="31.58" x2="40.29" x3="49.01" y1="12.03" y2="12.03" y3="12.03"/>
+ <curve x1="49.46" x2="50.06" x3="50.42" y1="12.1" y2="11.9" y3="12.14"/>
+ <curve x1="50.79" x2="51.34" x3="51.53" y1="12.54" y2="12.52" y3="13.09"/>
+ <curve x1="51.92" x2="51.96" x3="52.06" y1="13.48" y2="13.95" y3="14.46"/>
+ <curve x1="52.14" x2="52.07" x3="52.1" y1="15.9" y2="17.36" y3="18.81"/>
+ <curve x1="52.15" x2="51.93" x3="51.66" y1="19.42" y2="19.59" y3="20"/>
+ <curve x1="42.02" x2="32.38" x3="22.73" y1="20" y2="20" y3="20"/>
+ <curve x1="22.73" x2="22.73" x3="22.73" y1="24.37" y2="28.74" y3="33.12"/>
+ <curve x1="22.81" x2="22.58" x3="22.86" y1="33.64" y2="34.29" y3="34.72"/>
+ <curve x1="22.74" x2="23.14" x3="23.54" y1="35.27" y2="35.73" y3="36.05"/>
+ <curve x1="23.81" x2="24.31" x3="24.67" y1="36.55" y2="36.66" y3="36.92"/>
+ <curve x1="25.66" x2="26.65" x3="27.64" y1="36.92" y2="36.92" y3="36.92"/>
+ <curve x1="28.06" x2="29.1" x3="28.93" y1="36.78" y2="37.27" y3="36.54"/>
+ <curve x1="28.04" x2="27.09" x3="26.24" y1="36.5" y2="36.62" y3="36.48"/>
+ <curve x1="25.82" x2="25.83" x3="25.49" y1="36.33" y2="35.91" y3="35.74"/>
+ <curve x1="25.49" x2="25.49" x3="25.49" y1="35.07" y2="34.41" y3="33.74"/>
+ <curve x1="25.58" x2="25.29" x3="25.67" y1="33.32" y2="32.51" y3="32.37"/>
+ <curve x1="25.78" x2="26.41" x3="26.49" y1="31.82" y2="31.95" y3="31.59"/>
+ <curve x1="27.24" x2="27.99" x3="28.75" y1="31.59" y2="31.59" y3="31.59"/>
+ <curve x1="29.28" x2="29.26" x3="29.47" y1="31.48" y2="30.63" y3="30.2"/>
+ <curve x1="29.8" x2="28.85" x3="28.63" y1="29.71" y2="29.36" y3="28.93"/>
+ <curve x1="28.17" x2="27.99" x3="27.69" y1="28.6" y2="28.11" y3="27.7"/>
+ <curve x1="27.36" x2="27.91" x3="27.98" y1="27.27" y2="26.81" y3="26.45"/>
+ <curve x1="28.65" x2="29.29" x3="29.97" y1="25.81" y2="25.11" y3="24.51"/>
+ <curve x1="30.39" x2="30.93" x3="31.25" y1="24.28" y2="24.44" y3="24.73"/>
+ <curve x1="31.66" x2="32.35" x3="32.87" y1="25.36" y2="25.87" y3="26.45"/>
+ <curve x1="33.47" x2="33.88" x3="34.56" y1="26.32" y2="25.65" y3="25.83"/>
+ <curve x1="34.56" x2="34.56" x3="34.56" y1="25.02" y2="24.21" y3="23.41"/>
+ <curve x1="34.4" x2="34.82" x3="35.2" y1="22.83" y2="22.52" y3="22.18"/>
+ <curve x1="36.15" x2="37.09" x3="38.04" y1="22.18" y2="22.18" y3="22.18"/>
+ <curve x1="38.57" x2="38.86" x3="39.01" y1="22.08" y2="22.52" y3="22.82"/>
+ <curve x1="39.3" x2="39.06" x3="39.14" y1="23.05" y2="23.82" y3="24.26"/>
+ <curve x1="39.23" x2="38.95" x3="39.28" y1="24.74" y2="25.58" y3="25.83"/>
+ <curve x1="39.92" x2="40.17" x3="40.76" y1="25.65" y2="26.41" y3="26.45"/>
+ <curve x1="41.33" x2="41.88" x3="42.45" y1="25.85" y2="25.23" y3="24.64"/>
+ <curve x1="42.98" x2="43.18" x3="43.72" y1="24.41" y2="24.3" y3="24.57"/>
+ <curve x1="44.51" x2="45.01" x3="45.72" y1="25.11" y2="26" y3="26.64"/>
+ <curve x1="46.03" x2="45.93" x3="45.8" y1="26.92" y2="27.59" y3="27.98"/>
+ <curve x1="45.23" x2="44.64" x3="44.08" y1="28.6" y2="29.29" y3="29.96"/>
+ <curve x1="44.42" x2="44.43" x3="44.71" y1="30.44" y2="31.07" y3="31.59"/>
+ <curve x1="45.45" x2="46.2" x3="46.94" y1="31.59" y2="31.59" y3="31.59"/>
+ <curve x1="47.34" x2="47.8" x3="48.03" y1="31.79" y2="32.02" y3="32.4"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.27" name="threat e2" strokewidth="inherit" w="81.21">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="79.39" y="42.21"/>
+ <curve x1="78.95" x2="78.14" x3="78.14" y1="41.28" y2="40.71" y3="40.71"/>
+ <curve x1="78.14" x2="74.14" x3="72.37" y1="40.71" y2="37.58" y3="41.41"/>
+ <curve x1="70.56" x2="65.04" x3="65.04" y1="45.22" y2="47.17" y3="47.17"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.56" y2="49.56" y3="49.56"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.49" y2="49.49" y3="49.49"/>
+ <curve x1="64.6" x2="68.36" x3="68.36" y1="44.29" y2="36.7" y3="28.23"/>
+ <curve x1="68.36" x2="55.77" x3="40.29" y1="12.67" y2="0" y3="0"/>
+ <curve x1="24.75" x2="12.22" x3="12.22" y1="0" y2="12.67" y3="28.23"/>
+ <curve x1="12.22" x2="15.91" x3="21.74" y1="36.7" y2="44.22" y3="49.36"/>
+ <curve x1="17.04" x2="13.97" x3="13.97" y1="47.68" y2="46.55" y3="46.55"/>
+ <curve x1="13.97" x2="14.1" x3="10.91" y1="46.55" y2="42.15" y3="40.71"/>
+ <curve x1="7.77" x2="6.33" x3="6.02" y1="39.39" y2="42.78" y3="44.09"/>
+ <curve x1="6.02" x2="0" x3="0.31" y1="44.09" y2="44.47" y3="47.92"/>
+ <curve x1="0.62" x2="6.26" x3="10.34" y1="51.38" y2="51.87" y3="49.43"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.57" y2="54.57" y3="54.57"/>
+ <curve x1="24.37" x2="25.5" x3="27.12" y1="57.14" y2="59.53" y3="61.54"/>
+ <curve x1="17.47" x2="17.47" x3="17.47" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="13.35" x2="7.7" x3="7.39" y1="62.67" y2="63.16" y3="66.61"/>
+ <curve x1="7.13" x2="13.1" x3="13.1" y1="70.13" y2="70.44" y3="70.44"/>
+ <curve x1="13.46" x2="14.9" x3="18.04" y1="71.76" y2="75.21" y3="73.83"/>
+ <curve x1="21.23" x2="21.12" x3="21.12" y1="72.44" y2="67.99" y3="67.99"/>
+ <curve x1="21.12" x2="22.05" x3="30.39" y1="67.99" y2="67.81" y3="64.67"/>
+ <curve x1="33.21" x2="36.59" x3="40.35" y1="66.73" y2="67.94" y3="67.94"/>
+ <curve x1="44.12" x2="47.56" x3="50.38" y1="67.94" y2="66.73" y3="64.6"/>
+ <curve x1="60.79" x2="60.79" x3="60.79" y1="67.12" y2="67.12" y3="67.12"/>
+ <curve x1="60.79" x2="64.6" x3="66.42" y1="67.12" y2="68.63" y3="72.44"/>
+ <curve x1="68.18" x2="72.19" x3="72.19" y1="76.27" y2="73.13" y3="73.13"/>
+ <curve x1="72.19" x2="72.94" x3="73.45" y1="73.13" y2="72.57" y3="71.64"/>
+ <curve x1="74.45" x2="75.25" x3="72.19" y1="69.63" y2="66.24" y3="66.73"/>
+ <curve x1="72.19" x2="73.94" x3="73.37" y1="66.73" y2="64.49" y3="63.03"/>
+ <curve x1="72.81" x2="70" x3="68.05" y1="61.54" y2="60.66" y3="61.47"/>
+ <curve x1="66.11" x2="63.73" x3="61.35" y1="62.28" y2="63.67" y3="63.29"/>
+ <curve x1="60.72" x2="59.71" x3="53.82" y1="63.16" y2="63.36" y3="61.23"/>
+ <curve x1="55.21" x2="56.21" x3="56.78" y1="59.4" y2="57.33" y3="55.01"/>
+ <curve x1="61.9" x2="65.6" x3="66.17" y1="53.13" y2="51.82" y3="51.69"/>
+ <curve x1="68.43" x2="72.06" x3="74.01" y1="51.12" y2="51.56" y3="52.38"/>
+ <curve x1="75.95" x2="78.77" x3="79.34" y1="53.19" y2="52.38" y3="50.87"/>
+ <curve x1="79.9" x2="78.14" x3="78.14" y1="49.36" y2="47.17" y3="47.17"/>
+ <curve x1="81.21" x2="80.4" x3="79.39" y1="47.55" y2="44.29" y3="42.21"/>
+ <close/>
+ <move x="60.15" y="26.59"/>
+ <curve x1="60.15" x2="58.97" x3="57.27" y1="28.29" y2="30.04" y3="31.55"/>
+ <curve x1="57.46" x2="57.46" x3="57.27" y1="32.06" y2="32.62" y3="33.12"/>
+ <curve x1="56.78" x2="55.58" x3="54.7" y1="34.12" y2="34.43" y3="33.94"/>
+ <curve x1="54.52" x2="54.39" x3="54.21" y1="33.81" y2="33.81" y3="33.63"/>
+ <curve x1="53.01" x2="51.64" x3="50.12" y1="34.31" y2="34.81" y3="35.31"/>
+ <curve x1="49.94" x2="49.25" x3="48.56" y1="37.88" y2="40.34" y3="42.22"/>
+ <curve x1="47.37" x2="45.67" x3="43.3" y1="44.97" y2="46.85" y3="47.17"/>
+ <curve x1="43.3" x2="43.3" x3="42.79" y1="47.17" y2="47.17" y3="47.17"/>
+ <curve x1="40.55" x2="38.47" x3="36.77" y1="47.17" y2="45.61" y3="43.22"/>
+ <curve x1="35.4" x2="33.89" x3="32.52" y1="43.91" y2="44.28" y3="44.28"/>
+ <curve x1="31.34" x2="30.13" x3="29.26" y1="44.28" y2="43.91" y3="43.22"/>
+ <curve x1="27.89" x2="27.38" x3="27.38" y1="42.03" y2="40.34" y3="38.26"/>
+ <curve x1="27.38" x2="27.38" x3="27.56" y1="37.39" y2="36.57" y3="35.69"/>
+ <curve x1="27.38" x2="27.25" x3="27.07" y1="35.69" y2="35.69" y3="35.51"/>
+ <curve x1="24.5" x2="22.44" x3="22.24" y1="34.43" y2="32.62" y3="30.36"/>
+ <curve x1="22.05" x2="22.05" x3="22.05" y1="30.17" y2="30.04" y3="29.86"/>
+ <curve x1="22.24" x2="24.31" x3="27.56" y1="27.1" y2="24.9" y3="22.96"/>
+ <curve x1="28.89" x2="30.45" x3="32.14" y1="22.33" y2="21.58" y3="20.89"/>
+ <curve x1="32.34" x2="33.02" x3="33.71" y1="18.31" y2="15.93" y3="14.05"/>
+ <curve x1="34.9" x2="36.59" x3="38.98" y1="11.29" y2="9.41" y3="9.03"/>
+ <curve x1="38.98" x2="38.98" x3="39.54" y1="9.03" y2="9.03" y3="9.03"/>
+ <curve x1="41.73" x2="43.8" x3="45.49" y1="9.03" y2="10.6" y3="13.17"/>
+ <curve x1="46" x2="46.68" x3="47.19" y1="12.86" y2="12.68" y3="12.48"/>
+ <curve x1="47.19" x2="47.19" x3="47.37" y1="12.3" y2="12.17" y3="11.99"/>
+ <curve x1="47.88" x2="49.06" x3="49.94" y1="10.98" y2="10.6" y3="11.17"/>
+ <curve x1="50.45" x2="50.76" x3="50.94" y1="11.29" y2="11.79" y3="12.17"/>
+ <curve x1="51.64" x2="52.33" x3="53.01" y1="12.3" y2="12.68" y3="13.17"/>
+ <curve x1="54.39" x2="55.08" x3="55.08" y1="14.25" y2="16.12" y3="18.13"/>
+ <curve x1="55.08" x2="54.88" x3="54.7" y1="18.88" y2="19.7" y3="20.57"/>
+ <curve x1="54.88" x2="55.08" x3="55.21" y1="20.57" y2="20.7" y3="20.7"/>
+ <curve x1="57.96" x2="59.84" x3="60.03" y1="21.96" y2="23.65" y3="26.03"/>
+ <curve x1="60.15" x2="60.15" x3="60.15" y1="26.22" y2="26.41" y3="26.59"/>
+ <close/>
+ <move x="48.56" y="11.99"/>
+ <curve x1="48.37" x2="48.06" x3="48.06" y1="11.99" y2="12.17" y3="12.48"/>
+ <curve x1="48.06" x2="48.37" x3="48.56" y1="12.86" y2="12.99" y3="12.99"/>
+ <curve x1="48.94" x2="49.25" x3="49.25" y1="12.99" y2="12.86" y3="12.48"/>
+ <curve x1="49.25" x2="48.94" x3="48.56" y1="12.17" y2="11.99" y3="11.99"/>
+ <close/>
+ <move x="46.18" y="14.36"/>
+ <line x="46.18" y="14.56"/>
+ <curve x1="47.06" x2="47.68" x3="48.19" y1="15.74" y2="17.49" y3="19.19"/>
+ <curve x1="50.12" x2="51.82" x3="53.39" y1="19.39" y2="19.7" y3="20.07"/>
+ <curve x1="53.39" x2="53.51" x3="53.51" y1="19.39" y2="18.7" y3="18.13"/>
+ <curve x1="53.51" x2="53.01" x3="52.13" y1="16.31" y2="15.05" y3="14.36"/>
+ <curve x1="51.64" x2="51.25" x3="50.76" y1="14.05" y2="13.86" y3="13.74"/>
+ <curve x1="50.25" x2="49.06" x3="48.19" y1="14.74" y2="15.05" y3="14.56"/>
+ <curve x1="47.88" x2="47.68" x3="47.55" y1="14.36" y2="14.25" y3="13.86"/>
+ <curve x1="47.19" x2="46.68" x3="46.18" y1="14.05" y2="14.25" y3="14.36"/>
+ <close/>
+ <move x="45" y="15.25"/>
+ <curve x1="45" x2="45" x3="44.8" y1="15.25" y2="15.05" y3="15.05"/>
+ <curve x1="43.12" x2="41.04" x3="38.98" y1="16.12" y2="17.49" y3="19.39"/>
+ <curve x1="39.35" x2="39.85" x3="40.22" y1="19.39" y2="19.19" y3="19.19"/>
+ <curve x1="41.73" x2="43.3" x3="44.8" y1="19.01" y2="19.01" y3="19.01"/>
+ <curve x1="44.8" x2="44.8" x3="46.68" y1="19.01" y2="19.01" y3="19.01"/>
+ <curve x1="46.18" x2="45.49" x3="45" y1="17.62" y2="16.31" y3="15.25"/>
+ <close/>
+ <move x="35.22" y="14.56"/>
+ <curve x1="34.58" x2="34.09" x3="33.71" y1="16.31" y2="18.13" y3="20.57"/>
+ <curve x1="34.58" x2="35.59" x3="36.59" y1="20.19" y2="20.07" y3="19.7"/>
+ <curve x1="38.98" x2="41.55" x3="44.11" y1="17.13" y2="15.05" y3="13.86"/>
+ <curve x1="42.61" x2="40.86" x3="39.54" y1="11.66" y2="10.6" y3="10.6"/>
+ <curve x1="39.54" x2="39.54" x3="39.16" y1="10.6" y2="10.6" y3="10.6"/>
+ <curve x1="37.66" x2="36.28" x3="35.22" y1="10.78" y2="12.17" y3="14.56"/>
+ <close/>
+ <move x="33.58" y="22.14"/>
+ <line x="33.58" y="23.27"/>
+ <curve x1="33.71" x2="33.89" x3="34.22" y1="23.15" y2="22.76" y3="22.65"/>
+ <curve x1="34.4" x2="34.58" x3="34.71" y1="22.33" y2="21.96" y3="21.76"/>
+ <curve x1="34.4" x2="34.09" x3="33.58" y1="21.96" y2="21.96" y3="22.14"/>
+ <close/>
+ <move x="33.4" y="32.62"/>
+ <curve x1="33.4" x2="33.21" x3="32.83" y1="32.24" y2="31.86" y3="31.86"/>
+ <curve x1="32.52" x2="32.34" x3="32.34" y1="31.86" y2="32.24" y3="32.62"/>
+ <curve x1="32.34" x2="32.52" x3="32.83" y1="32.74" y2="33.12" y3="33.12"/>
+ <curve x1="33.21" x2="33.4" x3="33.4" y1="33.12" y2="32.74" y3="32.62"/>
+ <close/>
+ <move x="32.52" y="31.06"/>
+ <curve x1="32.34" x2="32.34" x3="32.14" y1="30.36" y2="29.86" y3="29.16"/>
+ <curve x1="32.14" x2="32.14" x3="32.14" y1="29.16" y2="29.16" y3="28.1"/>
+ <curve x1="30.83" x2="29.77" x3="29.26" y1="30.55" y2="32.74" y3="34.81"/>
+ <curve x1="30.64" x2="31.96" x3="33.58" y1="35.2" y2="35.51" y3="35.69"/>
+ <curve x1="33.4" x2="33.4" x3="33.21" y1="35.31" y2="35" y3="34.63"/>
+ <curve x1="33.02" x2="32.83" x3="32.71" y1="34.43" y2="34.43" y3="34.31"/>
+ <curve x1="31.65" x2="31.34" x3="31.83" y1="33.94" y2="32.74" y3="31.73"/>
+ <curve x1="31.96" x2="32.14" x3="32.52" y1="31.37" y2="31.24" y3="31.06"/>
+ <close/>
+ <move x="27.76" y="34.12"/>
+ <line x="27.89" y="34.31"/>
+ <curve x1="28.57" x2="29.95" x3="31.96" y1="31.55" y2="28.47" y3="25.53"/>
+ <curve x1="31.96" x2="31.96" x3="31.96" y1="25.53" y2="25.53" y3="24.53"/>
+ <curve x1="31.96" x2="31.96" x3="31.96" y1="24.53" y2="24.53" y3="22.65"/>
+ <curve x1="30.64" x2="29.44" x3="28.26" y1="23.15" y2="23.65" y3="24.33"/>
+ <curve x1="25.32" x2="23.62" x3="23.62" y1="26.03" y2="28.1" y3="29.86"/>
+ <curve x1="23.62" x2="23.62" x3="23.62" y1="29.86" y2="29.86" y3="30.17"/>
+ <curve x1="23.81" x2="25.19" x3="27.76" y1="31.73" y2="33.12" y3="34.12"/>
+ <close/>
+ <move x="32.52" y="42.71"/>
+ <curve x1="33.58" x2="34.71" x3="36.1" y1="42.71" y2="42.34" y3="41.83"/>
+ <curve x1="35.22" x2="34.58" x3="34.09" y1="40.46" y2="38.95" y3="37.2"/>
+ <curve x1="32.14" x2="30.45" x3="28.89" y1="37" y2="36.69" y3="36.2"/>
+ <curve x1="28.89" x2="28.76" x3="28.76" y1="36.88" y2="37.57" y3="38.26"/>
+ <curve x1="28.76" x2="29.26" x3="30.13" y1="39.96" y2="41.34" y3="42.03"/>
+ <curve x1="30.83" x2="31.65" x3="32.52" y1="42.53" y2="42.71" y3="42.71"/>
+ <close/>
+ <move x="37.47" y="41.21"/>
+ <curve x1="39.35" x2="41.22" x3="43.3" y1="40.34" y2="38.77" y3="36.88"/>
+ <curve x1="42.92" x2="42.61" x3="42.04" y1="37" y2="37" y3="37"/>
+ <curve x1="40.55" x2="38.98" x3="37.47" y1="37.2" y2="37.39" y3="37.39"/>
+ <curve x1="36.97" x2="36.28" x3="35.59" y1="37.39" y2="37.39" y3="37.2"/>
+ <curve x1="36.1" x2="36.77" x3="37.28" y1="38.77" y2="39.96" y3="41.21"/>
+ <curve x1="37.28" x2="37.28" x3="37.47" y1="41.21" y2="41.21" y3="41.21"/>
+ <close/>
+ <move x="47.19" y="41.71"/>
+ <curve x1="47.68" x2="48.19" x3="48.56" y1="40.14" y2="38.08" y3="35.87"/>
+ <curve x1="47.68" x2="46.68" x3="45.67" y1="36.07" y2="36.38" y3="36.57"/>
+ <curve x1="43.3" x2="40.73" x3="38.16" y1="39.14" y2="41.21" y3="42.53"/>
+ <curve x1="39.67" x2="41.35" x3="42.79" y1="44.6" y2="45.79" y3="45.79"/>
+ <curve x1="42.92" x2="43.12" x3="43.12" y1="45.79" y2="45.79" y3="45.61"/>
+ <curve x1="44.61" x2="46" x3="47.19" y1="45.61" y2="44.1" y3="41.71"/>
+ <close/>
+ <move x="48.75" y="34.12"/>
+ <line x="48.75" y="32.94"/>
+ <curve x1="48.56" x2="48.37" x3="48.19" y1="33.3" y2="33.43" y3="33.81"/>
+ <curve x1="47.88" x2="47.68" x3="47.55" y1="33.94" y2="34.31" y3="34.43"/>
+ <curve x1="47.88" x2="48.37" x3="48.75" y1="34.43" y2="34.31" y3="34.12"/>
+ <close/>
+ <move x="47.06" y="32.74"/>
+ <curve x1="47.55" x2="48.19" x3="48.75" y1="32.06" y2="31.24" y3="30.36"/>
+ <curve x1="48.75" x2="48.75" x3="48.56" y1="29.29" y2="28.29" y3="27.28"/>
+ <curve x1="48.19" x2="47.68" x3="47.19" y1="24.9" y2="22.65" y3="20.57"/>
+ <curve x1="46.37" x2="45.67" x3="44.8" y1="20.57" y2="20.39" y3="20.39"/>
+ <curve x1="43.3" x2="41.92" x3="40.35" y1="20.39" y2="20.57" y3="20.7"/>
+ <curve x1="39.35" x2="38.29" x3="37.28" y1="20.89" y2="21.08" y3="21.27"/>
+ <curve x1="36.59" x2="35.9" x3="35.22" y1="21.96" y2="22.65" y3="23.46"/>
+ <curve x1="34.71" x2="34.09" x3="33.58" y1="24.33" y2="25.22" y3="25.9"/>
+ <curve x1="33.58" x2="33.71" x3="33.71" y1="26.9" y2="27.98" y3="28.98"/>
+ <curve x1="33.89" x2="33.89" x3="34.09" y1="29.67" y2="30.17" y3="30.86"/>
+ <curve x1="34.09" x2="34.22" x3="34.4" y1="30.86" y2="30.86" y3="31.06"/>
+ <curve x1="35.22" x2="35.77" x3="35.22" y1="31.37" y2="32.62" y3="33.63"/>
+ <curve x1="35.09" x2="34.9" x3="34.71" y1="33.81" y2="33.94" y3="34.12"/>
+ <curve x1="34.71" x2="34.9" x3="35.09" y1="34.63" y2="35.31" y3="35.87"/>
+ <curve x1="35.09" x2="35.09" x3="37.47" y1="35.87" y2="35.87" y3="35.87"/>
+ <curve x1="38.98" x2="40.55" x3="41.92" y1="35.87" y2="35.87" y3="35.69"/>
+ <curve x1="43.12" x2="43.99" x3="45" y1="35.51" y2="35.31" y3="35.2"/>
+ <curve x1="45.67" x2="46.37" x3="47.06" y1="34.43" y2="33.63" y3="32.74"/>
+ <close/>
+ <move x="48.75" y="20.7"/>
+ <curve x1="49.25" x2="49.76" x3="50.12" y1="22.65" y2="24.9" y3="27.1"/>
+ <curve x1="50.12" x2="50.12" x3="50.12" y1="27.1" y2="27.1" y3="28.1"/>
+ <curve x1="51.45" x2="52.51" x3="53.01" y1="25.9" y2="23.65" y3="21.58"/>
+ <curve x1="51.64" x2="50.25" x3="48.75" y1="21.27" y2="20.89" y3="20.7"/>
+ <close/>
+ <move x="54.88" y="32.43"/>
+ <curve x1="55.21" x2="55.58" x3="55.58" y1="32.43" y2="32.24" y3="31.86"/>
+ <curve x1="55.58" x2="55.21" x3="54.88" y1="31.55" y2="31.24" y3="31.24"/>
+ <curve x1="54.7" x2="54.39" x3="54.39" y1="31.24" y2="31.55" y3="31.86"/>
+ <curve x1="54.39" x2="54.7" x3="54.88" y1="32.24" y2="32.43" y3="32.43"/>
+ <close/>
+ <move x="56.27" y="30.36"/>
+ <curve x1="57.78" x2="58.66" x3="58.66" y1="29.16" y2="27.79" y3="26.59"/>
+ <curve x1="58.66" x2="58.66" x3="58.66" y1="26.59" y2="26.59" y3="26.22"/>
+ <curve x1="58.46" x2="57.09" x3="54.52" y1="24.71" y2="23.15" y3="22.14"/>
+ <curve x1="54.52" x2="54.52" x3="54.39" y1="22.14" y2="22.14" y3="22.14"/>
+ <curve x1="53.7" x2="52.33" x3="50.25" y1="24.9" y2="27.79" y3="30.86"/>
+ <curve x1="50.25" x2="50.25" x3="50.25" y1="30.86" y2="30.86" y3="31.73"/>
+ <curve x1="50.25" x2="50.25" x3="50.25" y1="31.73" y2="31.73" y3="33.63"/>
+ <curve x1="51.45" x2="52.69" x3="53.7" y1="33.3" y2="32.74" y3="32.24"/>
+ <curve x1="53.7" x2="53.7" x3="53.9" y1="31.86" y2="31.55" y3="31.37"/>
+ <curve x1="54.39" x2="55.39" x3="56.27" y1="30.36" y2="30.04" y3="30.36"/>
+ <close/>
+ <move x="42.48" y="24.21"/>
+ <curve x1="44.3" x2="45.11" x3="44.18" y1="25.34" y2="28.17" y3="30.23"/>
+ <curve x1="43.17" x2="40.73" x3="38.91" y1="32.44" y2="33.11" y3="32.05"/>
+ <curve x1="36.97" x2="36.1" x3="37.1" y1="30.92" y2="28.35" y3="26.09"/>
+ <curve x1="38.22" x2="40.55" x3="42.48" y1="24.03" y2="23.08" y3="24.21"/>
+ <close/>
+ <move x="39.22" y="28.66"/>
+ <curve x1="39.73" x2="40.22" x3="40.22" y1="28.66" y2="28.17" y3="27.6"/>
+ <curve x1="40.22" x2="39.73" x3="39.22" y1="26.84" y2="26.47" y3="26.47"/>
+ <curve x1="38.72" x2="38.22" x3="38.22" y1="26.47" y2="26.84" y3="27.6"/>
+ <curve x1="38.22" x2="38.72" x3="39.22" y1="28.17" y2="28.66" y3="28.66"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.23" name="threat e3" strokewidth="inherit" w="81.18">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="35.38" y="22.06"/>
+ <curve x1="35.69" x2="35.69" x3="35.69" y1="22.06" y2="22.06" y3="22.06"/>
+ <curve x1="39.01" x2="39.01" x3="39.01" y1="22.06" y2="22.06" y3="22.06"/>
+ <curve x1="40.08" x2="39.96" x3="39.96" y1="22.06" y2="22.32" y3="23.26"/>
+ <curve x1="39.96" x2="39.96" x3="39.96" y1="24.7" y2="24.7" y3="24.7"/>
+ <curve x1="39.83" x2="39.27" x3="38.46" y1="25.45" y2="26.09" y3="26.09"/>
+ <curve x1="36.57" x2="36.57" x3="36.57" y1="26.09" y2="26.09" y3="26.09"/>
+ <curve x1="35.76" x2="35.07" x3="35.07" y1="26.09" y2="25.45" y3="24.7"/>
+ <curve x1="35.07" x2="35.07" x3="35.07" y1="22.32" y2="22.32" y3="22.32"/>
+ <curve x1="35.07" x2="35.2" x3="35.38" y1="22.19" y2="22.06" y3="22.06"/>
+ <close/>
+ <move x="43.09" y="22.06"/>
+ <curve x1="45.66" x2="45.66" x3="45.66" y1="22.06" y2="22.06" y3="22.06"/>
+ <curve x1="45.79" x2="45.79" x3="45.79" y1="22.06" y2="22.06" y3="22.06"/>
+ <curve x1="45.97" x2="45.97" x3="45.97" y1="22.06" y2="22.06" y3="22.06"/>
+ <curve x1="46.03" x2="46.1" x3="46.1" y1="22.06" y2="22.19" y3="22.32"/>
+ <curve x1="46.1" x2="46.1" x3="46.1" y1="24.7" y2="24.7" y3="24.7"/>
+ <curve x1="46.1" x2="45.59" x3="44.91" y1="25.45" y2="26.09" y3="26.09"/>
+ <curve x1="43.34" x2="43.34" x3="43.34" y1="26.09" y2="26.09" y3="26.09"/>
+ <curve x1="42.71" x2="42.09" x3="42.09" y1="26.09" y2="25.45" y3="24.7"/>
+ <curve x1="42.09" x2="42.09" x3="42.09" y1="23.32" y2="23.32" y3="23.32"/>
+ <curve x1="42.09" x2="42.14" x3="43.09" y1="22.32" y2="22.06" y3="22.06"/>
+ <close/>
+ <move x="33.38" y="22.51"/>
+ <line x="33.38" y="25.39"/>
+ <curve x1="33.38" x2="33.76" x3="34.13" y1="26.08" y2="26.71" y3="27.02"/>
+ <curve x1="34.13" x2="34.13" x3="35.39" y1="27.02" y2="27.02" y3="27.02"/>
+ <curve x1="36.26" x2="37.01" x3="37.01" y1="27.02" y2="27.78" y3="28.65"/>
+ <curve x1="37.01" x2="37.01" x3="37.01" y1="28.65" y2="28.65" y3="31.85"/>
+ <curve x1="39.33" x2="42.84" x3="45.16" y1="33.17" y2="33.17" y3="31.85"/>
+ <curve x1="45.16" x2="45.16" x3="45.16" y1="31.85" y2="31.85" y3="28.65"/>
+ <curve x1="45.16" x2="45.85" x3="46.78" y1="27.78" y2="27.02" y3="27.02"/>
+ <curve x1="46.78" x2="46.78" x3="48.04" y1="27.02" y2="27.02" y3="27.02"/>
+ <curve x1="48.55" x2="48.86" x3="48.86" y1="26.71" y2="26.08" y3="25.39"/>
+ <curve x1="48.86" x2="48.86" x3="48.86" y1="25.39" y2="25.39" y3="22.51"/>
+ <curve x1="48.86" x2="48.73" x3="48.47" y1="21.95" y2="21.57" y3="21.13"/>
+ <curve x1="46.29" x2="43.9" x3="41.33" y1="21.38" y2="21.44" y3="21.44"/>
+ <curve x1="41.33" x2="41.33" x3="41.15" y1="21.44" y2="21.44" y3="21.44"/>
+ <curve x1="41.15" x2="41.15" x3="40.96" y1="21.44" y2="21.44" y3="21.44"/>
+ <curve x1="40.96" x2="40.96" x3="40.89" y1="21.44" y2="21.44" y3="21.44"/>
+ <curve x1="38.32" x2="35.88" x3="33.76" y1="21.44" y2="21.38" y3="21.13"/>
+ <curve x1="33.44" x2="33.38" x3="33.38" y1="21.57" y2="21.95" y3="22.51"/>
+ <close/>
+ <move x="25.05" y="19.05"/>
+ <curve x1="25.05" x2="27.99" x3="32.38" y1="17.99" y2="16.86" y3="16.37"/>
+ <curve x1="32.38" x2="32.38" x3="34.76" y1="16.37" y2="16.37" y3="8.72"/>
+ <curve x1="34.88" x2="35.13" x3="35.64" y1="8.41" y2="8.03" y3="8.03"/>
+ <curve x1="35.64" x2="35.64" x3="46.6" y1="8.03" y2="8.03" y3="8.03"/>
+ <curve x1="47.03" x2="47.29" x3="47.47" y1="8.03" y2="8.41" y3="8.72"/>
+ <curve x1="47.47" x2="47.47" x3="49.79" y1="8.72" y2="8.72" y3="16.37"/>
+ <curve x1="54.18" x2="57.06" x3="57.12" y1="16.86" y2="17.99" y3="19.05"/>
+ <curve x1="57.12" x2="54.67" x3="50.86" y1="19.69" y2="20.44" y3="20.87"/>
+ <curve x1="51.3" x2="51.48" x3="51.48" y1="21.88" y2="22.88" y3="24.01"/>
+ <curve x1="51.48" x2="51.3" x3="50.86" y1="25.08" y2="26.08" y3="27.02"/>
+ <curve x1="50.86" x2="50.86" x3="51.3" y1="27.02" y2="27.02" y3="27.02"/>
+ <curve x1="52.17" x2="52.92" x3="52.92" y1="27.02" y2="27.78" y3="28.65"/>
+ <curve x1="52.92" x2="52.92" x3="52.92" y1="28.65" y2="28.65" y3="30.41"/>
+ <curve x1="54.24" x2="55.31" x3="55.31" y1="30.59" y2="31.79" y3="33.36"/>
+ <curve x1="55.31" x2="55.31" x3="55.31" y1="33.36" y2="33.36" y3="43.25"/>
+ <curve x1="55.31" x2="54.11" x3="52.61" y1="44.89" y2="46.15" y3="46.15"/>
+ <curve x1="52.61" x2="52.61" x3="41.65" y1="46.15" y2="46.15" y3="46.15"/>
+ <curve x1="41.65" x2="41.65" x3="41.65" y1="46.15" y2="46.15" y3="33.36"/>
+ <curve x1="41.65" x2="41.65" x3="40.53" y1="33.36" y2="33.36" y3="33.36"/>
+ <curve x1="40.53" x2="40.53" x3="40.53" y1="33.36" y2="33.36" y3="46.15"/>
+ <curve x1="40.53" x2="40.53" x3="29.55" y1="46.15" y2="46.15" y3="46.15"/>
+ <curve x1="28.06" x2="26.93" x3="26.93" y1="46.15" y2="44.89" y3="43.25"/>
+ <curve x1="26.93" x2="26.93" x3="26.93" y1="43.25" y2="43.25" y3="33.36"/>
+ <curve x1="26.93" x2="27.87" x3="29.24" y1="31.79" y2="30.59" y3="30.41"/>
+ <curve x1="29.24" x2="29.24" x3="29.24" y1="30.41" y2="30.41" y3="28.65"/>
+ <curve x1="29.24" x2="29.99" x3="30.88" y1="27.78" y2="27.02" y3="27.02"/>
+ <curve x1="30.88" x2="30.88" x3="31.32" y1="27.02" y2="27.02" y3="27.02"/>
+ <curve x1="30.99" x2="30.75" x3="30.75" y1="26.08" y2="25.08" y3="24.01"/>
+ <curve x1="30.75" x2="30.99" x3="31.32" y1="22.88" y2="21.88" y3="20.87"/>
+ <curve x1="27.49" x2="25.05" x3="25.05" y1="20.44" y2="19.69" y3="19.05"/>
+ <close/>
+ <move x="79.42" y="42.19"/>
+ <curve x1="78.92" x2="78.1" x3="78.1" y1="41.26" y2="40.69" y3="40.69"/>
+ <curve x1="78.1" x2="74.16" x3="72.34" y1="40.69" y2="37.56" y3="41.39"/>
+ <curve x1="70.53" x2="65.08" x3="65.08" y1="45.2" y2="47.15" y3="47.15"/>
+ <curve x1="58.75" x2="58.75" x3="58.75" y1="49.53" y2="49.53" y3="49.53"/>
+ <curve x1="58.75" x2="58.75" x3="58.75" y1="49.46" y2="49.46" y3="49.46"/>
+ <curve x1="64.57" x2="68.33" x3="68.33" y1="44.27" y2="36.68" y3="28.21"/>
+ <curve x1="68.33" x2="55.75" x3="40.27" y1="12.67" y2="0" y3="0"/>
+ <curve x1="24.74" x2="12.21" x3="12.21" y1="0" y2="12.67" y3="28.21"/>
+ <curve x1="12.21" x2="15.9" x3="21.73" y1="36.68" y2="44.2" y3="49.33"/>
+ <curve x1="17.03" x2="13.96" x3="13.96" y1="47.65" y2="46.53" y3="46.53"/>
+ <curve x1="13.96" x2="14.09" x3="10.9" y1="46.53" y2="42.06" y3="40.69"/>
+ <curve x1="7.77" x2="6.33" x3="5.94" y1="39.37" y2="42.76" y3="44.07"/>
+ <curve x1="5.94" x2="0" x3="0.31" y1="44.07" y2="44.39" y3="47.89"/>
+ <curve x1="0.56" x2="6.26" x3="10.34" y1="51.35" y2="51.85" y3="49.41"/>
+ <curve x1="23.79" x2="23.79" x3="23.79" y1="54.49" y2="54.49" y3="54.49"/>
+ <curve x1="24.36" x2="25.49" x3="27.05" y1="57.11" y2="59.5" y3="61.51"/>
+ <curve x1="17.47" x2="17.47" x3="17.47" y1="65.08" y2="65.08" y3="65.08"/>
+ <curve x1="13.34" x2="7.7" x3="7.38" y1="62.64" y2="63.13" y3="66.58"/>
+ <curve x1="7.13" x2="13.09" x3="13.09" y1="70.09" y2="70.4" y3="70.4"/>
+ <curve x1="13.46" x2="14.84" x3="18.03" y1="71.73" y2="75.17" y3="73.79"/>
+ <curve x1="21.22" x2="21.11" x3="21.11" y1="72.41" y2="67.96" y3="67.96"/>
+ <curve x1="21.11" x2="21.98" x3="30.37" y1="67.96" y2="67.7" y3="64.64"/>
+ <curve x1="33.2" x2="36.57" x3="40.33" y1="66.7" y2="67.9" y3="67.9"/>
+ <curve x1="44.1" x2="47.54" x3="50.42" y1="67.9" y2="66.65" y3="64.57"/>
+ <curve x1="60.81" x2="60.81" x3="60.81" y1="67.08" y2="67.08" y3="67.08"/>
+ <curve x1="60.81" x2="64.57" x3="66.39" y1="67.08" y2="68.59" y3="72.41"/>
+ <curve x1="68.14" x2="72.15" x3="72.15" y1="76.23" y2="73.1" y3="73.1"/>
+ <curve x1="72.15" x2="72.9" x3="73.41" y1="73.1" y2="72.53" y3="71.6"/>
+ <curve x1="74.47" x2="75.22" x3="72.15" y1="69.6" y2="66.21" y3="66.7"/>
+ <curve x1="72.15" x2="73.9" x3="73.34" y1="66.7" y2="64.46" y3="62.95"/>
+ <curve x1="72.84" x2="69.96" x3="68.02" y1="61.51" y2="60.56" y3="61.44"/>
+ <curve x1="66.01" x2="63.69" x3="61.38" y1="62.25" y2="63.64" y3="63.26"/>
+ <curve x1="60.69" x2="59.68" x3="53.8" y1="63.13" y2="63.33" y3="61.2"/>
+ <curve x1="55.18" x2="56.18" x3="56.68" y1="59.37" y2="57.24" y3="54.98"/>
+ <curve x1="61.87" x2="65.64" x3="66.21" y1="53.1" y2="51.79" y3="51.66"/>
+ <curve x1="68.4" x2="72.03" x3="73.97" y1="51.1" y2="51.54" y3="52.36"/>
+ <curve x1="75.98" x2="78.79" x3="79.3" y1="53.16" y2="52.36" y3="50.85"/>
+ <curve x1="79.86" x2="78.1" x3="78.1" y1="49.33" y2="47.15" y3="47.15"/>
+ <curve x1="81.18" x2="80.43" x3="79.42" y1="47.53" y2="44.27" y3="42.19"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.22" name="threat e4" strokewidth="inherit" w="81.16">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="45.72" y="20.75"/>
+ <curve x1="44.63" x2="43.98" x3="43.11" y1="21.82" y2="23.23" y3="24.47"/>
+ <curve x1="40.56" x2="37.6" x3="35.08" y1="28.61" y2="32.48" y3="36.64"/>
+ <curve x1="34.37" x2="33.83" x3="32.96" y1="37.66" y2="38.86" y3="39.71"/>
+ <curve x1="32.57" x2="32.06" x3="31.53" y1="40.06" y2="40.14" y3="40.12"/>
+ <curve x1="28.9" x2="26.26" x3="23.65" y1="40.1" y2="40.17" y3="40.09"/>
+ <curve x1="23.13" x2="22.79" x3="22.38" y1="39.82" y2="39.29" y3="38.91"/>
+ <curve x1="22" x2="22.01" x3="22.04" y1="38.3" y2="37.6" y3="36.89"/>
+ <curve x1="22.02" x2="22.3" x3="22.72" y1="36.3" y2="35.72" y3="35.32"/>
+ <curve x1="22.94" x2="23.49" x3="23.99" y1="34.78" y2="34.56" y3="34.41"/>
+ <curve x1="24.49" x2="25.19" x3="25.77" y1="34.12" y2="34.47" y3="34.46"/>
+ <curve x1="27.32" x2="28.88" x3="30.43" y1="34.5" y2="34.46" y3="34.48"/>
+ <curve x1="31.03" x2="31.98" x3="32.49" y1="33.48" y2="32.71" y3="31.64"/>
+ <curve x1="33.84" x2="35.45" x3="36.82" y1="29.34" y2="27.2" y3="24.91"/>
+ <curve x1="38.77" x2="40.98" x3="43.02" y1="21.71" y2="18.68" y3="15.54"/>
+ <curve x1="43.52" x2="43.97" x3="44.63" y1="15.22" y2="14.77" y3="14.92"/>
+ <curve x1="46.62" x2="48.61" x3="50.6" y1="14.92" y2="14.92" y3="14.92"/>
+ <curve x1="50.65" x2="50.46" x3="50.78" y1="14.08" y2="13.19" y3="12.41"/>
+ <curve x1="50.64" x2="51.6" x3="51.97" y1="11.68" y2="12.15" y3="12.29"/>
+ <curve x1="54" x2="55.75" x3="57.56" y1="13.28" y2="14.78" y3="16.12"/>
+ <curve x1="57.94" x2="58.56" x3="58.8" y1="16.6" y2="16.83" y3="17.42"/>
+ <curve x1="59.33" x2="59.17" x3="58.8" y1="17.4" y2="18.38" y3="18.55"/>
+ <curve x1="58.51" x2="57.87" x3="57.53" y1="19.06" y2="19.08" y3="19.57"/>
+ <curve x1="56.16" x2="54.64" x3="53.2" y1="20.71" y2="21.65" y3="22.69"/>
+ <curve x1="52.63" x2="52.17" x3="51.52" y1="23.01" y2="23.51" y3="23.62"/>
+ <curve x1="50.97" x2="50.8" x3="50.62" y1="24.01" y2="23.56" y3="23.1"/>
+ <curve x1="50.61" x2="50.58" x3="50.42" y1="22.32" y2="21.53" y3="20.75"/>
+ <curve x1="48.99" x2="47.53" x3="46.08" y1="20.48" y2="20.57" y3="20.56"/>
+ <curve x1="45.96" x2="45.84" x3="45.72" y1="20.62" y2="20.69" y3="20.75"/>
+ <close/>
+ <move x="24.48" y="21.06"/>
+ <curve x1="23.96" x2="23.44" x3="23.1" y1="21.05" y2="21" y3="20.56"/>
+ <curve x1="22.75" x2="22.17" x3="22.22" y1="20.15" y2="19.76" y3="19.18"/>
+ <curve x1="21.82" x2="22.14" x3="22.04" y1="18.86" y2="18.17" y3="17.7"/>
+ <curve x1="22.02" x2="22.2" x3="22.52" y1="17.13" y2="16.72" y3="16.26"/>
+ <curve x1="22.82" x2="23.2" x3="23.67" y1="15.86" y2="15.34" y3="15.23"/>
+ <curve x1="24.11" x2="24.72" x3="25.26" y1="14.93" y2="15.07" y3="15.04"/>
+ <curve x1="27.67" x2="30.09" x3="32.5" y1="15.04" y2="15.04" y3="15.04"/>
+ <curve x1="32.94" x2="33.74" x3="33.94" y1="15.52" y2="15.61" y3="16.3"/>
+ <curve x1="35.32" x2="36.7" x3="38.08" y1="18.3" y2="20.31" y3="22.31"/>
+ <curve x1="36.99" x2="35.9" x3="34.82" y1="23.9" y2="25.49" y3="27.08"/>
+ <curve x1="33.62" x2="32.44" x3="31.25" y1="25.25" y2="23.39" y3="21.55"/>
+ <curve x1="30.93" x2="30.42" x3="29.84" y1="20.99" y2="21.03" y3="21.04"/>
+ <curve x1="28.61" x2="27.37" x3="26.14" y1="20.8" y2="21.17" y3="21.06"/>
+ <curve x1="25.58" x2="25.03" x3="24.48" y1="21.06" y2="21.06" y3="21.06"/>
+ <close/>
+ <move x="59.12" y="37.54"/>
+ <curve x1="59.19" x2="58.44" x3="58.09" y1="38.17" y2="38.48" y3="38.92"/>
+ <curve x1="56.49" x2="55.21" x3="53.56" y1="39.8" y2="41.17" y3="41.98"/>
+ <curve x1="52.78" x2="52.04" x3="51.1" y1="42.41" y2="43.11" y3="43.13"/>
+ <curve x1="50.7" x2="50.81" x3="50.79" y1="42.84" y2="42.17" y3="41.69"/>
+ <curve x1="50.69" x2="50.88" x3="50.3" y1="41.26" y2="40.26" y3="40.31"/>
+ <curve x1="48.32" x2="46.33" x3="44.34" y1="40.31" y2="40.31" y3="40.31"/>
+ <curve x1="43.86" x2="43.34" x3="43.14" y1="40.07" y2="40.01" y3="39.42"/>
+ <curve x1="41.73" x2="40.44" x3="39.07" y1="37.53" y2="35.53" y3="33.6"/>
+ <curve x1="40.12" x2="41.16" x3="42.21" y1="32.1" y2="30.59" y3="29.09"/>
+ <curve x1="43.09" x2="44.06" x3="45.09" y1="30.7" y2="32.28" y3="33.8"/>
+ <curve x1="45.56" x2="45.71" x3="46.12" y1="34.07" y2="34.68" y3="34.84"/>
+ <curve x1="47.68" x2="49.23" x3="50.79" y1="34.84" y2="34.84" y3="34.84"/>
+ <curve x1="50.77" x2="50.79" x3="50.91" y1="33.95" y2="33.06" y3="32.18"/>
+ <curve x1="51.38" x2="52.07" x3="52.6" y1="31.58" y2="32.4" y3="32.52"/>
+ <curve x1="54.01" x2="55.18" x3="56.4" y1="33.08" y2="34.11" y3="35"/>
+ <curve x1="57.33" x2="58.09" x3="58.88" y1="35.6" y2="36.4" y3="37.16"/>
+ <curve x1="59.01" x2="59.14" x3="59.12" y1="37.22" y2="37.38" y3="37.54"/>
+ <close/>
+ <move x="79.34" y="42.18"/>
+ <curve x1="78.9" x2="78.1" x3="78.1" y1="41.25" y2="40.74" y3="40.74"/>
+ <curve x1="78.1" x2="74.14" x3="72.32" y1="40.74" y2="37.55" y3="41.38"/>
+ <curve x1="70.52" x2="65.07" x3="65.07" y1="45.19" y2="47.14" y3="47.14"/>
+ <curve x1="58.74" x2="58.74" x3="58.74" y1="49.52" y2="49.52" y3="49.52"/>
+ <curve x1="58.74" x2="58.74" x3="58.67" y1="49.52" y2="49.45" y3="49.45"/>
+ <curve x1="64.56" x2="68.33" x3="68.33" y1="44.31" y2="36.68" y3="28.21"/>
+ <curve x1="68.33" x2="55.73" x3="40.26" y1="12.66" y2="0" y3="0"/>
+ <curve x1="24.73" x2="12.14" x3="12.14" y1="0" y2="12.66" y3="28.21"/>
+ <curve x1="12.14" x2="15.84" x3="21.73" y1="36.68" y2="44.19" y3="49.4"/>
+ <curve x1="17.03" x2="13.96" x3="13.96" y1="47.7" y2="46.52" y3="46.52"/>
+ <curve x1="13.96" x2="14.09" x3="10.9" y1="46.52" y2="42.06" y3="40.74"/>
+ <curve x1="7.76" x2="6.32" x3="5.94" y1="39.36" y2="42.75" y3="44.13"/>
+ <curve x1="5.94" x2="0" x3="0.25" y1="44.13" y2="44.44" y3="47.89"/>
+ <curve x1="0.56" x2="6.25" x3="10.33" y1="51.34" y2="51.89" y3="49.4"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.53" y2="54.53" y3="54.53"/>
+ <curve x1="24.35" x2="25.48" x3="27.05" y1="57.1" y2="59.49" y3="61.49"/>
+ <curve x1="17.41" x2="17.41" x3="17.41" y1="65.12" y2="65.12" y3="65.12"/>
+ <curve x1="13.34" x2="7.69" x3="7.38" y1="62.62" y2="63.19" y3="66.63"/>
+ <curve x1="7.14" x2="13.09" x3="13.09" y1="70.08" y2="70.39" y3="70.39"/>
+ <curve x1="13.47" x2="14.84" x3="18.03" y1="71.77" y2="75.16" y3="73.78"/>
+ <curve x1="21.16" x2="21.11" x3="21.11" y1="72.46" y2="68.02" y3="68.02"/>
+ <curve x1="21.11" x2="21.98" x3="30.37" y1="68.02" y2="67.76" y3="64.68"/>
+ <curve x1="33.12" x2="36.56" x3="40.33" y1="66.69" y2="67.89" y3="67.89"/>
+ <curve x1="44.09" x2="47.53" x3="50.34" y1="67.89" y2="66.69" y3="64.63"/>
+ <curve x1="60.8" x2="60.8" x3="60.8" y1="67.13" y2="67.13" y3="67.13"/>
+ <curve x1="60.8" x2="64.56" x3="66.38" y1="67.13" y2="68.58" y3="72.46"/>
+ <curve x1="68.13" x2="72.14" x3="72.14" y1="76.22" y2="73.08" y3="73.08"/>
+ <curve x1="72.14" x2="72.89" x3="73.4" y1="73.08" y2="72.52" y3="71.64"/>
+ <curve x1="74.4" x2="75.22" x3="72.14" y1="69.58" y2="66.25" y3="66.69"/>
+ <curve x1="72.14" x2="73.89" x3="73.32" y1="66.69" y2="64.44" y3="62.93"/>
+ <curve x1="72.76" x2="69.95" x3="68" y1="61.49" y2="60.62" y3="61.42"/>
+ <curve x1="66" x2="63.68" x3="61.31" y1="62.24" y2="63.68" y3="63.32"/>
+ <curve x1="60.68" x2="59.67" x3="53.79" y1="63.19" y2="63.32" y3="61.18"/>
+ <curve x1="55.17" x2="56.17" x3="56.67" y1="59.36" y2="57.23" y3="55.04"/>
+ <curve x1="61.88" x2="65.56" x3="66.2" y1="53.15" y2="51.78" y3="51.65"/>
+ <curve x1="68.38" x2="72.01" x3="73.96" y1="51.15" y2="51.58" y3="52.4"/>
+ <curve x1="75.96" x2="78.72" x3="79.28" y1="53.22" y2="52.28" y3="50.84"/>
+ <curve x1="79.85" x2="78.1" x3="78.1" y1="49.4" y2="47.14" y3="47.14"/>
+ <curve x1="81.16" x2="80.34" x3="79.34" y1="47.57" y2="44.26" y3="42.18"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.27" name="threat e5" strokewidth="inherit" w="81.21">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="51.89" y="31.3"/>
+ <curve x1="52.57" x2="53.13" x3="53.13" y1="31.3" y2="30.73" y3="30.04"/>
+ <curve x1="53.13" x2="52.57" x3="51.89" y1="29.42" y2="28.85" y3="28.85"/>
+ <curve x1="51.25" x2="50.69" x3="50.69" y1="28.85" y2="29.42" y3="30.04"/>
+ <curve x1="50.69" x2="51.25" x3="51.89" y1="30.73" y2="31.3" y3="31.3"/>
+ <close/>
+ <move x="46.31" y="31.3"/>
+ <curve x1="47" x2="47.5" x3="47.5" y1="31.3" y2="30.73" y3="30.04"/>
+ <curve x1="47.5" x2="47" x3="46.31" y1="29.42" y2="28.85" y3="28.85"/>
+ <curve x1="45.62" x2="45.05" x3="45.05" y1="28.85" y2="29.42" y3="30.04"/>
+ <curve x1="45.05" x2="45.62" x3="46.31" y1="30.73" y2="31.3" y3="31.3"/>
+ <close/>
+ <move x="26.82" y="27.91"/>
+ <line x="54.65" y="27.91"/>
+ <curve x1="54.77" x2="54.96" x3="54.96" y1="27.91" y2="27.79" y3="27.6"/>
+ <curve x1="54.96" x2="54.77" x3="54.65" y1="27.34" y2="27.16" y3="27.16"/>
+ <curve x1="54.65" x2="54.65" x3="26.82" y1="27.16" y2="27.16" y3="27.16"/>
+ <curve x1="26.63" x2="26.43" x3="26.43" y1="27.16" y2="27.34" y3="27.6"/>
+ <curve x1="26.43" x2="26.63" x3="26.82" y1="27.79" y2="27.91" y3="27.91"/>
+ <close/>
+ <move x="40.73" y="31.3"/>
+ <curve x1="41.42" x2="41.92" x3="41.92" y1="31.3" y2="30.73" y3="30.04"/>
+ <curve x1="41.92" x2="41.42" x3="40.73" y1="29.42" y2="28.85" y3="28.85"/>
+ <curve x1="40.04" x2="39.47" x3="39.47" y1="28.85" y2="29.42" y3="30.04"/>
+ <curve x1="39.47" x2="40.04" x3="40.73" y1="30.73" y2="31.3" y3="31.3"/>
+ <close/>
+ <move x="35.09" y="31.3"/>
+ <curve x1="35.77" x2="36.34" x3="36.34" y1="31.3" y2="30.73" y3="30.04"/>
+ <curve x1="36.34" x2="35.77" x3="35.09" y1="29.42" y2="28.85" y3="28.85"/>
+ <curve x1="34.4" x2="33.89" x3="33.89" y1="28.85" y2="29.42" y3="30.04"/>
+ <curve x1="33.89" x2="34.4" x3="35.09" y1="30.73" y2="31.3" y3="31.3"/>
+ <close/>
+ <move x="29.51" y="31.3"/>
+ <curve x1="30.21" x2="30.7" x3="30.7" y1="31.3" y2="30.73" y3="30.04"/>
+ <curve x1="30.7" x2="30.21" x3="29.51" y1="29.42" y2="28.85" y3="28.85"/>
+ <curve x1="28.82" x2="28.26" x3="28.26" y1="28.85" y2="29.42" y3="30.04"/>
+ <curve x1="28.26" x2="28.82" x3="29.51" y1="30.73" y2="31.3" y3="31.3"/>
+ <close/>
+ <move x="29.51" y="23.58"/>
+ <curve x1="28.82" x2="28.26" x3="28.26" y1="23.58" y2="24.09" y3="24.77"/>
+ <curve x1="28.26" x2="28.82" x3="29.51" y1="25.46" y2="26.03" y3="26.03"/>
+ <curve x1="30.21" x2="30.7" x3="30.7" y1="26.03" y2="25.46" y3="24.77"/>
+ <curve x1="30.7" x2="30.21" x3="29.51" y1="24.09" y2="23.58" y3="23.58"/>
+ <close/>
+ <move x="35.09" y="23.58"/>
+ <curve x1="34.4" x2="33.89" x3="33.89" y1="23.58" y2="24.09" y3="24.77"/>
+ <curve x1="33.89" x2="34.4" x3="35.09" y1="25.46" y2="26.03" y3="26.03"/>
+ <curve x1="35.77" x2="36.34" x3="36.34" y1="26.03" y2="25.46" y3="24.77"/>
+ <curve x1="36.34" x2="35.77" x3="35.09" y1="24.09" y2="23.58" y3="23.58"/>
+ <close/>
+ <move x="40.73" y="23.58"/>
+ <curve x1="40.04" x2="39.47" x3="39.47" y1="23.58" y2="24.09" y3="24.77"/>
+ <curve x1="39.47" x2="40.04" x3="40.73" y1="25.46" y2="26.03" y3="26.03"/>
+ <curve x1="41.42" x2="41.92" x3="41.92" y1="26.03" y2="25.46" y3="24.77"/>
+ <curve x1="41.92" x2="41.42" x3="40.73" y1="24.09" y2="23.58" y3="23.58"/>
+ <close/>
+ <move x="46.31" y="23.58"/>
+ <curve x1="45.62" x2="45.05" x3="45.05" y1="23.58" y2="24.09" y3="24.77"/>
+ <curve x1="45.05" x2="45.62" x3="46.31" y1="25.46" y2="26.03" y3="26.03"/>
+ <curve x1="47" x2="47.5" x3="47.5" y1="26.03" y2="25.46" y3="24.77"/>
+ <curve x1="47.5" x2="47" x3="46.31" y1="24.09" y2="23.58" y3="23.58"/>
+ <close/>
+ <move x="51.89" y="23.58"/>
+ <curve x1="51.25" x2="50.69" x3="50.69" y1="23.58" y2="24.09" y3="24.77"/>
+ <curve x1="50.69" x2="51.25" x3="51.89" y1="25.46" y2="26.03" y3="26.03"/>
+ <curve x1="52.57" x2="53.13" x3="53.13" y1="26.03" y2="25.46" y3="24.77"/>
+ <curve x1="53.13" x2="52.57" x3="51.89" y1="24.09" y2="23.58" y3="23.58"/>
+ <close/>
+ <move x="56.65" y="29.8"/>
+ <curve x1="56.27" x2="55.58" x3="54.52" y1="31.73" y2="33.63" y3="35.31"/>
+ <curve x1="54.52" x2="54.52" x3="57.46" y1="35.31" y2="35.31" y3="41.21"/>
+ <curve x1="57.46" x2="57.46" x3="51" y1="41.21" y2="41.21" y3="39.34"/>
+ <curve x1="49.56" x2="47.93" x3="46.18" y1="40.52" y2="41.4" y3="42.02"/>
+ <curve x1="46.18" x2="46.18" x3="44.43" y1="42.02" y2="42.02" y3="48.18"/>
+ <curve x1="44.43" x2="44.43" x3="41.35" y1="48.18" y2="48.18" y3="42.84"/>
+ <curve x1="41.35" x2="41.35" x3="41.04" y1="42.84" y2="42.84" y3="42.84"/>
+ <curve x1="39.22" x2="37.47" x3="35.84" y1="42.84" y2="42.58" y3="42.02"/>
+ <curve x1="35.84" x2="35.84" x3="28.64" y1="42.02" y2="42.02" y3="46.98"/>
+ <curve x1="28.64" x2="28.64" x3="31.14" y1="46.98" y2="46.98" y3="39.52"/>
+ <curve x1="29.57" x2="28.26" x3="27.2" y1="38.2" y2="36.64" y3="34.87"/>
+ <curve x1="27.2" x2="27.2" x3="20.18" y1="34.87" y2="34.87" y3="34.69"/>
+ <curve x1="20.18" x2="20.18" x3="25.56" y1="34.69" y2="34.69" y3="30.73"/>
+ <curve x1="25.32" x2="25.12" x3="25.12" y1="29.6" y2="28.29" y3="27.03"/>
+ <curve x1="25.12" x2="25.19" x3="25.44" y1="26.03" y2="25.02" y3="24.09"/>
+ <curve x1="25.44" x2="25.44" x3="20.05" y1="24.09" y2="24.09" y3="20.07"/>
+ <curve x1="20.05" x2="20.05" x3="26.76" y1="20.07" y2="20.07" y3="20.07"/>
+ <curve x1="27.82" x2="29.39" x3="31.27" y1="17.88" y2="16" y3="14.56"/>
+ <curve x1="31.27" x2="31.27" x3="30.08" y1="14.56" y2="14.56" y3="8.41"/>
+ <curve x1="30.08" x2="30.08" x3="34.46" y1="8.41" y2="8.41" y3="12.61"/>
+ <curve x1="36.46" x2="38.67" x3="40.98" y1="11.66" y2="11.22" y3="11.22"/>
+ <curve x1="40.98" x2="40.98" x3="41.86" y1="11.22" y2="11.22" y3="11.22"/>
+ <curve x1="41.86" x2="41.86" x3="45.43" y1="11.22" y2="11.22" y3="7.03"/>
+ <curve x1="45.43" x2="45.43" x3="45.87" y1="7.03" y2="7.03" y3="11.99"/>
+ <curve x1="48.25" x2="50.38" x3="52.13" y1="12.73" y2="14.05" y3="15.74"/>
+ <curve x1="52.13" x2="52.13" x3="57.4" y1="15.74" y2="15.74" y3="14.12"/>
+ <curve x1="57.4" x2="57.4" x3="54.57" y1="14.12" y2="14.12" y3="18.82"/>
+ <curve x1="55.78" x2="56.58" x3="56.78" y1="20.83" y2="23.09" y3="25.53"/>
+ <curve x1="56.78" x2="56.78" x3="62.16" y1="25.53" y2="25.53" y3="27.67"/>
+ <curve x1="62.16" x2="62.16" x3="56.65" y1="27.67" y2="27.67" y3="29.8"/>
+ <close/>
+ <move x="79.39" y="42.21"/>
+ <curve x1="78.95" x2="78.14" x3="78.14" y1="41.28" y2="40.71" y3="40.71"/>
+ <curve x1="78.14" x2="74.14" x3="72.37" y1="40.71" y2="37.58" y3="41.41"/>
+ <curve x1="70.56" x2="65.04" x3="65.04" y1="45.22" y2="47.11" y3="47.11"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.56" y2="49.56" y3="49.56"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.49" y2="49.49" y3="49.43"/>
+ <curve x1="64.6" x2="68.3" x3="68.3" y1="44.29" y2="36.7" y3="28.23"/>
+ <curve x1="68.3" x2="55.77" x3="40.29" y1="12.67" y2="0" y3="0"/>
+ <curve x1="24.75" x2="12.22" x3="12.22" y1="0" y2="12.67" y3="28.23"/>
+ <curve x1="12.22" x2="15.91" x3="21.74" y1="36.63" y2="44.22" y3="49.43"/>
+ <curve x1="17.04" x2="13.97" x3="13.97" y1="47.68" y2="46.55" y3="46.55"/>
+ <curve x1="13.97" x2="14.1" x3="10.91" y1="46.55" y2="42.08" y3="40.71"/>
+ <curve x1="7.77" x2="6.33" x3="6.02" y1="39.39" y2="42.78" y3="44.16"/>
+ <curve x1="6.02" x2="0" x3="0.31" y1="44.16" y2="44.47" y3="47.92"/>
+ <curve x1="0.62" x2="6.26" x3="10.34" y1="51.38" y2="51.93" y3="49.43"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.57" y2="54.57" y3="54.57"/>
+ <curve x1="24.37" x2="25.5" x3="27.12" y1="57.14" y2="59.53" y3="61.54"/>
+ <curve x1="17.47" x2="17.47" x3="17.47" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="13.35" x2="7.7" x3="7.39" y1="62.67" y2="63.23" y3="66.61"/>
+ <curve x1="7.13" x2="13.1" x3="13.1" y1="70.13" y2="70.44" y3="70.44"/>
+ <curve x1="13.46" x2="14.9" x3="18.04" y1="71.82" y2="75.21" y3="73.83"/>
+ <curve x1="21.23" x2="21.12" x3="21.12" y1="72.44" y2="68.06" y3="68.06"/>
+ <curve x1="21.12" x2="22.05" x3="30.39" y1="68.06" y2="67.81" y3="64.67"/>
+ <curve x1="33.21" x2="36.59" x3="40.35" y1="66.73" y2="67.94" y3="67.94"/>
+ <curve x1="44.12" x2="47.56" x3="50.38" y1="67.94" y2="66.73" y3="64.6"/>
+ <curve x1="60.79" x2="60.79" x3="60.79" y1="67.12" y2="67.12" y3="67.12"/>
+ <curve x1="60.79" x2="64.6" x3="66.42" y1="67.12" y2="68.63" y3="72.44"/>
+ <curve x1="68.18" x2="72.13" x3="72.13" y1="76.27" y2="73.13" y3="73.13"/>
+ <curve x1="72.13" x2="72.94" x3="73.45" y1="73.13" y2="72.57" y3="71.64"/>
+ <curve x1="74.45" x2="75.25" x3="72.13" y1="69.63" y2="66.3" y3="66.73"/>
+ <curve x1="72.13" x2="73.94" x3="73.37" y1="66.73" y2="64.49" y3="62.98"/>
+ <curve x1="72.81" x2="70" x3="68.05" y1="61.54" y2="60.66" y3="61.47"/>
+ <curve x1="66.11" x2="63.73" x3="61.35" y1="62.28" y2="63.67" y3="63.29"/>
+ <curve x1="60.72" x2="59.71" x3="53.82" y1="63.16" y2="63.36" y3="61.15"/>
+ <curve x1="55.21" x2="56.21" x3="56.78" y1="59.4" y2="57.27" y3="55.01"/>
+ <curve x1="61.9" x2="65.6" x3="66.17" y1="53.19" y2="51.82" y3="51.69"/>
+ <curve x1="68.43" x2="72.06" x3="74.01" y1="51.12" y2="51.56" y3="52.38"/>
+ <curve x1="75.95" x2="78.77" x3="79.34" y1="53.26" y2="52.31" y3="50.87"/>
+ <curve x1="79.9" x2="78.14" x3="78.14" y1="49.36" y2="47.11" y3="47.11"/>
+ <curve x1="81.21" x2="80.4" x3="79.39" y1="47.61" y2="44.22" y3="42.21"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.27" name="threat e6" strokewidth="inherit" w="81.21">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="44.37" y="34.13"/>
+ <curve x1="44.61" x2="44.86" x3="45.05" y1="34.13" y2="34.13" y3="34.19"/>
+ <curve x1="45.12" x2="44.11" x3="42.42" y1="35.5" y2="36.63" y3="37.14"/>
+ <curve x1="42.29" x2="42.23" x3="42.11" y1="37.01" y2="36.88" y3="36.7"/>
+ <curve x1="43.55" x2="44.49" x3="44.37" y1="36.32" y2="35.25" y3="34.13"/>
+ <close/>
+ <move x="37.85" y="34.13"/>
+ <curve x1="37.78" x2="38.62" x3="40" y1="35.22" y2="36.2" y3="36.66"/>
+ <curve x1="40.01" x2="40.03" x3="40.03" y1="36.57" y2="36.48" y3="36.38"/>
+ <curve x1="40.03" x2="40.03" x3="39.79" y1="36" y2="35.63" y3="35.25"/>
+ <line x="39.98" y="35.12"/>
+ <curve x1="40.16" x2="40.36" x3="40.67" y1="35.31" y2="35.38" y3="35.38"/>
+ <curve x1="40.92" x2="41.11" x3="41.29" y1="35.38" y2="35.31" y3="35.2"/>
+ <line x="41.54" y="35.31"/>
+ <curve x1="41.23" x2="41.16" x3="41.23" y1="35.76" y2="35.95" y3="36.38"/>
+ <curve x1="41.42" x2="44.48" x3="45.81" y1="38.26" y2="39.01" y3="37.51"/>
+ <line x="46.12" y="37.64"/>
+ <curve x1="44.81" x2="41.98" x3="40.67" y1="39.14" y2="39.08" y3="37.57"/>
+ <curve x1="40.03" x2="39.03" x3="37.84" y1="38.33" y2="38.77" y3="38.77"/>
+ <curve x1="36.78" x2="35.71" x3="35.09" y1="38.77" y2="38.33" y3="37.64"/>
+ <line x="35.47" y="37.44"/>
+ <curve x1="35.96" x2="36.66" x3="37.53" y1="38.01" y2="38.33" y3="38.33"/>
+ <curve x1="38.62" x2="39.61" x3="39.92" y1="38.33" y2="37.72" y3="36.91"/>
+ <curve x1="39.86" x2="39.8" x3="39.73" y1="36.98" y2="37.07" y3="37.14"/>
+ <curve x1="38.1" x2="37.1" x3="37.16" y1="36.63" y2="35.5" y3="34.24"/>
+ <curve x1="37.41" x2="37.65" x3="37.85" y1="34.13" y2="34.13" y3="34.13"/>
+ <close/>
+ <move x="41.13" y="31.27"/>
+ <curve x1="41.83" x2="42.52" x3="43.11" y1="31.27" y2="31.43" y3="31.74"/>
+ <curve x1="43.11" x2="42.99" x3="42.86" y1="31.92" y2="31.99" y3="32.12"/>
+ <curve x1="41.85" x2="40.36" x3="39.35" y1="31.56" y2="31.56" y3="32.12"/>
+ <curve x1="39.23" x2="39.16" x3="39.1" y1="32.05" y2="31.92" y3="31.74"/>
+ <curve x1="39.73" x2="40.43" x3="41.13" y1="31.43" y2="31.27" y3="31.27"/>
+ <close/>
+ <move x="40.98" y="28.1"/>
+ <line x="40.98" y="28.41"/>
+ <curve x1="37.79" x2="37.97" x3="41.11" y1="28.66" y2="33" y3="33.18"/>
+ <curve x1="41.11" x2="41.11" x3="41.11" y1="33.18" y2="33.18" y3="33.18"/>
+ <curve x1="44.24" x2="44.42" x3="41.29" y1="33" y2="28.79" y3="28.41"/>
+ <line x="41.29" y="28.1"/>
+ <curve x1="43.73" x2="45.17" x3="44.24" y1="28.29" y2="30.61" y3="32.49"/>
+ <curve x1="46.74" x2="48.13" x3="47.05" y1="32.75" y2="35.19" y3="37.14"/>
+ <line x="46.69" y="36.94"/>
+ <curve x1="47.38" x2="46.12" x3="44.24" y1="35.44" y2="33.62" y3="33.62"/>
+ <curve x1="43.3" x2="42.55" x3="42.05" y1="33.68" y2="34.06" y3="34.62"/>
+ <line x="41.85" y="34.5"/>
+ <line x="41.85" y="34.24"/>
+ <curve x1="41.85" x2="41.54" x3="41.11" y1="33.8" y2="33.5" y3="33.37"/>
+ <curve x1="41.11" x2="41.11" x3="41.11" y1="33.37" y2="33.37" y3="33.37"/>
+ <curve x1="40.72" x2="40.42" x3="40.42" y1="33.5" y2="33.8" y3="34.24"/>
+ <line x="40.42" y="34.5"/>
+ <line x="40.23" y="34.62"/>
+ <curve x1="40.03" x2="39.85" x3="39.47" y1="34.44" y2="34.24" y3="34.06"/>
+ <curve x1="39.47" x2="39.41" x3="39.36" y1="34.06" y2="34.06" y3="34"/>
+ <curve x1="38.98" x2="38.54" x3="38.03" y1="33.81" y2="33.68" y3="33.68"/>
+ <curve x1="36.28" x2="34.65" x3="35.58" y1="33.68" y2="35.5" y3="36.94"/>
+ <line x="35.22" y="37.14"/>
+ <curve x1="34.09" x2="35.4" x3="37.97" y1="35.19" y2="32.75" y3="32.49"/>
+ <curve x1="37.1" x2="38.54" x3="40.98" y1="30.61" y2="28.29" y3="28.1"/>
+ <close/>
+ <move x="57.72" y="32.43"/>
+ <curve x1="53.2" x2="53.2" x3="53.2" y1="32.43" y2="32.43" y3="32.43"/>
+ <curve x1="53.2" x2="53.01" x3="52.58" y1="33.74" y2="35" y3="36.25"/>
+ <curve x1="57.08" x2="57.08" x3="57.08" y1="37.95" y2="37.95" y3="37.95"/>
+ <curve x1="57.72" x2="57.96" x3="57.72" y1="38.33" y2="39.01" y3="39.7"/>
+ <curve x1="57.59" x2="57.08" x3="56.59" y1="40.08" y2="40.46" y3="40.46"/>
+ <curve x1="56.46" x2="56.15" x3="56.08" y1="40.46" y2="40.27" y3="40.27"/>
+ <curve x1="51.83" x2="51.83" x3="51.83" y1="38.51" y2="38.51" y3="38.51"/>
+ <curve x1="49.88" x2="46.43" x3="42.11" y1="42.4" y2="44.84" y3="46.17"/>
+ <curve x1="42.11" x2="42.11" x3="42.11" y1="41.78" y2="41.78" y3="41.78"/>
+ <curve x1="46.3" x2="49.62" x3="49.62" y1="41.4" y2="37.95" y3="33.81"/>
+ <curve x1="49.62" x2="46.3" x3="42.11" y1="29.73" y2="26.28" y3="25.84"/>
+ <curve x1="42.11" x2="42.11" x3="42.11" y1="23.27" y2="23.27" y3="23.27"/>
+ <curve x1="45.24" x2="47.94" x3="50.13" y1="23.27" y2="22.65" y3="21.45"/>
+ <curve x1="50.19" x2="50.5" x3="50.82" y1="21.39" y2="21.2" y3="21.08"/>
+ <curve x1="51.32" x2="51.7" x3="51.88" y1="21.96" y2="22.83" y3="23.71"/>
+ <curve x1="56.08" x2="56.08" x3="56.08" y1="22.09" y2="22.09" y3="22.09"/>
+ <curve x1="56.71" x2="57.46" x3="57.72" y1="21.89" y2="22.09" y3="22.71"/>
+ <curve x1="57.96" x2="57.72" x3="57.08" y1="23.27" y2="24.02" y3="24.33"/>
+ <curve x1="52.7" x2="52.7" x3="52.7" y1="26.15" y2="26.15" y3="26.15"/>
+ <curve x1="53.01" x2="53.2" x3="53.2" y1="27.35" y2="28.54" y3="29.93"/>
+ <curve x1="57.83" x2="57.83" x3="57.83" y1="29.93" y2="29.93" y3="29.93"/>
+ <curve x1="58.47" x2="59.16" x3="59.16" y1="29.93" y2="30.36" y3="31.11"/>
+ <curve x1="58.96" x2="58.47" x3="57.72" y1="31.73" y2="32.43" y3="32.43"/>
+ <close/>
+ <move x="32.52" y="20.45"/>
+ <curve x1="32.21" x2="32.08" x3="32.01" y1="20.39" y2="20.19" y3="20.14"/>
+ <curve x1="32.65" x2="33.47" x3="34.4" y1="19.19" y2="18.38" y3="17.62"/>
+ <curve x1="30.77" x2="30.77" x3="30.77" y1="13.92" y2="13.92" y3="13.92"/>
+ <curve x1="30.64" x2="30.46" x3="30.33" y1="14.05" y2="14.05" y3="14.05"/>
+ <curve x1="29.02" x2="28.07" x3="28.07" y1="14.05" y2="13.11" y3="12.04"/>
+ <curve x1="28.07" x2="29.02" x3="30.33" y1="10.85" y2="10.03" y3="10.03"/>
+ <curve x1="31.57" x2="32.65" x3="32.65" y1="10.03" y2="10.85" y3="12.04"/>
+ <curve x1="32.65" x2="32.52" x3="32.34" y1="12.35" y2="12.61" y3="12.86"/>
+ <curve x1="36.15" x2="36.15" x3="36.15" y1="16.56" y2="16.56" y3="16.56"/>
+ <curve x1="37.59" x2="39.23" x3="40.8" y1="15.93" y2="15.61" y3="15.61"/>
+ <curve x1="42.42" x2="43.86" x3="45.18" y1="15.61" y2="15.93" y3="16.49"/>
+ <curve x1="48.88" x2="48.88" x3="48.88" y1="12.86" y2="12.86" y3="12.86"/>
+ <curve x1="48.62" x2="48.62" x3="48.62" y1="12.61" y2="12.35" y3="12.04"/>
+ <curve x1="48.62" x2="49.68" x3="50.88" y1="10.85" y2="10.03" y3="10.03"/>
+ <curve x1="52.13" x2="53.13" x3="53.13" y1="10.03" y2="10.85" y3="12.04"/>
+ <curve x1="53.13" x2="52.13" x3="50.88" y1="13.11" y2="14.05" y3="14.05"/>
+ <curve x1="50.81" x2="50.69" x3="50.57" y1="14.05" y2="14.05" y3="13.92"/>
+ <curve x1="47" x2="47" x3="47" y1="17.56" y2="17.56" y3="17.56"/>
+ <curve x1="48" x2="48.94" x3="49.68" y1="18.19" y2="19" y3="20.14"/>
+ <curve x1="49.44" x2="49.37" x3="49.01" y1="20.19" y2="20.39" y3="20.45"/>
+ <curve x1="47" x2="43.99" x3="40.8" y1="21.39" y2="22.08" y3="22.08"/>
+ <curve x1="37.59" x2="34.71" x3="32.52" y1="22.08" y2="21.39" y3="20.45"/>
+ <close/>
+ <move x="40.11" y="25.84"/>
+ <curve x1="35.71" x2="32.14" x3="32.14" y1="26.15" y2="29.6" y3="33.81"/>
+ <curve x1="32.14" x2="35.71" x3="40.11" y1="38.08" y2="41.4" y3="41.78"/>
+ <curve x1="40.11" x2="40.11" x3="40.11" y1="46.17" y2="46.17" y3="46.17"/>
+ <curve x1="35.53" x2="31.83" x3="29.95" y1="44.79" y2="42.4" y3="38.44"/>
+ <curve x1="25.19" x2="25.19" x3="25.19" y1="40.27" y2="40.27" y3="40.27"/>
+ <curve x1="25.12" x2="24.94" x3="24.81" y1="40.27" y2="40.46" y3="40.46"/>
+ <curve x1="24.24" x2="23.75" x3="23.44" y1="40.46" y2="40.08" y3="39.7"/>
+ <curve x1="23.11" x2="23.44" x3="24.24" y1="39.01" y2="38.33" y3="37.95"/>
+ <curve x1="29" x2="29" x3="29" y1="36.07" y2="36.07" y3="36.07"/>
+ <curve x1="28.82" x2="28.44" x3="28.44" y1="35" y2="33.74" y3="32.43"/>
+ <curve x1="23.44" x2="23.44" x3="23.44" y1="32.43" y2="32.43" y3="32.43"/>
+ <curve x1="22.55" x2="22.05" x3="22.05" y1="32.43" y2="31.73" y3="31.11"/>
+ <curve x1="22.05" x2="22.55" x3="23.44" y1="30.36" y2="29.93" y3="29.93"/>
+ <curve x1="28.44" x2="28.44" x3="28.44" y1="29.93" y2="29.93" y3="29.93"/>
+ <curve x1="28.44" x2="28.82" x3="29" y1="28.67" y2="27.41" y3="26.15"/>
+ <curve x1="24.24" x2="24.24" x3="24.24" y1="24.33" y2="24.33" y3="24.33"/>
+ <curve x1="23.55" x2="23.11" x3="23.44" y1="24.02" y2="23.27" y3="22.71"/>
+ <curve x1="23.75" x2="24.5" x3="25.19" y1="22.09" y2="21.89" y3="22.09"/>
+ <curve x1="29.7" x2="29.7" x3="29.7" y1="23.77" y2="23.77" y3="23.77"/>
+ <curve x1="30.08" x2="30.45" x3="31.08" y1="22.83" y2="21.96" y3="21.08"/>
+ <curve x1="31.34" x2="31.65" x3="31.7" y1="21.2" y2="21.39" y3="21.45"/>
+ <curve x1="34.02" x2="36.84" x3="40.11" y1="22.65" y2="23.27" y3="23.27"/>
+ <line x="40.11" y="25.84"/>
+ <close/>
+ <move x="79.39" y="42.21"/>
+ <curve x1="78.95" x2="78.14" x3="78.14" y1="41.28" y2="40.71" y3="40.71"/>
+ <curve x1="78.14" x2="74.14" x3="72.37" y1="40.71" y2="37.58" y3="41.41"/>
+ <curve x1="70.56" x2="65.04" x3="65.04" y1="45.22" y2="47.17" y3="47.17"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.56" y2="49.56" y3="49.56"/>
+ <curve x1="58.71" x2="58.71" x3="58.71" y1="49.49" y2="49.49" y3="49.49"/>
+ <curve x1="64.6" x2="68.36" x3="68.36" y1="44.29" y2="36.7" y3="28.23"/>
+ <curve x1="68.36" x2="55.77" x3="40.29" y1="12.67" y2="0" y3="0"/>
+ <curve x1="24.75" x2="12.22" x3="12.22" y1="0" y2="12.67" y3="28.23"/>
+ <curve x1="12.22" x2="15.91" x3="21.74" y1="36.7" y2="44.22" y3="49.36"/>
+ <curve x1="17.04" x2="13.97" x3="13.97" y1="47.68" y2="46.55" y3="46.55"/>
+ <curve x1="13.97" x2="14.1" x3="10.91" y1="46.55" y2="42.08" y3="40.71"/>
+ <curve x1="7.77" x2="6.33" x3="6.02" y1="39.39" y2="42.78" y3="44.09"/>
+ <curve x1="6.02" x2="0" x3="0.31" y1="44.09" y2="44.47" y3="47.92"/>
+ <curve x1="0.62" x2="6.26" x3="10.34" y1="51.38" y2="51.87" y3="49.43"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.52" y2="54.52" y3="54.52"/>
+ <curve x1="24.37" x2="25.5" x3="27.12" y1="57.14" y2="59.53" y3="61.54"/>
+ <curve x1="17.47" x2="17.47" x3="17.47" y1="65.11" y2="65.11" y3="65.11"/>
+ <curve x1="13.35" x2="7.7" x3="7.39" y1="62.67" y2="63.16" y3="66.61"/>
+ <curve x1="7.13" x2="13.1" x3="13.1" y1="70.13" y2="70.44" y3="70.44"/>
+ <curve x1="13.46" x2="14.9" x3="18.04" y1="71.76" y2="75.21" y3="73.83"/>
+ <curve x1="21.23" x2="21.12" x3="21.12" y1="72.44" y2="67.99" y3="67.99"/>
+ <curve x1="21.12" x2="22.05" x3="30.39" y1="67.99" y2="67.74" y3="64.67"/>
+ <curve x1="33.21" x2="36.59" x3="40.35" y1="66.73" y2="67.94" y3="67.94"/>
+ <curve x1="44.12" x2="47.56" x3="50.38" y1="67.94" y2="66.68" y3="64.6"/>
+ <curve x1="60.79" x2="60.79" x3="60.79" y1="67.12" y2="67.12" y3="67.12"/>
+ <curve x1="60.79" x2="64.6" x3="66.42" y1="67.12" y2="68.63" y3="72.44"/>
+ <curve x1="68.18" x2="72.19" x3="72.19" y1="76.27" y2="73.13" y3="73.13"/>
+ <curve x1="72.19" x2="72.94" x3="73.45" y1="73.13" y2="72.57" y3="71.64"/>
+ <curve x1="74.45" x2="75.25" x3="72.19" y1="69.63" y2="66.24" y3="66.73"/>
+ <curve x1="72.19" x2="73.94" x3="73.37" y1="66.73" y2="64.49" y3="63.03"/>
+ <curve x1="72.81" x2="70" x3="68.05" y1="61.54" y2="60.59" y3="61.47"/>
+ <curve x1="66.11" x2="63.73" x3="61.35" y1="62.28" y2="63.67" y3="63.29"/>
+ <curve x1="60.72" x2="59.71" x3="53.82" y1="63.16" y2="63.36" y3="61.23"/>
+ <curve x1="55.21" x2="56.21" x3="56.78" y1="59.4" y2="57.33" y3="55.01"/>
+ <curve x1="61.9" x2="65.6" x3="66.17" y1="53.13" y2="51.82" y3="51.69"/>
+ <curve x1="68.43" x2="72.06" x3="74.01" y1="51.12" y2="51.56" y3="52.38"/>
+ <curve x1="75.95" x2="78.77" x3="79.34" y1="53.19" y2="52.38" y3="50.87"/>
+ <curve x1="79.9" x2="78.14" x3="78.14" y1="49.36" y2="47.17" y3="47.17"/>
+ <curve x1="81.21" x2="80.4" x3="79.39" y1="47.55" y2="44.29" y3="42.21"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.23" name="threat e7" strokewidth="inherit" w="81.18">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="79.42" y="42.19"/>
+ <curve x1="78.92" x2="78.1" x3="78.1" y1="41.26" y2="40.75" y3="40.75"/>
+ <curve x1="78.1" x2="74.16" x3="72.34" y1="40.75" y2="37.56" y3="41.39"/>
+ <curve x1="70.53" x2="65.08" x3="65.08" y1="45.2" y2="47.09" y3="47.09"/>
+ <curve x1="58.75" x2="58.75" x3="58.75" y1="49.53" y2="49.53" y3="49.53"/>
+ <curve x1="58.75" x2="58.75" x3="58.75" y1="49.53" y2="49.46" y3="49.46"/>
+ <curve x1="64.57" x2="68.33" x3="68.33" y1="44.32" y2="36.68" y3="28.21"/>
+ <curve x1="68.33" x2="55.75" x3="40.27" y1="12.67" y2="0" y3="0"/>
+ <curve x1="24.74" x2="12.21" x3="12.21" y1="0" y2="12.67" y3="28.21"/>
+ <curve x1="12.21" x2="15.9" x3="21.73" y1="36.68" y2="44.2" y3="49.41"/>
+ <curve x1="17.03" x2="13.96" x3="13.96" y1="47.71" y2="46.53" y3="46.53"/>
+ <curve x1="13.96" x2="14.09" x3="10.9" y1="46.53" y2="42.06" y3="40.75"/>
+ <curve x1="7.77" x2="6.33" x3="5.94" y1="39.37" y2="42.76" y3="44.14"/>
+ <curve x1="5.94" x2="0" x3="0.31" y1="44.14" y2="44.45" y3="47.89"/>
+ <curve x1="0.56" x2="6.26" x3="10.34" y1="51.35" y2="51.9" y3="49.41"/>
+ <curve x1="23.79" x2="23.79" x3="23.79" y1="54.55" y2="54.55" y3="54.55"/>
+ <curve x1="24.36" x2="25.49" x3="27.05" y1="57.12" y2="59.5" y3="61.51"/>
+ <curve x1="17.47" x2="17.47" x3="17.47" y1="65.14" y2="65.14" y3="65.14"/>
+ <curve x1="13.34" x2="7.7" x3="7.38" y1="62.64" y2="63.2" y3="66.65"/>
+ <curve x1="7.13" x2="13.09" x3="13.09" y1="70.09" y2="70.4" y3="70.4"/>
+ <curve x1="13.46" x2="14.84" x3="18.03" y1="71.79" y2="75.17" y3="73.79"/>
+ <curve x1="21.22" x2="21.11" x3="21.11" y1="72.41" y2="68.03" y3="68.03"/>
+ <curve x1="21.11" x2="21.98" x3="30.37" y1="68.03" y2="67.78" y3="64.7"/>
+ <curve x1="33.2" x2="36.57" x3="40.33" y1="66.7" y2="67.9" y3="67.9"/>
+ <curve x1="44.1" x2="47.54" x3="50.42" y1="67.9" y2="66.7" y3="64.57"/>
+ <curve x1="60.81" x2="60.81" x3="60.81" y1="67.14" y2="67.14" y3="67.14"/>
+ <curve x1="60.81" x2="64.57" x3="66.39" y1="67.14" y2="68.59" y3="72.48"/>
+ <curve x1="68.14" x2="72.15" x3="72.15" y1="76.23" y2="73.1" y3="73.1"/>
+ <curve x1="72.15" x2="72.9" x3="73.41" y1="73.1" y2="72.53" y3="71.66"/>
+ <curve x1="74.47" x2="75.22" x3="72.15" y1="69.6" y2="66.26" y3="66.7"/>
+ <curve x1="72.15" x2="73.9" x3="73.34" y1="66.7" y2="64.46" y3="62.95"/>
+ <curve x1="72.84" x2="69.96" x3="68.02" y1="61.51" y2="60.63" y3="61.44"/>
+ <curve x1="66.01" x2="63.69" x3="61.38" y1="62.25" y2="63.69" y3="63.26"/>
+ <curve x1="60.69" x2="59.68" x3="53.8" y1="63.13" y2="63.33" y3="61.2"/>
+ <curve x1="55.18" x2="56.18" x3="56.68" y1="59.37" y2="57.24" y3="55.05"/>
+ <curve x1="61.87" x2="65.64" x3="66.21" y1="53.16" y2="51.79" y3="51.66"/>
+ <curve x1="68.4" x2="72.03" x3="73.97" y1="51.16" y2="51.59" y3="52.41"/>
+ <curve x1="75.98" x2="78.79" x3="79.3" y1="53.23" y2="52.29" y3="50.85"/>
+ <curve x1="79.86" x2="78.1" x3="78.1" y1="49.33" y2="47.09" y3="47.09"/>
+ <curve x1="81.18" x2="80.43" x3="79.42" y1="47.58" y2="44.27" y3="42.19"/>
+ <close/>
+ <move x="57.75" y="33.23"/>
+ <line x="53.24" y="33.23"/>
+ <curve x1="53.24" x2="52.99" x3="52.61" y1="34.67" y2="35.98" y3="37.37"/>
+ <curve x1="52.61" x2="52.61" x3="57.12" y1="37.37" y2="37.37" y3="39.25"/>
+ <curve x1="57.75" x2="58" x3="57.75" y1="39.63" y2="40.43" y3="41.12"/>
+ <curve x1="57.62" x2="57.12" x3="56.56" y1="41.51" y2="41.89" y3="41.89"/>
+ <curve x1="56.43" x2="56.18" x3="56.05" y1="41.89" y2="41.76" y3="41.76"/>
+ <curve x1="56.05" x2="56.05" x3="51.8" y1="41.76" y2="41.76" y3="39.87"/>
+ <curve x1="49.85" x2="46.35" x3="42.09" y1="44.07" y2="46.7" y3="48.16"/>
+ <curve x1="42.09" x2="42.09" x3="42.09" y1="48.16" y2="48.16" y3="23.52"/>
+ <curve x1="45.22" x2="47.92" x3="50.11" y1="23.52" y2="22.7" y3="21.51"/>
+ <curve x1="50.23" x2="50.47" x3="50.8" y1="21.31" y2="21.19" y3="21.06"/>
+ <curve x1="51.29" x2="51.67" x3="51.91" y1="22.01" y2="22.95" y3="23.88"/>
+ <curve x1="51.91" x2="51.91" x3="56.05" y1="23.88" y2="23.88" y3="22.13"/>
+ <curve x1="56.74" x2="57.49" x3="57.75" y1="21.88" y2="22.13" y3="22.82"/>
+ <curve x1="58" x2="57.75" x3="57.12" y1="23.52" y2="24.26" y3="24.52"/>
+ <curve x1="57.12" x2="57.12" x3="52.68" y1="24.52" y2="24.52" y3="26.52"/>
+ <curve x1="52.99" x2="53.24" x3="53.24" y1="27.78" y2="29.09" y3="30.59"/>
+ <curve x1="53.24" x2="53.24" x3="57.87" y1="30.59" y2="30.59" y3="30.59"/>
+ <curve x1="58.56" x2="59.13" x3="59.13" y1="30.59" y2="31.1" y3="31.92"/>
+ <curve x1="59.06" x2="58.56" x3="57.75" y1="32.6" y2="33.23" y3="33.23"/>
+ <close/>
+ <move x="49.55" y="19.74"/>
+ <curve x1="49.42" x2="49.29" x3="49.04" y1="19.87" y2="20.07" y3="20.18"/>
+ <curve x1="46.85" x2="43.97" x3="40.71" y1="21.26" y2="22.07" y3="22.07"/>
+ <curve x1="37.57" x2="34.64" x3="32.5" y1="22.07" y2="21.26" y3="20.18"/>
+ <curve x1="32.19" x2="32.07" x3="31.94" y1="20.07" y2="19.87" y3="19.74"/>
+ <curve x1="32.63" x2="33.38" x3="34.38" y1="18.69" y2="17.74" y3="16.86"/>
+ <curve x1="34.38" x2="34.38" x3="30.75" y1="16.86" y2="16.86" y3="12.54"/>
+ <curve x1="30.63" x2="30.5" x3="30.37" y1="12.67" y2="12.67" y3="12.67"/>
+ <curve x1="29" x2="28.06" x3="28.06" y1="12.67" y2="11.6" y3="10.34"/>
+ <curve x1="28.06" x2="29" x3="30.37" y1="9.03" y2="8.03" y3="8.03"/>
+ <curve x1="31.56" x2="32.63" x3="32.63" y1="8.03" y2="9.03" y3="10.34"/>
+ <curve x1="32.63" x2="32.5" x3="32.32" y1="10.59" y2="11.03" y3="11.34"/>
+ <curve x1="32.32" x2="32.32" x3="36.08" y1="11.34" y2="11.34" y3="15.68"/>
+ <curve x1="37.57" x2="39.14" x3="40.71" y1="14.86" y2="14.42" y3="14.42"/>
+ <curve x1="42.33" x2="43.84" x3="45.16" y1="14.42" y2="14.86" y3="15.55"/>
+ <curve x1="45.16" x2="45.16" x3="48.73" y1="15.55" y2="15.55" y3="11.34"/>
+ <curve x1="48.6" x2="48.6" x3="48.6" y1="11.03" y2="10.59" y3="10.34"/>
+ <curve x1="48.6" x2="49.55" x3="50.86" y1="9.03" y2="8.03" y3="8.03"/>
+ <curve x1="52.05" x2="53.11" x3="53.11" y1="8.03" y2="9.03" y3="10.34"/>
+ <curve x1="53.11" x2="52.05" x3="50.86" y1="11.6" y2="12.67" y3="12.67"/>
+ <curve x1="50.73" x2="50.61" x3="50.48" y1="12.67" y2="12.67" y3="12.54"/>
+ <curve x1="50.48" x2="50.48" x3="46.85" y1="12.54" y2="12.54" y3="16.81"/>
+ <curve x1="47.91" x2="48.91" x3="49.55" y1="17.61" y2="18.56" y3="19.74"/>
+ <close/>
+ <move x="31.07" y="21.06"/>
+ <curve x1="31.32" x2="31.56" x3="31.69" y1="21.19" y2="21.31" y3="21.51"/>
+ <curve x1="34" x2="36.83" x3="40.09" y1="22.7" y2="23.52" y3="23.52"/>
+ <curve x1="40.09" x2="40.09" x3="40.09" y1="23.52" y2="23.52" y3="48.16"/>
+ <curve x1="35.51" x2="31.81" x3="29.94" y1="46.59" y2="44.07" y3="39.81"/>
+ <curve x1="29.94" x2="29.94" x3="25.18" y1="39.81" y2="39.81" y3="41.76"/>
+ <curve x1="25.05" x2="24.92" x3="24.8" y1="41.76" y2="41.89" y3="41.89"/>
+ <curve x1="24.23" x2="23.67" x3="23.43" y1="41.89" y2="41.51" y3="41.12"/>
+ <curve x1="23.17" x2="23.43" x3="24.23" y1="40.43" y2="39.63" y3="39.25"/>
+ <curve x1="24.23" x2="24.23" x3="28.99" y1="39.25" y2="39.25" y3="37.24"/>
+ <curve x1="28.75" x2="28.43" x3="28.43" y1="35.98" y2="34.67" y3="33.23"/>
+ <curve x1="28.43" x2="28.43" x3="23.43" y1="33.23" y2="33.23" y3="33.23"/>
+ <curve x1="22.61" x2="22.04" x3="22.04" y1="33.23" y2="32.6" y3="31.92"/>
+ <curve x1="22.04" x2="22.61" x3="23.43" y1="31.1" y2="30.59" y3="30.59"/>
+ <curve x1="23.43" x2="23.43" x3="28.43" y1="30.59" y2="30.59" y3="30.59"/>
+ <curve x1="28.43" x2="28.75" x3="28.99" y1="29.22" y2="27.89" y3="26.52"/>
+ <curve x1="28.99" x2="28.99" x3="24.23" y1="26.52" y2="26.52" y3="24.52"/>
+ <curve x1="23.61" x2="23.17" x3="23.43" y1="24.26" y2="23.52" y3="22.82"/>
+ <curve x1="23.67" x2="24.54" x3="25.18" y1="22.13" y2="21.88" y3="22.13"/>
+ <curve x1="25.18" x2="25.18" x3="29.68" y1="22.13" y2="22.13" y3="24.01"/>
+ <curve x1="30.06" x2="30.5" x3="31.07" y1="22.95" y2="22.01" y3="21.06"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="76.22" name="threat e8" strokewidth="inherit" w="81.16">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="79.34" y="42.18"/>
+ <curve x1="78.9" x2="78.1" x3="78.1" y1="41.25" y2="40.69" y3="40.69"/>
+ <curve x1="78.1" x2="74.14" x3="72.32" y1="40.69" y2="37.55" y3="41.38"/>
+ <curve x1="70.52" x2="65.07" x3="65.07" y1="45.19" y2="47.14" y3="47.14"/>
+ <curve x1="58.74" x2="58.74" x3="58.74" y1="49.52" y2="49.52" y3="49.52"/>
+ <curve x1="58.74" x2="58.74" x3="58.67" y1="49.45" y2="49.45" y3="49.45"/>
+ <curve x1="64.56" x2="68.33" x3="68.33" y1="44.26" y2="36.68" y3="28.21"/>
+ <curve x1="68.33" x2="55.73" x3="40.26" y1="12.66" y2="0" y3="0"/>
+ <curve x1="24.73" x2="12.14" x3="12.14" y1="0" y2="12.66" y3="28.21"/>
+ <curve x1="12.14" x2="15.84" x3="21.73" y1="36.68" y2="44.19" y3="49.33"/>
+ <curve x1="17.03" x2="13.96" x3="13.96" y1="47.65" y2="46.52" y3="46.52"/>
+ <curve x1="13.96" x2="14.09" x3="10.9" y1="46.52" y2="42.06" y3="40.69"/>
+ <curve x1="7.76" x2="6.32" x3="5.94" y1="39.36" y2="42.75" y3="44.06"/>
+ <curve x1="5.94" x2="0" x3="0.25" y1="44.06" y2="44.38" y3="47.89"/>
+ <curve x1="0.56" x2="6.25" x3="10.33" y1="51.34" y2="51.84" y3="49.4"/>
+ <curve x1="23.8" x2="23.8" x3="23.8" y1="54.48" y2="54.48" y3="54.48"/>
+ <curve x1="24.35" x2="25.48" x3="27.05" y1="57.1" y2="59.49" y3="61.49"/>
+ <curve x1="17.41" x2="17.41" x3="17.41" y1="65.07" y2="65.07" y3="65.07"/>
+ <curve x1="13.34" x2="7.69" x3="7.38" y1="62.62" y2="63.12" y3="66.56"/>
+ <curve x1="7.14" x2="13.09" x3="13.09" y1="70.08" y2="70.39" y3="70.39"/>
+ <curve x1="13.47" x2="14.84" x3="18.03" y1="71.72" y2="75.16" y3="73.78"/>
+ <curve x1="21.16" x2="21.11" x3="21.11" y1="72.39" y2="67.95" y3="67.95"/>
+ <curve x1="21.11" x2="21.98" x3="30.37" y1="67.95" y2="67.69" y3="64.63"/>
+ <curve x1="33.12" x2="36.56" x3="40.33" y1="66.69" y2="67.89" y3="67.89"/>
+ <curve x1="44.09" x2="47.53" x3="50.34" y1="67.89" y2="66.63" y3="64.56"/>
+ <curve x1="60.8" x2="60.8" x3="60.8" y1="67.07" y2="67.07" y3="67.07"/>
+ <curve x1="60.8" x2="64.56" x3="66.38" y1="67.07" y2="68.58" y3="72.39"/>
+ <curve x1="68.13" x2="72.14" x3="72.14" y1="76.22" y2="73.03" y3="73.03"/>
+ <curve x1="72.14" x2="72.89" x3="73.4" y1="73.03" y2="72.52" y3="71.59"/>
+ <curve x1="74.4" x2="75.22" x3="72.14" y1="69.58" y2="66.2" y3="66.69"/>
+ <curve x1="72.14" x2="73.89" x3="73.32" y1="66.69" y2="64.44" y3="62.93"/>
+ <curve x1="72.76" x2="69.95" x3="68" y1="61.49" y2="60.55" y3="61.42"/>
+ <curve x1="66" x2="63.68" x3="61.31" y1="62.24" y2="63.63" y3="63.24"/>
+ <curve x1="60.68" x2="59.67" x3="53.79" y1="63.12" y2="63.32" y3="61.18"/>
+ <curve x1="55.17" x2="56.17" x3="56.67" y1="59.36" y2="57.23" y3="54.97"/>
+ <curve x1="61.88" x2="65.56" x3="66.2" y1="53.09" y2="51.78" y3="51.65"/>
+ <curve x1="68.38" x2="72.01" x3="73.96" y1="51.09" y2="51.53" y3="52.35"/>
+ <curve x1="75.96" x2="78.72" x3="79.28" y1="53.15" y2="52.35" y3="50.84"/>
+ <curve x1="79.85" x2="78.1" x3="78.1" y1="49.33" y2="47.14" y3="47.14"/>
+ <curve x1="81.16" x2="80.34" x3="79.34" y1="47.52" y2="44.26" y3="42.18"/>
+ <close/>
+ <move x="38.2" y="21.06"/>
+ <line x="38.2" y="16.43"/>
+ <curve x1="38.2" x2="38.2" x3="37.07" y1="16.43" y2="16.43" y3="16.43"/>
+ <curve x1="37.07" x2="37.07" x3="37.07" y1="16.43" y2="16.43" y3="15.36"/>
+ <curve x1="37.51" x2="37.76" x3="38.02" y1="15.36" y2="15.23" y3="14.98"/>
+ <curve x1="38.13" x2="38.26" x3="38.33" y1="14.79" y2="14.54" y3="14.04"/>
+ <curve x1="38.33" x2="38.33" x3="39.08" y1="14.04" y2="14.04" y3="14.04"/>
+ <curve x1="39.08" x2="39.08" x3="39.08" y1="14.04" y2="14.04" y3="21.06"/>
+ <curve x1="39.08" x2="39.08" x3="38.2" y1="21.06" y2="21.06" y3="21.06"/>
+ <close/>
+ <move x="30.44" y="25.13"/>
+ <curve x1="30.62" x2="30.81" x3="30.93" y1="24.95" y2="24.57" y3="24.07"/>
+ <curve x1="30.93" x2="30.93" x3="32.06" y1="24.07" y2="24.07" y3="24.07"/>
+ <curve x1="32.06" x2="32.06" x3="32.06" y1="24.07" y2="24.07" y3="31.09"/>
+ <curve x1="32.06" x2="32.06" x3="30.75" y1="31.09" y2="31.09" y3="31.09"/>
+ <curve x1="30.75" x2="30.75" x3="30.75" y1="31.09" y2="31.09" y3="26.52"/>
+ <curve x1="30.75" x2="30.75" x3="29.05" y1="26.52" y2="26.52" y3="26.52"/>
+ <curve x1="29.05" x2="29.05" x3="29.05" y1="26.52" y2="26.52" y3="25.44"/>
+ <curve x1="29.62" x2="30.11" x3="30.44" y1="25.44" y2="25.33" y3="25.13"/>
+ <close/>
+ <move x="37.45" y="36.11"/>
+ <curve x1="37.69" x2="37.82" x3="37.95" y1="35.85" y2="35.6" y3="35.11"/>
+ <curve x1="37.95" x2="37.95" x3="39.08" y1="35.11" y2="35.11" y3="35.11"/>
+ <curve x1="39.08" x2="39.08" x3="39.08" y1="35.11" y2="35.11" y3="42.12"/>
+ <curve x1="39.08" x2="39.08" x3="37.76" y1="42.12" y2="42.12" y3="42.12"/>
+ <curve x1="37.76" x2="37.76" x3="37.76" y1="42.12" y2="42.12" y3="37.55"/>
+ <curve x1="37.76" x2="37.76" x3="36.07" y1="37.55" y2="37.55" y3="37.55"/>
+ <curve x1="36.07" x2="36.07" x3="36.07" y1="37.55" y2="37.55" y3="36.48"/>
+ <curve x1="36.69" x2="37.13" x3="37.45" y1="36.48" y2="36.36" y3="36.11"/>
+ <close/>
+ <move x="48.48" y="31.53"/>
+ <curve x1="48.53" x2="48.59" x3="48.59" y1="31.47" y2="31.35" y3="31.15"/>
+ <curve x1="48.59" x2="48.53" x3="48.35" y1="30.91" y2="30.71" y3="30.58"/>
+ <curve x1="48.15" x2="47.84" x3="47.4" y1="30.47" y2="30.34" y3="30.22"/>
+ <curve x1="47.4" x2="47.4" x3="47.4" y1="30.22" y2="30.22" y3="32.09"/>
+ <curve x1="47.59" x2="47.66" x3="47.84" y1="32.09" y2="32.09" y3="32.04"/>
+ <curve x1="47.97" x2="48.09" x3="48.22" y1="31.97" y2="31.97" y3="31.84"/>
+ <curve x1="48.28" x2="48.4" x3="48.48" y1="31.78" y2="31.66" y3="31.53"/>
+ <close/>
+ <move x="46.84" y="28.65"/>
+ <line x="46.84" y="27.01"/>
+ <curve x1="46.65" x2="46.53" x3="46.47" y1="27.01" y2="27.08" y3="27.08"/>
+ <curve x1="46.34" x2="46.22" x3="46.09" y1="27.14" y2="27.14" y3="27.21"/>
+ <curve x1="46.03" x2="45.96" x3="45.91" y1="27.27" y2="27.39" y3="27.45"/>
+ <curve x1="45.84" x2="45.84" x3="45.84" y1="27.58" y2="27.7" y3="27.83"/>
+ <curve x1="45.84" x2="45.91" x3="46.03" y1="28.08" y2="28.21" y3="28.34"/>
+ <curve x1="46.22" x2="46.47" x3="46.84" y1="28.45" y2="28.58" y3="28.65"/>
+ <close/>
+ <move x="50.1" y="30.65"/>
+ <curve x1="50.1" x2="50.1" x3="50.1" y1="30.84" y2="31.04" y3="31.22"/>
+ <curve x1="50.1" x2="50.1" x3="50.03" y1="31.35" y2="31.53" y3="31.71"/>
+ <curve x1="49.97" x2="49.79" x3="49.59" y1="31.97" y2="32.15" y3="32.4"/>
+ <curve x1="49.35" x2="49.1" x3="48.72" y1="32.6" y2="32.84" y3="32.97"/>
+ <curve x1="48.4" x2="47.97" x3="47.4" y1="33.15" y2="33.28" y3="33.28"/>
+ <curve x1="47.4" x2="47.4" x3="47.4" y1="33.28" y2="33.28" y3="34.1"/>
+ <curve x1="47.4" x2="47.4" x3="46.84" y1="34.1" y2="34.1" y3="34.1"/>
+ <curve x1="46.84" x2="46.84" x3="46.84" y1="34.1" y2="34.1" y3="33.28"/>
+ <curve x1="45.96" x2="45.34" x3="44.9" y1="33.22" y2="32.97" y3="32.6"/>
+ <curve x1="44.47" x2="44.21" x3="44.08" y1="32.15" y2="31.59" y3="30.78"/>
+ <curve x1="44.08" x2="44.08" x3="45.65" y1="30.78" y2="30.78" y3="30.78"/>
+ <curve x1="45.65" x2="45.78" x3="45.96" y1="31.15" y2="31.47" y3="31.71"/>
+ <curve x1="46.22" x2="46.47" x3="46.84" y1="31.91" y2="32.04" y3="32.09"/>
+ <curve x1="46.84" x2="46.84" x3="46.84" y1="32.09" y2="32.09" y3="30.02"/>
+ <curve x1="46.78" x2="46.71" x3="46.65" y1="30.02" y2="30.02" y3="30.02"/>
+ <curve x1="46.58" x2="46.53" x3="46.47" y1="30.02" y2="29.96" y3="29.96"/>
+ <curve x1="46.22" x2="45.96" x3="45.65" y1="29.91" y2="29.78" y3="29.71"/>
+ <curve x1="45.4" x2="45.14" x3="44.96" y1="29.65" y2="29.52" y3="29.34"/>
+ <curve x1="44.78" x2="44.58" x3="44.47" y1="29.21" y2="29.02" y3="28.83"/>
+ <curve x1="44.4" x2="44.27" x3="44.27" y1="28.58" y2="28.34" y3="28.01"/>
+ <curve x1="44.27" x2="44.4" x3="44.52" y1="27.65" y2="27.34" y3="27.08"/>
+ <curve x1="44.65" x2="44.83" x3="45.09" y1="26.83" y2="26.64" y3="26.45"/>
+ <curve x1="45.27" x2="45.52" x3="45.84" y1="26.26" y2="26.14" y3="26.01"/>
+ <curve x1="46.15" x2="46.47" x3="46.84" y1="25.95" y2="25.88" y3="25.83"/>
+ <curve x1="46.84" x2="46.84" x3="46.84" y1="25.83" y2="25.83" y3="25.08"/>
+ <curve x1="46.84" x2="46.84" x3="47.4" y1="25.08" y2="25.08" y3="25.08"/>
+ <curve x1="47.4" x2="47.4" x3="47.4" y1="25.08" y2="25.08" y3="25.83"/>
+ <curve x1="47.78" x2="48.02" x3="48.35" y1="25.88" y2="25.95" y3="26.01"/>
+ <curve x1="48.66" x2="48.91" x3="49.1" y1="26.14" y2="26.26" y3="26.45"/>
+ <curve x1="49.28" x2="49.48" x3="49.59" y1="26.64" y2="26.83" y3="27.08"/>
+ <curve x1="49.79" x2="49.84" x3="49.84" y1="27.34" y2="27.65" y3="28.01"/>
+ <curve x1="49.84" x2="49.84" x3="48.35" y1="28.01" y2="28.01" y3="28.01"/>
+ <curve x1="48.28" x2="48.22" x3="48.02" y1="27.7" y2="27.45" y3="27.27"/>
+ <curve x1="47.84" x2="47.66" x3="47.4" y1="27.14" y2="27.01" y3="27.01"/>
+ <curve x1="47.4" x2="47.4" x3="47.4" y1="27.01" y2="27.01" y3="28.78"/>
+ <curve x1="47.53" x2="47.59" x3="47.66" y1="28.78" y2="28.83" y3="28.83"/>
+ <curve x1="47.78" x2="47.84" x3="47.97" y1="28.83" y2="28.9" y3="28.9"/>
+ <curve x1="48.53" x2="48.91" x3="49.22" y1="29.02" y2="29.21" y3="29.4"/>
+ <curve x1="49.53" x2="49.72" x3="49.84" y1="29.58" y2="29.78" y3="30.02"/>
+ <curve x1="49.97" x2="50.03" x3="50.1" y1="30.22" y2="30.47" y3="30.65"/>
+ <close/>
+ <move x="57.05" y="29.52"/>
+ <curve x1="57.11" x2="57.18" x3="57.18" y1="28.9" y2="28.28" y3="27.58"/>
+ <curve x1="57.18" x2="57.11" x3="57.05" y1="26.95" y2="26.27" y3="25.58"/>
+ <curve x1="57.05" x2="56.98" x3="56.92" y1="25.38" y2="25.2" y3="25.01"/>
+ <curve x1="56.98" x2="56.98" x3="57.05" y1="25.2" y2="25.38" y3="25.58"/>
+ <curve x1="57.05" x2="57.05" x3="57.05" y1="25.64" y2="25.64" y3="25.71"/>
+ <curve x1="56.8" x2="56.61" x3="56.61" y1="26.02" y2="26.71" y3="27.58"/>
+ <curve x1="56.61" x2="56.8" x3="57.05" y1="28.52" y2="29.15" y3="29.52"/>
+ <close/>
+ <move x="56.61" y="31.59"/>
+ <curve x1="56.74" x2="56.8" x3="56.85" y1="31.41" y2="31.16" y3="30.9"/>
+ <curve x1="56.49" x2="56.23" x3="55.98" y1="30.77" y2="30.52" y3="30.28"/>
+ <curve x1="55.8" x2="55.36" x3="54.67" y1="31.47" y2="32.65" y3="33.72"/>
+ <curve x1="54.67" x2="54.67" x3="55.54" y1="33.72" y2="33.72" y3="34.6"/>
+ <curve x1="56.05" x2="56.36" x3="56.61" y1="33.6" y2="32.65" y3="31.59"/>
+ <close/>
+ <move x="37.82" y="29.97"/>
+ <curve x1="37.7" x2="37.88" x3="38.45" y1="28.46" y2="26.89" y3="25.45"/>
+ <curve x1="38.32" x2="38.13" x3="37.88" y1="25.38" y2="25.25" y3="25.25"/>
+ <curve x1="37.13" x2="36.75" x3="36.75" y1="25.25" y2="26.02" y3="27.58"/>
+ <curve x1="36.75" x2="37.08" x3="37.82" y1="29.08" y2="29.9" y3="29.97"/>
+ <close/>
+ <move x="46.9" y="20"/>
+ <curve x1="49.22" x2="51.6" x3="53.41" y1="20" y2="20.88" y3="22.63"/>
+ <curve x1="54.41" x2="55.1" x3="55.48" y1="23.57" y2="24.7" y3="25.89"/>
+ <curve x1="55.61" x2="55.74" x3="55.92" y1="25.58" y2="25.33" y3="25.07"/>
+ <curve x1="56.18" x2="56.49" x3="56.85" y1="24.7" y2="24.51" y3="24.38"/>
+ <curve x1="56.74" x2="56.61" x3="56.42" y1="23.81" y2="23.32" y3="22.81"/>
+ <curve x1="56.11" x2="55.67" x3="55.23" y1="21.81" y2="20.88" y3="19.93"/>
+ <curve x1="54.92" x2="54.67" x3="54.41" y1="19.44" y2="19.06" y3="18.55"/>
+ <curve x1="53.92" x2="53.41" x3="52.79" y1="17.93" y2="17.24" y3="16.61"/>
+ <curve x1="52.79" x2="52.79" x3="52.79" y1="16.61" y2="16.61" y3="20.62"/>
+ <curve x1="52.79" x2="52.79" x3="51.42" y1="20.62" y2="20.62" y3="20.62"/>
+ <curve x1="51.42" x2="51.42" x3="51.42" y1="20.62" y2="20.62" y3="16.18"/>
+ <curve x1="51.42" x2="51.42" x3="49.65" y1="16.18" y2="16.18" y3="16.18"/>
+ <curve x1="49.65" x2="49.65" x3="49.65" y1="16.18" y2="16.18" y3="15.17"/>
+ <curve x1="50.22" x2="50.6" x3="50.91" y1="15.17" y2="15.05" y3="14.92"/>
+ <curve x1="48.16" x2="44.64" x3="40.89" y1="12.79" y2="11.53" y3="11.53"/>
+ <curve x1="37.82" x2="34.94" x3="32.5" y1="11.53" y2="12.28" y3="13.72"/>
+ <curve x1="33.19" x2="33.81" x3="34.13" y1="13.85" y2="14.17" y3="14.74"/>
+ <curve x1="34.56" x2="34.82" x3="34.82" y1="15.29" y2="16.18" y3="17.24"/>
+ <curve x1="34.82" x2="34.56" x3="34.2" y1="18.31" y2="19.11" y3="19.68"/>
+ <curve x1="33.69" x2="33.12" x3="32.25" y1="20.37" y2="20.68" y3="20.68"/>
+ <curve x1="31.37" x2="30.75" x3="30.31" y1="20.68" y2="20.44" y3="19.75"/>
+ <curve x1="29.88" x2="29.62" x3="29.62" y1="19.11" y2="18.31" y3="17.24"/>
+ <curve x1="29.62" x2="29.62" x3="29.81" y1="16.67" y2="16.23" y3="15.8"/>
+ <curve x1="28.87" x2="28.05" x3="27.31" y1="16.61" y2="17.55" y3="18.55"/>
+ <curve x1="27.05" x2="26.8" x3="26.54" y1="18.99" y2="19.44" y3="19.88"/>
+ <curve x1="26.54" x2="26.54" x3="26.54" y1="19.88" y2="19.88" y3="19.88"/>
+ <curve x1="26.54" x2="26.54" x3="26.54" y1="19.88" y2="19.88" y3="19.93"/>
+ <curve x1="26.54" x2="26.54" x3="26.54" y1="19.93" y2="19.93" y3="19.93"/>
+ <curve x1="26.54" x2="26.49" x3="26.49" y1="20" y2="20" y3="20.06"/>
+ <curve x1="26.49" x2="26.54" x3="26.54" y1="20" y2="19.93" y3="19.93"/>
+ <curve x1="26.54" x2="26.54" x3="26.54" y1="19.88" y2="19.88" y3="19.88"/>
+ <curve x1="26.54" x2="26.54" x3="26.54" y1="19.88" y2="19.88" y3="20.62"/>
+ <curve x1="26.54" x2="26.54" x3="26.18" y1="20.62" y2="20.62" y3="20.62"/>
+ <curve x1="25.87" x2="25.54" x3="25.3" y1="21.32" y2="22.06" y3="22.81"/>
+ <curve x1="25.23" x2="25.05" x3="24.98" y1="23.25" y2="23.69" y3="24.14"/>
+ <curve x1="24.98" x2="24.98" x3="24.98" y1="24.14" y2="24.14" y3="24.14"/>
+ <curve x1="25.87" x2="26.49" x3="26.98" y1="24.14" y2="24.45" y3="25.14"/>
+ <curve x1="27.43" x2="27.62" x3="27.62" y1="25.71" y2="26.51" y3="27.58"/>
+ <curve x1="27.62" x2="27.43" x3="26.98" y1="28.64" y2="29.52" y3="30.08"/>
+ <curve x1="26.54" x2="25.87" x3="24.98" y1="30.77" y2="31.08" y3="31.08"/>
+ <curve x1="24.98" x2="24.98" x3="24.98" y1="31.08" y2="31.08" y3="31.08"/>
+ <curve x1="24.92" x2="24.86" x3="24.86" y1="30.9" y2="30.72" y3="30.59"/>
+ <curve x1="24.92" x2="24.92" x3="24.98" y1="30.77" y2="30.9" y3="31.08"/>
+ <curve x1="24.98" x2="24.98" x3="24.98" y1="31.08" y2="31.08" y3="31.08"/>
+ <curve x1="24.98" x2="25.05" x3="25.1" y1="31.28" y2="31.47" y3="31.59"/>
+ <curve x1="25.36" x2="25.74" x3="26.18" y1="32.72" y2="33.72" y3="34.67"/>
+ <curve x1="26.18" x2="26.18" x3="26.74" y1="34.67" y2="34.67" y3="34.67"/>
+ <curve x1="26.74" x2="26.74" x3="26.74" y1="34.67" y2="34.67" y3="35.67"/>
+ <curve x1="26.98" x2="27.18" x3="27.31" y1="36.04" y2="36.35" y3="36.6"/>
+ <curve x1="27.74" x2="28.24" x3="28.8" y1="37.24" y2="37.86" y3="38.43"/>
+ <curve x1="28.99" x2="29.18" x3="29.37" y1="38.61" y2="38.81" y3="38.99"/>
+ <curve x1="29.42" x2="29.62" x3="29.75" y1="39.17" y2="39.3" y3="39.43"/>
+ <curve x1="29.88" x2="30.06" x3="30.19" y1="39.56" y2="39.68" y3="39.74"/>
+ <curve x1="29.93" x2="29.75" x3="29.55" y1="39.56" y2="39.43" y3="39.17"/>
+ <curve x1="29.42" x2="29.42" x3="29.42" y1="38.81" y2="38.43" y3="37.99"/>
+ <curve x1="29.42" x2="29.62" x3="30.06" y1="36.92" y2="36.11" y3="35.48"/>
+ <curve x1="30.55" x2="31.19" x3="32.06" y1="34.85" y2="34.54" y3="34.54"/>
+ <curve x1="32.87" x2="33.5" x3="33.94" y1="34.54" y2="34.85" y3="35.48"/>
+ <curve x1="34.38" x2="34.63" x3="34.63" y1="36.11" y2="36.92" y3="37.99"/>
+ <curve x1="34.63" x2="34.44" x3="34" y1="39.05" y2="39.87" y3="40.49"/>
+ <curve x1="33.63" x2="33.12" x3="32.5" y1="41.05" y2="41.31" y3="41.43"/>
+ <curve x1="32.94" x2="33.38" x3="33.81" y1="41.69" y2="41.94" y3="42.18"/>
+ <curve x1="34.31" x2="34.82" x3="35.25" y1="42.38" y2="42.62" y3="42.75"/>
+ <curve x1="36" x2="36.82" x3="37.57" y1="43" y2="43.25" y3="43.38"/>
+ <curve x1="38.13" x2="38.64" x3="39.19" y1="43.51" y2="43.56" y3="43.69"/>
+ <curve x1="39.76" x2="40.32" x3="40.89" y1="43.69" y2="43.69" y3="43.69"/>
+ <curve x1="41.45" x2="41.96" x3="42.53" y1="43.69" y2="43.69" y3="43.69"/>
+ <curve x1="43.09" x2="43.64" x3="44.15" y1="43.56" y2="43.51" y3="43.38"/>
+ <curve x1="44.97" x2="45.72" x3="46.46" y1="43.25" y2="43" y3="42.75"/>
+ <curve x1="46.97" x2="47.47" x3="47.9" y1="42.62" y2="42.38" y3="42.18"/>
+ <curve x1="48.72" x2="49.47" x3="50.22" y1="41.74" y2="41.31" y3="40.81"/>
+ <curve x1="50.16" x2="50.09" x3="49.96" y1="40.74" y2="40.61" y3="40.49"/>
+ <curve x1="49.53" x2="49.34" x3="49.34" y1="39.87" y2="39.05" y3="37.99"/>
+ <curve x1="49.34" x2="49.34" x3="49.34" y1="37.99" y2="37.99" y3="37.68"/>
+ <curve x1="48.65" x2="47.9" x3="47.16" y1="37.86" y2="37.92" y3="37.92"/>
+ <curve x1="47.16" x2="47.16" x3="47.16" y1="37.92" y2="37.92" y3="37.99"/>
+ <curve x1="47.16" x2="46.97" x3="46.52" y1="39.05" y2="39.87" y3="40.49"/>
+ <curve x1="46.08" x2="45.4" x3="44.59" y1="41.12" y2="41.43" y3="41.43"/>
+ <curve x1="43.71" x2="43.02" x3="42.64" y1="41.43" y2="41.18" y3="40.49"/>
+ <curve x1="42.2" x2="41.96" x3="41.96" y1="39.87" y2="39.05" y3="37.99"/>
+ <curve x1="41.96" x2="42.02" x3="42.09" y1="37.48" y2="37.04" y3="36.6"/>
+ <curve x1="41.52" x2="40.96" x3="40.45" y1="36.29" y2="35.86" y3="35.35"/>
+ <curve x1="39.19" x2="38.39" x3="38.01" y1="34.16" y2="32.65" y3="31.08"/>
+ <curve x1="38.01" x2="38.01" x3="37.88" y1="31.08" y2="31.08" y3="31.08"/>
+ <curve x1="37.08" x2="36.44" x3="36" y1="31.08" y2="30.77" y3="30.08"/>
+ <curve x1="35.57" x2="35.31" x3="35.31" y1="29.52" y2="28.71" y3="27.58"/>
+ <curve x1="35.31" x2="35.57" x3="36" y1="26.51" y2="25.71" y3="25.07"/>
+ <curve x1="36.44" x2="37.08" x3="37.88" y1="24.45" y2="24.14" y3="24.14"/>
+ <curve x1="38.32" x2="38.7" x3="39.08" y1="24.14" y2="24.2" y3="24.38"/>
+ <curve x1="39.45" x2="39.89" x3="40.45" y1="23.76" y2="23.19" y3="22.63"/>
+ <curve x1="41.52" x2="42.71" x3="43.96" y1="21.63" y2="20.88" y3="20.44"/>
+ <curve x1="43.64" x2="43.4" x3="43.2" y1="20.31" y2="20.06" y3="19.75"/>
+ <curve x1="42.77" x2="42.53" x3="42.53" y1="19.11" y2="18.31" y3="17.24"/>
+ <curve x1="42.53" x2="42.77" x3="43.2" y1="16.18" y2="15.29" y3="14.74"/>
+ <curve x1="43.64" x2="44.28" x3="45.15" y1="14.1" y2="13.72" y3="13.72"/>
+ <curve x1="45.97" x2="46.59" x3="47.03" y1="13.72" y2="14.1" y3="14.74"/>
+ <curve x1="47.47" x2="47.72" x3="47.72" y1="15.29" y2="16.18" y3="17.24"/>
+ <curve x1="47.72" x2="47.52" x3="47.08" y1="18.31" y2="19.11" y3="19.68"/>
+ <curve x1="47.03" x2="46.97" x3="46.84" y1="19.75" y2="19.88" y3="20"/>
+ <curve x1="46.84" x2="46.84" x3="46.9" y1="20" y2="20" y3="20"/>
+ <close/>
+ <move x="43.96" y="17.24"/>
+ <curve x1="43.96" x2="44.33" x3="45.15" y1="18.8" y2="19.62" y3="19.62"/>
+ <curve x1="45.9" x2="46.28" x3="46.28" y1="19.62" y2="18.8" y3="17.24"/>
+ <curve x1="46.28" x2="45.9" x3="45.15" y1="15.67" y2="14.92" y3="14.92"/>
+ <curve x1="44.33" x2="43.96" x3="43.96" y1="14.92" y2="15.67" y3="17.24"/>
+ <close/>
+ <move x="45.72" y="37.86"/>
+ <curve x1="44.97" x2="44.15" x3="43.4" y1="37.8" y2="37.55" y3="37.24"/>
+ <curve x1="43.4" x2="43.4" x3="43.4" y1="37.48" y2="37.73" y3="37.99"/>
+ <curve x1="43.4" x2="43.71" x3="44.59" y1="39.56" y2="40.37" y3="40.37"/>
+ <curve x1="45.33" x2="45.72" x3="45.72" y1="40.37" y2="39.56" y3="37.99"/>
+ <curve x1="45.72" x2="45.72" x3="45.72" y1="37.99" y2="37.99" y3="37.86"/>
+ <close/>
+ <move x="51.35" y="33.29"/>
+ <curve x1="53.73" x2="53.73" x3="51.35" y1="30.84" y2="27.02" y3="24.7"/>
+ <curve x1="50.09" x2="48.52" x3="46.9" y1="23.5" y2="22.81" y3="22.81"/>
+ <curve x1="45.28" x2="43.71" x3="42.53" y1="22.81" y2="23.5" y3="24.7"/>
+ <curve x1="41.33" x2="40.65" x3="40.65" y1="25.76" y2="27.33" y3="28.95"/>
+ <curve x1="40.65" x2="41.33" x3="42.53" y1="30.59" y2="32.16" y3="33.29"/>
+ <curve x1="43.71" x2="45.28" x3="46.9" y1="34.35" y2="35.11" y3="35.11"/>
+ <curve x1="48.52" x2="50.09" x3="51.35" y1="35.11" y2="34.35" y3="33.29"/>
+ <close/>
+ <move x="30.86" y="37.99"/>
+ <curve x1="30.86" x2="31.25" x3="32.06" y1="39.56" y2="40.37" y3="40.37"/>
+ <curve x1="32.81" x2="33.19" x3="33.19" y1="40.37" y2="39.56" y3="37.99"/>
+ <curve x1="33.19" x2="32.81" x3="32.06" y1="36.42" y2="35.67" y3="35.67"/>
+ <curve x1="31.25" x2="30.86" x3="30.86" y1="35.67" y2="36.42" y3="37.99"/>
+ <close/>
+ <move x="24.54" y="27.58"/>
+ <curve x1="24.54" x2="24.61" x3="24.79" y1="28.46" y2="29.15" y3="29.9"/>
+ <curve x1="24.79" x2="24.92" x3="24.98" y1="29.97" y2="29.97" y3="29.97"/>
+ <curve x1="25.8" x2="26.18" x3="26.18" y1="29.97" y2="29.15" y3="27.58"/>
+ <curve x1="26.18" x2="25.8" x3="24.98" y1="26.02" y2="25.25" y3="25.25"/>
+ <curve x1="24.92" x2="24.79" x3="24.79" y1="25.25" y2="25.25" y3="25.33"/>
+ <curve x1="24.61" x2="24.54" x3="24.54" y1="26.02" y2="26.82" y3="27.58"/>
+ <close/>
+ <move x="32.25" y="14.92"/>
+ <curve x1="31.43" x2="31.06" x3="31.06" y1="14.92" y2="15.67" y3="17.24"/>
+ <curve x1="31.06" x2="31.43" x3="32.25" y1="18.8" y2="19.62" y3="19.62"/>
+ <curve x1="33" x2="33.38" x3="33.38" y1="19.62" y2="18.8" y3="17.24"/>
+ <curve x1="33.38" x2="33" x3="32.25" y1="15.67" y2="14.92" y3="14.92"/>
+ <close/>
+ <move x="61.55" y="40.61"/>
+ <curve x1="62.12" x2="62.12" x3="61.55" y1="41.12" y2="42.05" y3="42.69"/>
+ <curve x1="61.55" x2="61.5" x3="60.81" y1="42.69" y2="42.75" y3="43.38"/>
+ <curve x1="60.24" x2="59.3" x3="58.75" y1="44" y2="44" y3="43.38"/>
+ <curve x1="58.75" x2="58.75" x3="52.22" y1="43.38" y2="43.38" y3="37.11"/>
+ <curve x1="52.1" x2="51.97" x3="51.79" y1="36.92" y2="36.79" y3="36.6"/>
+ <curve x1="51.48" x2="51.09" x3="50.85" y1="36.79" y2="36.99" y3="37.11"/>
+ <curve x1="50.78" x2="50.78" x3="50.78" y1="37.35" y2="37.68" y3="37.99"/>
+ <curve x1="50.78" x2="50.91" x3="51.22" y1="38.99" y2="39.68" y3="40.05"/>
+ <curve x1="51.53" x2="51.91" x3="52.22" y1="39.74" y2="39.43" y3="39.17"/>
+ <curve x1="52.92" x2="53.48" x3="53.97" y1="39.74" y2="40.37" y3="40.87"/>
+ <curve x1="50.6" x2="46.03" x3="40.89" y1="44.13" y2="46.13" y3="46.13"/>
+ <curve x1="30.5" x2="22.04" x3="22.04" y1="46.13" y2="37.86" y3="27.58"/>
+ <curve x1="22.04" x2="24.05" x3="27.62" y1="22.63" y2="17.98" y3="14.48"/>
+ <curve x1="31.19" x2="35.82" x3="40.89" y1="10.97" y2="9.02" y3="9.02"/>
+ <curve x1="51.22" x2="59.68" x3="59.68" y1="9.02" y2="17.36" y3="27.58"/>
+ <curve x1="59.68" x2="58.86" x3="57.42" y1="30.84" y2="33.85" y3="36.42"/>
+ <curve x1="58.36" x2="59.75" x3="61.55" y1="37.42" y2="38.74" y3="40.61"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file